Введение

Симулятор аналоговых электронных схем с открытым исходным кодом

SPICE ("Simulation Program with Integrated Circuit Emphasis" – "Программа моделирования с акцентом на интегральные схемы") – это универсальный симулятор аналоговых электронных схем с открытым исходным кодом. Он используется для проверки корректности и прогнозирования поведения электронных схем при проектировании интегральных микросхем и печатных плат.

Введение

В отличие от схем, созданных на уровне печатной платы из дискретных компонентов, создание интегральных схем на макетной плате перед производством непрактично. Более того, высокие затраты на фотолитографические маски и другие требования к производству делают необходимым проектирование схемы максимально близко к идеальной до первого изготовления интегральной схемы. Моделирование схемы с помощью SPICE является отраслевым стандартом для проверки работы схемы на уровне транзисторов перед началом производства интегральной схемы. Симуляторы SPICE помогают предсказать поведение интегральной схемы в различных условиях эксплуатации, таких как различные уровни напряжения и тока, колебания температуры и шум. Схемы на уровне печатной платы часто можно протестировать на макетной плате. Даже при использовании макетной платы некоторые характеристики схемы могут быть неточными по сравнению с окончательной печатной платой, например, паразитные сопротивления и емкости, эффекты которых часто можно оценить точнее с помощью моделирования. Кроме того, разработчикам может потребоваться больше информации о схеме, чем можно получить из одного прототипа. Например, на производительность схемы влияют допуски при производстве компонентов. В таких случаях обычно используют SPICE для выполнения Монте-Карло-моделирования влияния вариаций компонентов на производительность – задача, невыполнимая вручную для схемы какой-либо значительной сложности. Программы моделирования схем, наиболее известные из которых – SPICE и его производные, принимают текстовый netlist, описывающий элементы схемы (транзисторы, резисторы, конденсаторы и т.д.) и их соединения, и преобразуют это описание в уравнения для решения. Получаемые общие уравнения представляют собой нелинейные дифференциально-алгебраические уравнения, которые решаются с использованием методов неявной интеграции, метода Ньютона и методов работы с разреженными матрицами.

Происхождение

SPICE был разработан в Лаборатории электронных исследований Калифорнийского университета в Беркли Лоуренсом Нагелем под руководством его научного руководителя, профессора Дональда Педерсона. SPICE1 во многом является производным от программы CANCER, над которой Нагель работал под руководством профессора Рональда Роррера. CANCER – это акроним от "Computer Analysis of Nonlinear Circuits, Excluding Radiation" ("Компьютерный анализ нелинейных цепей, исключая излучение"), что было отсылкой к либеральным взглядам Беркли в 1960-х годах: в то время многие симуляторы цепей разрабатывались по контрактам с Министерством обороны США, которые требовали возможности оценки устойчивости цепей к радиации. Когда первоначальный научный руководитель Нагеля, профессор Роррер, покинул Беркли, профессор Педерсон стал его руководителем. Педерсон настоял на том, чтобы CANCER, являвшаяся проприетарной программой, была переписана в достаточной степени, чтобы снять ограничения и сделать программу общедоступной. SPICE1 был впервые представлен на конференции в 1973 году. SPICE1 имеет относительно небольшое количество доступных элементов схемы и использует переходный анализ с фиксированным шагом по времени. Настоящая популярность SPICE началась с SPICE2 в 1975 году и инновационной системы выделения памяти на основе FORTRAN. Эллис Коэн возглавлял разработку от версии 2B до отраслевого стандарта SPICE 2G6, последней версии на FORTRAN, выпущенной в 1983 году. SPICE3 был разработан Томасом Кварлсом (под руководством А. Ричарда Ньютона) в 1989 году. Он написан на языке C, использует тот же синтаксис netlist и добавил графическое отображение с использованием X Window System. Как одна из первых программ для общего пользования с доступным исходным кодом, SPICE широко распространялась и использовалась. Его повсеместность стала настолько велика, что "промоделировать схему в SPICE" (или "запустить SPICE") стало синонимом моделирования цепей. Исходный код SPICE с самого начала распространялся Калифорнийским университетом в Беркли за небольшую плату (для покрытия стоимости магнитной ленты). Лицензия первоначально содержала ограничения на распространение в странах, не считавшихся дружественными к США, но в настоящее время исходный код защищен лицензией BSD. Создание SPICE было признано IEEE Milestone в 2011 году; в описании отмечается, что SPICE "эволюционировал и стал всемирным стандартным симулятором интегральных схем". Нагель был удостоен премии IEEE Дональда О. Педерсона за 2019 год в области твердотельных схем за разработку SPICE.

Преемники с открытым исходным кодом

После версии 3f5, выпущенной в 1993 году, новые версии Berkeley SPICE не выпускались. С тех пор, среди проектов с открытым исходным кодом или академических продолжений SPICE можно выделить: XSPICE, разработанный в Georgia Tech, который добавил смешанные аналого-цифровые "кодовые модели" для поведенческого моделирования; CIDER (ранее CODECS), разработанный UC Berkeley и Университетом штата Орегон, который добавил моделирование полупроводниковых приборов; Ngspice, основанный на SPICE 3f5; WRspice – переписанная на C++ реализация исходного кода spice3f5. Другие симуляторы с открытым исходным кодом, не разработанные в академической среде, включают QUCS, QUCS S, Xyce и Qucsator.

Коммерческие версии и спин-оффы

Berkeley SPICE вдохновил и послужил основой для многих других программ моделирования схем в академической среде, в промышленности и в коммерческих продуктах. Первая коммерческая версия SPICE – ISPICE, интерактивная версия, работавшая на сервисе совместного использования времени National CSS. Наиболее известные коммерческие версии SPICE включают HSPICE (первоначально разработанный и коммерциализированный Ашоной и Ким Хейли из Meta Software, но теперь принадлежащий Synopsys) и PSPICE (теперь принадлежащий Cadence Design Systems). Индустрия интегральных схем быстро внедрила SPICE, и до развития зрелых коммерческих версий многие компании, занимающиеся проектированием ИС, имели собственные версии SPICE. Сегодня несколько производителей интегральных схем, как правило, крупных компаний, продолжают разрабатывать программы моделирования схем на основе SPICE. Среди них ADICE и LTspice в Analog Devices, QSPICE в Qorvo, MCSPICE, за которым следует Mica в Freescale Semiconductor, теперь NXP Semiconductors, и TINA TI в Texas Instruments. И LTspice, и TINA TI поставляются вместе с моделями от соответствующих производителей. Другие компании поддерживают собственные симуляторы схем, не основанные напрямую на SPICE, такие как PowerSpice в IBM, TITAN в Infineon Technologies, Lynx в Intel Corporation и Pstar в NXP Semiconductors.

Особенности и структура программы

SPICE стал популярен, поскольку включал в себя аналитические инструменты и модели, необходимые для проектирования интегральных схем того времени, и был достаточно надежным и быстрым для практического применения. Программы-предшественники SPICE часто имели узкую специализацию: например, программа BIAS выполняла моделирование рабочих точек биполярных транзисторных схем, а программа SLIC – только анализ малых сигналов. SPICE объединил расчет рабочих точек, переходной анализ и различные виды анализа малых сигналов с элементами схемы и моделями компонентов, необходимыми для успешного моделирования широкого спектра схем.

Модели устройств

SPICE2 включал в себя множество компактных моделей полупроводниковых приборов: три уровня модели MOSFET, комбинированную биполярную модель Эберса–Молла и Гуммеля–Пуна, модель JFET и модель для переходного диода. Кроме того, он содержал множество других элементов: резисторы, конденсаторы, индуктивности (включая взаимную), независимые источники напряжения и тока, идеальные линии передачи, активные компоненты и источники напряжения и тока с управлением. SPICE3 добавил более сложные модели MOSFET, что было необходимо в связи с прогрессом в полупроводниковых технологиях. В частности, были добавлены модели семейства BSIM, разработанные также в UC Berkeley. Коммерческие и промышленные SPICE-симуляторы добавляли множество других моделей приборов по мере развития технологий и устаревания более ранних моделей. Для попытки стандартизации этих моделей, чтобы набор параметров модели можно было использовать в различных симуляторах, была сформирована отраслевая рабочая группа – Совет по компактным моделям, для выбора, поддержки и продвижения использования стандартных моделей. Сегодня в число стандартных моделей входят BSIM3, BSIM4, BSIMSOI, PSP, HICUM и MEXTRAM. Spice может использовать модели приборов из технологических библиотек (PDK) производителей.

Вход и выход: сетевые списки, схематическое захват и графика

SPICE2 принимает на вход текстовый файл схемы и выдает результаты в виде списков для принтера, что соответствовало вычислительной среде 1975 года. Эти списки представляют собой столбцы чисел, соответствующих рассчитанным выходным значениям (обычно напряжениям или токам), или графические представления, составленные из символов принтера. SPICE3 сохраняет файл схемы для описания цепи, но позволяет управлять анализом из командной строки, аналогичной оболочке C. В SPICE3 также добавлена базовая X-графика, поскольку UNIX и инженерные рабочие станции стали широко распространены. Разработчики и различные проекты свободного программного обеспечения добавили к SPICE графические интерфейсы для создания схем, позволяющие рисовать принципиальную схему цепи и автоматически генерировать файл схемы для передачи в различные SPICE-модули. Также были добавлены графические пользовательские интерфейсы для выбора симуляций и обработки выходных векторов напряжений и токов. Кроме того, добавлены мощные графические утилиты для отображения форм сигналов и графиков параметрических зависимостей. Доступно несколько бесплатных версий этих расширенных программ.

Использование SPICE за пределами электронного моделирования

Поскольку SPICE обычно решает нелинейные дифференциально-алгебраические уравнения, его можно применять для моделирования систем, выходящих за рамки электроники. Наиболее распространены тепловые симуляции, поскольку тепловые системы могут быть описаны сосредоточенными элементами цепей, которые соответствуют элементам SPICE для электроники (теплоемкость → емкость, теплопроводность/сопротивление → проводимость/сопротивление, температура → напряжение, тепловой поток или выделяемое тепло → ток). Поскольку тепловые и электронные системы тесно связаны рассеиванием энергии и системами охлаждения, электротермическое моделирование сегодня поддерживается производителями полупроводниковых приборов, предлагающими (транзисторные) модели с электрическими и тепловыми узлами. Это позволяет получить данные о рассеянии электрической мощности, приводящем к самонагреву и изменению параметров, а также об эффективности системы охлаждения в одном прогоне симуляции. SPICE может успешно моделировать электронную часть привода двигателя. Однако он также может описать электромеханическую модель двигателя. Это достигается путем сопоставления механических величин с электрическими элементами (крутящий момент → напряжение, угловая скорость → ток, коэффициент вязкого трения → сопротивление, момент инерции → индуктивность). Таким образом, конечная модель состоит только из сосредоточенных элементов цепей, совместимых с SPICE, но в процессе моделирования можно получить как механические, так и электрические данные. Электромагнитное моделирование доступно в SPICE с помощью метода PEEC (эквивалентная схема частичных элементов). Уравнения Максвелла были отображены, а также смоделированы RLC-элементы, скин-эффект, диэлектрические или магнитные материалы и падающие или излучаемые поля. Однако, по состоянию на 2019 год, SPICE нельзя использовать для "совместного моделирования фотоники и электроники в симуляторе фотонных схем", и поэтому он пока не рассматривается как тестовый симулятор для фотонных интегральных схем. Микрофлюидные схемы были смоделированы с помощью SPICE путем создания пневматического полевого транзистора (FET). SPICE применяется для моделирования интерфейса между биологическими и электронными системами, например, в качестве инструмента для проектирования в синтетической биологии и виртуального прототипирования биосенсоров и систем «лаборатория на чипе». SPICE также применяется в исследовании операций для оценки нарушенных цепочек поставок.