Обзор свободного ПО для моделирования радиоэлектронных устройств и новых возможностей симулятора электронных схем Qucs (Вадим Кузнецов)
Материал из 0x1.tv
Аннотация
- Докладчик
- Вадим Кузнецов
Приведён обзор программных средств с открытым исходным кодом, предназначенных для моделирования различных радиоэлектронных устройств. Кратко рассмотрены основные возможности следующего ПО: Ngspice, Qucs, XYCE, TkGate, Gnucap и openEMS.
Все данные проекты активны в настоящее время.
Приведён обзор новых возможностей САПР для моделирования электроники Qucs, добавленных в версиях 0.0.19 и 0.0.19S. Рассмотрены перспективы развития САПР Qucs и вопросы интеграции проектов Qucs, Ngspice и XYCE.
Автор статьи входит в команду разработчиков проекта Qucs.
Данная информация будет интересна инженерам-разработчикам электроники, планирующим переход на open-source ПО и ОС Linux.
Видео
Слайды
Расширенные тезисы
Существует не так уж и много open-source САПР. САПР электроники (Electronic Design Automation --- EDA) являются исключением. Важной разновидностью данных САПР являются симуляторы электронных схем и электромагнитные симуляторы. За последнее время было сообществом было создано достаточно большое количество весьма достойных проектов. На сегодняшний день наиболее значимыми из них являются: Ngspice, Qucs, XYCE, TkGate и openEMS. Ниже приведён их краткий обзор.
Сначала рассмотрим симуляторы цифровых и аналоговых схем. На сегодняшний день индустриальным стандартом описания моделей и списков цепей для аналоговых схем является SPICE, разработанный в университете Беркли в 80-е годы прошлого века. Исходный код многих симуляторов основан на оригинальном коде Berkeley spice3f5. Для цифровых схем стандартом является поддержка языков описания аппаратуры VHDL и Verilog.
SPICE-совместимые симуляторы аналоговых схем
На сегодняшний день полную совместимость со SPICE имеют следующие open-source симуляторы:
Ngspice
Консольный симулятор аналоговых и цифроаналоговых схем. Позволяет производить моделирование на постоянном и переменном токе, анализ переходных процессов, шумовой анализ, анализ нелинейных искажений, Фурье-анализ. Имеет полную совместимость со SPICE-моделями и существующим библиотеками электронных компонентов. Разработка проекта начата более 10 лет назад. Совместим по видам моделирования с популярным коммерческим пакетом PSpice. Существует версия с поддержкой расчётов на GPU --- CUDAspice.
Движок моделирования Ngspice написан на С и использует исходный код spice3f5, написанный университетом Беркли. Ngspice имеет постпроцессор Ngnutmeg со встроенным скриптовым языком, позволяющим выполнять сложный анализ электронных схем. Лидерами проекта являются Francesco Lanutti и Paolo Nenzi.
xyce
Консольный кроссплатформенный SPICE-совместимый симулятор электронных схем. Xyce разрабатывается Сандийскими национальными лабораториями (США). Существуют для версии симулятора: с поддержкой параллельных вычислений через OpenMPI (XyceParallel) и без неё (XyceSerial).
Версия XyceParallel доступна только для Linux. Отличается от Ngspice тем, что не имеет постпроцессора и не содержит некоторых видов моделирования (шумовой анализ, анализ нелинейных искажений), но зато содержит дополнительный вид моделирования --- гармонический баланс. Симулятор написан на С++, с использованием набора библиотек функций линейной алгебры Trilinos, разработанного в Сандийских лабораториях.
Gnucap
Данный симулятор основан на движке моделирования, написанном с нуля. Пока не реализованы все виды моделирования и постпроцессор. Симулятор написан на C++. Сейчас проект разрабатывает Felix Salfelder.
Симуляторы цифровых схем
Среди симуляторов цифровых схем следует отметить TKGate. Это симулятор только цифровых схем на базе Verilog. Он работает только в ОС Linux. Симулятор написан на связке C и Tk/Tcl. Автором проекта является Jeffery P. Hansen (неактивен). Сейчас разработкой занимается наш соотечественник Андрей Скворцов. После шестилетнего перерыва в разработке в этом году вышел релиз TKGate-2.0.
Ключевые возможности симулятора следующие:
- Интерактивное моделирование цифровых схем
- Доступные типы компонентов: логические элементы, триггеры, регистры, счётчики, дешифраторы, мультиплексоры, ОЗУ, ПЗУ, АЛУ, ключи на МОП-транзисторе, имитаторы входных сигналов, светодиоды, семисегментыне индикаторы, шкалы, генераторы синхросигналов.
- Использование пользовательских скриптов Verilog.
Код Verilog можно потом передавать из TkGate в САПР для синтеза ПЛИС.
Qucs --- post-SPICE симулятор аналоговых и цифровых схем
Теперь рассмотрим симуляторы несовместимые со SPICE. К этому классу относится популярный симулятор Qucs.
Qucs[1] является симулятором аналоговых и цифровых схем, основанном на вновь разработанном движке моделирования Qucsator. Qucs написан на C++, имеет свой GUI, основанный на Qt4. Лидером проекта является Guilherme Brondani Torri. Qucs поддерживает все базовые виды моделирования: анализ на постоянном и переменном токе, моделирование переходного процесса \cite{qucs_Kit3}. Отличительной особенность данного симулятора является расширенные функции для моделирования схем СВЧ-устройств: моделирование S-параметров, специальные модели СВЧ-компонентов и постпроцессор с расширенными функциями анализа комплексных сопротивлений в частотной области \cite{qucs_Kit8}. По возможностям анализа СВЧ-устройств Qucs приближается к таким проеприетарным аналогам как AWR MicrowaveOffice. Но симулятор Qucsator несовместим со SPICE и поддерживает SPICE только через слой совместимости, что значительно осложняет использование существующих библиотек моделей электронных компонентов. Несмотря на отличные характеристики движка Qucsator для моделирования СВЧ-схем в частотной, во временной области имеются многочисленные баги.
Возможно моделирование цифровых схем с применением языков описания
аппаратуры Verilog и VHDL.
\section{Электромагнитные симуляторы}
Единственным представителем класса open-source электромагнитных симуляторов является openEMS openEMS.
Он не имеет своего графического интерфейса, а встраивается в Octave или Matlab. Задание на моделирование является скриптом Octave или Matlab, а для просмотра результатов служит программа Paraview.
Электромагнитный симулятор предназначен для расчёта распределения электромагнитного поля в различных системах и имеет следующие возможности.
- Расчёт электромагнитного поля (электродинамика) методом FDTD (метод конечных разностей во временной области)
- Расчёт S-параметров электромагнитных систем
- Расчёт электромагнитного поля в ближней и дальней зоне
- Расчёт диаграмм направленности антенн
- Визуализация результатов
Преимуществом openEMS является то, что он встраивается в Matlab/Octave, и следовательно мы имеем неограниченные возможности по параметризации моделей. Недостатком openEMS является повышенный порог вхождения. Требуется обязательное знание Matlab/Octave.
Qucs-0.0.19S --- новая версия Qucs с полной поддержкой SPICE
Qucs имеет интуитивно понятный интерфейс и развитую подсистему визуализации результатов. Но Qucs использует свой собственный формат списка цепей и моделей, несовместимый со SPICE. Это сильно осложняет использование существующих библиотек моделей полупроводниковых компонентов, распространяемых производителями. Слой совместимости со SPICE имеет многочисленные ограничения. Также ядро моделирования Qucs имеет многочисленные баги (зависание и крах симулятора) при моделировании во временной области, не позволяющие моделировать ключевые схемы и силовую электронику.
Ngspice, напротив, полностью совместим со стандартом SPICE и не имеет проблем при моделировании во временной области. Но Ngspice не имеет GUI и собственной системы визуализации. Поэтому возникает задача объединить Qucs и Ngspice так, чтобы можно было схему Qucs моделировать в Ngspice и использовать Qucs для визуализации результатов.
Данную задачу решает набор патчей spice4qucs[2]
который в 2014-2015 году разработали я и Mike Brinson (London Metropolitan University). Spice4qucs позволяет моделировать схемы Qucs с использованием внешних консольных симуляторов Ngspice и XYCE. С нашим набором патчей Qucs может служить интерфейсом для Ngspice.
Исходный код находится в главном репозитории Qucs в ветке
- rebase_spice4qucs
- http://github.com/Qucs/qucs/tree/rebase_spice4qucs
Итак, spice4qucs выполняет следующие функции:
- Преобразует схему Qucs в SPICE-netlist
- Запускает сторонний симулятор
- Преобразует вывод от симулятора в XML-формат данных Qucs
Spice4qucs не принят в upstream проекта Qucs. Поэтому было принято решение выпустить параллельно два релиза Qucs:
- Qucs-0.0.19
- Без spice4qucs. Используется только ядро моделирования Qucsator.
- Qucs-0.0.19S
- С интегрированной функцией моделирования схем при помощи Ngspice и XYCE
Версия Qucs-0.0.19S позволяет решать следующие задачи, недоступные базовой версии Qucs-0.0.19:
- Spice4qucs позволяет моделировать схемы, недоступные дефолтному симулятору Qucsator. Прежде всего это силовая электроника, ключевые схемы, схемы на полупроводниковых приборах, работающих с заходом в режим отсечки, и схемы с большим количеством компонентов.
- Добавлено множество SPICE-совместимых компонентов и видов моделирования. Они расположены в группах: Spice components, Spice sections, и Spice
simulations. Подробнее о них написано в документации. Все эти компоненты не будут работать с дефолтным симулятором Qucsator. Они реализуют задание параметров, начальных условий и команды построцессора в стиле Ngspice. Также добавлены модели полупроводниковых компонентов с полным описанием модели в формате SPICE. Это позволяет просто копировать модель из существующих библиотек, минуя конвертеры.
- В библиотеках теперь разрешено включение SPICE-нетлиста. Он напрямую передаётся SPICE-совместимому симулятору, минуя конвертации.
Таким образом Qucs-0.0.19S может быть использован в промышленности инженерами-разработчиками электронной техники не только для моделирование СВЧ-устройств, но и любой другой электроники и составить конкуренцию симуляторам MicroCAP и Multisim.
Заключение
В данном обзоре были рассмотрены наиболее популярные активные opens-source проекты в области моделирования электронных схем. Можно сделать вывод, что СПО реализует все базовые виды моделирования, применяющиеся при разработке электроники: схемотехническое моделирование цифровых и аналоговых схем, синтез схем электронных устройств, электромагнитное моделирование. Но по возможностям СПО существенно отстаёт от проприетарных аналогов. Недостатками являются: консольный интерфейс, бедные библиотеки компонентов, недостаточный уровень поддержки промышленных стандартов. Все данные недостатки преодолимы при условии привлечения к данным проектам дополнительных разработчиков. Преимуществом является нетребовательность к ресурсам ПК и лучшая производительность, чем у коммерческого ПО. Таким образом можно рекомендовать применение рассмотренного СПО в учебном процессе на приборостроительных специальностях, разработчикам-фрилансерам и на небольших предприятиях.
Примечания и отзывы
- ↑ Brinson M. E., Jahn S. Qucs: A GPL software package for circuit simulation, compact device modelling and circuit macromodelling from DC to RF and beyond // International Journal of Numerical Modelling (IJNM): Electronic Networks, Devices and Fields. 2008. — September. Vol. 22, no. 4. Pp. 297 – 319.
- ↑
- Brinson M., Kuznetsov V. Qucs equation-defined and Verilog-A RF device models for harmonic balance circuit simulation, in Mixed Design
- M. Brinson, R. Crozier, V. Kuznetsov, C. Novak, B. Roucaries, F.Schreuder, G. B. Torri. Qucs: improvements and new directions in the GPL compact device modelling and circuit simulation tool., MOS-AK Workshop, Grenoble, March, 2015 http://www.mos-ak.org/grenoble_2015/presentations/T4_Brinson_MOS-AK_Grenoble_2015.pdf
- M. Brinson, R. Crozier, V. Kuznetsov, C. Novak, B. Roucaries, F. Schreuder, G. B. Torri. Qucs: An introduction to the new simulation and compact device modelling features implemented in release 0.0.19/0.0.19Src2 of the popular GPL circuit simulator., MOS-AK Workshop, Graz,
Plays:409 Comments:0