Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Introduction_to_Hardware_Design.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
423.94 Кб
Скачать

Структурный автомат

Если абстрактный автомат является лишь абстрактной моделью реагирующей системы, то в структурном автомате учитывается кодирование состояний, входных и выходных символов, а также его внутреннее устройство на уровне структурных схем.

Определение. Структурным автоматом (структурных схемой автомата) называется конечный автомат, в котором состояния, стимулы и реакции представлены в форме двоичных векторов, заданы типы элементов памяти для хранения состояния, функции переходов и выходов реализованы в форме комбинационных схем (КС).

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

Структурный автомат можно представить состоящим из двух частей: (1) элементов памяти и (2) комбинационной схемы.

Функция (s1(t+1), ..., sk(t+1)) называется функцией возбуждения памяти автомата (она зависит от типов и элементов памяти и, вообще говоря, не обязана совпадать с функцией переходов ); сигналы (s1(t), ..., sk(t)) образуют обратную связь от памяти к комбинационной схеме.

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

Задание. Предложить способ кодирования состояний, стимулов и реакций определенного ранее абстрактного автомата.

Триггеры

В общем случае возможны разные типы элементов памяти — триггеры. Триггеры бывают синхронными и асинхронными. Некоторые разновидности триггеров, например, RS-триггеры, допускают как синхронное, так и асинхронное исполнение. Триггер называется синхронным, если его работа управляется тактовым сигналом (обозначаемым C или CLK от англ. clock).

Фронты тактового сигнала разбивают непрерывное время на дискретный набор интервалов, называемых тактами. Фронтом называется изменение уровня сигнала с низкого на высокий (положительный фронт, positive edge) или с высокого на низкий (отрицательный фронт, negative edge). Для простоты будем считать, что схемы работают по положительному фронту, то есть входные сигналы считываются при высоком уровне тактового сигнала и игнорируются при низком уровне.

Самыми распространенными типами элементов памяти являются D-, RS- (SR-) и JK-триггеры. D-триггеры (от англ. delay) являются синхронными, RS- (от англ. reset/set) и JR-триггеры (от англ. jump/kill) могут быть как синхронными, так и асинхронными. Ниже представлены таблицы переходов для данных типов триггеров.

D\T 0 1 RS\T 0 1 JK\T 0 1

0 0 0 00 0 1 00 0 1

1 1 1 01 1 1 01 0 0

10 0 0 10 1 1

11 1 0

D -триггер является не чем иным, как единичной задержкой: он запоминает и воспроизводит на выходе (с задержкой) то, что подается ему на вход.

R S-триггер устанавливает состояние в 1, если S=1; сбрасывает состояние в 0, если R=1; не изменяет состояние, если RS=00; комбинация RS=11 запрещена.

J K-триггер работает как RS-триггер (где J=S, K=R), но при подаче на вход комбинации JK=11 инвертирует состояние.

Задание. Определить функцию перехода синхронных D-, RS- и JK-триггеров.

D: Q(t+1) = D(t)

RS: Q(t+1) = ~R(t)&(Q(t)|S(t)) | (x&S&R), x неопределенное значение.

JK: Q(t+1) = ~Q(t)&J(t) | Q(t)&~K(t)

Функция возбуждения памяти автомата строится в зависимости от типа используемых триггеров. Очевидно, что для D-триггеров эта функция совпадает с функцией переходов.

Задание. Реализовать единичную задержку через (D-триггер), используя:

  1. синхронные RS-триггеры;

  2. синхронные JK-триггеры.

Триггеры можно определить через схемы из функциональных элементов с обратными связями. Формально семантику таких схем мы определять не будем. Идея заключается в том, что выходное значение схемы стабилизируется не сразу, а после серии итераций (входы нужно держать неизменными некоторое время). Полученное стабильное состояние и есть выходное значение. Например, асинхронный RS-триггер можно представить следующей схемой.

Эта схема на языке Verilog описывается следующим образом.

// асинхронный RS-триггер

module rs_flipflop(q, n, r, s);

output q, n;

input r, s;

nor gate1(q, r, n);

nor gate2(n, s, q);

endmodule /* rs_flipflop */

Домашнее задание. Нарисовать схему для синхронного JK-триггера, описать схему на языке Verilog, написать функциональный тест.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]