SPICE (симулятор электронных схем)

SPICE(Simulation Program with Integrated Circuit Emphasis) — симуляторэлектронных схемобщего назначения соткрытым исходным кодом. Является мощной программой, используемой в разработке какинтегральных схем, так ипечатных платдля проверки целостности схемы и для анализа её поведения.
Интегральные схемы, в отличие от печатных плат, практически не поддаютсямакетированиюперед производством. Кроме того, высокая стоимость созданияфотолитографических масоки других этаповполупроводникового производстваприводят к необходимости очень тщательной разработки и верификации. Симуляция схемы при помощи SPICE является общепринятым в полупроводниковой промышленности способом верификации работы схемы на транзисторном уровне (перед её реализацией в кремнии).
Для печатных плат, особенно небольшой сложности, возможно проводить макетирование. Но на макетной плате некоторые свойства схем могут быть неточны по сравнению с итоговой платой. Например, на макетной плате у печатных дорожек будут иные паразитные сопротивления и ёмкости. Подобные паразитные элементы часто можно оценить при помощи симуляции на SPICE.
SPICE был разработан в Electronics Research Laboratory вКалифорнийском университете в БерклиЛоуренсом Нагелем (Laurence Nagel) и его научным руководителем профессором Дональдом Педерсоном (Donald Pederson). SPICE1 был в значительной степени основан на более ранней программе CANCER,написанной Лоуренсом с другим научным руководителем, профессором Рональдом Рохрером (Ronald Rohrer). Название программы расшифровывалось как «Computer Analysis of Nonlinear Circuits, Excluding Radiation» (Компьютерный анализ нелинейных схем, исключая радиацию), что было отсылкой к относительной свободе в Университете Беркли в 1960-х годах. В то время большая часть симуляторов электронных схем разрабатывалась по грантам и контрактамминистерства обороны США, одним из требований которых была возможность оценки влияния радиации на работу схем (См.Radiation hardening). После смены научного руководителя, Нагелю пришлось переписатьпроприетарныйCANCER так, чтобы новую программу можно было опубликовать в открытом доступе, таким образом передав в общественное достояние.
Впервые SPICE1 был представлен на конференции в 1973.Программа была написана на языкеFORTRANи использовала анализ цепиметодом узловых потенциаловдля построения уравнений схемы. Метод узловых потенциалов имел ограничения в работе с индуктивностями, источниками переменного напряжения и с различными вариантами управляемых генераторов тока и напряжения. В SPICE1 было доступно небольшое количество элементов, программа использовалаанализ переходных процессов(transient analysis) с фиксированным шагом по времени. Популярность пришла ко второй версии программы, SPICE2, в 1975 году. Она тоже была написана на FORTRAN, но имела больше элементов, позволяла изменять шаг по времени при анализе переходных процессов, уравнения цепей формулировались при помощи модифицированного метода узловых потенциалов (modified nodal analysis), устраняя тем самым ограничения метода узловых потенциалов. Последняя версия SPICE, написанная на языке FORTRAN, — 2G.6 (1983 год). Следующую версию, SPICE3разработал Томас Кворлс (Thomas Quarles) в 1989. Она написана на языкеСи, использует тот же формат данных об электрических цепях (netlist) и поддерживает визуализацию в средеX Window System.
С ранних версий SPICE являлась программным обеспечением с открытыми исходными кодами, что способствовало её широкому распространению и применению. SPICE стала индустриальным стандартом симуляции электрических схем. Исходные коды SPICE распространялись университетом по номинальной стоимости (по цене магнитной ленты). Лицензия изначально включала в себя условия, ограничивающие передачу кода в некоторые недружественные США страны, но в настоящее время программа распространяется по условиям лицензииBSD.
SPICE послужил основой для разработки множества других программ симуляции схем, как в академической, так и в промышленной среде. Первая коммерческая версия — ISPICE,(National CSS). Наиболее выдающиеся коммерческие версии SPICE: HSPICE (изначально Meta Software, нынеSynopsys) иPSPICE(нынеCadence Design Systems). Академические версии программы: XSPICE (Georgia Tech, с поддержкой смешанных аналого-цифровых моделей) и Cider (ранее CODECS, UC Berkeley и Oregon State Univ.; с поддержкой полупроводниковых устройств). Индустрия проектирования интегральных схем достаточно рано начала пользоваться SPICE, и, до развития коммерческих реализаций, многие компании-разработчики микросхем имели собственные проприетарные версии SPICE.В настоящее время крупные производители микросхем развивают собственные программы симулирования на базе SPICE. Например, ADICE у компанииAnalog Devices,LTspiceуLinear Technology, Mica уFreescale Semiconductor, TISPICE уTexas Instruments.
В 2011 году появление SPICE было отнесено кIEEE Milestone,было отмечено, что SPICE и его производные стали неотъемлемой частью разработки практически любой интегральной схемы.
SPICE стал популярен, поскольку поддерживал анализ и содержал модели, необходимые для разработки интегральных схем того времени, и при этом был достаточно быстрым для практического использования.Предшественники SPICE часто имели лишь одно предназначение, например BIASпозволял рассчитывать режимы биполярных транзисторов; SLICпроизводил анализ малых сигналов. SPICE комбинировал в себе несколько режимов анализа и достаточно обширную библиотеку моделей устройств.
SPICE2 включает в себя:
SPICE2 принимает netlist в текстовом виде на вход и выдает line-printer listings как результат своей работы. Такая программа была типичной для 1975 года. Листинги представляют либо колонки с номерами, соответствующими рассчитанным выходным параметрам (чаще всего, токам и напряжениям), либо представляли собой рисунок из символов (ASCII art). SPICE3 оставил формат netlist для описания схем, но позволил контролировать анализ с помощью командного интерфейса (CLI). Также в SPICE3 появились базовые варианты отрисовки схемы в графической средеX Window, по мере того, какUnixи рабочие станции становились более популярными.