Основы программирования в SPICE: практическое руководство
Программирование симуляции схемы в SPICE следует тем же принципам, что и любой другой текстовый язык программирования. Вы пишете команды в простой текстовой файл, сохраняете его, затем запускаете интерпретатор, который переводит исходный код в действия компьютера.
В SPICE интерпретатор — это специализированная программа, которая должна быть установлена. Исходный файл — обычно называемый нетлист (netlist) — содержит серии строк, каждая из которых называется картой (card), описывающие компоненты и специальные директивы. Поскольку SPICE — интерпретируемый язык, нетлист читается и выполняется построчно; отдельного этапа компиляции не требуется.
Нетлисты создаются в обычном текстовом редакторе (текстовые процессоры следует избегать, так как они вводят не-ASCII форматирование, непонятное интерпретатору). Синтаксис прост: каждая строка определяет либо элемент схемы, либо управляющую команду, а компоненты соединяются путём присваивания номеров узлов. Например:
v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end
Здесь v1 — источник постоянного напряжения 15 В между узлами 1 и 0; r1, r2, r3 — резисторы, соединяющие указанные узлы. Узлы с одинаковыми номерами считаются соединёнными.
После создания нетлиста вызывают SPICE из терминала. Типичная команда выглядит так:
spice < example.cir
Команда spice запускает интерпретатор, символ < перенаправляет содержимое example.cir на стандартный ввод, и симуляция выполняется. Вывод можно передать утилите more для постраничного просмотра:
spice < example.cir | more
Или перенаправить в файл для последующего анализа:
spice < example.cir > example.txt
Поскольку вывод — обычный ASCII, его можно редактировать любым редактором, добавлять комментарии, переформатировать заголовки и печатать без установленного SPICE на целевой машине.
Ниже приведён типичный консольный вывод для примера нетлиста. Он включает заголовок симуляции, разобранный нетлист, напряжения на узлах, токи источников, полную рассеиваемую мощность и время выполнения.
1*******10/10/99 ******** spice 2g.6 3/15/83 ********07:32:42***** 0example netlist 0**** input listing temperature = 27.000 deg c v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end *****10/10/99 ********* spice 2g.6 3/15/83 ******07:32:42****** 0example netlist 0**** small signal bias solution temperature = 27.000 deg c node voltage node voltage ( 1) 15.0000 ( 2) 0.6522 voltage source currents name current v1 -1.117E-02 total power dissipation 1.67E-01 watts job concluded 0 total job time 0.02 1*******10/10/99 ******** spice 2g.6 3/15/83 ******07:32:42***** 0**** input listing temperature = 27.000 deg c
Для чистого представления вывод можно обрезать после перенаправления в файл. Лаконичный пример:
example netlist v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .end
node voltage node voltage ( 1) 15.0000 ( 2) 0.6522
voltage source currents name current v1 -1.117E-02
total power dissipation 1.67E-01 watts
Так как и вход, и выход — обычный текст, они универсально читаемы и легко передаются между платформами. Вы можете улучшить вывод средствами текстового процессора, добавить поясняющие комментарии или включить результаты в отчёты и презентации.
Ключевые шаги для эффективной работы с SPICE:
- Составьте нетлист в текстовом редакторе и сохраните его.
- Запустите SPICE на файле и изучите вывод.
- При ошибках отредактируйте нетлист и запустите снова.
- Повторяйте до получения желаемых результатов.
- После проверки перенаправьте вывод в файл для форматирования и печати.
Следуя этому циклу, вы освоите синтаксис нетлистов SPICE и научитесь эффективно отлаживать типичные проблемы.
Примечание: расширения файлов SPICE гибки; .cir, .inp, .txt или отсутствие расширения — все допустимы, пока имя файла соответствует правилам вашей ОС.
Изображения в статье иллюстрируют структуру команд SPICE и вывод. Они встроены как:
Промышленные технологии
- Начало работы с SPICE: текстовый симулятор электронных схем
- Эволюция SPICE: от CANCER к современной симуляции схем
- Работа с интерфейсом командной строки в SPICE
- Синтаксис нетлистов SPICE: именование компонентов, пассивные и активные элементы, определение источников
- Основы программирования микропроцессоров
- Полное руководство по моделированию полупроводниковых приборов в SPICE
- Освоение моделирования электрических цепей в SPICE: практическое руководство для проектировщиков и студентов
- Освоение пространств имен в C#: организация, область видимости и лучшие практики
- Операторы в C: исчерпывающее руководство
- Освоение программирования на C: подробное руководство для начинающих