БИЛИОТЕКА, ИХ ОПИСАНИЕ НА ЯЗЫКЕ VHDL



Для облегчения процесса проектирования описание объекта моделирования и различные варианты описания его архитектуры обычно размещают в биб­лиотеках (они организованы как отдельные файлы). Это позволяет редакти­ровать описание одних объектов, не затрагивая файлы, в которых располо­жены описания других объектов. Кроме того, библиотеки могут быть использованы в различных проектах, что позволяет лучше организовать по­вторное использование уже разработанных объектов.

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

Если описание архитектуры включает объекты, размещенные в библиотеках, то непосредственно перед описанием архитектуры необходимо указать име­на библиотек, которые используются. Это имеет следующий синтаксис:

library library__name {,...}

Здесь 1ibrary_name — идентификатор, имя библиотеки.

Для того чтобы в тексте модуля каждый раз не указывать имя библиотеки часто используемого объекта, можно описать условную ссылку. Она имеет следующий синтаксис:

 

use library_name. (identifier | all)

Здесь identifier — имя объекта из библиотеки library_name

Если в описании указано ключевое слово all, то все объекты, содержащие­ся в библиотеке, можно использовать в теле использующего эту библиотеку объекта без указания имени библиотеки (все они становятся непосредст­венно видимыми).


ПАКЕТЫ, ИХ ОПИСАНИЕ НА ЯЗЫКЕ VHDL

Механизм пакетов позволяет сгруппировать неко­торые описания в единую совокупность — пакет, который далее может многократно использоваться в проектах. Пакет может использоваться как в различных частях одной модели, так и в разных моделях.

Обычно имеется в виду, что описания, объединяемые в пакет, некоторым образом логически между собой связаны, имеют некий содержательный критерий для их объединения. Однако это, конечно, вопрос стиля програм­мирования, а не собственно языка VHDL.

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

Описание пакета состоит из декларативной части и тела пакета. Описание декларативной части пакета имеет следующий синтаксис:

 

package name is

{package_dec1arative_item}

end [package] [name];

Описание тела пакета имеет следующий синтаксис:  

 

package body name is

{package_body_declarative_item}

end [package body] [name] ;

Описание пакета может состоять только из декларативной части (например, если он содержит только описание типов, констант, переменных).

Описание тела пакета может содержать описание дополнительных типов, подтипов, констант и подпрограмм. Все описания, выполненные в деклара­тивной части пакета, автоматически видны в его теле.

Описания сигналов в тело пакета включаться не могут.


ОПЕРАТОР ГЕНЕРАЦИИ GENERATE ЯЗЫКА VHDL

Если объект моделирования включает в себя много однотипных компонентов, назначения для них имеют сходную структуру. В модели они занимают много места и затрудняют ее понимание. Оператор генерации generate позволяет в этом случае более компактно описать модель. Он позволяет организовать цикл с параметром, с однократным параметризованным описанием внутри, на базе которого будут сгенерированы описания для всей группы однотипных Компонентов. Фактически это некоторая форма макрооператора в языке VHDL. Оператор генерации имеет следующий синтаксис:

 

Group_label: for index in range generate

Element_label: component_name [generic map (generic_accosiation_list)]

[port map (port_accosiacion_list)]

end generate [Group__label];

 

Список Generic_association_list содержит фактические значения обобщающих констант.

Допускается вложенность операторов генерации.

Секций else и elseif условная форма оператора generate не имеет. Как и обычный оператор назначения компонентов, оператор generate является параллельным оператором. В теле самого оператора generate также могут быть указаны только параллельные операторы.


Дата добавления: 2020-04-08; просмотров: 155; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!