Триггеры
В общем случае возможны разные типы элементов памяти — триггеры. Триггеры бывают синхронными и асинхронными. Некоторые разновидности триггеров, например, 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-триггер является не чем иным, как единичной задержкой: он запоминает и воспроизводит на выходе (с задержкой) то, что подается ему на вход. RS-триггер устанавливает состояние в 1, если S =1; сбрасывает состояние в 0, если R =1; не изменяет состояние, если RS =00; комбинация RS =11 запрещена. JK-триггер работает как 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, написать функциональный тест.
|