Пакеты (VHDLpackage) являются отдельной разновидностью элементов проектов на VHDL. Они используются для хранения общих элементов проекта (а также рабочей группы или организации) – констант, функций, процедур и т.п. Структура пакета показана ниже.

 

package MY_PACK is

constant ...

function ...
component ...

alias...

type ...

end package MY_PACK;

 

Пакет подключается к модулям с помощью строки вида.

 

usework.MY_PACK.all;

 

При необходимости подключить конкретные элементы, описанные в пакете, вместо идентификатора all используется имя этого элемента. Например, если в пакете определена константа DATAWIDTH, подключить только ее можно следующим образом.

 

usework.MY_PACK.DATAWIDTH;

 

Эта возможность представляется достаточно удобной, если в пакете есть множество объявлений, которые по каким-либо соображениям нежелательно помещать в область видимости VHDL-модуля.

Все программные модули VHDL и пакеты помещаются в библиотеки. Если не указано иное, компоненты, описанные в модулях, помещаются в библиотеку с именем work (отсюда имя подключаемых компонентов в приводимых выше примерах, начинающееся с «work.»). Библиотеки не имеют строгих ограничений по типу размещаемых в них компонентов. К модулям, разрабатываемым в стиле RTL, следует подключать стандартную библиотеку IEEE:

 

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

 

Такое объявление автоматически генерируется для всех модулей на VHDL в случае использования мастера создания новых компонентов в САПР ISE.

 = Перейти к содержанию =