Язык AHDL

       

Объявление регистровых выходов


Вы можете объявить регистровые выходы TDF файла путем объявления выходных портов как триггеров в разделе Variable. Файл reg_out.tdf,  приведенный ниже, имеет туже самую функциональность,  что и файл bur_reg.tdf, но обладает регистровыми выходами.

SUBDESIGN reg_out

(

   clk, load, d[7..0] : INPUT;

   q[7..0]            : OUTPUT;

)

VARIABLE

q[7..0] : DFFE; % также объявлены как регистровые %

BEGIN

   q[].clk = clk;

   q[].ena = load;

   q[] = d[];

END;

Когда Вы присваиваете значение регистровым выходам в разделе Logic, то значение с d входов направляется в регистр. Выходы регистра не изменяются до тех пор, пока не появится возрастающий фронт сигнала Clock. Для определения тактового входа регистра используйте конструкцию <имя регистра>.clk в разделе Logic. Вы можете реализовать глобальный тактовый сигнал Clock, используя примитив GLOBAL

с помощью логической опции Global Signal

в диалоговом окне Individual Logic Options, которое Вы можете открыть из окна Logic Options ( меню Assign), или с помощью опции Automatic Global Clock из диалогового окна Global Project Logic Synthesis( меню Assign).

В файле,  приведенном ниже, каждый DFFE триггер, объявленный в разделе Variable, запитывает выход с тем же именем, поэтому Вы можете обратиться к выходам q триггеров без использования порта q.

В TDF файле высокого уровня выходные порты синхронизируются с выходными выводами. Когда Вы объявляете одинаковое имя для выходного порта и регистра, присваивания опций probe и logic применяются к выводу, а не регистру (за исключением логической опции Fast I/O). Поэтому, если Вы хотите протестировать регистр или использовать специфические для регистра логические опции, Вы должны по разному назвать регистры и порты.



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