Среди канонических программ gEDA Suite есть две программы аналогового моделирования: ngspice и gnucap. (Чуть) более подробно:
Обе программы имеют только интерфейс командной строки, то есть взаимодействие с программой моделирования осуществляется набором команд в командной строке. Это значит также, что вам нужно изучить специфический для программы набор команд.
Если вы предпочитаете графический интерфейс, новое приложение gEDA gspiceui предоставляет хорошую графическую оболочку для работы с этими программами моделирования. Однако gspiceui не предоставляет полного цикла вида “от-схемы-до-вывода-моделирования” подобно LTSpice или PSpice. Точнее, она просто предоставляет графическое меню, помогающее управлять командами, нужными для выполнения моделирования с помощью ngspice / gnucap.
Проект tclspice был ответвлением основного маршрута разработки ngspice. Он был начат в 2002 году. В принципе, tclspice должен был бы экспортировать набор команд SPICE в API TCL, позволяя вам встроить SPICE-анализ в TCL-программу. Это определённо очень привлекательная цель, так как TCL — это мощный скриптовый язык, намного более мощный, чем скриптовые конструкции имеющиеся в самом SPICE. При использовании TCL, как можно себе представить, возможно написание сложных оптимизаторов схем, добавление в моделирование поведенческих элементов и, наконец, получение управления над графическим выводом SPICE.
Как оказалось, эта цель была достигнута частично — с помощью tclspice в самом деле можно сделать что-то вроде этого:
#! tclsh package require spice spice::codemodel /usr/local/src/tclspice-0.2.12/src/xspice/icm/spice2poly.cm spice::source netlistname.cir spice::tran 0.1ns 40ns spice::run spice::plot Vout puts "Всё готово!"
К сожалению, в tclspice отсутствуют некоторые важные возможности, как например выдача кода возврата, который сообщит, работает ли в данный момент моделирование или оно завершилось ошибкой. Кажется и графическая функциональность тоже никогда не работала (по крайней мере для меня…, и разработчики согласны, что графика отвратительна). Трансляция переменных TCL в векторы SPICE и наоборот тоже, кажется, никогда не работала, опять, по крайней мере для меня. Наконец, в ngspice (по крайней мере) множество утечек памяти, что затрудняет выполнение длительного моделирования. Поэтому tclspice не соответствует данным изначально обещаниям: быть удобным скриптовым средством для выполнения SPICE-моделирования.
Действительная разработка проекта tclspice остановилась в 2004 году. Возможно когда-нибудь кто-нибудь снова возьмётся за него. Тем временем основная ветка разработки ngspice приобрела возможности tclspice, если они вам нужны (для них требуются особые ключи в конфигурации), и код там более свежий.
Существует очень мало моделей с открытым исходным кодом, предоставленных в общее пользование энтузиастами. Вот почему в пакетах gnucap и ngspice нет больших библиотек моделей. Если вы сваяли свою собственную, и вам хотелось бы внести свой вклад в проект, это может быть отличной возможностью (намёк, намёк…).
Хотя многие производители и предоставляют бесплатно SPICE-модели, они сохраняют проприетарную лицензию. Это значит, что данные модели не могут распространяться вместе с gEDA Suite. К тому же, в различных реализациях SPICE мнения насчёт правильного синтаксиса несколько различаются. Как следствие, некоторые модели, поставляемые производителями, необходимо корректировать для работы со специфической реализацией.
spicelib предоставляет средство получения моделей, скорректированных для gnucap и ngspice. Это набор скриптов, который доставит модели поставщиков непосредственно из исходного местоположения, что решает проблему их распространения. Затем подправит их для совместимости с gnucap и ngspice. spicelib можно загрузить со страницы http://www.h-renrew.de/h/spicelib/doc/index.html.
Нет. Лучшее, что можно сделать — использовать gspiceui.
Обычная последовательность разработки —
gschem → gnetlist -g spice-sdb
→ [ngspice | gnucap].
Чтобы задать необходимые атрибуты для SPICE / gnucap, их нужно прикрепить к
компонентам в своей схеме. Можно также добавить атрибуты с помощью
gattrib.
Всё это очень подробно описано в HOWTO по схемотехническому моделированию с помощью gEDA и SPICE.
Некоторые SPICE-ресурсы помогут вам понять, как использовать spice-sdb.
Используйте драйвер spice-sdb. Он наиболее продвинутый и очень богат возможностями. Другие остались только по историческим причинам. Обратите внимание, что spice-sdb является расширением одного из других драйверов SPICE, так что, используя его, вы ничего не потеряете.
Да. Также можно начертить свою схему с использованием директив gnucap,
находящихся в библиотеке символов в каталоге spice
.
Лучше просто начертить схему, без директив, и запустить эту программу моделирования интерактивно.
Новички обычно хотят сделать одну принципиальную схему и для моделирования/проверки работоспособности проекта, и для разработки топологии. На первый взгляд это кажется заманчивым, так как проект топологии уже будет протестирован и проверен на работоспособность до его отправки на производство на FR-4. Однако дьявол кроется в деталях. Использовать одну и ту же схему для моделирования и разработки топологии обычно не получается по следующим причинам:
Поэтому я (SDB) обычно рекомендую не слишком сильно пытаться использовать одну и ту же схему и для моделирования, и для разработки топологии. Если можно это сделать — здорово! Но обычно — нельзя.
Лично я склоняюсь к тому, чтобы создавать SPICE-модели только для критических аналоговых частей своих проектов. Поэтому проект побольше может содержать пару схем для моделирования аналоговых частей схемы с целью проверки их работоспособности. Кроме схем для моделирования, у меня будет и основная схема, используемая для разработки топологии.