Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 501

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 495 496 497 498 499 500 < 501 > 502 503 504 505 506 507 .. 528 >> Следующая

<Exit_Statement>::=EXIT[<MeTKa_L(MKna>][WHEN<ycnoBHe>];
Оператор употребляется для завершения всех итераций и выхода из цикла.
880
ОПИСАНИЕ ПРОЕКТОВ НА ЯЗЫКЕ VHDL. ПРИМЕРЫ, ИЛЛЮСТРИРУЮЩИЕ ОСНОВНЫЕ
КОНСТРУКЦИИ VHDL
Оператор вызова процедуры (Call Procedure Statement) и оператор выхода из
процедуры (Return Statement)
Традиционные операторы обращения к процедуре и выхода из процедуры.
Оператор вызова процедуры (Call Procedure Statement).
<Са11_Ргосес1иге_51а1етеп(>::=<имя_процедуры>[(<список_параметров>)];
Оператор выхода из процедуры (Return Statement).
<Retum_Statement>::=RETURN[< выражение;"];
Оператор последовательного сообщения (Assert Statement)
Определение оператора.
<Assert_ Statement>::=[<MeTKa>:] ASSERT <условие> [REPORT <сообщение>]
[SEVERITY <уровень_серьезности>]
<уровень_серьёзности>::=[\ЮТЕ | WARNING | ERROR | FAILURE
Вспомогательным оператором, удобным для использования в качестве
оператора, проверяющего выполнение контролирующего условия в моделирующих
программах, является оператор последовательного сообщения.
Если уровень серьезности и текст сообщения опущены, то по умолчанию
выполнение условия оператора приводит к выводу сообщения "Assertion
violation". Этот оператор может входить в совокупность последовательных
операторов.
8.11. ОПИСАНИЕ ПРОЕКТОВ НА ЯЗЫКЕ VHDL. ПРИМЕРЫ, ИЛЛЮСТРИРУЮЩИЕ ОСНОВНЫЕ
КОНСТРУКЦИИ VHDL
8.11.1. СТРУКТУРНОЕ ОПИСАНИЕ
Проиллюстрируем структурные варианты описаний на простейших примерах.
Пусть требуется описать на языке VHDL комбинационную схему, реализующую
функцию Y = not(not(in1Ain2)Ain3) под наименованием examplel, опирающуюся
на поведенческое описание функционирования двухвходового элемента типа
2И-НЕ. Схема приве- ' дена на рис. 8.11.
Листинг примера может иметь вид:
ENTITY examplel IS
PORT (in1,in2,in3: IN BIT;
y: OUT BIT;
END examplel;
ARCHITECTURE struct OF examplel IS COMPONENT nand2
PORT (x1, x2: IN BIT; q: OUT BIT);
END COMPONENT; '
SIGNAL z: BIT;
BEGIN
Unitl: nand2 PORT MAP (in1, in2, z);
Unit2: nand2 PORT MAP (q=> y, x1=>in3, x2=> z);
END struct;
В примере описан интерфейс устройства, имеющего три входа и один выход, и
структура устройства, когда оно состоит из соединения компонентов под
названием nand2. Предполагается, что в проекте имеется описание
интерфейса и поведения элемента типа 2 И-НЕ, по смыслу совпадающее с
фрагментом:
881
ПРОЕКТИРОВАНИЕ МПС
unit 1
ENTITY nand2 IS ?
PORT (ini ,in2: IN BIT;
out: OUT BIT;
END nand2;
ARCHITECTURE behave OF nand2 IS BEGIN
Out<= not (in1 and in2);
END behave;
В состав устройства входят два компонента типа nand2 с именами unitl и
unit2, подсоединяемые при помощи сигналов in1, in2, in3 и Y к внешним
контактам устройства и соединяемые между собой при помощи сигнала (цепи)
под именем Z. Устройство unitl подключается при помощи позиционного
соответствия между формальными и фактическими именами входных и выходных
сигналов. Подключение устройства unit2 выполнено с применением ключевого
соответствия между формальными и фактическими именами. Ключевое
соответствие позволяет отобразить отсутствие соединения у выходного
контакта при помощи ключевого слова OPEN.
Рассмотрим пример описания структуры 16-разрядного регистра, используя
понятие Component и опираясь на конструкцию Generate. Предполагается, что
в проекте поведение триггера D описано ранее и может совпадать с
примером, приведенным далее в листинге.
ENTITYreg16IS
PORT (input: IN bit_VECTOR (ОТО 15); clock: IN BIT;
output: OUT BIT VECTOR (0 T015);
END reg16;
ARCHITECTURE struct OF regl 6 IS COMPONENT dff
PORT (d, elk: IN BIT; q: OUT BIT);
END COMPONENT;
BEGIN
g1: FOR i IN 1 TO 16 GENERATE
dff PORT MAP (input (i), clock, output(l));
END GENERATE g1;
Из примера очевидна компактность записи структуры устройства при
применении синтаксической конструкции Generate.
882
ОПИСАНИЕ ПРОЕКТОВ НА ЯЗЫКЕ VHOL. ПРИМЕРЫ, ИЛЛЮСТРИРУЮЩИЕ ОСНОВНЫЕ
КОНСТРУКЦИИ VHDL
8.11.2. ПОВЕДЕНЧЕСКОЕ ОПИСАНИЕ
Проиллюстрируем поведенческие варианты описаний на том же простейшем
примере. Начиная с раздела Entity Declaration, описание может иметь
следующий вид:
ENTITY input3_nand IS-entity declaration
PORT (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 =T) THEN y<=NOT (in1 AND in2);
ELSE y<=T;
END IF; '
WAIT ON in1, in2, in3;
END PROCESS;
END;
Описание поведения 8-разрядного счетчика с тактируемым входом сброса (в
архитектурном теле) можно задать следующим образом:
Synch_count: PROCESS BEGIN
WAIT UNTIL clock=T;
IF (reset='1 ') THEN count<="00000000";
ELSE count<=count+T;
END IF;
END PROCESS;
Возможность различными способами описать поведение одной и той же системы
или объекта, оставаясь в рамках одного архитектурного тела, приводит к
понятию стиля описания (программирования). Традиционно выделяют следующие
типы стилей:
• последовательный, когда преобразование потока входных данных в поток
Предыдущая << 1 .. 495 496 497 498 499 500 < 501 > 502 503 504 505 506 507 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed