для хранения и переработки информации.
Задача№1
Синтез реверсивного регистра сдвига.
Регистр на 10 разрядов. Использовать триггеры типа D.
Решение
Регистры представляют собой узлы цифровых систем, предназначенные для записи и хранения двоичных кодов. Например: Если необходимо сложить два числа А и В, то необходима их предварительная запись в два регистра.
Т. к. Схема регистра должна хранить двоичные цифры, а триггер предназначен для записи и хранения 0 или 1, то схема регистра должна содержать столько триггеров, сколько двоичных цифр необходимо хранить. Обычно регистры строят, используя триггеры типа D.
В качестве примера представим структуру регистра, предназначенного для записи и хранения 4-ёх разрядных двоичных чисел.
В представленной схеме выходы Q3, Q2, Q1, Q0 являются прямыми выходами регистра, в то время как необязательные выходы Q3, Q2, Q1, Q0 являются инверсными выходами регистра.
Для реализаций операций сдвига влево/вправо могут использоваться либо мультиплексоры, либо регистры. Регистр, способный сдвигать данные в обоих направлениях, называется реверсивным сдвигающим регистром (РСР).
Синтез РСР.
Выполним синтез РСР на триггерах типа D.
Составим таблицу, в которой отразим текущее и следующее состояние каждого из триггеров регистра. При этом будем полагать, что регистр 3-ёх разрядный. Так как регистр должен сдвигать либо влево, либо вправо, то в этой таблице следует в отдельном столбце записывать значение специального управляющего сигнала SL/R. Кроме того, таблица будет содержать значения, которые нужно подавать на входы D каждого из триггеров при переходе от текущего состояния в следующее состояние.
SL/R | t | t+1 | D2 | D1 | D0 | ||||
Q2 | Q1 | Q0 | Q2 | Q1 | Q0 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
Заполним диаграмму Вейча-Карно с тем, чтобы получить логические выражения для D2 , D1 , D0 .
OO | O1 | 11 | 1O | OO | O1 | 11 | 1O | OO | O1 | 11 | 1O |
OO | 1 | 1 | OO | 1 | 1 | OO | |||||
O1 | 1 | 1 | O1 | 1 | 1 | O1 | |||||
11 | 11 | 1 | 1 | 1 | 1 | 11 | 1 | 1 | |||
1O | 1O | 1O | 1 | 1 |
D2 = SL/R* Q1
D1 = SL/R* Q0 SL/R* Q2
D0 = SL/R* Q1
По полученным логическим выражениям синтезируем схему регистра.
На основе полученных логических выражений и синтезированной схемы можно получить логическое выражение и схему для i-го триггера.
Di = SL/R* Qi - 1 SL/R* Qi + 1
На основе полученного выражения можно построить схему заданного регистра.
Задача№2
Синтез асинхронного двоичного счётчика, выполняющего прямой счёт, с модулем счёта равным 26, используя триггеры типа D.
Решение
Самыми простыми двоичными счётчиками являются асинхронные двоичные счётчики(АДС).Пусть к=3, тогда АДС с М=2^3 будет выглядеть:
Представленная схема является схемой АДС, обеспечивающего суммирование входных импульсов ( с прымым счётом).
Представленная временная диаграмма поясняет работу асинхронного 3-х разрядного счётчика.
Таблица переходов для прямого счёта записывается так:
000
001
010
011
100
101
110
111
Младший триггер счётчика срабатывает по срезу входных импульсов на линии clk. Как видно из диаграммы состояние на выходе младшего триггера меняется после каждого среза входных синхроимпульсов. Так как средний триггер синхронизируется прямым выходом соседнего младшего триггера, то состояние на его выходе будет менятся при формировании среза на выходе Q0 .Так же как и на Q2 .
Преимуществом этой схемы является простота структуры,наряду с этим есть огромный недостаток: с ростом разрядности, то есть числа триггеров счётчика, возрастает суммарная задержка срабатывания самого старшего триггера счётчика, что означает необходимость уменшения частоты входных синхроимпульсов. Иначе говоря, в АДС невозможно обеспечить высокие рабочие частоты.
Если вход синхронизации соседнего старшего триггера пдключить к обратному выходу соседнего триггера, то счётчик станет вычитающим. В этом случае говорят,что имеет место обратный счёт.
Осуществим синтез заданного АДС:
Определим количество триггеров log2 26=5.
Переведём число 26 из десятичной системы счисления в двоичную: 262 = 110102 .
Изобразим схему заданного АДС:
Задача№3
Синтез синхронного двоичного счётчика, выполняющего обратный счёт, с модулем счёта равным 14, используя триггеры типа JK и логику И-НЕ.
Решение
Используем триггеры типа JK.
Определим количество триггеров.
M = log2 14 = 4
Строится таблица переходов счётчика. При этом ипсользуется таблица переходов соответствующего триггера.
Qt | Qt+1 | J | K |
0 | 0 | 0 | * |
0 | 1 | 1 | * |
1 | 0 | * | 1 |
1 | 1 | * | 0 |
Для счётчика с к = 14 таблица переходов будет выглядеть следующим образом:
Q3 | Q2 | Q1 | Q0 | Q3' | Q2' | Q1' | Q0' | J3 | K3 | J2 | K2 | J1 | K1 | J0 | K0 |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | * | 1 | * | 0 | * | 1 | * |
1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | * | 0 | * | 0 | 0 | * | * | 1 |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | * | 0 | * | 1 | 1 | * | 1 | * |
1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | * | 0 | 0 | * | * | 0 | * | 1 |
1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | * | 0 | 0 | * | * | 1 | 1 | * |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | * | 0 | 0 | * | 0 | * | * | 1 |
1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | * | 1 | 1 | * | 1 | * | 1 | * |
0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | * | * | 0 | * | 0 | * | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | * | * | 0 | * | 1 | 1 | * |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | * | * | 0 | 0 | * | * | 1 |
0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | * | * | 1 | 1 | * | 1 | * |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | * | 0 | * | * | 0 | * | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | * | 0 | * | * | 1 | 1 | * |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | * | 0 | * | 0 | * | * | 1 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | * | 1 | * | 1 | * | 1 | 0 | * |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | * | 1 | * | 1 | * | 1 | * | 1 |
Строим диаграмму Вейча-Карно для функции управления J и K каждого из триггеров, используя таблицу переходов счётчика.
По диаграммам выполним минимизацию соответствующих функций, то есть получаем минимальные дизъюнктивные нормальные формы для всех сигналов J и K.
OO | O1 | 11 | 1O | OO | O1 | 11 | 1O | OO | O1 | 11 | 1O | OO | O1 | 11 | 1O | ||||
OO | 1 | OO | * | * | * | * | OO | 1 | OO | * | * | * | * | ||||||
O1 | O1 | * | * | * | * | O1 | * | * | * | * | O1 | 1 | |||||||
11 | * | * | * | * | 11 | 1 | 11 | * | * | * | * | 11 | 1 | 1 | 1 | ||||
1O | * | * | * | * | 1O | 1 | 1 | 1O | 1 | 1O | * | * | * | * | |||||
J3 = Q2*Q1*Q0 | K3 = Q2*Q1*Q0 Q1*Q0 | J2 = Q1*Q0 | K2 = Q1*Q0 Q3*Q1 | ||||||||||||||||
OO | O1 | 11 | 1O | OO | O1 | 11 | 1O | OO | O1 | 11 | 1O | OO | O1 | 11 | 1O | ||||
OO | * | * | OO | * | * | 1 | OO | 1 | * | * | 1 | OO | * | 1 | 1 | * | |||
O1 | 1 | * | * | O1 | * | * | 1 | O1 | 1 | * | * | 1 | O1 | * | 1 | 1 | * | ||
11 | 1 | * | * | 11 | * | * | 1 | 1 | 11 | 1 | * | * | 11 | * | 1 | 1 | * | ||
1O | 1 | * | * | 1O | * | * | 1 | 1O | 1 | * | * | 1 | 1O | * | 1 | 1 | * | ||
J1 = Q3*Q0 Q2*Q0 | K1 = Q0 Q3*Q2 | J0 = Q1 Q3 Q3*Q2 | K0 = 1 |
По полученным выражениям можно построить схему заданного счётчика: