Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Описание типовых фрагментов вычислительной техники




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

Функционирование комбинационных схем удобно описывать достаточно широким классом средств: арифметическими и логическими выражениями, условным или селективным (по выбору) назначением сигналу. В разделе операторов процесса допустимо использование операторов условия (IF) и выбора (CASE). Входы и выходы схемы могут быть представлены в виде сигнала или переменной. Как правило, используются следующие типы данных: bit,bit_vector,std_logic_vector. Использование других типов данных может требовать определения функций взаимных преобразований. Пример образования схемы под именем exampale1, приведенный выше, как раз и соответствует представлению комбинационной схемы в языке VHDL..

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

Поведение регистровых схем удобно описывать, используя либо процессное, либо блочное представление. При процессном представлении внутри оператора PROCESS обычно пользуются операторами условия (IF) и выбора (CASE). При блочном представлении возможно использование операторов условного назначения сигналу (<=…WHEN).

В качестве примера рассмотрим описание поведения триггера D типа "защелка", имеющего вход асинхронного сброса и срабатывающего по фронту тактирующего сигнала.

ENTITY d_ff IS—entity declaration

PORT (d,c,r:IN BIT;-port statement q:INOUT BIT);

END d_ff;

ARCHITECTURE one OF d_ff IS

architecture "one" of entity d_ff

BEGIN

beh_tr: BLOCK(c='1' OR r='1');

BEGIN

q<=GUARDED '0' WHEN r ='1'

ELSE d WHEN c='1' AND NOT c'STABLE

ELSE q;

END BLOCK beh_tr;

END one;

Наибольшее внимание при описании поведения регистровых схем необходимо уделять видам синхронизации входных сигналов (асинхронное, потенциальное или динамическое) и способам задания входных, выходных сигналов и внутренних состояний при описании многоразрядных схем (счетчиков, регистров сдвига и т. д.). для определения этих переменных или сигналов в многоразрядных схемах можно использовать понятие вектора или ограниченного целого (с диапазоном изменения, связанным с разрядностью схемы). Независимо от варианта описания поведения отдельных триггеров и средств, используемых для их объединения в регистровые структуры типа регистров, счетчиков и т. д., рассмотренный подход создает предпосылки для использования языка VHDL в качестве средства, позволяющего описывать вычислительные устройства в терминах и понятиях языка, обычно называемого языком регистровых передач.

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

к широкому практическому распространению разновидности автоматов Мили — асинхронным автоматам Мили.

Наличие в языке возможности использования перечислительного типа данных позволяет ввести перечислительные типы данных «состояния», а при желании разработчика и типы данных «входы» и <выходы». Предпочтительной представляется процессная форма описания поведения автомата. В зависимости от типа используемого автомата его архитектура может включать от одного до четырех процессов. Оператор варианта целесообразно использовать в качестве основного каркаса процессов, для чего каждому состоянию автомата назначается вариант в операторе выбора. Для описания альтернативных вари антов формирования переходов и выходных сигналов (если это необходимо) обычно применяется условный оператор. Отдельный процесс может вводиться для описания процедуры тактирования и начальной установки автомата.

В качестве примера автомата рассмотрим автомат Мили. Пусть автомат задан таблицей переходов (табл. 8.1) и таблицей выходов (табл. 8.2), где в клетках таблицы переходов записаны состояния, в которые переходит автомат из исходного состояния при соответствующем входе, а в клетках таблицы выходов — выходные сигналы при тех же условиях. Нетрудно видеть, что приведенный пример соответствует реверсивному счетчику, причем УI и У2 соответствуют выдаче сигналов переноса.

Фрагмент VHDL-программы, описывающий такой автомат, имеет вид, приведенный в листинге 1. Предполагается, что перечислительный типа задан списком имен, переменные y и x объявлены в Еntitу блока, в котором определен данный процесс, и их тип задан списком имен-значений.

Процесс после задания исходного состояния (s<=s0) входит в бесконечно повторяющуюся петлю, в начале которой помещен оператор WAIT. Примененная конструкция оператора соответствует синхронному автомату, состояние которого изменяется по тактирующему сигналу p_clk, p_clk причем является глобальной переменной проекта.

Важно обратить внимание на то, что изменения состояний происходят в момент появления нарастающего фронта сигнала p_clk, так как запускающее событие определено как «появление единицы и наличие переходного процесса на входе р_сlk.

Синтаксическая конструкция p_clk'stable называется атрибутом сигнала. Атрибут сигнала может принимать значение «истинно» или «ложно» и характеризует некоторые свойства сигнала на момент моделирования (в данном контексте — переходный режим).

Использование в качестве условия продолжения процесса выражения "not p_clk'stable " соответствует реальной структуре устройства, реализующего автомат, в котором состояние отображается состоянием регистра. Так как этот регистр является одновременно датчиком информации о текущем состоянии и приемником нового значения, во избежание гонок необходимо использовать регистры с динамическим управлением, реагирующие на изменение сигнала, что и задается используемой конструкцией условия в операторе Wait.

Таблица 8.1 Таблица 8.2

Таблица переходов Таблица выходов

 

Листинг 1

— описано вне процесса

TYPE state IS (s0,s1,s2);

ТYРЕ input IS (x0,x1);

TYPE output IS (y0,y1,y2);

SIGNAL x: INPUT;

SIGNAL y_out:OUTPUT;

…………………..

PROCESS

SIGNAL s:state;

BEGIN

s<=s0;

LOOP

WAIT UNTILI (p_clk='1' AND NOT p_clk'stable);

— Реализация переходов

CASE s IS

WHEN s0=>IF x=x0 THEN s<=s0;

ELSEIF(x=x1) THEN s<=s1;

ELSE s<=s2;

END IF;

WHEN s1=>IF x=x0 THEN s<=s1;

ELSEIF x=x1 THEN s<=s2;

ELSE s<=s0;

END IF;

WHEN s2=>IF x=x0 THEN s<=s2;

ELSEIF x=x1 THEN s<=s3;

ELSE s<=s1;

END IF;

WHEN s3=>IF x=x0 THEN s<=s3;

ELSEIF x=x1 THEN S<=s0;

ELSE s<=s2;

END IF;

END CASE;

--Формирование выходов

IF (s=s3 AND x=x1) THEN y<=y1;

ELSEIF(s=s0 AND x=x2) THEN y<=y2;

ELSE y<=y0;

END IF;

END LOOP;

END PROCESS;

После вычисления нового состояния и выходных сигналов (обратите внимание на то, что сигналы вычисляются на основе состояний, которые были «перед» фронтом тактирующего сигнала, а не вычисленных в текущем цикле) программа переходит в состояние ожидания нового запускающего события.

Наличие определенных стереотипов и у проектировщиков, и у САПР для описания типовых фрагментов цифровой техники позволяют упростить написание и понимание описаний на языке VHDL достаточно сложных систем.

 





Поделиться с друзьями:


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 564 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Надо любить жизнь больше, чем смысл жизни. © Федор Достоевский
==> читать все изречения...

3245 - | 2878 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.