Язык AHDL


Примитивы


MAX+PLUS II обеспечивает большое многообразие примитивных функций для разработки схем. Так как AHDL и VHDL логические операторы, порты и некоторые операторы замещают примитивы в AHDL и VHDL файлах, то примитивы  являются подмножеством их, доступных для GDF файлов, как показано ниже.

Примитив - один из основных функциональных блоков, применяющийся для проектирования схем с помощью программы MAX+PLUS II. Примитивы используются в графических файлах (.gdf), текстовых файлах (.tdf), и VHDL файлах (.vhd). 

Символы примитивов для графического редактора поставляются в директории \maxplus2\max2lib\prim, созданной во время инсталляции.

Прототипы функций встроены в программу MAX+PLUS II.

            Примитивные массивы

Примитивный массив - это примитив, который представляет несколько идентичных примитивов. Вы можете использовать примитивные массивы для создания более компактных GDF или  OrCAD Schematic файлов путем ввода единственного примитива, который экстрактор списков связей компилятора переведет в несколько примитивов.

Вы можете создать примитивный массив двумя способами:

·     Если все порты символа (pinstub) примитива соединяются с шинами, состоящими из n членов, примитив переводится в массив n индивидуальных примитивов. Каждый индивидуальный узел шины соединяется с соответствующим портом символа каждого индивидуального примитива в массиве. Например,

В этом примере примитивный массив создается при соединении трех шин A[0..2], B[0..2], и C[0..2] с двумя выводами INPUT, выводом OUTPUT и вентилем AND2.

Во время обработки компилятор переводит этот примитивный массив в 6 выводов INPUT, 3 вывода OUTPUT и 3 вентиля AND2 следующим образом:

Один AND2 вентиль соединяется с узлами A0, B0, и C0.

Один AND2 вентиль соединяется с узлами A1, B1, и C1.



Один AND2 вентиль соединяется с узлами A2, B2, и C2.

Входные выводы A0, A1, и A2 соединяются с узлами A0, A1, и A2, соответственно.

Входные выводы В0, В1, и В2 соединяются с узлами В0, В1, и В2, соответственно.




Выходные выводы С0, С1, и С2 соединяются с узлами С0, С1, и С2, соответственно.

Примитивы выводов INPUT, INPUTC, OUTPUT, OUTPUTC, BIDIR, или BIDIRC, которым даны шинные имена переводятся в массив примитивов. Вы не можете использовать перечислимое имя шины для обозначения примитива вывода.

·     Если некоторые порты символа примитива соединяются с шинами с n членами, а некоторые с одиночными узлами, примитив переводится в массив n примитивов. В этом случае каждый индивидуальный узел шины соединяется с соответствующим портов символа каждого примитива в массиве, а каждый узел, который не является частью шины, соединяется с тем же самым портом символа каждого примитива. Например,



Вы должны обозначить все узлы и шины, которые используются для создания примитивного массива, за исключением следующих случаев, где имена узлов и шин не обязательны:

·     Одиночный узел, который соединяется с примитивным массивом.

·     Шинный проводник, который соединяется с примитивным массивом, если не меньше одного сегмента сети, которая содержит этот проводник, явно обозначено перед любыми точками соединения или, если сеть соединяется с выводом с шинным именем. Например,



Вы не можете вводить присваивания для проб и ресурсов символов примитивов, которые используются для создания примитивных массивов. Обратитесь в раздел Принципы работы с присваиваниями.

Проба

- уникальное имя, связанное с любым узлом, например, вход или выход примитива, мегафункции или макрофункции, которое можно использовать вместо полного иерархического имени узла в любом месте MAX+PLUS II. Таким образом пробное имя обеспечивает быструю идентификацию узла.

Не используемые входы примитивов, мегафункций и макрофункций

К не подсоединенным входным портам примитива, мегафункции, символов макрофункций и экземпляров применяются следующие правила.

·     Не используемые входы примитивов триггеров имеют следующие значения по умолчанию:



CLRN:   VCC (неактивный)

PRN:     VCC (неактивный)

ENA:     VCC (активный)

·     Требуются входы data и Clock в триггеры и входы data и ENA в защелки.

·     Неиспользуемый вход OE буфера TRI по умолчанию имеет значение VCC (активный).

·     В файлах графического редактора неиспользуемые входы логических примитивов должны соединяться с VCC или GND.

·     Логические уровни по умолчанию для неиспользуемых входов макрофункций документированы в Помощи для каждой макрофункции.

·     В отличии от макрофункций, мегафункции могут не иметь значений по умолчанию для входов в некоторые порты и неудачное соединение таких портов приведет к выдачи компилятором сообщений об ошибке.

Примитивы буферов

CARRY             OPNDRN

CASCADE         SOFT

EXP                  TRI

GLOBAL (SCLK)            WIRE (только GDF)

LCELL (MCELL)

Примитивы триггеров и защелок

DFF      SRFF

DFFE    SRFFE

JKFF    TFF

JKFFE  TFFE

LATCH

Примитивы/Порты входов и выходов

BIDIR или INOUT                      BIDIRC (только GDF)

INPUT или IN               INPUTC (только GDF)

OUTPUT или OUT        OUTPUTC(толькоGDF)

            Логические примитивы

AND                              NOR

BAND (только GDF)      NOT

BNAND (только GDF)   OR

BNOR (только GDF)     VCC (только GDF)

BOR (только GDF)       XNOR

GND (только GDF)       XOR

NAND

            Другие примитивы (только GDF)

CONSTANT

PARAM

Title Block

Прототипы функций для примитивов в TDF файлах не нужны. Однако Вы можете переопределить порядок вызова входов примитива, вводя оператор Function Prototype в Ваш TDF.


Содержание раздела