Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс.DOC
Скачиваний:
23
Добавлен:
16.04.2019
Размер:
1.48 Mб
Скачать

8.11. Описание проектов на языке vhdl примеры, иллюстрирующие основные конструкции vhdl

8.11.1. Структурное описание

Проиллюстрируем структурные варианты описаний на простейших примерах. Пусть требуется описать на языке VHDL комбинационную схему, реализующую функцию У = not(not(in1^in2)^in3) под наименованием exemple1, опирающуюся на поведенческое описание функционирования двухвходового элемента типа 2И-НЕ. Схема приведена на рис. 8.11.

Листинг примера может иметь вид:

ENTITY example1 IS

РОRТ (in1 ,in2,in3: IN BIT;y:OUT BIT;

END example1;

ARCHITECTURE struct OF example1 IS

COMPONENT nand2

РОRТ (x1 ,x2: IN BIT;q: OUT BIT);

ЕND СОМРОNЕМТ;

SIGNAL z: ВIТ;

ВЕGIN

Unit1: nand2 РОRТ МАР (iп1, in2,z);

Unit2: nand2 РОRТ МАР (q=>y, х1=>in3, х2=>z );

В примере описан интерфейс устройства, имеющего три входа и один выход, и структура устройства, когда оно состоит из соединения компонентов под названием nand2. Предполагается, что в проекте имеется описание интерфейса и поведения элемента типа 2 И-НЕ, по смыслу совпадающее с фрагментом:

ЕNТIТY nand2 IS

РОRТ (in1 ,in2: IN ВIТ;

out:OUT BIT;

END nand2;

ARCHITECTURE behave OF nand2 IS

BEGIN

Out<=not(in1 and in2);

END behave;

В состав устройства входят два компонента типа nand2 с именами unit1 и unit2 подсо- единяемые при помощи сигналов in1, in2, in3 и Y к внешним контактам устройства и соеди-няемые между собой при помощи сигнала (цепи) под именем Z. Устройство unit1 подкяючается при помощи позиционного соответствия между формальными и фактическими именами входных и выходных сигналов. Подключение устройства unit2 выполнено с применением ключевого соответствия между формальными и фактическими именами. Ключевое соответствие позволяет отобразить отсутствие соединения у выходного контакта при помощи ключевого слова ОРЕN.

Рассмотрим пример описания структуры 16-разрядного регистра, используя понятие Component и опираясь на конструкцию Generate.Предполагается, что в проекте поведение триггера D описано ранее и может совпадать с примером, приведенным далее в листинге.

ЕNТIТY reg16 IS

РОRТ (input:IN bit_VECTOR(0 TO 15);

clock:IN ВIТ;

output:IN BIT VEKTOR(0 TO 15);

END reg16;

ARCHITECTURE struct OF reg16 IS

СОМРОNЕNТ dff

РОRТ (d, clk: IN BIT;q:OUT BIT);

END СОМРОNЕNТ;

BEGIN

g1: FOR I IN1 TO 16 GENERATE

dff PORT MAP(input(i),clock,output(i));

END GENERATE g1;

Из примера очевидна компактность записи структуры устройства при применении син- таксической конструкции Generate.

8.11.2. Поведенческое описание

Проиллюстрируем поведенческие варианты описаний на том же простейшем примере. Начиная с раздела Enity Declaration, описание может иметь следующий вид:

ENTITY input3_nand IS-entity declaration

РОRТ (in1,in2,in3:IN BIT; — port statement

y:OUT BIT);

END input3_orand1;

ARCHITECTURE one OF input3_nand IS

-architecture "one" of entity input3_nand1

BEGIN

nand3:PROCESS

BEGIN

IF (in3='1') THEN y<=NOT (in1 AND in2);

ELSE y<='1';

END IF;

WAIT ON in1,in2,in3;

END PROCESS;

END;

Описание поведения 8-разрядного счетчика с тактируемым входом сброса (в архитектурном теле) можно задать следующим образом:

Synch_count: PROCESS

BEGIN

WAIT UNTIL clock='1';

IF(reset='1') ТНЕN count<="00000000";

ELSE count <= count+'1';

END IF;

END PROCESS;

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

• последовательный, когда преобразование потока входных данных в поток выходных данных осуществляется с использованием только последовательных операторов;

• параллельный (процессный), когда описание поведения задано в виде параллельно вы- полняемых процессов;

• потоковый, когда описание задано в виде последовательности параллельных операторов языка.

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

Введение понятия стиля и наличие различных стилей отнюдь не означает, что какой-либо стиль позволяет описать функционирование определенной системы, а другой стиль нет. Каждый стиль характеризует систему с Определенной точки зрения, и события, происхо- дящие в ней (с точки зрения проектировщика), лучше всего отражаются при помощи выбран ного стиля. Вместе с тем необходимо отметить, что для САПР, синтезирующих структуру БИС ПЛ из VHDL-описания, варианты, синтезируемые различными стилями, описания, могут давать различные варианты реализации. Более того, синтезирующие компиляторы моiуг даже не поддерживать компиляции при определенных способах описания поведения системы.

Процессная форма описания благодаря списку инициализирующих сигналов и едино временности выполнения последовательных операторов в теле каждого процесса может наиболее точно описывать функционирование последовательно-параллельного взаимодей- ствия обрабатывающих устройств. Возможность последовательного оператора назначения сигнала (находящегося в теле процесса) использовать синтаксическую конструкцию АРТЕВ позволяет описывать (или задавать) взаимодействие процессов со сложным распределением во времени.

Потоковый стиль наиболее точно отражает процесс изменения потоков данных в системе от входа до выхода. Опираясь на свойства параллельного исполнения параллельных операторов языка и правила назначения значения сигналам, потоковый стиль позволяет описывать функционирование конвейерных структур. Наибольшее распространение, естественно, имеет смешанное описание проектов, в которых классические стили описания переплетаются в произвольных комбинациях.