Базовым элементом описания систем на языке VHDL является блок. Блок содержит раздел описаний данных и раздел параллельно исполняемых операторов. Частным случаем блока является описание архитектуры объекта. В рамках описания архитектуры могут использоваться внутренние, вложенные блоки. Наряду со всеми преимуществами блочной структуры программы и ее соответствия естественному иерархическому представлению структуры проекта операторы блока языка VHDL позволяют устанавливать, условия охраны (запреты) входа в блок. Только при истинности значения охранного выражения управление передается в блок и инициирует выполнение операторов его тела.
Блок содержит раздел описаний данных и раздел параллельно исполняемых операторов. Частным случаем блока является описание архитектуры обьекта. В рамках описания архитектуры могут использоваться внутренние, вложенные блоки.
Наряду со всеми преимуществами блочной структуры программы и ее соответствия естественному иерархическому представлению структуры сложной системы, операторы блока (block) языка VHDL позволяют устанавливать условия охраны выполнения параллельных операторов назначения сигналу, входящих в тело блока.
Средства поведенческого описания ВС. Оператор process
Приведенный ниже вариант описания архитектуры behavior1 обьекта Object1 (при A1 = A2 = 1 выходы В1=1 и В2=0, в остальных случаях В1=0, В2=1) использует условный оператор (if) языка VHDL
architecture behavior1 of Object1 is
begin
process
begin -- в теле процесса последовательные
if (A1='1') and (A2='1') -- операторы if и wait
then B1<='1'; B2<='0';
else B1<='0'; B2<='1';
end if;
wait on А1,А2;
end process;
end ;
После заголовка, содержащего имя архитектуры (behavior1) следует ее тело, являющееся процессом (process). Процесс, находясь в операторе wait on, ожидает, пока не изменится хотя бы один из сигналов (А1 или А2), указанных в списке оператора ожидания wait. Как только это произойдет, дойдя до оператора конца (end process) вернется к своему началу. Выполнится условный оператор if, который, в зависимости от истинности условия, передает управление той или другой группе операторов назначения ( <= ) выходным сигналам В1 и В2 новых значений. В итоге процесс снова будет ожидать в операторе wait on.
Второй вариант поведенческого описания архитектуры обьекта Object2, назовем его behavior2, использует оператор выбора (CASE) языка VHDL. В заголовке процесса дан список чувствительности процесса process (A1,A2)). Это указание эквивалентно оператору wait on A1,A2 в конце описания процесса и позволяет повысить компактность описания. Процесс со списком чувствительности не может содержать явный оператор wait on. Ниже приведен текст второго варианта:
architecture behavior2 of Object1 is
begin
process (A1,A2)
begin
case (A1 & A2) is
when "11"=> В1<='1'; B2<='0';
others B1<='0'; B2<='1';
end case;
end process;
end behavior2;
Средства потокового описания ВС.
Параллельный оператор назначения сигналу
Параллельные операторы назначения сигнала ( <= ) срабатывают параллельно при изменении хотя бы одного из сигналов в своих правых частях.
Например, если некоторые выходные сигналы B1 и B2 зависят от входных сигналов A1, A2, A3 следующим образом: B1 = A1 & A2, B2 = A1 & A3, то их можно описать следующим образом:
begin
…
B1<= A1 and A2;
B2<= A1 and A3;
…
end;
Здесь при изменении сигнала A1 вычисляется новое значение обоих сигналов, сигнала A2 – только сигнала B1, A3 – только B2.
Средства структурного описания ВС.
Оператор конкретизации компоненты
Структурное описание архитектуры представляет структуру объекта, как композицию из компонент, соединенных между собой и обменивающихся сигналами. Функции, реализуемые компонентами, в явном виде в отличие от предыдущих примеров в структурном описании не указываются. Структурное описание включает описание интерфейсов компонент, из которых состоит схема, и их связей. Полные (интерфейс + архитектура) описания объектов - компонент должны быть ранее помещены в проектную библиотеку, подключенную к структурному описанию архитектуры.
A1 X B2A2
B1
Например, структурное описание архитектуры объекта Object2, схема которого приведена выше, может быть таким:
architecture STRUCT_Object2 of Object2 is
component INE2 -- ниже интерфейс компоненты INE2
port (X1,X2:in bit; Y:out bit);
end component;
signal X: bit; -- вспомогательный сигнал Х
begin -- ниже описание связей экземпляров компонент
E1:INE2 port map (A1,A2,Х); -- схема Е1
E2:INE2 port map (Х,Х,B1); -- схема Е2
B2<=X; -- передача Х на порт В2
end;
Источники:
1. А.Поляков «Моделирование ЭВМ на языке VHDL»
2. Дж.Армстронг «Моделирование цифровых систем на языке VHDL»
3. http://ermak.cs.nstu.ru/
4. http://www.sm.bmstu.ru/
5. http://www.chipnews.ru/