Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЛИС_Ответы_к_экзамену_8110.doc
Скачиваний:
19
Добавлен:
24.04.2019
Размер:
2.35 Mб
Скачать

Вопрос 19 - Разработка иерархических проектов. Способы подключения к проекту модулей нижнего уровня. Способы использования модулей.

TDF файлы, написанные на языке AHDL, можно смешивать с другими файлами в проектную иерархию. Файлы низкого уровня могут быть или файлами, поставляемыми Altera-ой, или мега и макрофункциями, определенными пользователем.

Вы можете легко создать и использовать заказные мега и макрофункции в TDF файле.

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

Чтобы подготовить заказную мега или макрофункцию к использованию в другом файле проекта требуется:

  1. Откомпилировать и при необходимости промоделировать файл проекта для обеспечения его правильного функционирования.

  2. Если Вы планируете использовать функцию в нескольких проектах, Вы должны назначить каталог для хранения файла проекта в качестве библиотеки пользователя с помощью команды User Libraries (меню Options) или сохранения копии файла в существующем каталоге пользовательской библиотеки. Или же сохраните копию файла в каталоге, содержащем проект, который будет использовать заказную функцию.

  1. С помощью открытия файла в окне текстового редактора создайте Include файл и символ, который представляет текущий файл:

    1. Выберите команду Create Default Include File (меню File) для создания Include файла, который можно использовать в TDF файле верхнего уровня. С помощью оператора Include Вы можете импортировать содержимое Include файла в TDF файл, объявляя прототип мега или макрофункции.

    2. Выберите команду Choose Create Default Symbol (меню File) для создания символа, который можно использовать в GDF файле.

После того как Вы подготовили функцию для других файлов проекта, Вы можете создать новый TDF файл и вставить экземпляр функции с помощью объявления экземпляра или подставляемой ссылки. Вы можете использовать заказные функции таким же образом как и функции, поставляемые Altera.

-- Использование оператора FUNCTION

-- Файл sreg_p1d.tdf должен

-- находиться в текущем каталоге!!

----------------------------------------

FUNCTION sreg_p1d (data, clk, ce, reset)

WITH (width)

RETURNS (out[(width) - (1)..0]);

------------------

SUBDESIGN filter

(

clk, ce, clrn, d : INPUT;

-------

outA[7..0],

outB[11..0] : OUTPUT;

)

BEGIN

--IN LINE REFERENCE

outA[] = sreg_p1d(d, clk, ,! clrn)

WITH (width = 8);

(sign, outB[10..0]) = sreg_p1d(d, clk, , )

WITH (width = 12);

-------

END;

-- Использование оператора INCLUDE

-- Файл sreg_p1d.inc вместе с файлом

-- sreg_p1d.tdf должен находиться в

-- доступной библиотеке!!

----------------------------------------

INCLUDE “sreg_p1d.inc”;

------------------

SUBDESIGN filter

(

clk, ce, clrn, d : INPUT;

-------

outA[7..0], sign,

outB[11..0] : OUTPUT;

)

VARIABLE

reg8s : sreg_p1d WITH (width = 8);

reg12s : sreg_p1d WITH (width = 12);

-------

BEGIN

reg12s.clk = clk;

--IN LINE REFERENCE

(sign, outA[],,,) = reg12s(d, clk, , );

(outB[10..3]) = reg8s(.data=d, .clk = clk);

-------

END;