Академический Документы
Профессиональный Документы
Культура Документы
St St
+1
Память
qK qK’
q2 q2’
q1 q1’
104
Если разделить комбинационную схему на две части: логику формирования
следующего состояния и функции выходов, то схема может быть представлена
следующим образом (рис.5.2).
Clock
Рис. 5.2. Структурная схема автомата Мили
Комбинационная часть автомата разделена на две схемы: схема выработки
функций следующего состояния и схема формирования выходных сигналов.
Состояние автомата – это совокупность внутренних переменных автомата
(state variables), значения которых в любой фиксированный момент времени
содержат всю информацию о прошлых входных воздействиях, необходимую
для того, чтобы объяснить поведение схемы в будущем.
Выходные сигналы автомата зависят как от входа в данный момент времени,
так и от состояния автомата.
На рис.5.3 представлена структурная схема автомата Мура.
Clock
Рис. 5.3. Структурная схема автомата Мура
Выход автомата Мура явно от входа не зависит.
На рис.5.4 представлена структурная схема автомата Мили с
конвейеризированным выходом.
Clock
Рис.5.4. Структурная схема автомата Мили с конвейеризированным выходом
lock
105
5.2. Классификация триггеров и защелок
Триггер служит для запоминания одного бита информации. Он является в
общем случае элементарным автоматом Мура, имеющим два состояния .
По логическому функционирoванию различают триггера типов RS, D, T, JK
и др. Используют также комбинированные триггеры, в которых совмещаются
одновременно несколько типов триггеров и триггеры со сложной входной
логикой.
В асинхронных триггерах переход в новое состояние происходит
непосредственно при изменении входных сигналов. Синхронный триггер
изменяет свое состояние в строго определенные моменты времени,
соответствующие действию активного сигнала на его синхронизирующем
входе СLK (Clock).
По способу восприятия синхросигналов триггеры делятся на управляемые
уровнем (защелки-Latch) и управляемые фронтом синхросигнала (flip-flop).
Управление уровнем означает, что при одном уровне синхросигнала (например,
при CLK=1) триггер воспринимает входные сигналы и реагирует на них, а при
другом уровне (при CLK=0) не воспринимает и остается в неизменном
состоянии. При управлении фронтом разрешение на переключение дается
только в момент перепада синхросигнала на его фронте или спаде.
По характеру процесса переключения триггеры делятся на одноступенчатые
и двухступенчатые. В одноступенчатом триггере переключение происходит
сразу (за один этап), а в двухступенчатом за два этапа (такта).
Функционирование триггера (защелки) может быть описано с помощью
таблицы истинности, характеристического уравнения, графа переходов,
матрицы функций возбуждения.
106
неустойчивое состояние (metastable state) соответствует случаю, когда
напряжения Vout1 и Vout 2 находятся примерно посередине между
логическим”0” и логической “1”.
Vout1
Устойчивое
состояние
Vin2= Vout1 Vin1 Q
1
Метастабильное
состояние Vin2 Q
State
2 (б) Vout =T(Vin)
Устойчивое
состояние
Vout
(а) Vin1= Vout2
Рис. 5.5. Бистабильная схема (б),
кривая 1- передаточная характеристика верхнего инвертора,
кривая 2 – нижнего.
Если удалось бы установить схему в такое состояние, то теоретически схема
могла бы находиться в этом состоянии сколь угодно долго. Так как напряжения
в любой цепи не являются идеальными, а имеют место случайные небольшие
колебания (шум), то через некоторое время схема попадет в одно (неизвестно в
какое) из двух стабильных состояний. Это объясняется наличием в цепи
положительной обратной связи.
Если же схема находится в любом устойчивом состоянии и в цепи V in
появился шум, то обратная связь возвращает схему назад, в свое устойчивое
состояние. Любая последовательностная схема имеет метастабильное состояние.
5.3. Защелки
5.3.1. Асинхронная RS-защелка
RS-триггер называют триггером с раздельными установочными входами.
Вход R (Reset) – вход сброса (установки в “0”) , вход S (Set) – вход установки в
“1”.
S Q S Q
R Q R Q
-0 0 1 0-
10
Рис. 5.7. Граф переходов RS-защелки
Для получения характеристического уравнения RS-защелки составим карту
Карно для Q* (рис.5.8 б). Текущие значения R t,St,Qt обозначим R,S,Q.
Табл.5.2
SQ
R S Q*
00 01 11 10
0 0 Q R
0 1 1 0 1 1 1
1 0 0 1
1 1 -
(а) (б)
Рис. 5.8. (а) сокращенная таблица переходов RS-защелки
(б) карта характеристического уравнения RS-защелки
Характеристическое уравнение RS-защелки: Q*= S + RQ.
Асинхронная RS-защелка является основой для построения всех остальных
типов триггеров.
Матрица функций возбуждения RS-защелки имеет следующий вид:
Табл. 5.3
Переход R S
00 0
01 0 1
10 1 0
11 0
Q Q
R S
Q Q
S
R
Q
Q
S
Q S Q
C C
Q
Q
R
R
109
Рис. 5.11. Схема синхронной RS-защелки и ее условное обозначение
Табл. 5.4
S R C Q* ~Q*
0 0 1 Qlast ~Qlast
0 1 1 0 1
1 0 1 1 0
1 1 1 - -
x x 0 Qlast ~Qlast
CQ C
SR 00 01 11 10 Q*
00 1 1
Характеристическое уравнение
01 1
R Q* = SC + RQ +CQ
11 1 - -
S
10 1 1 1
Q
Рис. 5.12. Карта для функции следующего состояния (Q*) синхронной RS-защелки
5.3.3. D-защелка
Триггер (защелка) типа D (от слова Delay) имеет один информационный
вход. Его состояние повторяет входной сигнал, но с задержкой, определяемой
синхросигналом. D-защелка в основном бывает синхронной.
Таблица истинности ( функционирования) D-защелки.
Табл. 5.5
D Q Q*
0 0 0
0 1 0
1 0 1
1 1 1
110
Табл. 5.6 Табл. 5.7
Переход D D C Q Q*
0 0 0 x 0 0 0
0 1 1 x 0 1 1
1 0 0 0 1 x 0
1 1 1 1 1 x 1
D Q
Q
C Q
C
D
111
Рис. 5.15. Схема D защелки: (а) построенная по полученным выражениям;
(б) D-защелка в схемотехнике TTL
Временные диаграммы управляемой положительным уровнем синхросигнала
D-защелки приведены на рис.5.16. Заштрихованные области в окрестности
спада синхросигнала определяют временные интервалы, в течение которых
сигнал на D-входе не должен изменяться (запретная зона).
Q
tHOLD
tSETUP
Рис. 5.16. Временные диаграммы D-защелки
Этот интервал включает время tSETUP (setup time – время установления) и
время tHOLD (hold time – время удержания ). t SETUP – это время до появления спада
тактового сигнала, в течение которого данные на входе не должны изменяться.
THOLD – это интервал времени после появления отрицательного фронта (спада), в
течение которого данные на входе должны быть неизменными.
Если входной сигнал изменяется внутри этого интервала, то значение
сигнала на выходе D-защелки непредсказуемо и состояние выхода может
оказаться метастабильным. Если предоставить триггер или защелку самой себе,
то схема рано или поздно выйдет из равновесия. Но если она находится в точке,
близкой к равновесию, выход из нее будет недопустимо долгим.
Как видно из выражений для Q*, при C=1 Q *=D, т.е. защелка превращается в
логический элемент, выполняющий функцию повторителя и инвертора. Так
как при C=1 любое изменение информационного входа сразу же появляется на
выходах, триггеры данного типа называются прозрачными.
Синхросигнал позволяет переключать защелку при необходимости на
прямую передачу информационного сигнала D на выход (режим прозрачности).
При изменении тактового сигнала (в рассматриваемом случае из 1 в 0) в ней
фиксируется значение сигнала D в момент перехода синхросигнала из 1 в 0.
Отсюда и название “ защелка”.
Описание защелки на языке Verilog:
module d_latch(data, clk, q);
input data, clk;
output reg q;
always @(clk,data)
begin
if (clk)
q<=data;
end
112
endmodule // d_latch
При использовании оператора if для описания последовательностной логики
рекомендуется использовать неполный if, чтобы подразумевалось, что сигнал
на выходе схемы должен сохранять свое значение при последнем активном
значении селектора в операторе if.
0 D 0
Q Q
D 1 1
(a). C (б). C
113
Taбл. 5.9
~R ~S D C Q* Режим
0 1 x x 0 Установка “0”
1 0 x x 1 Установка “1”
0 0 x x Запрещенная комбинация
1 1 0 0 Запись “0”
1 1 1 1 Запись “1”
Как видно из таблицы истинности (Табл.5.9), эти два входа доминируют над
входами D и C: если хотя бы на одном из входов будет низкий уровень (0), то
триггер на информацию на входах D и C не реагирует.
Схема D-триггера приведена на рис.5.20.
S
1 A3
A1
2 5 Q
C
A2
3 6 Q
4 A4
D
R
114
фронта синхросигнала. Следовательно, время установления (t SETUP или tSU)
сигнала на входе D триггера определяется задержкой вентилей 4 и 1. Время
удержания (tHOLD) определяется задержкой вентиля 2.
После прихода синхроимпульса C=1 состояние выходной RS-защелки
становится нечувствительным к изменению сигнала на входе D. Для
следующего переключения триггера сначала необходимо подать C=0 (режим
хранения для выходного защелки). Фронтом следующего синхроимпульса
триггер будет переведен в новое состояние, определяемое значением сигнала на
информационном входе D. Комбинация R =S = 0 является запрещенной.
S
S Q
D D D Q
Clk C Clk
Q C Q
R R
(а). (б). R
Q
THOLD
TSETUP
Рис. 5.20. Временные диаграммы D-триггера
Заштрихованный интервал определяет запретную зону (в окрестности фронта
синхросигнала) в пределах которой входной сигнал (D) не должен изменяться.
Иначе триггер попадет в метастабильное состояние.
Этот интервал времени состоит из времени установления t SETUP, в течение
которого сигнал на входе D должен быть стабильным до поступления фронта
115
синхросигнала C, и времени удержания t HOLD, в течение которого сигнал на D-
входе должен быть стабильным после прихода синхросигнала.
Описание D-триггера на языке Verilog
module dff_async(reset, set, data, clk, q);
input clk, reset, set, data;
output reg q;
always@(posedge clk,negedge reset,negedge set)
begin
if (reset ==1’b0)
q<=1’b0; //reset is preferred
else if (set==1’b0)
q<=1’b1;
else q<=data;
end
endmodule // dff_async
1
Рис. 5.21. Граф переходов Т-триггера
Характеристическое уравнение T-триггера имеет следующий вид:
Q* = TQ + TQ = T Q.
Характеристическое уравнение Т-триггера со входом тактирования C будет
следующим: Q* = ( T Q )C + QC.
Построение схемы T-триггера на базе RS-триггера производится аналогично
построению D-триггера. Таблица 5.10 дополняется столбцами для входов R и S
базового триггера, в результате получается таблица 5.11.
116
Табл. 5.11
*
Q Q R S
0 0 0 - 0
0 1 1 0 -
1 0 1 0 1
1 1 0 1 0
S
Q
CLK C
Q
T R
M S
S S Q
CLK C C
Q
T R R
Табл. 5.12
117
Переход Т
0 0 0
0 1 1
1 0 1
1 1 0
Master-Slave RS-триггер
Master-Slave RS-триггер с разнополярным управлением изображен на
рис.5.24.
S S S
Q
C C
R R R Q
CLK
Рис. 5.24. Двухступенчатый RS-триггер с разнополярным управлением
Первая защелка является ведущей (master), вторая защелка называется
ведомой. Первая защелка управляется положительным уровнем
синхросигнала CLK, а вторая – отрицательным.
D Q D Q
Т
CLK Q Т Q
C C
118
Описание на Verilog T-триггера с асинхронным сбросом и прямым и
инверсным выходами.
module tff_qn(t, clk, reset, en, q,qn);
input t, reset, clk;
output reg q,qn;
always @( posedge clk or negedge reset)
if (!reset)
q<=1’b0;
else
q<=q^t;
always @(q)
qn<=!q;
endmodule
5.7. JK-триггер
JK-триггер является наиболее универсальным триггером, так как на его
основе могут быть выполнены все ранее рассмотренные триггеры.
Таблица истинности JK-триггера (Табл. 5.14).
Табл. 5.14
Jt Kt Qt Qt+1
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 0 1 0
1-
J J Q
0- 0 1 -0
C > -1
K
K Q
Рис. 5.27. Графический символ JK-триггера Рис. 5.28. Граф переходов JK-
триггера
Сокращенная таблица функционирования JK-триггера.
Табл. 5.15
Jt Kt Q*
0 0 Qlast
0 1 0
1 0 1
1 1 Qlast
119
Матрица функций возбуждения JK-триггера имеет следующий вид:
Табл. 5.16
Переход J K
0 0 0
0 1 1
1 0 1
1 1 0
KQ
00 01 11 10 Q*
j
0 1 Q*= JQ + KQ
1 1 1 1
S S Q
J
C C
K Q
R R
120
D, а на вход K его инверсию, то получается D-триггер. При J=K=1 JK-триггер
превращается в T- триггер. Если J=K, получается T-триггер со входом enable.
Триггер превращается в RS-триггер при JK1.
5.7.2. JK-триггер, управляемый фронтом синхросигнала
Построение JK-триггера на базе D-триггера, управляемого фронтом
синхросигнала.
Табл. 5.18
J K Q Q* D
0 0 0 0 0
0 0 1 1 1
0 1 0 0 0
0 1 1 0 0
1 0 0 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 0
J 0 Q
D
К 1
CLK Q
C
121
JK-триггеры, переключающиеся по фронту синхросигнала не имеют
проблем, связанных с захватом единиц и нулей. Поэтому они практически
вытеснили JK-триггеры типа “Master-Slave”.
Описание JK-триггера с инверсным асинхронным сбросом на Verilog.
module jk_ff(j,k,clk,reset,q);
input (j,k,clk,reset);
output reg q;
always @ (posedge clk or negedge reset)
begin
if (!reset)
q <= 1’b0;
else case ({j,k})
2’b00: q <=q;
2’b01: q <=1’b0;
2’b10: q <=1’b1;
2’b11: q <=~q;
default: q <= 1’b0;
endcase
end
endmodule // jk_ff
0 0
D
din q din 1 D
1 1 q
en
en CLK reset CLK
reset CLK Дополнительная
CLK задержка
Рис. 5.33 Схема D-триггера с возмож- Рис. 5.34. Схема D-триггера с возмож-
ностью загрузки и асинхронным сбросом ностью загрузки и синхронным сбросом
122
Если en=1, на вход триггера подается входной сигнал din, при en=0 на вход
триггера поступает текущее значение триггера q_out. Кроме этого триггер имеет
вход асинхронного сброса reset.
module D_ff_asynch(reset,en,clk,din,q);
input clk, reset, en,din;
output reg q;
always @(posedge clk or negedge reset)
if (!reset)
q <= 1’b0; //asynchronous reset
else if(en) //synchronous load
q<=din;
else q<=q;
endmodule
В списке чувствительности оператора always сигнал асинхронного сброса
присутствует. У сигнала асинхронного сброса более высокий приоритет, чем у
фронта CLK.
C
D
C
Рис. 5.35. Схема двухфронтового D-триггера, на базе двух управляемых фронтом D-
триггеров
124
1
S
D 0 1
Q D Q
C 0
1
0 C
Табл.5.20
CLR(R) Preset (S) C D Q* mode
0 0 0 0 “0” writing
0 0 1 1 “1” writing
0 0 ¯ 0 0 “0” writing
0 0 ¯ 1 1 “1” writing
0 0 0 x Qlast Hold
0 0 1 x Qlast Hold
1 x x x 0 Asynch. reset
0 1 x x 0 Asynch. set
Пример 5.1
Описание на Verilog n-разрядного регистра, в который записывается
информация по обоим фронтам сигнала enable(en). По положительному
фронту сигнала информация со входа d записывается в регистр q1, a по
отрицательному фронту – в регистр q2. Вводятся внутренние переменные
q1, q2. При en=1 на выход передается q1, a при en=0 – q2.
module double_edge(d,en,q);
input [7:0] d;
input en;
output[7:0]q;
reg[7:0]q,q1,q2; //q1,q2 – internal variables
always@(en)
begin
if(en==1) q1=d;
else q2=d;
q=en? q1:q2;
end
endmodule
125
5.10.1. D-триггер типа “Master-Slave”
Триггер данного типа конфигурируется из последовательно соединенных
двух защелок, управляемых разными уровнями синхросигналов.
1 1
Q D Q
D 0 0
CLK
CLK
Рис. 5.37. D-триггер, управляемый положительным фронтом , и его
графический символ C
В отличие от двухфронтовых схем, защелки в этих триггерах соединены
последовательно.
0 0
Q D Q
D 1 1
CLK
D 0
D Q D
TI 1
TE
QN ТI
TE CLK
Reset CLK
CLK
Рис. 5.40. Схема тестируемого триггера и его обозначение
Когда сигнал TE на входе разрешения тестирования (test enable input) имеет
неактивное значение, схема ведет себя как обычный D-триггер. Когда же подан
сигнал, разрешающий тестирование, триггер берет данные со входа TI (test
input).
Таблица истинности тестируемого D-триггера приведена в табл. 5.21.
Табл. 5.21
Reset ТЕ TI D CLK Q QN
1 0 x 0 0 1
1 0 x 1 1 0
1 1 0 x 0 1
1 1 1 x 1 0
1 x x x 0 Last Q Last QN
1 x x x 1 Last Q Last QN
0 x x x x 0 1
129
Если используется k внутренних переменных и автомат имеет K состояний,
то число вариантов кодирования определяется отношением 2 k!/ ((2k - К)!k!).
2k! –общее число перестановок k-битных кодов.
(2к-К)! – во столько раз сокращается число перестановок кодов из-за
неиспользуемых комбинаций.
k! –столько вариантов кодирования существенно эквивалентны;
В общем случае, единственный способ найти лучший вариант кодирования
состоит в том, чтобы перепробовать все вариaнты кодирования. Однако это
слишком большая работа. Вместо этого большинство разработчиков
руководствуются следующими принципами при выборе варианта кодирования:
Код начального состояния выбирается таким образом, чтобы автомат
легко было установить в это состояние. Обычно берут 00…0.
Минимизируется число внутренних переменных, которые изменяются при
каждом переходе.
Если существуют неиспользуемые состояния, т.е. если К2k, то
выбираются наиболее удобные из имеющихся комбинаций внутренних
переменных. Как правило, не используют для кодирования вариант
бинарного кодирования, при котором коды назначаются подряд (первые
K комбинаций).
Рассматриваются варианты с использованием большего числа
переменных, чем минимальное. Наиболее часто используется вариант
кодирования, когда каждому состоянию соответствует триггер. При этом
комбинационная схема получается наиболее простой.
Простейшее правило кодирования состояний:
Если есть два состояния, из которых автомат под воздействием
одинакового сигнала переходит в одно и то же состояние, то исходные
два состояния должны быть закодированы соседними кодами. Это
упрощает функции возбуждения.
Упрощение функций выхода в случае автомата Мили:
если есть два состояния, при переходе из которых вырабатывается один и
тот же выходной сигнал, то для упрощения функций выхода эти два
состояния должны быть закодированы соседними кодами.
Упростить функции выходов автомата Мура можно следующим образом:
если два состояния автомата отмечены одинаковым выходным сигналом, то они
по возможности должны быть закодированы соседними кодами (код Грея).
Два кода называются соседними, если они отличаются значением только
одного разряда, или другими словами – если расстояние Хэмминга между этими
кодами равно единице.
5.12.3. Определение функций возбуждения и функций выходов
автомата
Для определения функций возбуждения используется кодированная таблица
переходов. Функции возбуждения определяются для каждого типа триггера в
130
соответствии с его матрицей функций возбуждения. Производится поразрядное
сравнение кода текущего состояния с кодом следующего состояния. На каждом
переходе определяются значения функций. При определении функций
возбуждения для D-триггерoв сравнение не производится, т.к. значения функций
на каждом переходе совпадают с кодом следующего состояния.
Для проектирования схемы цифрового автомата удобно пользоваться
следующей методикой:
1. Исходя из условия функционирования автомата, определяется число
состояний автомата.
2. Автомат представляется в одной из стандартных форм (например, в виде
графа или в табличной форме). Производится минимизация числа
состояний автомата.
3. Выбирается тип триггера. Строится кодированная таблица переходов.
4. По этой таблице определяются функции выходов и возбуждения
триггеров.
5. Далее выполняется синтез комбинационной логики автомата.
Производится совместная минимизация функций.
6. На основе полученных функций строится логическая схема автомата.
Рассмотрим применение неиспользуемых состояний. Если число состояний
автомата при наличии k триггеров меньше, чем 2 К, то в зависимости от
предъявляемых требований, используют два подхода:
1.Если автомат каким-то образом может попадать в неиспользуемые состояния,
например, из-за неисправностей в аппаратуре, неожиданных входных
воздействий или ошибок проектирования, то все неиспользуемые состояния
включаются в таблицу состояний и явным образом указываются переходы из
них так, чтобы при любом входном воздействии автомат попадал в начальное
состояние, состояние незанятости или в какое-либо другое безопасное
состояние. Это снижает риск сбоя.
2. Если предполагается, что автомат никогда не попадает неиспользуемое
состояние, то эти состояния можно считать “безразличными”. В большинстве
случаев это упрощает функции возбуждения.
5.12.4. Примеры синтеза автоматов
Пример 5.4. Синтез автомата Мили на T-триггерах.
Задача: Построить схему автомата, предназначенного для формирования
сигнала перегрузки пассажирского лифта.
Допустим, что в кабине лифта, вмещающей шесть человек, одновременно
могут подниматься не более трех человек. Если число пассажиров превышает
цифру три, то должен выдаваться сигнал перегрузки, который блокирует работу
лифта. Пассажиры заходят в лифт (или выходят из лифта) по одному.
В соответствии со словесным описанием алгоритма определим входной
алфавит автомата следующим образом:
131
X0 число пассажиров в лифте не изменяется;
X +1 число пассажиров в лифте увеличивается на одного;
X - 1 число пассажиров в лифте уменьшается на одного.
Выходной алфавит зададим следующим образом:
Y = {0,1}; 0 – отсутствие перегрузки, 1 – перегрузка .
Очевидно, что число состояний автомата должно равняться семи:
S0 – лифт пуст, S1 – в лифте один человек, S2 – в лифте два человека, S3 – в
лифте три человека, S4 – в лифте четыре человека, S5 – в лифте пять человек и S6
– в лифте шесть человек. S = {S0, S1, S2, S3, S4, S5, S6}.
X0/0 X0/0 X0/0 X0/0
132
Построение кодированной таблицы переходов автомата
На основе кодированной таблицы переходов автомата определяются функции
переходов и выходов автомата.
Табл. 5.23
Текущее Входной Следующее Выходной Функции
состояние сигнал состояние сигнал возбуждения
q1 q2 x1 x2 q1 q2 q3 y Т1 Т2 Т3
q3
X0 00 S0 0 0 0 0 0 0 0
S0 000 X+1 01 S1 0 0 1 0 0 0 1
X-1 10 S0 000
X0 00 S1 0 0 1 0 0 0 0
S1 001 X+1 01 S2 0 1 0 0 0 1 1
X-1 10 S0 0 00 0 0 0 1
X0 00 S2 0 1 0 0 0 0 0
S2 010 X+1 01 S3 0 1 1 0 0 0 1
X-1 10 S1 0 0 1 0 0 1 1
X0 00 S3 0 1 1 0 0 0 0
S3 011 X+1 01 S4 1 0 0 1 1 1 1
X-1 10 S2 0 1 0 0 0 0 1
X0 00 S4 1 0 0 1 0 0 0
S4 100 X+1 01 S5 1 0 1 1 0 0 1
X-1 10 S3 0 1 1 0 1 1 1
X0 00 S5 1 0 1 1 0 0 0
S5 101 X+1 01 S6 1 10 1 0 0 1
X-1 10 S4 1 0 0 1 0 1 1
X0 00 S6 1 1 0 1 0 0 0
S6 110 X+1 01 S6 110 1 0 0 0
X-1 10 S5 1 0 1 1 0 1 1
X0 00 S6 1 1 0 1 0 0 0
Пример 5.5. Синтез автомата Мура (на JK-триггерах)
Задача: Построить схему автомата, который при подаче на вход каждой
входной последовательности из нулей и единиц длины три вычисляет бит
четности Y. Бит Y=1, если число единиц во входной последовательности
нечетно. В обратном случае Y=0. Входной и выходной алфавиты автомата:
X={0,1}, Y={0,1}.
Построение графа автомата
Сначала указываем на графе начальное состояние S 0. Затем состояния S1 и S2,
в которые автомат переходит под действием сигналов 0 и 1. После этого строим
состояния S3 ,S4 и S5, S6, в которые автомат переходит из состояний S 1 и S2. Из
этих четырех состояний автомат переводится не в восемь состояний, а в два S 7 и
S8, так как цепочка из трех символов на вход автомата уже подана, и можно
принять решение о значении выходного сигнала. Из состояний S 7 и S8 автомат
133
возвращается в начальное состояние S0. Граф автомата, полученный в
результате, приведен на рис. 5.45.
Минимизация состояний автомата Мура
В данном примере используется табличный метод минимизации состояний
автомата, основанный на последовательном разбиении состояний автомата на
классы 1-, 2- и k-эквивалентных состояний, рассмотренный в главе 4 для
автомата Мили.
S0/0
0 1
S1/0 S2/0
0 1 0 1 0 1 1 0
S7/0 S8/1
Разбиение P0 ={A0,B0}. A0 ={S0, S1, S2, S3, S4, S5, S6, S7}; B0 = S8
Разбиение P1 на классы одноэквивалентных состояний (Табл. 5.26),
Разбиения P2,P3,P4 представлены таблицами 5.25, 5.26 и 5.27
соответственно.
134
Табл. 5.25
State X=0 X=1 Класс
S0 A0 A0 A1
S1 A0 A0 A1
S2 A0 A0 A1
S3 A0 B0 B1
S4 B1 A0 C1
S5 B1 A0 C1
S6 A0 B0 B1
S7 A0 A0 A1
S8 - - D1
S0/0
0 1
S1/0 S2/0
1 1
0 1 0 0 1 0
S36/0 S45/0
1 1
0 0
S7/0 S8/1
136
Построение схемы автомата (структурный синтез автомата)
1. Кодирование состояний автомата
Число триггеров k выбираем минимальным для того, чтобы упростить синтез
комбинационной схемы автомата. k=log 27 =3.
При кодировании состояний с целью получения более простых функций
возбуждения будем следовать следующему правилу. Если в некоторое
состояние Sk автомата есть переход из двух состояний Si и Sj под действием
одного и того же входного сигнала, то состояния Si и Sj должны быть
закодированы соседними кодами (unit distant assignment).
Назначение кодов состояниям:
S0 – 000, S1 – 001, S2 – 010, S7 –100, S8 –110, S36 – 011, S45 –101
В состояние S0 есть переходы из S7 и S8 под действием одинаковых
сигналов. S7 и S8 обязательно кодируются соседними кодами.
В качестве элементов памяти используется JK-триггер.
2. Построение структурной таблицы переходов
Для определения функций возбуждения используем матрицу функций
возбуждения JK-триггера (Табл. 5.30).
Табл.5.30
Переход J1 K1
00 0 -
01 1 -
10 - 1
11 - 0
Структурная таблица переходов автомата представлена в Табл.5.31.
Табл. 5.31
Present State y X Next State J1 K1 J2 K2 J3 K3
q1q2q3 q1q2q3
S0 000 0 0 S1 001 0 - 0 - 1 -
1 S2 010 0 - 1 - 0 -
S1 001 0 0 S36 011 0 - 1 - - 0
1 S45 101 1 - 0 - - 0
S2 010 0 0 S45 101 1 - - 1 1 -
1 S36 011 0 - - 0 1 -
S36 011 0 0 S7 100 1 - - 1 - 1
1 S8 110 1 - - 0 - 1
S45 101 0 0 S8 110 - 0 1 - - 1
1 S7 100 - 0 0 - - 1
S7 100 0 0 S0 000 - 1 0 - 0 -
1 S0 000 - 1 0 - 0 -
S8 110 1 0 S0 000 - 1 - 1 0 -
1 S0 000 - 1 - 1 0 -
137
Так как память автомата реализуется на JK-триггерах, требуется определить
6 функций возбуждения J1, K1 ,J2, K2, J3, K3 и одну выходную функцию y.
Построение карт Карно для функций возбуждения и функции выхода
Функции возбуждения JK-триггеров зависят от переменных q1,q2,q3 и x.
Число переменных в функциях выхода равно трем (q1,q2,q3), так как в автомате
Мура выходной сигнал от входа явно не зависит.
Карты Карно для функций возбуждения триггеров J1, K1, J2,K2, J3,K3
представлены на рис. 5.47.
q3 q3
J1
q3 x q3 x K1
q1q2 00 01 11 10 q1q2 00 01 11 10
00 1
00 – – –q3 –
01 1 1 1 01 – – – –
q2 q2
11 – – – – –
q1 q1 11 1 1 –
10 – – – – 10 1 1
x x
q3
q3 x J2 q3 x K2
q1q2
00 01 11 10 q1q2 00 01 11 10
00 1 1 00 – – – –
01 – – – – 01 1 1
q2 q2
11 – – – – q1 11 1 1 – –
q1
10 1 10 – – – –
x x
q3 q3
q3 x J3 q3 x K
q1q2 00 01 11 10 q1q2 00 01 11 10 3
00 1 – – 00 – –
01 1 1 – – 01 – – 1 1
q2 q2
11 – – 11 – – – –
q1
10 – – 10 – – 1 1
x x
Рис. 5.47. Определение функций возбуждения J1,K1,J2,K2,J3,K3
138
Число переменных в функциях выхода равно трем (q1,q2,q3), так как в
автомате Мура выходной сигнал от входа явно не зависит.
Карты Карно для функций выхода представлены на рис. 5.48.
q2
q2 q3
q 00 01 11 10 J1= q3x + q2x; K1= q3;
1
0 y J2= q1q3x +q3x; K2 = q1 +x;
1 – 1 J3 = q1x + q1q2; K3 = q1 + q2;
q3 y = q1q2;
(а) (б)
Рис. 5.48. Карта Карно функции y
q3
x
q2
~x J q1
~q3
K ~q1
~q1
C
x
~q3
q1
~x q2 y
J q2
q1 K
~q2
~x
x x C
~x ~q1
~x
q3
J
q2 K
~q3
C q3
q1
Reset Clock
Рис. 5.49. Схема автомата, вычисляющего бит четности (пример 5.4)
139
Пример 5.5
Синтез автомата Мура на D-триггерах
Задача: Построение схемы автомата Мура, описанного в параграфе 4.3.
11
01 00
00 S0/ S1/
10
1 01 0
10
11 11
01
10 S2/
0
00 синтезируемого автомата
Рис. 5.50. Граф
Память автомата построим на управляемых фронтом D-триггерах.
Число триггеров выберем минимальным n=log23 =2.
Используем соседнее (код Грея) кодирование состояний автомата:
S0 - 00. S1 -10, S2 – 11. Так как автомат имеет всего три состояния и граф
представляет собой цикл нечетной длины, закодировать все состояния
соседними кодами или кодами с расстоянием Хэмминга, равным единице,
невозможно.
1. Структурная таблица переходов автомата
Табл. 5.32
Текущее Входной Следующее Функции
состояние сигнал состояние возбуждения
y q1 q2 x1 x2 q1q2 d1 d2
S0 1 0 0 S0 00 0 0
00 0 1 S1 10 1 0
1 0 S1 10 1 0
1 1 S2 11 1 1
0 0 S1 10 1 0
0 1 S2 11 1 1
S1 0 10 1 0 S2 11 1 1
1 1 S0 00 0 0
S2 0 0 0 S2 11 1 1
11 0 1 S0 00 0 0
1 0 S0 00 0 0
1 1 S1 10 1 0
x2
Пример 5.6
Составим Verilog описание автомата Мура, граф переходов которого
приведен на рис.5.52.
141
S0/0
0 1
S1/0 S2/0
1 1
0 1 0 0 1 0
S3/0 S4/0
1 1
0 0
S5/0 S6/1
142
S4: next_state = x? S5: S6;
S5: next_state = S0;
S6: next_state = S0;
default: next_state=S0;
endcase
// output logic
always @(state)
if (state==S6) y=1; else y=0;
endmodule
Пример 5.7.
Описание на Verilog автомата Mили
Автомат имеет два входа w 1 и w2 и выход y. Функция автомата состоит в
сравнении входных последовательностей из нулей и единиц, поступающих
на эти входы. Если эти последовательности совпадают в течение четырех
последовательных тактов, y=1. Во всех остальных случаях y=0.
Например:
x1: 0110111000110
x2: 1110101000111
y: 0000100001110
143
01/0 00/0 00/0 00/0 00/1
10/0 11/0 11/0 11/0 11/1
S0 S1 S2 S3
01/0
10/0 01/0
10/0
01/0, 10/0
Автомат Мили можно описать с помощью двух always блоков: один для
комбинационной логики и второй для логики состояния (регистра). Списки
чувствительности для функции следующего состояния и функции выходов
совпадают. Иногда для большей наглядности (как в данном примере)
используется три always блока.
module Mealy_fsm(x1,x2,y,clk,reset);
input x1,x2,clk,reset;
output reg y;
reg [1:0] state, next_state;
parameter S0=2'b00, S1=2'b01, S2=2'b10, S3=2'b11;
//register
always @(posedge clk, negedge reset)
if (!reset) //asynchronous reset
state<=S0;
else state<=next_state;
//next state logic
always @(state, x1, x2)
case (state)
144
S0:next_state=(x1==x2)? S1:S0;
S1:next_state=(x1==x2)? S2:S0;
S2:next_state=(x1==x2)? S3:S0;
S3:next_state=(x1==x2)? S3:S0;
default: next_state=S0;
endcase
//output logic
always @(state, x1, x2)
if ((state==S3)&&(x1==x2)) y=1;
else y=0;
endmodule
145
SystemVerilog упрощает правила применения операторов присваивания и
создания иерархических портов.
Оператор assign может использоваться для переменной типа logic вне
always блока. В Verilog традиционно assign использовался только для
переменной типа wire. Почти все сигналы SystemVerilog могут быть logic *(wire
только tri).
Оператор typedef определяет значение statetype как двухбитный logic тип с
тремя возможными значениями: S0, S1 или S2.
State и nextstate сигналы типа statetype.
Константам перечисления, упомянутым в определении типа, по умолчанию
присваиваются порядковые значения: S0=00, S1=01, и S2=10.
Они могут быть явно изменены пользователем, но программа-синтезатор
рассматривает их как рекомендацию, а не как требование.
Например, следующий фрагмент кодирует состояния трехбитным унарным
(1-hot) кодом:
typedef enum logic [2:0] {S0 = 3'b001, S1 = 3'b010, S2 = 3'b100} statetype;
146
5.14. Анализ тактируемых синхронных автоматов
Цель анализа – определение логических функций переходов и выходoв, для
того, чтобы можно было предсказать поведение схемы.
Aнализ тактируемых синхронных автоматов выполняется в три основных
шага:
1. Определяются функции переходов и выходов и .
2. По полученным функциям строятся таблицы переходов и выходов
автомата.
3. Строится граф переходов автомата.
При анализе автомата используется характеристическое уравнение триггера
или защелки. Характеристическое уравнение это есть зависимость
следующего состояния триггера или защелки от его текущего состояния и
значений сигналов на его входах.
q2
~x
d1 q1
~q1 D
~q2
x ~q1
C
~q1
q2 ~q1
q3 y
q1
q3 d2 q2
x D
x ~q2 ~q2
~x q3 C
~q1
~x
d3 q3
q1 D
x
C
CLK
Reset
147
Рис. 5.54. Схема анализируемого автомата
Сначала рассматривается поведение памяти автомата. Для этого
определяются по схеме функции возбуждения d1, d2, d3.
d1 = q2x + q1q2x ;
d2 = q1q2 + q1q3x + q2q3;
d3 = q1x + q2q3 +q1x;
Используя характеристическое уравнение D-триггера, определяются
следующие состояния триггеров Q1*, Q2*, Q3*.
Q1* = q2x + q1q2x ;
Q2* = q1q2 + q1q3x + q2q3;
Q3* = q1x + q2q3 +q1x;
Выходной сигнал автомата определяется следующим выражением:
y = q1 q3;
Анализируемый автомат является автоматом Мура, так как выходной сигнал
от входа не зависит.
Для каждой комбинации “состояние – вход” определяется следующее
состояние и выходной сигнал. Составляется таблица переходов
анализируемого автомата (Табл.5.33 ).
В результате анализа удалось найти шесть состояний.
0 Табл. 5.33
X 0 1 Выход
q1 q2 q3
0 0 0 0 0 1 1 0 0 0
0 0 1 0 1 1 1 1 1 1
1 0 0 0 0 0 0 0 1 0
0 1 1 1 1 1 0 1 0 1
0 1 0 1 1 1 0 1 0 0
1 1 1 1 0 0 0 1 1 0
148
∎
CLK
B T T
Y
C C 149
Reset
CLK
Рис. 5.56. Схема анализируемого автомата
Определим функции возбуждения t1 и t2 триггеров. t1= B; t2= ABq1;
Характеристическое уравнение T-триггера: q* = qt;
Подставим выражения для функций возбуждения в характеристические
функции триггеров и получим следующее:
q1* = q1t1= q1B;
q2* = q2t2= q2ABq1;
y = Aq2 ;
Построим таблицу переходов автомата.
Табл. 5.36
X A B
S
q1 q2 00 01 10 11
00 0 0, 1 1 0,1 0 0,0 1 0,0
10 1 0, 1 0 1,1 1 0,0 0 0,0
01 0 1, 0 1 0,0 0 1,0 1 1,0
11 0 1, 0 0 0,0 1 1,0 0 0,0
150
В общем случае при анализе тактируемых автоматов выполняются
следующие шаги:
1. Составляются уравнения возбуждения для информaционных входов
триггеров.
2. Для получения уравнений переходов производится подстановка уравнений
возбуждения в характеристические уравнения триггеров.
3. По уравнениям переходов строится таблица переходов автомата.
4. Составляются уравнения выходов.
5. Значения выходных сигналов добавляются в таблицу переходов.
6. Состояниям присваиваются имена, которые заменяют внутренние
переменные в таблице переходов-выходов.
7. (Необязательный шаг). Вычерчивается диаграмма переходов (граф).
Tsetup TCCQ
Рис. 5.58. Временная диаграмма работы D-триггера
TCCQ – минимальное время от изменения входа до изменения выхода
триггера, а TCLK-Q –максимальное время (propagation delay CLK to Q).
151
Decision window – интервал времени, в течение которого входной сигнал не
должен измениться, иначе триггер может оказаться в метастабильном
состоянии.
Требование: значения на входах триггеров синхронной системы должны
быть стабильны в течение времени предустановки (Setup Time -Tsetup) до
поступления тактового сигнала и времени удержания (Hold Time - Thold) после
поступления тактового сигнала. Сумма времен Tsetup и Thold называется
окном принятия решения или апертурным временем схемы.
Синхронная схема (или синхронный тракт обработки информации) в общем
случае может быть представлена следующим образом (рис.5.59).
R1 Комбина- R2
Q1 D2
ционная
логика
CLK
CLK
TH TL
TCLK
Выходы
триггеров R1
TCLK-Q
Входы
триггеров R2
TCOMB
152
Время tCOMB требуется для того, чтобы сформировались новые выходы
комбинационной схемы (учитывается задержка как логических схем, так и
проводников TRoutimg).
Время предустановки
Для установления сигналов на входах триггеров и других тактируемых
устройств требуется отвести время TSETUP.
TSETUP ограничивает самое позднее время поступления (т.е.максимальную
задержку поступления) сигналов на информационные входы триггеров ( при
максимальной величине TCLK-Q и TCOMB).
Рассмотрим пример:
ab
CL1 d а
D Q CLK-Q
(min)
cd
CL2 b Q
c
D
(max) D-CLK
CLK
Рис. 5.61. Пример структуры автомата
CL1– комбинационная логика с минимальной задержкой,
CL2 – комбинационная логика с максимальной задержкой.
CLK
TH TL
TCLK
а
TCLK-Q
b
Tdab
T
Setup Slack SETUP
Рис. 5.62. Максимальная задержка для ограничения времени предустановки
TCLK_MIN= T CLK-Q(max) + Tab +TSETUP
Tab –задержка на пути от a к b ( задержка схемы CL2 - Tcomb_max) .
Схема будет работать надлежащим образом только в случае, когда
выполняется неравенство:
TCLK >= T CLK-Q + Tcomb_max +TSETUP
Tcomb_max<= TCLK –( T CLK-Q + TSETUP)
153
Это неравенство называют ограничением времени предустановки или
ограничением максимальной задержки в комбинационной схеме.
Как правило, задержка комбинационной схемы это единственный параметр,
который может изменять проектировщик, так как период тактового сигнала
будущей схемы может быть задан до разработки, а времена TCCQ , Tsetup и
Thold определяются используемыми библиотеками или системами логических
элементов и находятся вне влияния разработчика.
У правильно спроектированной схемы должен быть положительный,
ненулевой запас по времени, предусматривающий возникновение неожиданных
ситуаций (компоненты с предельно допустимыми параметрами, пониженное
напряжение питания и др.), а также задержку синхросигнала.
Величину TCLK – TCLK-Q(max) – Tcomb_max – TSETUP называют запасом по
времени установления (setup-time margin или setup slack).
Схема не будет работать, если эта величина, называемая T SLACK,
отрицательна. TSLACK = TCLK - TCLK MIN.
Время удержания
Другим временным параметром задается требование к времени удержания
THOLD.
CLK
TH TL
TCLK
c
TCCQmin Tc_cd T
HOLD SLACK
THOLD
154
Величина TCC-Q(MIN) + TCOMB(MIN) - THOLD является запасом по времени
удержания (hold-time margin или hold slack).
Tmin Tmax
CLK
D D
CLK CLK
CLK
155
Пусть в некоторый момент времени после подачи очередного тактового
a 01
сигнала a=0, b=0, c=0, d=1. Критический путь возникает, когда a изменяет
01
значение из 0 в 1. Это приводит
D переключению
е е из 0 в 1, после этого g
изменяется из 1 в 0.
Критический путь проходит через три логических элемента.
b=0
D
c=0 01 f F
D
D
10
d=1 g G
D D
CLK
156
Синхронная схема на переключающихся по фронту триггерах работает
правильно только в том случае, когда переключающий фронт тактового сигнала
поступает на все триггеры в один и тот же момент времени.
На рис.5.68 показано, что может произойти в противном случае.
FF1 q1 FF2 q2
D_in
D_in
CLK1
CLK2
TSKEW
q1
неправильно
q2
правильно
Рис. 5.68. Влияние разброса задержек тактового сигнала
Если задержка распространения TCLK-Q1 FF1 и задержка физического
соединения q1 со входом FF2 в сумме меньше задержки CLK2 по отношению к
CLK1, то изменение значения по фронту CLK1, то есть новое состояние, может
достичь триггера FF2 раньше, чем CLK2. В этом случае триггер FF2 может
оказаться в неверном состоянии (рис.5.62).
Различие между моментами прихода тактового сигнала на различные
устройства носит название разброса задержек тактового сигнала (Clock skew).
Если сигнал на выходе q1 изменяется в запрещенном интервале (TSETUP,
THOLD) поступления фронта сигнала CLK2, то может быть нарушено
требование, касающееся времени удержания (THOLD) сигнала на входе триггера
FF2, и в этом случае триггер FF2 может стать метастабильным и выработать
непредсказуемое значение сигнала на своем выходе.
157
CLK1
TH TL
CLK2
TCLK
Выходы
триггеров R1
TCLK-Q
Входы
триггеров R2
TCOMB
TCC-Q TSKEW
TSETUP
TSKEW
CLK
158
Рис. 5.70. Простейшее синхронизирующее устройство
Синхронизатор осуществляет привязку входного сигнала IN ASYNCH к
тактовому сигналу. Входной сигнал IN ASYNC с приходом фронта CLK
записывается в D-триггер, с выхода которого поступает на вход
комбинационной схемы автомата вместе с сигналами состояния в цепи обратной
связи.
При этом возможны следующие ситуации:
Входные сигналы появляются до поступления активного фронта
синхросигнала. Эти сигналы триггером воспринимаются.
Входные сигналы появляются во время действия фронта (в запрещенной
зоне)
Входные сигналы появляются после поступления активного фронта. Эти
сигналы триггером игнорируются.
Временные диаграммы, приведенные на рис.5.71, 5.72 иллюстрируют данные
ситуации.
CLK
TCLK
Неизм. Неизм.
D значение значение
TSETUP THOLD
th th
Q
Окно принятия
решения TCLK-Q
(б)
CLK
Значение
D меняется
TSETUP THOLD
Qth
Состояние
Окно принятия метастaбильности
решения (ta)
TR
159
Рис. 5.72. Временные параметры работы триггера с учетом метастабильности: переход
в метастабильное состояние
Интервалы времени TSETUP и THOLD образуют окно принятия решения (Л1).
TSETUP - время, в течение которого вход не должен изменяться после
поступления фронта тактового сигнала. T HOLD – время, в течение которого
данные на входах триггеров не должны изменяться после прихода фронта
тактового сигнала.
На этом отрезке времени триггер, в зависимости от значения сигнала на
входе D решает, изменять выходной сигнал или нет. Если сигнал на входе D
изменяется за пределами окна, то на выходе триггера будет зафиксировано
правильное значение. При изменении сигнала в пределах окна принятия
решения (запрещенной зоне) может возникнуть метастабильность и
просуществовать до конца интервала T R (resolution time-время выхода из
метастабильности). Вероятность P того, что изменение сигнала происходит в
запрещенной зоне, равна отношению длительности запрещенной зоны ta к
периоду тактового сигнала TCLK (P=ta/TCLK).
Уменьшить значение P можно двумя путями:
Уменьшая ta, то есть используя более быстродействующие триггеры
Увеличивая TCLK, т.е. понижая частоту.
Увеличение периода тактового сигнала обычно неприемлемо, так как при
этом снижается быстродействие системы.
Интервал TR – время выхода из метастабильности для простейшего
синхронизирующего устройства, представленного на рис.5.61, вычисляется
следующим образом (Л1).
TR = TCLK - TCOMB - TSETUP
Некоторые авторы к этому времени добавляют TCLK-Q.
Временами TSKEW и TROUTING можно пренебречь.
Сбоем синхронизирующего устройства называется ситуация, когда в системе
используется выходной сигнал, несмотря на то, что он остается
метастабильным. Система может обезопасить себя от метастабильности, если
будет достаточно долго ждать, прежде, чем воспользуется выходным сигналом
синхронизатора.
Часто в качестве синхронизатора применяют схему из двух последовательно
соединенных триггеров, приведенную на рис 5.73.
Синхронизатор
Meta INSYNC
INASYNC D D
Синхронная
система
CLK
Рис. 5.73. Двухрегистровая схема синхронизатора.
160
Чтобы увеличить время выхода из метастабильности T R при заданном
периоде тактового сигнала, следует минимизировать T COMB и TSETUP.
В приведенной схеме TCOMB =0, а TSETUP определяется типом триггера. Чем
TSETUP меньше, тем более надежно работает схема. Временные диаграммы
работы синхронизатора приведены на рис.5.74.
CLK
TCLK
INASYNCH
FF1
FF2, INSYNCH
CLK
TCLK
INASYNCH
FF1
FF2,
INSYNCH
Рис. 5.75. Временные диаграммы для случая, когда асинхронный входной сигнал
изменяется в запрещенной зоне
Однако возможно, что после выхода из метастабильного состояния триггер
FF1 окажется в состоянии “0” (рис.5.75).
В этом случае сигнал INSYNCH на входе синхронной схемы появится на такт
позже (если к моменту выхода из метастабильности асинхронный входной
сигнал на входе FF1 еще присутствует). Следовательно, длительность входного
асинхронного сигнала должна быть больше, чем длительность CLK.
161
CLK
TCLK
INASYNCH
FF1
FF2, INSYNCH
162
Асинхронный сигнал фиксируется по фронту clk в регистре meta и есть
вероятность, что после него сигнал некоторое время будет метастабильным.
После фиксации в регистре b сигнал уже можно считать стабильным.
После компиляции будет получена схема, представленная на рис. 5.65.
Выводы:
Кроме разработки функционального поведения автомата, разработчику
практической системы необходимо решить следующие задачи:
1. Найти и минимизировать разброс задержек тактового сигнала при его
прохождении по разным путям.
2. Обеспечить наличие у триггеров положительного запаса по времени
установления и времени удержания сигнала с учетом возможных задержек
тактового сигнала.
3. Синхронизировать воздействие асинхронных входных сигналов с тактовым
сигналом.
5.19. Задачи
5.1. Описать на Verilog D-триггер с возможностью тестирования.
5.2. Описать на языке Verilog JK-триггер с синхронным сбросом (R),
синхронной установкой (S) и входом разрешения тактового сигнала (CE ),
управляемый спадом (отрицательным фронтом) тактового сигнала (CLK).
Тaблица истинности триггера имеет следующий вид:
Табл.5.38
R S CE J K CLK Q* Mode
0 0 1 0 1 0 Запись 0
0 0 1 1 0 1 Запись 1
0 0 1 1 1 ~QLast Переключение
0 0 1 0 0 QLast Хранение
0 0 1 x x 0 QLast Хранение
0 0 1 x x 1 QLast Хранение
0 0 0 x x x QLast Хранение
1 x x x x 0 Синхронный сброс
0 1 x x x 1 Синхронная
установка
163
C
t
D
Q t
t
Рис. 5. 77. к задаче 5.4
D t
Q t
t
Рис. 5.78 к задаче 5.5
164
Табл. 5.40
CLR CE T CLK Q* Mode
0 1 1 ~QLast Переключение
0 1 1 ~QLast Переключение
0 1 0 x QLast Хранение
0 x x 0 QLast Хранение
0 x x 1 QLast Хранение
0 0 x x QLast Хранение
1 x x x 0 Aсинхронный сброс
x D “1 D
”
C C
R
Reset
CLK
y
165
T D T
C C C
CLK
X
D
C
CLK
Reset
166