Электроника:Справочные материалы/Использование программы SPICE для моделирования электрических схем/Основы программирования в SPICE

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Макаров В. (valemak) Контакты:</br>* Habr: @vakemak</br>* Сайт: www.valemak.com</br>Перевёл статей: 648.
Проверка/Оформление/Редактирование: Мякишев Е.А.


Основы программирования в SPICE[1]

Программируемое моделирование схем с помощью SPICE очень похоже на программирование на любом другом языке программирования: требуется ввести команды в виде текста в файл, сохранить этот файл на жёстком диске компьютера, а затем обработать содержимое этого файла с помощью специальной программы (компилятора или интерпретатора), который понимает такие команды. В интерпретируемом компьютерном языке компьютер содержит специальную программу, называемую интерпретатором, которая переводит написанную программу (так называемый файл с исходным кодом или просто исходный файл) на собственный язык компьютера «на лету» (по мере её выполнения):

Рис. 1. Абстрактная схема, поясняющая суть интерпретируемых программ.
Рис. 1. Абстрактная схема, поясняющая суть интерпретируемых программ.

В компилируемом компьютерном языке программа, которую вы написали, сразу полностью переводится на язык компьютера с помощью специальной программы, называемой компилятором. После того, как программа, которую вы написали, «скомпилирована», полученный исполняемый файл не нуждается в дальнейшем переводе на машинный язык, чтобы он мог быть понят непосредственно компьютером. Теперь его можно «запустить» на любом компьютере независимо от того, установлено ли на нём программное обеспечение для компиляции:

Рис. 2. Абстрактная схема, поясняющая суть компилируемых программ.
Рис. 2. Абстрактная схема, поясняющая суть компилируемых программ.

SPICE — это интерпретируемый язык. Чтобы компьютер мог понимать вводимые вами SPICE-инструкции, на нём должна быть установлена программное обеспечение (ПО) SPICE (являющееся интерпретатором):

Рис. 3. ПО SPICE как интепретатор.
Рис. 3. ПО SPICE как интепретатор.

Исходные файлы SPICE обычно называют «списками связей» (или «списками соединений»), хотя их иногда неформально называют «колодами», где каждая строка в файле является «картой». Как умилительно, не так ли? Списки связей создаются такими же людьми, что и вы, построчно набирающие инструкции с помощью текстового процессора или текстового редактора.

Текстовые редакторы гораздо предпочтительнее текстовых процессоров для любого типа компьютерного программирования, ибо они создают чистый текст ASCII без специальных встроенных кодов для выделения текста (например, курсивный/жирный шрифт, шрифты и проч.), которые не воспринимаются программным обеспечением интерпретатора и компилятора. Как и в общем программировании, исходный файл, который вы создаёте для SPICE, должен соответствовать определённым правилам программирования. Это сам по себе компьютерный язык, хотя и простой. Программируя на BASIC и C/C++ и имея некоторый опыт чтения программ на PASCAL и FORTRAN, я считаю, что язык SPICE намного проще любого из них. Его сложность примерно, как у языка разметки (вроде HTML), возможно, даже меньше. Существует последовательность шагов, которую необходимо выполнить при использовании SPICE для анализа схемы. Цикл начинается, когда вы впервые запускаете программу редактирования текста и делаете свой первый черновой вариант списка связей. Следующим шагом будет запуск SPICE для этого нового списка связей и просмотр результатов. Если вы начинающий пользователь SPICE, ваши первые попытки создать хороший список связей будут сопряжены с небольшими синтаксическими ошибками. Не беспокойтесь – как известно каждому программисту, мастерство приходит с большой практикой. Если ваш пробный запуск выдаёт сообщения об ошибках или результаты, которые явно неверны, вам нужно повторно вызвать программу редактирования текста и изменить список связей. После внесения изменений нужно снова запустить SPICE и проверить результаты. Тогда алгоритм действий выглядит примерно так:

  • Составьте новый список связей с помощью программы редактирования текста. Сохраните этот список связей в файл с именем по вашему выбору.
  • Запустите SPICE для этого списка связей и ознакомьтесь с результатами запуска.
  • Если результаты содержат ошибки, снова запустите программу редактирования текста и измените список связей.
  • Запустите SPICE ещё раз и ознакомьтесь с новыми результатами запуска.
  • Если в выводе SPICE по-прежнему присутствуют ошибки, снова отредактируйте список связей с помощью программы редактирования текста. Повторяйте этот цикл редактирования/запуска столько раз, сколько необходимо, пока не получите желаемые результаты (не содержащих ошибок).
  • Как только вы «отладили» свой список связей и получили хорошие (т.е. без ошибок) результаты, снова запустите SPICE, только на этот раз перенаправляя вывод в новый файл, а не просто наблюдая за ним на экране компьютера.
  • Запустите программу редактирования текста или программу текстового процессора и откройте только что созданный выходной файл SPICE. Измените этот файл в соответствии с вашими потребностями форматирования и либо сохраните эти изменения на диске, либо распечатайте их на бумаге.

Чтобы «запустить» «программу» SPICE, нужно ввести команду в терминале командной строки, например, в MS-DOS, UNIX или в опции командной строки MS-Windows DOS:

spice < example.cir

Слово «spice» вызывает программу-интерпретатор SPICE (при условии, что на компьютере установлено данное программное обеспечение!), символ «<» перенаправляет содержимое исходного файла в интерпретатор SPICE, а «example.cir» – это имя исходного файла для этого примера схемы. Расширение файла «.cir» не обязательно; я встречал «.inp» (от англ. «input» т.е. «ввод») и просто «.txt » – такие тоже хорошо работают. Будет работать даже в том случае, когда файл списка связей вообще не имеет расширения. Для SPICE вообще неважно, как назовете файл, главное, чтобы была совместимость с файловой системой вашего компьютера (например, для старых машин с MS-DOS имя файла должно быть не более 8 символов в длину, с 3 символами в расширении), расширение символа не должно содержать пробелов и других не буквенно-цифровых символов. При вводе этой команды SPICE прочитает содержимое файла «example.cir», проанализирует схему, указанную в этом файле, и отправит текстовый отчёт на стандартный вывод компьютерного терминала (обычно на экран, если это возможно). Типичный вывод SPICE представляет собой информацию на несколько экранов, поэтому вы можете просматривать её, немного изменив команду:

more

Эта альтернатива «направляет» текстовый вывод SPICE в утилиту «more» (перевод с англ. «больше», в контексте «показать больше»), которая позволяет отображать только одну страницу за раз. Это означает, что вывод текста SPICE останавливается после заполнения одного экрана и ожидает, пока пользователь не нажмёт клавишу клавиатуры, чтобы отобразить текст на следующем экране. Если вы просто тестируете свой пример файла схемы и хотите проверить наличие ошибок, это хороший способ сделать это.

spice < example.cir > example.txt

Эта вторая альтернатива (той, что выше) перенаправляет текстовый вывод SPICE в другой файл с именем «example.txt», где его можно просмотреть или распечатать. Этот параметр соответствует последнему шагу цикла разработки, указанному ранее. Автор рекомендует вам использовать этот метод «перенаправления» в текстовый файл только после того, как вы убедились, что ваш пример списка для схемы работает хорошо, чтобы вы не тратили время на вызов текстового редактора только для того, чтобы увидеть результат на этапах «отладки». Когда у вас есть вывод SPICE, сохраненный в txt-файл, вы можете использовать текстовый редактор или (что ещё лучше!) текстовый процессор для редактирования вывода, удаления любых ненужных баннеров и сообщений, даже указания альтернативных шрифтов для выделения заголовков и/или данных для более качественного внешнего вида. Затем, конечно, вы можете распечатать результат на бумаге, если хотите. Поскольку прямой вывод SPICE представляет собой простой текст ASCII, такой файл будет универсально интерпретируемым на любом компьютере, независимо от того, установлен на нем SPICE или нет. Кроме того, простой текстовый формат гарантирует, что файл будет очень маленьким по сравнению с графическими файлами снимков экрана, созданными симуляторами «наведи и кликни». Формат файла списка связей, требуемый SPICE, довольно прост. Файл списка связей представляет собой не что иное, как простой текстовый файл ASCII, содержащий несколько строк текста, каждая строка описывает либо компонент схемы, либо специальную команду SPICE. Архитектура схемы указывается за счёт присвоения номеров точкам соединения каждого компонента в каждой линии, соединения между компонентами обозначаются общими номерами. Изучите следующий пример принципиальной схемы и соответствующий файл SPICE. Пожалуйста, имейте в виду, что принципиальная схема существует только для того, чтобы сделать моделирование более понятным для людей. SPICE понимает только списки связей:

Рис. 4. Схема, для которой создадим список связей SPICE.
Рис.4 . Схема, для которой создадим список связей SPICE.
Example netlist
v1 1 0 dc 15
r1 1 0 2.2k
r2 1 2 3.3k
r3 2 0 150
.end

Вот пояснения к каждой строке исходного файла:

  • v1 обозначает батарею (источник напряжения 1), положительная клемма с номером 1, отрицательная клемма с номером 0, с выходным напряжением постоянного тока 15 вольт.
  • r1 обозначает резистор R1 на схеме, подключённый между точками 1 и 0, со значением 2,2 кОм.
  • r2 обозначает резистор R2 на схеме, подключённый между точками 1 и 2, со значением 3,3 кОм.
  • r3 обозначает резистор R3 на схеме, подключённый между точками 2 и 0, со значением 150 кОм.

Электрически общие точки (они же «узлы», они же «ноды») в описании схемы SPICE имеют общие номера, почти так же, как провода, соединяющие общие точки в большой цепи, обычно имеют общие метки проводов. Чтобы смоделировать эту схему, пользователь должен ввести эти шесть строк текста в текстовом редакторе и сохранить их в виде файла с уникальным именем (например, «example.cir»). После того, как список связей составлен и сохранён в файл, пользователь затем обрабатывает этот файл с помощью одного из операторов командной строки, показанных ранее («spice < example.cir»), и получит примерно такой текстовый вывод на экране своего компьютера:

Рис. 5. Пример выходного файла SPICE.
Рис. 5. Пример выходного файла SPICE.

SPICE начинает с вывода времени, даты и версии, это всё в верхней части вывода. Затем он перечисляет входные параметры (строки исходного файла), а затем отображает показания напряжения постоянного тока от каждого узла (ссылочный номер) до «земли» (ссылочный номер всегда 0). Затем следует список показаний тока через каждый источник напряжения (в данном случае он только один, v1). Наконец, печатается общая рассеиваемая мощность и время вычисления в секундах. Все выходные значения, предоставляемые SPICE, отображаются в экспоненциальном представлении. Выходной лист SPICE, показанный выше, по мнению большинства людей избыточен. Для придания окончательного вида стоит обрезать весь ненужный текст и оставлять только то, что имеет значение. Вот пример того же вывода, перенаправленного в текстовый файл (spice < example.cir > example.txt), затем разумно обрезанный в текстовом редакторе для окончательного представления и распечатки:

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 не установлена на компьютере. По желанию пользователя можно использовать расширенные возможности программ обработки текста, чтобы сделать результат более привлекательным. Комментарии можно даже вставлять между строками вывода для большей ясности.

См.также

Внешние ссылки