В Electric с помощью команды Write Spice Deck... меню (Tool / Simulation (Spice)) можно создавать файлы задания для Spice-совместимых симуляторов. Для получения результатов моделирования необходимо использовать соответствующую внешнюю программу, поскольку дистрибутив Electric ее не содержит.
После того, как Spice-симулятор завершит свою работу, используйте команду Plot Simulation Output, Guess File (в меню Tools / Simulation (Spice)) для того чтобы получить результаты моделирования и отобразить полученные сигналы. Если файл не может быть сопоставлен с именем ячейки, Вы можете использовать пункт меню Plot Simulation Output, Choose File..., чтобы выбрать требуемый файл с результатами. Информация о моделировании в Spice показывается в окне сигналов (см. раздел 4-11 ).
Специальные узлы Spice
Есть много мощных средств для работы Spice совместно с Electric. Пример, показанный здесь, иллюстрирует некоторые из них. Этот пример доступен в библиотеке примеров как ячейка "tool-SimulateSpice" (Вы можете загрузить библиотеку с командой Load Sample Cells Library в меню Help).
Всеми входными значениями Spice управляют специальныt узлы, находящиеся в меню компонентов "Spice". Отметьте, что в первый раз любой узел Spice помещается из библиотеки Spice загруженной в Electric, что может вызвать некоторую задержку.
Узлы Spice, описанные здесь, являются группой Electric по умолчанию. Однако, могут быть записаны и дополнительные наборы. Чтобы выбрать другой набор, используйте Spice Preferences (в меню File / Preferences..., "Tools" section, "Spice" tab). При установке "Spice primitive set" выберите другой набор. Второй набор узлов, названных "SpicePartsS3", адаптирован специально для Spice3.
В нашем примере, слева расположено 5-и вольтовое питание. Оно было установлено с использованием примитива "DC Voltage" из списка "Spice" компонентного меню. После установки примитива, появляется текст с параметрами примитива, в нашем примере "Voltage=0V", который можно изменять. (либо с помощью Object Properties... либо двойным нажатием на него). Импульсный входной сигнал, расположенный справ, был сделан с использованием примитива "Pulse" (приметив имеет 7 параметров).
В списке приметивов находятся как источники постоянного напряжения и тока (DC форма), так и источники переменного тока и напряжения (AC форма). Набор устройств с двумя выходами ("two-gate") и передающее устройство также доступны: "CCCS", "CCVS", "VCCS", "VCVS", "Transmission".
Так же возможно устанавливать кратковременные, DC, или AC анализы, используя субкоманды "Transient Analysis", "DC Analysis", and "AC Analysis". В одной схеме может использоватся только один такой элемент.
Для продвинутых пользователей, существуют специальные Spice узлы: "Node Set" и "Extension". Эти узлы могут быть параметризованные с помощью произвольного Spice кода. Действительности продвинутые пользователи могут сами создавать собственные Spice узлы, изменяя ячейки в Spice библиотеке.
Наш пример так же демонстрирует возможность добавлять произвольный комментарий к Spice записям (правый нижний угол). Для добавления комментария необходимо выбрать "Add Spice Card" из компонентного меню "Misc.". The command creates a piece of text that can be modified arbitrarily. Любой текст будет добавлен к Spice записи:)
Ещё одна возможность, которая может быть использована при моделирование транзисторов и других элементов, это установка определенной Spice модели для этих элементов. Для установки узловой модели, отметьте узел и используя команду Set Spice Model... меню Tool / Simulation (Spice)) установите нужное значение.
Субкоманда Add Multiplier на выбранном узле размещает умножитель. Умножитель (его так же называют "M" коэффициентом) определяет размер транзисторов внутри узла.
tv_node_setuphold $(clk) rf $(in) rf 100p 100p
and there are 3 instances of the cell, then there will be 3 flattened assertions in the flatcode file:
tv_node_setuphold xtop.xflop1.clk rf xtop.flop1.in rf 100p 100p
tv_node_setuphold xtop.xflop2.clk rf xtop.flop2.in rf 100p 100p
tv_node_setuphold xtop.xflop3.clk rf xtop.flop3.in rf 100p 100p
If clk is actually a single signal that comes from the top level, it is smart enough to recognize this:
tv_node_setuphold clk rf xtop.flop1.in rf 100p 100p
tv_node_setuphold clk rf xtop.flop2.in rf 100p 100p
tv_node_setuphold clk rf xtop.flop3.in rf 100p 100p
Предпочтения Spice
Некоторая неграфическая информация может также быть передана симулятору Spice в Spice Preferences (в меню File / Preferences..., "Tools" section, "Spice" tab).
- Spice Engine(Spice устройство) Возможные варианты Spice 2, Spice 3, HSpice, PSpice, Gnucap, или SmartSpice.
- Spice Level(уровень Spice описания) Возможные варианты 1, 2, или 3
- Resistor shorting - определяет, какие резисторы будут замкнуты при записи Spice netlist из schematic, возможные варианты:
- "none" - никакие. Это сохранит все резисторы (удобно при моделировании).
- "normal only" - только обычные резисторы будут закорочены. Это удобно когда используется внешний LVS инструмент подобный Calibre и Assura - альтернатива Spice netlist-у, поскольку закорачиваются паразитные резисторы (такие как от моделей проводников), но сохраняются резисторы из поликристаллического кремния, которые являются фактическими устройствами в топологии.
- "normal and poly" - все резисторы будут закорочены; маловероятно что Вы будете пользоваться этой возможностью..
- Parasitics Controls the writing of parasitics in the Spice deck. Choices are:
- "Trans area/perim only" which writes the area and perimeter of transistor active but does not write any Resistor/Capacitor information.
- "Conservative RC" writes Resistor/Capacitor information (in addition to the area/perimeter).
- Globals Has three options for the treatment of global signals (such as power and ground):
- "No special treatment" causes globals to be treated like other signals.
- "Use .GLOBAL block" places global signals in a .GLOBAL block (not supported by all versions of Spice).
- "Create .SUBCKT ports" causes globals to be added to .SUBCKT headers as explicit ports. Note that this preference should be used when Global Partitions are in use (see Section 6-9-5).
- Spice primitive set Switches between Spice primitive sets. Currently there are only two: "spiceparts" and "spicepartsG3".
- Write VDD/GND in top cell Whether to write power and ground signals in the top-level cell.
- Use cell parameters When set, any parameters defined on the cell will appear in the Spice deck. When not checked, each parameterized cell appears multiple times in the deck, once for each different parameter combination. See Section 6-8-5 for more on parameters.
- Write trans sizes in units Requests that the Spice deck contain scalable size information instead of absolute size information.
- Write .subckt for top cell Requests that a the top-level cell be written as a subcircuit, and a call made to it. The default is to write the top-level cell without a subcircuit wrapper.
- Write .end statement Requests that an .end statement be written at the end of the deck. This can be disabled in situations where the deck is part of a larger Spice deck.
- Use Header cards from files with extension specifies that header cards (placed at the start of the Spice deck) can be found in a file with the cell's name and the given extension.
- Use Header cards from file lets you specify the file with header cards.
- No Header cards prevents any header cards from being written to the Spice deck.
- Use Trailer cards from files with extension specifies that trailer cards (placed at the end of the Spice deck) can be found in a file with the cell's name and the given extension.
- Use Trailer cards from file lets you specify the file with trailer cards.
- No Trailer cards prevents any trailer cards from being written to the Spice deck.
Обратите внимание, что устанавливаемая информация специфизируется для данной технологии. Если вы установили метку для одной технологии, то при снятие Spice записи при другой технологии, установленная информация использоватся не будет. Несматря на то, что в Electric schematic является технологией, к Spice технологиям он не относится. При работе со schematic вы можете установить нужную топологическую (layout) технологию. "Layout technology to use for schematics" popup. Этот выпадающий список находится в Technology Preferences (in menu File / Preferences..., "Technology" tab, see Section 7-1-2).
Нижняя часть диалогового окна показывает, как Spice может быть запущен после того, как задание было записано:
- After writing deck Electric can create an external process as specified by the user to run Spice on the generated netlist. If the pull-down box is set to "Don't Run", nothing is done. If the pull-down box is set to "Run, Ignore Output", the external process is run, and the user is notified when it is finished. If set to "Run, Report Output", a dialog box is opened to show the user the output produced by the process. Please note that this is a process, and not a command line command. For example, echo blah > file will NOT work. Encapsulate it in a script if you want to do such things.
- Run program Identifies the Spice program to run.
- With args the arguments passed to the program.
- Use dir if specified, this is the working directory of the program.
- Overwrite existing file (no prompts) this will overwrite the existing netlist without prompting the user.
- Run probe this will run the waveform viewer on the output of the Spice run.
- Help tells which environment variables are exported to be used by the process.
The following variables are available to use in the program name and arguments:
- ${WORKING_DIR} The current working directory.
- ${USE_DIR} The Use Dir field, if specified (otherwise defaults to WORKING_DIR).
- ${FILENAME} The output file name (with extension).
- ${FILENAME_NO_EXT} The output file name (without extension).
- ${FILEPATH} The full path to the output file.
Значения по умолчанию Spice создает из фактического содержания ячейки. Если есть эквивалентная ячейка топологии, она может использоваться (вместо схематического). Можно также использовать представление "Verilog", которое содержит текст Verilog для ячейки (это будет преобразовано в Spice). Наконец, можно установить использование внешнего файла модели. Отметьте, что в случае внешних файлов модели, в указанный дисковый файл добавляется ссылка "include". Эти варианты позволяют Вам создавать свои собственные определения в ситуациях, где полученный Spice код был бы слишком сложным или неправильным.
Другой способ изменить Spice - представление ячейки состоит в том, чтобы использовать команду Set Netlist Cell From File (меню Tools / Simulation (Spice))). This places a piece of text in the cell, which you must edit to be the path to a disk file. That file will then be included in the Spice deck instead of the actual subcircuit of the cell.