Часть 10: СИМУЛЯЦИЯ
10-4: Поведенческие модели (ALS) |
Когда VHDL для цепи скомпилирован в
netlist, включены и связность и поведение.
Это происходит потому, что формат netlist
иерархический, а внизу иерархии
располагаются примитивы поведения.
Electric распознает поведенческие примитивы
для MOS транзисторов, AND, OR, NAND, NOR, Inverter и
XOR вентилей. Другие примитивы могут быть
определены пользователем, а все
существующие примитивы могут быть
переопределены.
Для создания (или переопределения) поведения примитивов просто создайте "netlist" образ ячейки с именем примитива. Используйте команду Edit Facet... меню Facets и выберите вид "netlist-als-format". Например, для определения поведения фасета ALU отредактируйте "alu{net-als}", и переопределите поведение двух-входового вентиля And, отредактируйте "and2{net-als}". Компилятор скопирует эти текстовые фасеты в описание netlist, когда бы на этот узел не было ссылок в VHDL.
Библиотека, которая содержит только поведенческие модели, может быть построена и храниться отдельно от текущей библиотеки. Для идентификации этой библиотеки, как места поведенческих моделей, используйте субкоманду Select Behavioral Library... команды VHDL Compiler меню Tools.
Формат netlist обеспечивает три разных типа определяемых сущностей: модель, вентиль и функция (model, gate, и function). Модель описывает внутреннюю связность между другими сущностями. Она описывает иерархию и топологию. Вентиль и функция находятся на уровне примитива. Вентиль использует таблицу истинности, а функция делает ссылки на C-кодированное поведение (которое должно быть скомпилировано в Electric, см модуль "simalsuser.c"). Обе примитивные сущности также разрешают спецификацию операционных параметров, таких как скорость переключения, емкость нагрузки и задержка распространения (сигнала). Симулятор определяет емкость нагрузки, и, следовательно, задержку переключения каждого узла системы, рассматривая емкость нагрузки каждого примитива, соединенного с узлом, и внося ее в рассчет элементов обратной связи узла.
Пример netlist, описывающего модель RS защелки, показан ниже:
Декларация модели для рисунка следующая: model main(set, reset, q, q_bar) inst1: nor2(reset, q_bar, q) inst2: nor2(q, set, q_bar) Описание вентиля nor2 следующее: gate nor2(in1, in2, out) t: delta=4.5e-9 + linear=5.0e-10 i: in1=L in2=L o: out=H@2 i: in1=H o: out=L@2 i: in2=H o: out=L@2 i: o: out=X@2 |
После комбинирования эти объекты представят полное описание цепи. Заметьте, что когда вентиль, функция или другая модель имеют ссылки из описания модели, есть однозначное соответствие между именами сигналов, выводимых из места вызова, и именами сигналов, содержащихся в заголовке вызванного объекта.
|
|