ЗАДАНИЕ КОНФИГУРАЦИИ КОМПОНЕНТОВ НА ЯЗЫКЕ VHDL . КОНФИГУРАЦИОННАЯ СПЕЦИФИКАЦИЯ И КОНФИГУРАЦИОННАЯ ДЕКЛАРАЦИЯ



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

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

Выполнение конфигурационной спецификации называют связыванием (binding).

Конфигурационная спецификация имеет следующий синтаксис:

for component_specification binding__indication; end for;

Секция component_specification задает идентификатор компонента-экземпляра или компонентов-экземпляров, к которым относится данная конфигурационная спецификация. Она имеет следующий синтаксис:

(instantiation_label {,...} | others | all): component_name

Пример :

for bit0, bitl: flipflop

use entity work.edge_triggered_dff(basic)

end for;

В этом примере конфигурационная спецификация относится к двум компонентам — bit0 и bit1. Эти два конкретных компонента соответствуют одному типу компонента — flipflop. Он сопоставлен объекту, описание модели которого (идентификатор — edge_triggered_dff) расположено в библиотеке work. Для конфигурируемых компонентов нужно использовать архитектурное описание с именем basic.

Конфигурационная декларация

Другая форма задания конфигурации компонентов структурного описания объектов — конфигурационная декларация (configuration).

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

configuration configuration_name of entity_name is

for architecture_jiame — имя конфигурируемого описания архитектуры

{for component_specification binding_indication;

end for;}

end for;

end [ configuration] [configuration_name];

Здесь:

-идентификатор conf iguration_name — имя конфигурационной декларации;

-идентификатор entity_name — имя объекта моделирования, для которого она предназначена;

-идентификатор architecture_name — имя конкретного архитектурного описания объекта моделирования.


ЗАДАНИЕ КОНФИГУРАЦИИ КОМПОНЕНТОВ НА ЯЗЫКЕ VHDL . ПРАВИЛА СВЯЗЫВАНИЯ ПО УМОЛЧАНИЮ

В общем случае объект моделирования может иметь несколько различных описаний архитектуры (или, как иногда говорят, "архитектурных тел"). Это может быть связано как с разным уровнем детализации представления моделируемого объекта — от алгоритмического поведенческого описания до детальной схемы в базисе конкретной технической реализации устройства, так и с наличием многовариантных реализаций проектируемого устройства, его узлов и их моделей на VHDL. Использование конфигурации позволяет легко менять описания архитектуры, связанные с объектами моделирования, создавать очень гибкие модели.

Предусмотрены также правила связывания компонентов-экземпляров с объектами и их архитектурными телами в случаях, когда в конфигурационных спецификациях и декларациях модели отсутствуют явные указания для связывания. Это правила связывания по умолчанию.

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

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


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

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


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

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






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