Язык AHDL


Использование непараметрических функций


MAX+PLUS II включает библиотеки примитивов и непараметрических макрофункций. Все логические функции MAX+PLUS II можно использовать для создания иерархических проектов. Мега и макрофункции  автоматически устанавливаются в подкаталогах каталога \maxplus2\max2lib, созданного во время инсталляции. Логика примитивов встроена в AHDL.

Существует два способа использовать (т.е. вставлять экземпляр) непараметрическую  функцию в языке AHDL:

 

·   Объявить переменную для функции, т.е. имя экземпляра, в разделе Variable объявления Instance и использовать порты экземпляра функции в разделе Logic.

·   Использовать ссылку на логическую функцию в разделе Logic TDF файла.

 

Объявления Instance

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

Входы и выходы мега и макрофункций должны объявляться с помощью оператора прототипа функции (Function Prototype). Прототипы функций не требуются для примитивов. MAX+PLUS II снабжена файлами включения (Include Files), которые содержат прототипы для всех мега и макрофункций MAX+PLUS II в каталогах \maxplus2\max2lib\mega_lpm и \maxplus2\max2inc, соответственно. С помощью оператора Include, Вы можете передавать содержимое Include файла в файл TDF, для объявления прототипа мега или макрофункции MAX+PLUS II.

Файл macro1.tdf, приведенный ниже, демонстрирует 4-битный счетчик, соединенный с дешифратором 4 в 16. Экземпляры этих функций создаются с помощью объявлений Instance в разделе Variable.

 

INCLUDE "4count";

INCLUDE "16dmux";

SUBDESIGN macro1

(

   clk        : INPUT;

   out[15..0] : OUTPUT;

)

VARIABLE

   counter : 4count;

   decoder : 16dmux;

BEGIN

   counter.clk = clk;

   counter.dnup = GND;

   decoder.(d,c,b,a) = counter.(qd,qc,qb,qa);

   out[15..0] = decoder.q[15..0];

END;




Начало  Назад  Вперед



Книжный магазин