
Создание пользовательских моделей компонентов в САПР Qucs
Введение
Qucs [1, 2, 3, 4, 5] — это кросс-платформенная легковесная САПР с открытым исходным кодом для моделирования электронных схем. Одной из особенностей данной САПР являются широкие возможности для задания пользовательских компонентов. Это позволяет проектировать новые модели полупроводниковых приборов и делает Qucs особенно подходящим для применения в исследовательском процессе. Доступны следующие способы задания новых моделей компонентов:
- Использование подсхем. Новый компонент можно составить из более простых примитивов (пассивные RCL-элементы, диоды, транзисторы). Параметры компонентов могут быть заданы при помощи уравнений.
- Применение специального компонента «Заданное уравнением устройство». Данный компонент представляет собой нелинейный источник тока или заряда, что позволяет моделировать нелинейные полупроводниковые компоненты или нелинейные реактивные элементы.
- Компонент «Заданное уравнением ВЧ-устройство» позволяет установить частотные зависимости параметров СВЧ-устройств.
- Используя генератор кода ADMS и системный компилятор С++, можно динамически подключать модели аналоговых компонентов на языке описания аппаратуры Verilog-A.
В последующих разделах будет рассмотрен каждый из этих подходов.
Использование подсхем
Подсхемы позволяют представлять сложный электронный компонент в виде набора более простых примитивов. В качестве примера реализации данного подхода рассмотрим эквивалентную схему кварцевого резонатора (рис. 1).
Как известно, эта схема представляет собой последовательно-параллельный колебательный контур. Индуктивность Lкв, емкость Cкв и сопротивление rкв называются эквивалентными электрическими параметрами кварца. Емкость С0 включает внутреннюю эффективную емкость самой пластины и внешнюю шунтирующую емкость кварцедержателя. Схема имеет два резонанса: параллельный и последовательный. Частоты резонансов определяются формулами (1) и (2):
Используя эти формулы, можно, зная один из трех параметров кварцевого резонатора, рассчитать третий.
Теперь, имея эквивалентную схему кварцевого резонатора, можно перенести ее в Qucs и создать новый компонент «Кварцевый резонатор». Сначала формируется эквивалентная схема компонента в виде файла sch (рис. 2). Данная схема особенностей не имеет. Для автоматического расчета последовательной емкости кварцевого резонатора Cq на основании его частоты резонанса f и индуктивности Lq по формуле (1) служит компонент «Уравнение». Для связи подсхемы с внешними цепями используется компонент «Порт подсхемы» (P1 и P2 на рис. 2).
Нажав клавишу F9, в программе Qucs можно перейти к редактированию символа компонента (рис. 3). Порты уже имеются в подсхеме. УГО подсхемы можно создать при помощи инструментов рисования, расположенных в группе. Обратный переход к редактированию схемы снова происходит по нажатии F9. Номера портов подсхемы у символа и схемы совпадают.
Затем нужно дважды щелкнуть мышью по обозначению элемента и отредактировать список свойств (рис. 4).
Для того чтобы использовать полученную подсхему в другой схеме, нужно применить специальный компонент «Подсхема». Он находится в группе «Файловые компоненты». В свойствах файлового компонента следует указать имя файла, в который сохранена подсхема (рис. 5).
Результаты моделирования кварцевого резонатора в частотной области показаны на рис. 6. Как видно из графиков, на АЧХ кварцевой пластины имеется два резонанса: параллельный и последовательный.
Моделирование устройств, заданных уравнениями
Если известны уравнения, описывающие ВАХ компонента, то можно использовать специальный компонент, называемый «Заданное уравнением устройство» — Equation Defined Device (EDD). Данный компонент был введен в Qucs [6] и не имеет аналогов в SPICE-совместимых симуляторах.
Компактные модели представляют токи I1…IN, протекающие через каждую ветвь многополюсника, и заряды Q1…QN, накопленные каждой ветвью многополюсника (всего N ветвей), как функциональную зависимость от напряжений V1…VN, подаваемых на зажимы многополюсника.
Уравнения тока:
I1 = f1(V1, …, VN), (3)
IN = fN(V1, …, VN). (4)
Уравнения заряда:
Q1 = g1 (V1, …, VN), (5)
QN = gN (V1, …, VN). (6)
Таким образом можно представить ВАХ и ВФХ электронного компонента. Например, ВАХ туннельного диода описывается следующим уравнением (7):
где jT = 0,026 В — тепловой потенциал; V — напряжение на p‑n‑переходе; k, Vυ и Vp — параметры ВАХ туннельного диода.
Туннельный диод также имеет емкость C p‑n‑перехода, которую можно представить с помощью зарядового уравнения:
Q = CV. (8)
Теперь промоделируем ВАХ туннельного диода при помощи компонента «Заданное уравнением устройство» (рис. 7). Данный компонент по умолчанию имеет одну секцию. Каждое слагаемое уравнения ВАХ туннельного диода (7) представляется отдельной секцией компонента. Эти секции нужно добавить вручную.
Запустив моделирование, получим N‑образную ВАХ туннельного диода. Из графиков видно, что на ВАХ туннельного диода имеется участок с отрицательным сопротивлением (рис. 8).
Описанный подход позволяет также моделировать нелинейную емкость. Линейная емкость C, не зависящая от напряжения, описывается уравнением заряда (8). Уравнение содержит только слагаемые, линейно зависимые от напряжения.
Для нелинейной емкости уравнение заряда будет включать слагаемые, содержащие степенные множители напряжения. Это математическая модель нелинейного конденсатора при помощи разложения в степенной ряд Тэйлора:
Q = С1V+(C2V2)/2+C3V3/3+…+CNVN/N. (9)
Постоянный ток через линейную и нелинейную емкость равен нулю: I = 0.
Имея в распоряжении данную математическую модель, можно промоделировать в Qucs нелинейную емкость, используя заданное уравнением устройство и зарядовые уравнения (рис. 9). Последовательно с конденсатором включен источник смещения постоянного тока.
Теперь можно смоделировать АЧХ интегрирующей RC-цепочки нелинейного конденсатора. Применяем параметрический анализ и получаем семейство АЧХ (рис. 10) при смещении (Vdc) на конденсаторе от 1 до 10 В.
Нелинейная индуктивность может быть промоделирована преобразованием нелинейной емкости в индуктивность при помощи гиратора. Гиратор — это четырехполюсник, преобразующий емкость в индуктивность. Подробная схема показана на рис. 11. Компонент Х1 — это гиратор. Для сравнения промоделируем ток через линейную индуктивность.
Осциллограммы тока через линейную и нелинейную индуктивность показаны на рис. 12.
Заданные уравнением устройства можно комбинировать с подсхемами и создавать библиотеки новых компонентов.
Использование моделей Verilog-A
Verilog-A — это расширение языка описания аппаратуры Verilog, предназначенное для создания моделей аналоговых устройств. Базовые сведения о синтаксисе Verilog-A приведены в [7]. Особенность Qucs заключается в том, что он позволяет легко использовать существующие модели Verilog-A и создавать новые. Исходный текст модели представляется в виде модуля Verilog-A. Для того чтобы симулятор электронных схем мог использовать модули Verilog-A, их нужно скомпилировать специальным компилятором. Пересборка всего симулятора не требуется. На текущий момент Qucs использует кодогенератор ADMS [8], преобразующий исходный код модели с языка Verilog-A в язык C++. Потом модель на C++ компилируется системным компилятором в динамически загружаемый модуль, который можно подключить к ядру моделирования Qucsator во время симуляции. Процесс использования модулей Verilog-A отражает рис. 13.
Рассмотрим подробнее применение моделей Verilog-A. Чтобы подключить такую модель, нужно сначала создать новый проект (меню Проект->Новый проект) или воспользоваться существующим. Затем создаем новый текстовый файл (меню Файл -> Новый текст), который содержит исходный код Verilog-A. Для редактирования исходного кода моделей можно использовать как встроенный текстовый редактор Qucs, так и какой-либо из установленных в системе. Сохраняем файл с исходным кодом с расширением *.va. В качестве примера на рис. 14 показан исходный код модели туннельного диода, описываемого уравнением (7) в текстовом редакторе Qucs.
Теперь нужно присоединить к модели Verilog-A символ УГО нового компонента. Это делается так же, как и для подсхемы. Нажимаем клавишу F9 и создаем новый файл с расширением *.sym, в котором можно отредактировать УГО туннельного диода (рис. 15).
Для того чтобы использовать новый компонент, нужно загрузить и скомпилировать модуль. Для этого снова переходим к редактору исходного кода модели и нажимаем в главном меню программы Проект -> Load Verilog-A module. В диалоговом окне выбираем только что созданное УГО (рис. 16). Здесь также можно присоединить иконку для УГО. Для этого нужно подготовить в графическом редакторе растровый PNG-файл.
Теперь новый компонент доступен в группе “Verilog-A user devices” в системном списке компонентов. Перед использованием его нужно скомпилировать. Для этого нажимаем Проект -> Build Verilog-A modules. В нижней части главного окна программы можно видеть лог процесса компиляции (рис. 17).
Затем можно создать новую схему и разместить на ней новый компонент (рис. 18). Запускаем моделирование и получаем ВАХ туннельного диода (рис. 18). Результаты моделирования показывают, что модель функционирует правильно.
Моделирование нелинейных компонентов в частотной области
Для моделирования частотной зависимости параметров компонентов предназначен компонент «Заданное уравнением ВЧ-устройство». Он позволяет смоделировать N‑портовый компонент, заданный матрицей Z‑, Y‑ или S‑параметров. Данный компонент также введен в Qucs и не имеет аналогов в SPICE-совместимых симуляторах [9].
В качестве примера рассмотрим эквивалентную схему индуктивности с частотнозависимыми потерями (рис. 19). Частотнозависимые потери в сердечнике представляет компонент RF1. Эти потери можно представить в виде матрицы Z‑параметров следующего вида:
В результате моделирования получаем график зависимости импеданса катушки от частоты. Видим, что с ростом частоты импеданс нелинейно возрастает, так как к нему прибавляются вносимые потери (рис. 20).
Заключение
Были рассмотрены различные способы создания пользовательских компонентов в Qucs. Несмотря на то, что Qucs разрабатывается сообществом, он предоставляет несколько способов создания таких компонентов. Новый компонент может быть представлен в виде эквивалентной схемы, задан уравнениями тока или заряда, или может быть использована модель компонента на языке Verilog-A. Комбинация этих трех способов позволяет разрабатывать и исследовать модели электронных компонентов практически любой сложности. Некоторые функции Qucs являются уникальными и отсутствуют в других подобных программных продуктах, базирующихся на SPICE. К ним относится, например, моделирование уравнений заряда и моделирование нелинейных компонентов в частотной области. На основании вышеизложенного можно заключить, что Qucs располагает мощным аппаратом для создания пользовательских моделей компонентов, что позволяет применять данное ПО в исследовательской и инженерной практике [10, 11] для разработки новых видов моделей полупроводниковых компонентов.
- Quite Universal Circuit Simulator. qucs.sourceforge.net /ссылка утрачена/
- Репозиторий исходных кодов проекта Qucs. github.com/Qucs/qucs
- Кечиев Л. Н., Крючков Н. М., Кузнецов В. В. Использование свободного ПО Qucs в целях моделирования для оценки факторов ЭМС РЭА // Технологии ЭМС. 2015. № 1.
- Кузнецов В. В. Симулятор электронных схем с открытым исходным кодом Qucs: основные возможности и основы моделирования // Компоненты и технологии. 2015. № 3.
- Кузнецов В. В. Моделирование высокочастотных схем в частотной области при помощи САПР Qucs // Компоненты и технологии. 2015. № 8.
- Jahn R. S., Brinson M. Interactive Compact Modeling Using Qucs Equation-Defined Devices // Int. J. Numer. Model. 2008. Vol. 21.
- Coram G. J. How to (and How Not to) Write a Compact Model in Verilog-A / IEEE International Behavioural Modeling and Simulation Conference (BMAS). San Jose, California. October 2004.
- Репозиторий исходных кодов проекта ADMS. github.com/Qucs/ADMS
- Brinson M. E., Jahn S. Modelling of high-frequency inductance with Qucs non-linear radio frequency equation defined devices // International Journal of Electronics. 2009. Vol. 96.
- Brinson M., Kuznetsov V. Qucs equation-defined and Verilog-A RF device models for harmonic balance circuit simulation, in Mixed Design of Integrated Circuits Systems (MIXDES), 2015. 22ndInternational Conference. June 2015.
- Brinson M., Crozier R., Kuznetsov V., Novak C., Roucaries B., Schreuder F., Torri G. B. Qucs: improvements and new directions in the GPL compact device modelling and circuit simulation tool. MOS-AK Workshop. Grenoble, March 2015.