Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekz8_Stru_Metod_Oper_Configur.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.79 Mб
Скачать

3. Спецификация конфигурации - Configuration Specification

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

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

Оператор спецификации описания компонента имеет две формы синтаксиса: Форма 1:

for instance_label:component_name use entity

library_name.entity_name(arch_name);

Форма 2:

for instance_label:component_name use configuration

library_name.config_name;

Каждый внедряемый component связан с некоторым проектом (с парой entity/architecture) и эта ассоциация {связь} определена спецификацией конфигурации (specification configuration). Спецификация компонент появляются в декларативной части того иерархического проекта, где используются образцы компонент. Этим путем образцы components могут быть конфигурированы в пределах тела architecture, не используя отдельное объявление configuration. Такая Спецификация более проста, но также и менее гибка. Пример 1 содержит спецификацию configuration для того же самого component как в Примере 1 в описании объявления configuration.

Когда порты и generics в объявлении component не соответствует{не согласовываются} с их объявлениями в объявлении entity, так называемая binding indication может примениться. Просто говоря она включает явное указание на то, как порты and generics в entity должны быть связаны к портам и generics образца component. Предложения generic map и port map используются для этой цели. Эта методика используется в Примере 1. Практически, однако, рекомендуется согласовывать generics и порты components и соответствующего проекта, поскольку это улучшает четкость.

Если отсутствует configuration (или в виде объявления или спецификации) для component, то по умолчанию поддерживается, так называемое связывание по умолчанию (default binding) . Это означает для такого component, будет выбран такой entity, название которого совпадает (согласовывается) с названием объявленного компонента. Должны также совпадать названия port, типы port и параметры generics и т.д. Если entity имеет больше чем одну architecture, то последняя откомпилированная архитектура используется

Example 1

entity INVERTER is

   generic (PropTime : TIME := 5 ns);

   port ( IN1 : in BIT; OUT1 : out BIT);

end INVERTER;

architecture STRUCT_I of INVERTER is

begin

   OUT1 <= not IN1 after PropTime;

end STRUCT_I;

entity TEST_INV is end TEST_INV;

architecture STRUCT_T of TEST_INV is

signal S1, S2 : BIT := '1';

-- INV_COMP component declaration:

component INV_COMP is -–объявление компонента

   generic (TimeH : TIME);

   port ( IN_A : in BIT; OUT_A : out BIT );

end component;

for LH : INV_COMP -- спецификация конфигурации (specification configuration) связывающая компонент с родительским проектом, т.е. с описанием компонента

   use entity INVERTER (STRUCT_I)

   -- indicates generic and port aspects:

   generic map (PropTime => TimeH)

   port map (IN1 => IN_A, OUT1 => OUT_A);

begin

-- instantiation of INV_COMP component (внедрение компонента):

LH : INV_COMP generic map (10 ns)

              port map (S1, S2);

end STRUCT_T;

Architecture STRUCT_T entity TEST_INV использует component INV_COMP. Прикрепление component к entity INVERTER и архитектуры (architecture) STRUCT_I реализовано спецификацией configuration, которая появляется в декларативной части тела architecture.

Important notes:

  • Конфигурация назначает одну и только одну структуру тела архитектуры к данному объекту.

  • Инструментальные средства Синтеза вообще не поддерживают конфигурации.

  • Для конфигурации некоторого проекта, оба – объект (entity) и конфигурация configuration имя конфигурации of имя проекта is должны быть объявлены в той же самой библиотеке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]