SPICE (« Программа моделирования с упором на интегральные схемы ») [1] [2] — это универсальный симулятор аналоговых электронных схем с открытым исходным кодом . Это программа, используемая при проектировании интегральных схем и плат для проверки целостности схем и прогнозирования поведения схем .
В отличие от проектов на уровне платы, состоящих из отдельных частей, макетирование интегральных схем перед изготовлением непрактично . Кроме того, высокая стоимость фотолитографических масок и других производственных условий делает необходимым спроектировать схему так, чтобы она была как можно ближе к совершенству, прежде чем интегральная схема будет построена впервые.
Моделирование схемы с помощью SPICE — это стандартный способ проверки работы схемы на уровне транзистора перед тем, как приступить к производству интегральной схемы. Симуляторы SPICE помогают прогнозировать поведение микросхемы в различных условиях эксплуатации, таких как различные уровни напряжения и тока, изменения температуры и шум. [3]
Схемы на уровне платы часто могут быть макетированы для тестирования. Даже при использовании макета некоторые свойства схемы могут быть неточными по сравнению с окончательной печатной платой, например паразитные сопротивления и емкости , влияние которых часто можно более точно оценить с помощью моделирования. Кроме того, проектировщикам может потребоваться больше информации о схеме, чем можно получить из одного макета. Например, на производительность схемы влияют допуски изготовления компонентов. В этих случаях обычно используется SPICE для моделирования влияния изменений компонентов на производительность по методу Монте-Карло - задача, которая непрактична с использованием ручных вычислений для схемы любой заметной сложности.
Программы моделирования схем, из которых SPICE и производные являются наиболее известными, берут текстовый список соединений , описывающий элементы схемы ( транзисторы , резисторы , конденсаторы и т. д.) и их соединения, и переводят [4] это описание в уравнения, которые необходимо решить. Полученные общие уравнения представляют собой нелинейные дифференциально-алгебраические уравнения , которые решаются с использованием методов неявного интегрирования , метода Ньютона и методов разреженной матрицы .
SPICE был разработан в Лаборатории исследований электроники Калифорнийского университета в Беркли Лоуренсом Нагелем под руководством его научного руководителя профессора Дональда Педерсона . SPICE1 во многом является производной от программы CANCER [5] , над которой Нагель работал под руководством профессора Рональда Рорера. РАК — это аббревиатура от «Компьютерный анализ нелинейных цепей, исключая излучение», намек на либерализм Беркли 1960-х годов: [6] в то время многие симуляторы цепей были разработаны по контрактам с Министерством обороны США , которые требовали возможности оценить радиационную стойкость схемы. Когда первоначальный советник Нагеля, профессор Рорер, покинул Беркли, его советником стал профессор Педерсон. Педерсон настоял на том, чтобы CANCER, проприетарная программа, была переписана настолько, чтобы можно было снять ограничения и сделать программу общедоступной . [7]
SPICE1 был впервые представлен на конференции в 1973 году. [1] SPICE1 закодирован на FORTRAN , и для построения уравнений схемы используется узловой анализ , который имеет ограничения в представлении индукторов, источников плавающего напряжения и различных форм управляемых источников. [8] SPICE1 имеет относительно мало доступных схемных элементов и использует анализ переходных процессов с фиксированным шагом по времени . Настоящая популярность SPICE началась со SPICE2 в 1975 году. [2] SPICE2, также закодированный на FORTRAN, представляет собой значительно улучшенную программу с большим количеством схемных элементов, анализом переходных процессов с переменным временным шагом с использованием либо трапецеидального ( метод Адамса-Моултона второго порядка ), либо Метод интеграции передач (также известный как BDF ), формулировка уравнений с помощью модифицированного узлового анализа (избегая ограничений узлового анализа) [9] и инновационная система распределения памяти на основе FORTRAN. [10] Эллис Коэн руководил разработкой от версии 2B до отраслевого стандарта SPICE 2G6, последней версии FORTRAN, выпущенной в 1983 году. [11] [12] SPICE3 был разработан Томасом Куорлзом (с консультантом А. Ричардом Ньютоном ) в 1989 году. Он написан на C , использует тот же синтаксис списка соединений и добавлено отображение в системе X Window . [13]
Будучи одной из первых общедоступных программ с доступным исходным кодом , [14] SPICE широко распространялся и использовался. Его повсеместное распространение стало таким, что «SPICE схема» остается синонимом моделирования схем. [15] Исходный код SPICE с самого начала распространялся Калифорнийским университетом в Беркли за символическую плату (для покрытия стоимости магнитной ленты). Лицензия изначально включала ограничения на распространение для стран, не считающихся дружественными США, но исходный код в настоящее время подпадает под действие лицензии BSD .
Рождение SPICE было названо вехой IEEE в 2011 году; в записи упоминается, что SPICE «развился и стал стандартным во всем мире симулятором интегральных схем». [16] Нагель был награжден премией IEEE Дональда О. Педерсона 2019 года в области твердотельных схем за разработку SPICE. [17]
После версии 3f5 в 1993 году более новые версии Berkeley SPICE не выпускались. [18] С тех пор к открытым или академическим продолжениям SPICE относятся: XSPICE, [19] разработанный в Технологическом институте Джорджии , в котором добавлен смешанный аналогово-цифровой «код». модели» для поведенческого моделирования; CIDER [20] (ранее CODECS), разработанный Калифорнийским университетом в Беркли и Университетом штата Орегон, который добавил моделирование полупроводниковых устройств ; Ngspice , [21] [22] на основе SPICE 3f5; WRspice, [23] переписанный на C++ исходный код spice3f5. Другими симуляторами с открытым исходным кодом, не разработанными учеными, являются QUCS , QUCS-S, [24] Xyce, [25] и Qucsator.
Berkeley SPICE вдохновил и послужил основой для многих других программ моделирования схем в научных кругах, промышленности и коммерческих продуктах. Первой коммерческой версией SPICE является ISPICE, [26] интерактивная версия службы таймшера National CSS . Наиболее известные коммерческие версии SPICE включают HSPICE (первоначально коммерциализированную Ашаной и Ким Хейли из Meta Software, но теперь принадлежащую Synopsys ) и PSPICE (теперь принадлежащую Cadence Design Systems ). Индустрия интегральных схем быстро внедрила SPICE, и до тех пор, пока коммерческие версии не стали хорошо развиты, многие компании-разработчики ИС имели собственные версии SPICE. [27]
Сегодня у нескольких производителей микросхем, обычно у более крупных компаний, есть группы, которые продолжают разрабатывать программы моделирования схем на основе SPICE. Среди них ADICE и LTspice в Analog Devices , QSPICE в Qorvo , MCSPICE, за которыми следуют Mica в Freescale Semiconductor , теперь NXP Semiconductors , и TINA-TI [28] в Texas Instruments . И LTspice, и TINA-TI поставляются в комплекте с моделями соответствующих компаний. [29] [30] Другие компании поддерживают симуляторы внутренних схем, которые не основаны напрямую на SPICE, в том числе PowerSpice в IBM , TITAN в Infineon Technologies , Lynx в Intel Corporation и Pstar в NXP Semiconductors . [31]
SPICE стал популярным, потому что содержал анализ и модели, необходимые для проектирования интегральных схем того времени, и был достаточно надежным и быстрым, чтобы его можно было практично использовать. [32] Предшественники SPICE часто преследовали одну цель: например, программа BIAS [33] моделировала рабочие точки схем биполярных транзисторов; программа SLIC [34] проводила только анализ слабых сигналов. SPICE объединил решения рабочих точек, анализ переходных процессов и различные анализы малых сигналов с элементами схем и моделями устройств, необходимыми для успешного моделирования множества схем.
SPICE2 включает в себя следующие анализы:
Поскольку SPICE обычно используется для моделирования схем с нелинейными элементами , анализу малых сигналов обязательно предшествует расчет точки покоя , в которой схема линеаризуется. SPICE2 также содержит код для другого анализа слабых сигналов: анализа чувствительности , анализа полюс-ноль и анализа искажений слабых сигналов . Анализ при различных температурах выполняется путем автоматического обновления параметров полупроводниковой модели с учетом температуры, что позволяет моделировать схему при экстремальных температурах.
С тех пор другие симуляторы схем добавили множество анализов помимо SPICE2, чтобы удовлетворить меняющиеся отраслевые требования. Были добавлены параметрические развертки для анализа производительности схемы при изменении производственных допусков или условий эксплуатации. Для аналоговых схем были добавлены расчеты коэффициента усиления контура и стабильности. Для проектирования радиочастотных схем и схем с переключаемыми конденсаторами был добавлен анализ гармонического баланса или устойчивого состояния во временной области. Однако общедоступный симулятор схем, содержащий современный анализ и функции, необходимые для того, чтобы стать популярным преемником SPICE, еще не появился. [32]
Очень важно использовать соответствующие анализы с тщательно выбранными параметрами. Например, применение линейного анализа к нелинейным цепям должно быть обосновано отдельно. Кроме того, применение анализа переходных процессов с параметрами моделирования по умолчанию может привести к качественно неверным выводам о динамике схемы. [35]
SPICE2 включает в себя множество компактных моделей полупроводниковых устройств : три уровня модели MOSFET , комбинированную биполярную модель Эберса-Молла и Гаммеля-Пуна , модель JFET и модель переходного диода . Кроме того, он имел множество других элементов: резисторы, конденсаторы, катушки индуктивности (в том числе связи ), независимые источники напряжения и тока , идеальные линии передачи , активные компоненты и источники, управляемые напряжением и током.
В SPICE3 добавлены более сложные модели MOSFET, которые потребовались из-за достижений в области полупроводниковых технологий. В частности, было добавлено семейство моделей BSIM , также разработанное в Калифорнийском университете в Беркли.
Коммерческие и промышленные симуляторы SPICE добавили множество других моделей устройств по мере развития технологий, а более ранние модели стали неадекватными. Чтобы попытаться стандартизировать эти модели, чтобы набор параметров модели можно было использовать в различных симуляторах, была сформирована отраслевая рабочая группа, Совет по компактным моделям , [36] для выбора, поддержки и продвижения использования стандартных моделей. Сегодня стандартные модели включают BSIM3, BSIM4, BSIMSOI, PSP, HICUM и MEXTRAM.
Spice может использовать модели устройств из Foundry PDK .
SPICE2 принимает текстовый список соединений в качестве входных данных и выдает списки на линейном принтере в качестве выходных данных, что соответствует вычислительной среде 1975 года. Эти списки представляют собой либо столбцы чисел, соответствующие рассчитанным выходным данным (обычно напряжения или токи), либо символьные «графики» линейного принтера. " . SPICE3 сохраняет список соединений для описания схемы, но позволяет управлять анализом из интерфейса командной строки , аналогичного оболочке C. В SPICE3 также были добавлены базовые возможности построения графиков X , поскольку UNIX и рабочие станции инженеров стали обычным явлением.
Поставщики и различные проекты бесплатного программного обеспечения добавили в SPICE интерфейсы захвата схем , позволяющие рисовать принципиальную схему схемы , а также автоматически генерировать список соединений и передавать его на различные серверные части SPICE. Кроме того, были добавлены графические интерфейсы пользователя для выбора моделирования, которое необходимо выполнить, и управления векторами выходного напряжения и тока. Кроме того, были добавлены очень функциональные утилиты для построения графиков, позволяющие просматривать формы сигналов и графики параметрических зависимостей. Доступно несколько бесплатных версий этих расширенных программ.
Поскольку SPICE обычно решает нелинейные дифференциально-алгебраические уравнения, его можно применять для моделирования за пределами электрической области.
Наиболее известными являются тепловые модели , поскольку тепловые системы могут быть описаны путем отображения элементов сосредоточенной схемы на электронные элементы SPICE (теплоемкость → емкость, теплопроводность/сопротивление → проводимость/сопротивление, температура → напряжение, тепловой поток или выделяемое тепло → ток [37] ] ). Поскольку тепловые и электронные системы тесно связаны системами рассеивания мощности и охлаждения, электротермическое моделирование сегодня поддерживается производителями полупроводниковых устройств, предлагающими (транзисторные) модели как с электрическими, так и с тепловыми узлами. [38] Таким образом, можно получить рассеивание электрической мощности, приводящее к самонагреву, вызывающему изменения параметров, и эффективность системы охлаждения за один запуск моделирования.
SPICE вполне может моделировать электронную часть моторного привода. Однако оно одинаково хорошо описывает и электромеханическую модель двигателя. Опять же, это достигается путем сопоставления механических элементов с электрическими элементами (крутящий момент → напряжение, угловая скорость → ток, коэффициент вязкого трения → сопротивление, момент инерции → индуктивность). [39] Итак, окончательная модель снова состоит из только SPICE-совместимых элементов схемы с сосредоточенными параметрами, но в ходе моделирования механические данные получаются вместе с электрическими. [40]
Электромагнитное моделирование доступно для симулятора SPICE через метод PEEC (эквивалентная схема частичных элементов). [41] Были отображены уравнения Максвелла, смоделированы RLC, скин-эффект, диэлектрические или магнитные материалы, а также падающие или излучаемые поля.
Однако с 2019 года SPICE нельзя использовать для «совместного моделирования фотоники и электроники в симуляторе фотонных схем » [42] , и поэтому он еще не рассматривается в качестве тестового симулятора фотонных интегральных схем.
Микрожидкостные схемы были смоделированы с помощью SPICE [43] путем создания пневматического полевого транзистора.
SPICE применялся для моделирования интерфейса между биологическими и электронными системами , например, в качестве инструмента проектирования для синтетической биологии и для виртуального прототипирования биосенсоров и лабораторий на кристалле. [44]
SPICE применялся в исследованиях операций для оценки нарушений в цепочках поставок . [45]