- •1.Вводные замечания
- •2. Объявление конфигурации проекта – (Design Configuration Declaration)
- •3. Спецификация конфигурации - Configuration Specification
- •Оператор спецификации описания компонента имеет две формы синтаксиса: Форма 1:
- •4. Примеры использование оператора конфигурации (configuration …is…) при создании структурных проектов с применением компонентного стиля проектирования
- •Условное графическое обозначение головного проекта
- •Иерархическая диаграмма головного проекта
- •Описание компонента
Условное графическое обозначение головного проекта
Иерархическая диаграмма головного проекта
Вспомогательный проект entity and_e
entity and_e is -- определение компонента and_e
port (x1, x2 : in bit;
y : out bit);
end and_e ;
architecture and_a of and_e is
begin
y <= x1 and x2;
end and_a;
Вспомогательный проект entity nand_e
entity nand_e is -- определение компонента nand_e
port (x1, x2 : in bit;
y : out bit);
end nand_e ;
architecture nand_a of nand_e is
begin
y <= x1 and x2;
end nand_a;
Важное замечание: Классическая структурная методология создания проектов базируется на использовании декларации компонента и внедрение (реализация) компонента, допуская отсутствие описания самого компонента. Поэтому, в случае отсутствия описания внедряемого компонента, наличие декларации компонента и его внедрения (реализация) недостаточны для выбора окончательного варианта спецификации проекта и связываемой с ним архитектуры. Оператор configuration …of … is снабжает конструктора информацией о том, какой реально существующий entity и architecture ассоциируется с внедряемым компонентом.
Приложение 1: Метод прямого внедрения субпроекта (компонента)
Язык VHDL поддерживает также способ прямого внедрения (direct instantion) компонента при создании проектов на базе структурного метода описания. При прямом способе внедрении не требуется специально объявлять внедряемый компонент в разделе деклараций тела архитектуры.
Суть способа прямого внедрения компонента состоит в том, что в операторе внедрения компонента непосредственно указывается имя внедряемого проекта (entity проекта) с соответствующим ему именем архитектуры.
При этом оператор внедрения компонента имеет такую конструкцию:
<метка> : entity WORK.<имя проекта> (<имя архитектуры>)
port map(<список связываемых портов>);
Заметим, что использование способа прямого внедрения компонента описание компонента и описание головного проекта следует сохранять в одной и той же проектной директории. По умолчанию, проектная директория считается рабочей библиотекой с именем WORK.
Пример проекта, где применен прямой способ внедрения компонента показан на Рис.П1.
Описание компонента
entity XOR_GATE_4 is
port(IN1,IN2: in BIT_VECTOR(0 to 3);
OUT1 : out BIT_VECTOR(0 to 3));
end entity XOR_GATE_4;
architecture XOR_BODY_4 of XOR_GATE_4 is
begin
OUT1 <= IN1 xor IN2 after 5 ns;
end architecture XOR_BODY_4;
Головной проект с внедренным компонентом по прямому способу
entity EXAMPLE is
end entity EXAMPLE;
architecture STRUCTURE_1 of EXAMPLE is
signal S1,S2 : BIT_VECTOR(0 to 3);
signal S3 : BIT_VECTOR(0 to 3);
begin
X1 : entity WORK.XOR_GATE_4(XOR_BODY_4) port map (S1,S2,S3);
end architecture STRUCTURE_1;
Рис.П1
На Рис.П2 показана суть метода прямого внедрения компонента на физическом уровне
Рис.П2 Метод прямого внедрения компонента на физическом уровне
