Синтез логічних схем для зберігання і переробки інформації.
Синтез реверсивного регістра зсуву.
Регістр на 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
За отриманими виразами можна побудувати схему заданого лічильника:
Завдання № 4
Синтез послідовного восьмирозрядного суматора.
Рішення
При складання двійкових чисел на рівні I-го розряду необхідно враховувати двійкові цифри ai і bi, а також можливе перенесення з сусіднього молодшого розряду. Елементарне пристрій, що виконує підсумовування зазначених двійкових цифр називається повним однорозрядних двійковим суматори (подс).
Синтез подс виконується класичним шляхом, тобто починається з таблиці істинності. Функції, що описують виходи Si і Ci залежать від 3-х змінних ai, bi і ci; тому таблиця істинності буде виглядати наступним чином:
ai
bi
Ci-1
Si
Ci
OO
O1
11
1O
0
0
0
0
0
O
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
Si = ai * bi * Ci-1 ai * bi * Ci-1 ai * bi * Ci-1 ai * bi * Ci-1
0
0
1
1
0
0
1
1
0
1
OO
O1
11
1O
1
0
1
0
1
O
1
1
1
1
1
1
1
1
1
1
Ci = ai * bi Ci-1 * bi ai * Ci-1
Логічна схема подс в базисі І-АБО-НЕ буде виглядати наступним чином:
У загальному випадку нам необхідно складати n-розрядні двійкові числа. Для складання таких чисел необхідно взяти n подс.
Структура n-розрядного двійкового суматора називається суматори з послідовним розподілом переносу.
Перевагою такого суматора є простота і низька вартість схеми. Недоліком є його низька швидкодія, тобто великий час підсумовування двійкових чисел.
Легко помітити, що час підсумовування двійкових чисел на такому суматорі зростає з ростом розрядності складаємо чисел.
Якщо потрібне швидке підсумовування двійкових чисел незалежно від їх розрядності, використовують схему суматора, в якій реалізується так званий прискорений перенесення. У такому суматорі, поряд з однорозрядною двійковими суматора, використовується спеціальна схема прискореного переносу. При цьому однорозрядних суматори складають двійкові цифри вихідних чисел з урахуванням перенесень вироблюваних схемою прискореного перенесення. Тому що подібна схема обчислює всі перенесення одночасно (паралельно), то при підсумовуванні чисел не доводиться чекати послідовної створення необхідних переносів.
На базі отриманої схеми однорозрядних двійкового суматора можна побудувати заданий суматор. При цьому потрібно здійснювати завантаження двох восьмирозрядних чисел, а також зсув результату праворуч.
Таким чином схема заданого суматора буде виглядати наступним чином: