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

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

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

процесса допустимо использование операторов условия (IF) и выбора (CASE).
Входы и выходы схемы могут быть представлены в виде сигнала или
переменной. Как правило, используются следующие типы данных: bit,
bit_vector, stdjogic, std_logic_vector. Использование других типов данных
может требовать определения функций взаимных преобразований. Пример
образования схемы под именем examplel, приведенный выше, как раз и
соответствует представлению комбинационной схемы в языке VHDL.
Возможность иерархического построения проектов (плюс возможность
организации пакетов для стандартных строительных кирпичиков
пользовательских проектов) позволяет осуществлять проектирование в рамках
привычных для разработчиков вычислительных систем элементов. Поведение
триггерных элементов достаточно просто описывается средствами языка VHDL.
Пользователь может создать систему элементов, наиболее точно отражающую
поведение проектируемой системы. В практической деятельности используются
следующие виды синхронизации триггеров: асинхронное управление,
потенциальное управление или динамическое управление.
Поведение регистровых схем удобно описывать, используя либо процессное,
либо блочное представление. При процессном представлении внутри оператора
PROCESS обычно пользуются операторами условия (IF) и выбора (CASE). При
блочном представлении возможно использование операторов условного
назначения сигналу (<=... WHEN).
В качестве примера рассмотрим описание поведения триггера D типа
"защелка", имеющего вход асинхронного сброса и срабатывающего по фронту
тактирующего сигнала.
ENTITY d_ff IS-entity declaration
PORT (d,c,r: IN BIT; - port statement q:INOUTBIT);
ENDdJf;
ARCHITECTURE one OF d_ff IS
- architecture "one" of entity d_ff BEGIN
behjr: BLOCK (c = '1 ' OR r = '1 ');
BEGIN
q<=GUARDED 'O' WHEN r='1 '
ELSE d WHEN c=T AND NOT c'STABLE ELSE q;
END BLOCK beh_tr;
END one;
Наибольшее внимание при описании поведения регистровых схем необходимо
уделять видам синхронизации входных сигналов (асинхронное, потенциальное
или динамическое) и способам задания входных, выходных сигналов и
внутренних состояний при описании многоразрядных схем (счетчиков,
регистров сдвига и т. д.). Для определения этих переменных или сигналов в
многоразрядных схемах можно использовать понятие вектора или
ограниченного целого (с диапазоном изменения, связанным с разрядностью
схемы). Независимо от варианта описания поведения отдельных триггеров и
средств, используемых для их объединения в регистровые структуры типа
регистров, счетчиков и т. д., рассмотренный подход создает предпосылки
для использования языка VHDL в качестве средства, позволяющего описывать
вычислительные устройства в терминах и понятиях языка, обычно называемого
языком регистровых передач.
Следующим типовым фрагментом, играющим очень важную роль в
проектировании, является цифровой автомат. Основные разновидности
поведения автоматов сводятся
885
ПРОЕКТИРОВАНИЕ МПС
к автоматам Мили или Мура, хотя расширенные структурные возможности схем
ПЛ привели к широкому практическому распространению разновидности
автоматов Мили - асинхронным автоматам Мили.
Наличие в языке возможности использования перечислительного типа данных
позволяет ввести перечислительные типы данных "состояния", а при желании
разработчика и типы данных "входы" и "выходы". Предпочтительной
представляется процессная форма описания поведения автомата. В
зависимости от типа используемого автомата его архитектура может включать
от одного до четырех процессов. Оператор варианта целесообразно
использовать в качестве основного каркаса процессов, для чего каждому
состоянию автомата назначается вариант в операторе выбора. Для описания
альтернативных вариантов формирования переходов и выходных сигналов (если
это необходимо) обычно применяется условный оператор. Отдельный процесс
может вводиться для описания процедуры тактирования и начальной установки
автомата.
В качестве примера автомата рассмотрим автомат Мили. Пусть автомат задан
таблицей переходов (табл. 8.1) и таблицей выходов (табл. 8.2), где в
клетках таблицы переходов записаны состояния, в которые переходит автомат
из исходного состояния при соответствующем входе, а в клетках таблицы
выходов - выходные сигналы при тех же условиях. Нетрудно видеть, что
приведенный пример соответствует реверсивному счетчику, причем Y1 и Y2
соответствуют выдаче сигналов переноса.
Фрагмент VHDL-программы, описывающий такой автомат, имеет вид,
приведенный в листинге 1. Предполагается, что перечислительный тип state
задан списком имен, переменные у их объявлены в Entity блока, в котором
определен данный процесс, и их тип задан списком имен-значений.
Процесс после задания исходного состояния (s<=sO) входит в бесконечно
повторяющуюся петлю, в начале которой помещен оператор WAIT. Примененная
конструкция оператора соответствует синхронному автомату, состояние
которого изменяется по тактирующему сигналу p_clk, причем p_clk является
Предыдущая << 1 .. 497 498 499 500 501 502 < 503 > 504 505 506 507 508 509 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed