Курсовая работа: Основы языка VHDL
end component;
signal s1,s2: BIT;
begin
D1: DFF port map (data, clk, s1,s2); -- выражение 1
A1: AND2 port map (s2, din, ctrla); -- выражение 2
N1: NOR2 port map (s1, mr, rdy); -- выражение 3
endstr_view;
Здесь декларируются три компонента: AND2, DFFи NOR2. В тело архитектуры экземпляры компонентов вводятся с помощью выражений 1, 2 и 3. Компоненты связаны между собой сигналами s1 и s2. В декларации называется имя компонента и его интерфейс, что очень схоже с декларацией интерфейса устройства. Выражение для экземпляра компонента должно в первую очередь дать имя экземпляру или ярлык. Например, D1 – это ярлык для экземпляра триггера DFF. Далее следует список связей (associationlist). Он устанавливает связь между портами компонента и портами и сигналами устройства. Существует два варианта связи: позиционный и поименный. В позиционном списке первый порт декларации (слева направо) компонента соответствует первому порту экземпляра компонента (слева направо), второй – второму и так далее. Именно такой вариант списка был использован в приведенном выше примере. Вместо этого можно было использовать поименный вариант списка связей, например, выражение 3 можно было бы записать так:
N1: NOR2 port map (a=>s1, b=> mr, z=>rdy);
Рассмотрим еще пример. На рис.1.2 была приведена схема полусумматора.Его структурная модель должна предстать как набор следующих компонентов: XORна два входа (например, 7486 или отечественный аналог ЛП5) и ANDна два входа (например, 7408 или отечественный аналог ЛИ1 ).
entity half_adder is
port(a, b: in BIT; sum, cur: out BIT);
end half_adder;
architecture h_a_str of half_adder is
component a_7486
port (a_2: in BIT;
a_3: in BIT;
a_1: out BIT);
end component;
component a_7408
port (a_2: in BIT;
a_3: in BIT;
a_1: out BIT);
end component;
begin
X1: a_7486 port map (a, b, sum);
A1: a_7408 port map (a, b, cur);
endh_a_str;
Названия компонентов и их портов приведены такими, какими они даны в библиотеке фирмы ALTERA– известного производителя программируемых логических схем.