SPICE (симулятор электронных схем)
SPICE (Simulation Program with Integrated Circuit Emphasis) — симулятор электронных схем общего назначения с открытым исходным кодом. Является мощной программой, используемой в разработке как интегральных схем, так и печатных плат для проверки целостности схемы и для анализа её поведения.
Введение[править | править код]
Интегральные схемы, в отличие от печатных плат, практически не поддаются макетированию перед производством. Кроме того, высокая стоимость создания фотолитографических масок и других этапов полупроводникового производства приводят к необходимости очень тщательной разработки и верификации. Симуляция схемы при помощи SPICE является общепринятым в полупроводниковой промышленности способом верификации работы схемы на транзисторном уровне (перед её реализацией в кремнии).
Для печатных плат, особенно небольшой сложности, возможно проводить макетирование. Но на макетной плате некоторые свойства схем могут быть неточны по сравнению с итоговой платой. Например, на макетной плате у печатных дорожек будут иные паразитные сопротивления и ёмкости. Подобные паразитные элементы часто можно оценить при помощи симуляции на SPICE.
История[править | править код]
SPICE был разработан в Electronics Research Laboratory в Калифорнийском университете в Беркли Лоуренсом Нагелем (Laurence Nagel) и его научным руководителем профессором Дональдом Педерсоном (Donald Pederson). SPICE1 был в значительной степени основан на более ранней программе CANCER,[1] написанной Лоуренсом с другим научным руководителем, профессором Рональдом Рохрером (Ronald Rohrer). Название программы расшифровывалось как «Computer Analysis of Nonlinear Circuits, Excluding Radiation» (Компьютерный анализ нелинейных схем, исключая радиацию), что было отсылкой к относительной свободе в Университете Беркли в 1960-х годах[2]. В то время большая часть симуляторов электронных схем разрабатывалась по грантам и контрактам министерства обороны США, одним из требований которых была возможность оценки влияния радиации на работу схем (См. Radiation hardening). После смены научного руководителя, Нагелю пришлось переписать проприетарный CANCER так, чтобы новую программу можно было опубликовать в открытом доступе, таким образом передав в общественное достояние.[3]
Впервые SPICE1 был представлен на конференции в 1973.[4] Программа была написана на языке FORTRAN и использовала анализ цепи методом узловых потенциалов для построения уравнений схемы. Метод узловых потенциалов имел ограничения в работе с индуктивностями, источниками переменного напряжения и с различными вариантами управляемых генераторов тока и напряжения. В SPICE1 было доступно небольшое количество элементов, программа использовала анализ переходных процессов (transient analysis) с фиксированным шагом по времени. Популярность пришла ко второй версии программы, SPICE2[5], в 1975 году. Она тоже была написана на FORTRAN, но имела больше элементов, позволяла изменять шаг по времени при анализе переходных процессов, уравнения цепей формулировались при помощи модифицированного метода узловых потенциалов (modified nodal analysis)[6], устраняя тем самым ограничения метода узловых потенциалов. Последняя версия SPICE, написанная на языке FORTRAN, — 2G.6 (1983 год). Следующую версию, SPICE3[7] разработал Томас Кворлс (Thomas Quarles) в 1989. Она написана на языке Си, использует тот же формат данных об электрических цепях (netlist) и поддерживает визуализацию в среде X Window System.
С ранних версий SPICE являлась программным обеспечением с открытыми исходными кодами, что способствовало её широкому распространению и применению. SPICE стала индустриальным стандартом симуляции электрических схем[8]. Исходные коды SPICE распространялись университетом по номинальной стоимости (по цене магнитной ленты). Лицензия изначально включала в себя условия, ограничивающие передачу кода в некоторые недружественные США страны, но в настоящее время программа распространяется по условиям лицензии BSD.
SPICE послужил основой для разработки множества других программ симуляции схем, как в академической, так и в промышленной среде. Первая коммерческая версия — ISPICE,[9] (National CSS). Наиболее выдающиеся коммерческие версии SPICE: HSPICE (изначально Meta Software, ныне Synopsys) и PSPICE (ныне Cadence Design Systems). Академические версии программы: XSPICE (Georgia Tech, с поддержкой смешанных аналого-цифровых моделей) и Cider (ранее CODECS, UC Berkeley и Oregon State Univ.; с поддержкой полупроводниковых устройств). Индустрия проектирования интегральных схем достаточно рано начала пользоваться SPICE, и, до развития коммерческих реализаций, многие компании-разработчики микросхем имели собственные проприетарные версии SPICE.[10] В настоящее время крупные производители микросхем развивают собственные программы симулирования на базе SPICE. Например, ADICE у компании Analog Devices, LTspice у Linear Technology, Mica у Freescale Semiconductor, TISPICE у Texas Instruments.
В 2011 году появление SPICE было отнесено к IEEE Milestone,[11] было отмечено, что SPICE и его производные стали неотъемлемой частью разработки практически любой интегральной схемы.
Особенности и структура программы[править | править код]
SPICE стал популярен, поскольку поддерживал анализ и содержал модели, необходимые для разработки интегральных схем того времени, и при этом был достаточно быстрым для практического использования.[12] Предшественники SPICE часто имели лишь одно предназначение, например BIAS[13] позволял рассчитывать режимы биполярных транзисторов; SLIC[14] производил анализ малых сигналов. SPICE комбинировал в себе несколько режимов анализа и достаточно обширную библиотеку моделей устройств.
Виды анализа[править | править код]
SPICE2 включает в себя:
- AC-анализ (анализ по переменному току)
- DC-анализ (анализ по постоянному току) для слабых сигналов
- анализ DC transfer curve
- анализ шумов
- анализ передаточной функции (входное и выходное усиление малых сигналов и вычисление импеданса)
- анализ переходных процессов
Входные и выходные форматы: Netlist, schematic capture и plotting[править | править код]
SPICE2 принимает netlist в текстовом виде на вход и выдает line-printer listings как результат своей работы. Такая программа была типичной для 1975 года. Листинги представляют либо колонки с номерами, соответствующими рассчитанным выходным параметрам (чаще всего, токам и напряжениям), либо представляли собой рисунок из символов (ASCII art). SPICE3 оставил формат netlist для описания схем, но позволил контролировать анализ с помощью командного интерфейса (CLI). Также в SPICE3 появились базовые варианты отрисовки схемы в графической среде X Window, по мере того, как Unix и рабочие станции становились более популярными.
См. также[править | править код]
Примечания[править | править код]
- ↑ Nagel, L. W., and Rohrer, R. A. Computer Analysis of Nonlinear Circuits, Excluding Radiation (англ.) // IEEE Journal of Solid State Circuits : journal. — 1971. — August (vol. SC—6). — P. 166—182. — doi:10.1109/JSSC.1971.1050166. (недоступная ссылка)
- ↑ Life of SPICE . Дата обращения: 17 мая 2010. Архивировано из оригинала 4 февраля 2012 года.
- ↑ Perry, T. Donald O. Pederson (англ.) // IEEE Spectrum : magazine. — 1998. — June (vol. 35). — P. 22—27. — doi:10.1109/6.681968. Архивировано 13 февраля 2009 года.
- ↑ SPICE (Simulation Program with Integrated Circuit Emphasis) Архивная копия от 11 июня 2010 на Wayback Machine, Technical Report No. UCB/ERL M382, April 1973, Laurence W. Nagel and D.O. Pederson
- ↑ SPICE2: A Computer Program to Simulate Semiconductor Circuits Архивная копия от 11 июня 2010 на Wayback Machine, Laurence W. Nagel, Berkeley Technical Report No. UCB/ERL M520 1975
- ↑ Ho, Ruehli, and Brennan (1974). "The Modified Nodal Approach to Network Analysis". Proc. 1974 Int. Symposium on Circuits and Systems, San Francisco. pp. 505—509.
{{cite conference}}
: Неизвестный параметр|month=
игнорируется (справка)Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка) Источник . Дата обращения: 14 июня 2023. Архивировано 15 мая 2011 года. - ↑ Quarles, Thomas L., Analysis of Performance and Convergence Issues for Circuit Simulation, Memorandum No. UCB/ERL M89/42, University of California, Berkeley, Apr. 1989.
- ↑ Pescovitz, David (2002-05-02). "1972: The release of SPICE, still the industry standard tool for integrated circuit design". Lab Notes: Research from the Berkeley College of Engineering. Архивировано из оригинала 3 февраля 2007. Дата обращения: 10 марта 2007.
- ↑ Vladimirescu, Andrei, SPICE — The Third Decade, Proc. 1990 IEEE Bipolar Circuits and Technology Meeting, Minneapolis, Sept. 1990, pp. 96-101
- ↑ K. S. Kundert, The Designer’s Guide to SPICE and SPECTRE, Kluwer. Academic Publishers, Boston , 1998
- ↑ List of IEEE Milestones . IEEE Global History Network. IEEE. Дата обращения: 1 января 2013. Архивировано 6 января 2013 года.
- ↑ Nagel, L., Is it Time for SPICE4? Архивировано 26 сентября 2006 года., 2004 Numerical Aspects of Device and Circuit Modeling Workshop, June 23-25, 2004, Santa Fe, New Mexico. Retrieved on 2007-11-10
- ↑ McCalla and Howard. BIAS-3 – A program for nonlinear D.C. analysis of bipolar transistor circuits (англ.) // IEEE J. of Solid State Circuits : journal. — 1971. — February (vol. 6). — P. 14—19. — doi:10.1109/JSSC.1971.1050153. (недоступная ссылка)
- ↑ Idleman, Jenkins, McCalla and Pederson. SLIC—a simulator for linear integrated circuits (неопр.) // IEEE J. of Solid State Circuits. — 1971. — August (т. 6). — С. 188—203. — doi:10.1109/JSSC.1971.1050168.
Ссылки[править | править код]
Оригинальные работы о SPICE[править | править код]
- The original SPICE1 paper
- L. W. Nagel’s dissertation (SPICE2)
- Thomas Quarles' dissertation (SPICE3)
- Larry Nagel, «The Life of SPICE»
- A brief history of SPICE
Версии SPICE с исходными кодами[править | править код]
- SPICE2 and SPICE3 at UC Berkeley
- Cider at UC Berkeley
- ngspice: SPICE3 with updates and XSPICE extensions
- tclspice: ngspice and Tcl scripting
- XSPICE at Georgia Tech
- (Free to use online code)Spice3f4
Руководства, информация для пользователей[править | править код]
- Comprehensive, detailed PSPICE tutorial and user guide at Wilfrid Laurier University, Canada
- The Spice Page Архивная копия от 31 января 2009 на Wayback Machine
- SPICE on gEDA HOWTO
- Spice 3 Userguide
- Spice 3 Quickstart Tutorial
- Designer’s Guide Community
- SPICE Simulation tutorial