Язык AHDL


Оператор Function Prototype - часть 2


¨    В параметризируемой функции за списком параметров следует ключевое слово WIDTH и список имен параметров. Список заключен в круглые скобки; имена отделены друг от друга запятыми.

¨    За списком выходных и двунаправленных портов функции следует ключевое слово RETURNS.В первом  примере, показанном выше, выходными портами являются result[LPM_WIDTH-1..0], count и overflow ;во втором примере - less, equal и greater.

¨    Список входных и выходных портов заключается в круглые скобки. Имена отделяются друг от друга запятыми.

¨    При импортировании и экспортировании конечных автоматов, используемый файлом оператор Function Prototype должен использовать автоматный порт (определяемый ключевым словом MACHINE) для указания того, какие входы и выходы являются конечными автоматами. Пример:

 

FUNCTION ss_def (clock, reset, count)

   RETURNS (MACHINE ss_out);

 

¨    Оператор Function Prototype заканчивается символом (;).

¨    Oператор Function Prototype должен быть расположен за пределами других разделов  языка AHDL и кроме того он должен располагаться до экземпляра логической функции созданной путем объявления объекта или подставляемой ссылки (in-line reference).

Для экземпляра примитива

также следует использовать механизм  объявления объекта (Instance Declaration) или подставляемую ссылку (in-line reference). Однако, в отличие от мега- и макрофункций логика функционирования примитива предопределена, таким образом нет необходимости определять логику функционирования примитива в отдельном файле проекта. Кроме того нет необходимости использовать оператор Function Prototype, за исключением тех случаев, когда нужно изменить порядок следования портов примитива.

Следующий пример демонстрирует прототип функции, существующий по умолчанию для примитива JKFF:

 

FUNCTION JKFF (j, k, clk, clrn, prn)

            RETURNS (q);

 

Данный пример показывает модифицированный прототип функции для примитива JKFF:

 

FUNCTION JKFF (k, j, clk, clrn, prn)

            RETURNS (q);

Альтернативой использования оператора Function Prototype в файле проекта является применение оператора Include для подключения файлов с расширением .inc, содержащих прототипы используемых функций. Кроме того MAX+PLUSII имеет в своем составе команду Create Default Include File в меню File, которая автоматически создает файл с расширением .inc, содержащий прототип функции для текущего файла проекта.

Прототипы функций для всех мега- и макрофункций  хранятся в файлах с расширением .inc в директориях \maxplus2\max2lib\mega_lpm и \maxplus2\max2inc соответственно. Контекстно-зависимая подсказка для всех поставляемых фирмой Altera мега-, макрофункций и примитивов, выводит содержимое соответствующих им прототипов функций.




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



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