Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники / Язык AHDL.DOC
Скачиваний:
56
Добавлен:
13.06.2014
Размер:
995.84 Кб
Скачать
      1. Раздел Subdesign

Раздел Subdesign определяет входные, выходные и двунаправленные порты данного проекта.

Следующий пример демонстрирует использование раздела Subdesign:

SUBDESIGN top

(

foo, bar, clk1, clk2 : INPUT = VCC;

a0, a1, a2, a3, a4 : OUTPUT;

b[7..0] : BIDIR;

)

Раздел Subdesign имеет следующие характеристики:

  • За ключевым словом SUBDESIGN следует имя подпроекта. Имя подпроекта должно совпадать с именем текстового файла проекта. В данном примере подпроект имеет имя top.

  • Список сигналов заключается в круглые скобки.

  • Сигналы представляются символическими именами с определением их типа (например, INPUT)

  • Имена сигналов отделяются друг от друга запятыми .За именами следует двоеточие, далее тип сигналов и символ (;).

  • Возможными типами портов являются : INPUT, OUTPUT, BIDIR, MACHINE INPUT или MACHINE OUTPUT.В примере, показанном выше, сигналы foo, bar, clk1 и clk2, а сигналы a0, a1, a2, a3 и a4 являются выходами. Шина b[7..0] является двунаправленной.

  • Ключевые слова MACHINE INPUT и MACHINE OUTPUT используются для импорта и экспорта конечных автоматов между текстовыми файлами проектов и другими файлами проектов. Однако типы портов MACHINE INPUT и MACHINE OUTPUT не могут использоваться в текстовых файлах проектов верхнего уровня.

  • После указания типа порта в необязательном порядке можно указать значение по умолчанию GND или VCC (в противном случае значений по умолчанию не предусматривается).В примере приведенном выше VCC является значением, присвоенным по умолчанию для входных сигналов в том случае, если они не используются в файле более высокого уровня иерархии (присвоения, осуществляемые в файле более высокого уровня иерархии, имеют больший приоритет)

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

      1. Раздел Variable

Необязательный раздел Variable используется для описания и/или генерации переменных, используемых в разделе Logic. Переменные языка AHDL сходны с переменными, используемыми в языках высокого уровня; они используются для определения внутренней логики.

Следующий пример демонстрирует использование раздела Variable:

VARIABLE

a, b, c : NODE;

temp : halfadd;

ts_node : TRI_STATE_NODE;

IF DEVICE_FAMILY == "FLEX8000" GENERATE

8kadder : flex_adder;

d, e : NODE;

ELSE GENERATE

7kadder : pterm_adder;

f, g : NODE;

END GENERATE;