ТИПОВІ ВУЗЛИ ЦИФРОВОЇ СХЕМОТЕХНІКИ
1. ДЕШИФРАТОРИ І ШИФРАТОРИ
1.1. Дешифратори
До типових вузлів належать логічні схеми, які найчастіше використовуються в цифрових ЕОМ. Серед них існують як комбінаційні так і послідовнісні схеми з пам’яттю.
Дешифратор (декодер) – це типова логічна комбінаційна схема з n інформаційними входами і 2n виходами. Тобто це схема призначена для реалізації конституент одиниці.
Розрізняють повні і неповні дешифратори. Повні дешифратори реалізують конституент, де n – це число інформаційних входів. Неповні дешифратори реалізують менше ніж конституент.
Функціонування повного дешифратора описується системою логічних виразів вигляду:
;
;
...
,
де – вхідні двійкові змінні; , , ..., – вихідні логічні функції, що являють собою мінтерми. Якщо дешифратор неповний, то число виходів менше ніж .
Таблиця істинності функцій повного дешифратора, для , має вигляд:
Індекс функції визначає номер обраного виходу і відповідає десятковому еквіваленту вхідного коду. Вихід, на якому з’являється керуючий сигнал, називають активним. Якщо значення сигналу на активному виході відображається логічною 1 (H), то на решті пасивних виходів встановлюється логічний 0 (L). Двійковий код, який завжди містить тільки одну одиницю, решта – нулі, називається унітарним. Тому дешифратори є перетворювачами вхідного позиційного коду в унітарний вихідний. Зауважимо, що крім позначень H і L для логічних входів і виходів можуть вживатись позначення X (байдужий – 0 чи 1) і Z , що відповідає буферу виходу зі Z станом.
У дешифраторах в інтегральному виконанні стан активного виходу часто відображається значення логічний 0 (L), а на інших пасивних виходах установлюється логічна 1 (H).
Функціонування повного дешифратора з інверсними виходами представляється логічними формулами вигляду:
;
;
...
,
де , , ..., – вихідні логічні функції, що являють собою макстерми.
Розглянемо деякі методи побудови дешифраторів з використанням пакету MAX+plus II та мови програмування апаратури AHDL.
1.2. Побудова дешифратора з використанням пакету MAX+PLUS II і мови опису апаратури AHDL
Приклад 1. Побудувати повний дешифратор при користуючись пакетом MAX+plus II та дослідити його роботу.
На рис. 1 наведено схему повного дешифратора, його символ та результати моделювання
Рис. 1
Побудова повного дешифратора при n=3 із використанням логічного оператора IF THEN
SUBDESIGN dc3_8_IF
( i[2..0] : INPUT ;
Z[7..0] : OUTPUT;)
BEGIN
IF i==0 THEN Z[]=1;
ELSIF i==1 THEN Z[]=2;
ELSIF i==2 THEN Z[]=4;
ELSIF i==3 THEN Z[]=8;
ELSIF i==4 THEN Z[]=16;
ELSIF i==5 THEN Z[]=32;
ELSIF i==6 THEN Z[]=64;
ELSIF i==7 THEN Z[]=128;
END IF;
END;
Результати моделювання
Приклад 2.1. Користуючись пакетом MAX+plus II і мовою опису апаратури AHDL побудувати неповний дешифратор на три входи (), у якого задаються шість виходів , а два – не задаються.
На рис. 2 наведено схему такого дешифратора dc3_8_67 та результати його моделювання
Рис. 2
Як бачимо, одержані результати моделювання є правильними: передбачувані вихідні сигнали є унітарними, а заборонені () – нульовими.
Зауважимо, що під час побудови неповних дешифраторів можливе здійснення мінімізації функції виходів за рахунок наборів, на яких функції невизначені. Наприклад, для неповного дешифратора dc3_5_np, наведеного нижче, функції виходів можна спростити із урахуванням заборонених наборів 6 та 7. Мінімізація вказаних наборів здійснюється за допомогою карти Карно (К_К) проілюстрована на рис. 3
Рис.3
Виконав[ім’я автора приховано]
; ; ; ; ; .
Нижче наведено реалізацію неповного дешифратора при з використанням пакету MAX+plus. На рис. 4 наведено схему та результати моделювання такого дешифратора.
Рис. 4
Звернемо увагу на те, що для такого дешифратора набори з номерами 6 та 7 вважаються забороненими. Якщо вказані набори подаватимуться на входи дешифратора, то на його виходах можуть виникнути помилкові сигнали. Наприклад, набір викличе одиничні значення функцій і , а набір – одиничні значення функцій і .
Розглянемо варіанти реалізації поставленої задачі, які не сприяють виникненню помилкових вихідних сигналів.
Реалізація неповного дешифратор з використанням оператора IF THEN із додаванням чисел
SUBDESIGN dc3_8_67_IF
( i[2..0] : INPUT ;
Z[5..0] : OUTPUT;)
BEGIN
IF i==0 THEN Z[]=1;
ELSIF i==1 THEN Z[]=2;
ELSIF i==2 THEN Z[]=4;
ELSIF i==3 THEN Z[]=8;
ELSIF i==4 THEN Z[]=16;
ELSIF i==5 THEN Z[]=32;
ELSIF i==6 THEN Z[]=4 + 16;
ELSIF i==7 THEN Z[]=8 + 32;
END IF;
END;
Реалізація неповного дешифратор з використанням оператора IF THEN і операції кон’юнкції
SUBDESIGN dc3_8_67_IF_k
( i[2..0] : INPUT ;
Z[5..0] : OUTPUT;)
BEGIN
IF i==0 THEN Z[]=1;
ELSIF i==1 THEN Z[]=2;
ELSIF i==2 THEN Z[]=4;
ELSIF i==3 THEN Z[]=8;
ELSIF i==4 THEN Z[]=16;
ELSIF i==5 THEN Z[]=32;
ELSIF i==6 THEN Z[]=4 & 16;
ELSIF i==7 THEN Z[]=8 & 32;
END IF;
END;
Результати моделювання
Одержаний вигляд результату можна одержати, якщо ввести в схему (рис.5) корегуючий елемент (kor_element), який можна отримати наступним чином. Розглядаються набори, на яких функції виходів невизначені і виконується склеювання, якщо це можливо. У нашому випадку це набори 110 і 111, які можна склеїти за змінною . В результаті склеювання отримуємо імпліканту , яка є основою для побудови корегуючого елемента. А саме, корегуючи виходи за допомогою логічного елемента І-НЕ вигляду (див рис. 5), отримаємо уже правильні вихідні сигнали, що і підтверджує результат моделювання.
Рис. 5
1.3. Побудова дешифраторів з використанням мови опису апаратури AHDL
Приклад 3. Побудувати повний дешифратор при з використанням мови опису апаратури AHDL та дослідити його роботу.
Побудову шифраторів з використанням мови опису апаратури AHDL можна виконати декількома способами.
10. Реалізація повного дешифратора при з використанням оператора CASE мови AHDL (текстовий файл dc3_8_t). На рис. 6 наведено результати моделювання побудованого дешифратора.
SUBDESIGN dc3_8_t
(
code[2..0] : INPUT ;
Out[7..0] : OUTPUT;
)
BEGIN
CASE code[] IS
WHEN 0 => Out[]=B"00000001";
WHEN 1 => Out[]=B"00000010";
WHEN 2 => Out[]=B"00000100";
WHEN 3 => Out[]=B"00001000";
WHEN 4 => Out[]=B"00010000";
WHEN 5 => Out[]=B"00100000";
WHEN 6 => Out[]=B"01000000";
WHEN 7 => Out[]=B"10000000";
END CASE;
END;
Рис. 6
20. Реалізація повного дешифратора при з використанням таблиці істинності TABLE мови AHDL (текстовий файл dc3_8_tr_tb)). На рис. 7 наведено результати моделювання побудованого дешифратора.
SUBDESIGN dc3_8_tr_tb
(
i[2..0] : INPUT ;
Y[7..0] : OUTPUT;
)
BEGIN
TABLE
i[]=>Y[];
0 => 1;
1 => 2;
2 => 4;
3 => 8;
4 => 16;
5 => 32;
6 => 64;
7 => 128;
END TABLE;
END;
Рис. 7
Приклад 4. Побудувати неповний дешифратор при користуючись мовою опису апаратури AHDL.
10. Реалізація неповного дешифратора при з використанням таблиці істинності TABLE мови AHDL (текстовий файл dc3_5_tr_tb) . На рис. 8 наведено результати моделювання побудованого дешифратора.
SUBDESIGN dc3_5_tr_tb
(
k[2..0] : INPUT ;
Z[7..0] : OUTPUT;
)
BEGIN
TABLE
k[]=>Z[];
0 => B"xx000001";
1 => B"xx000010";
2 => B"xx000100";
3 => B"xx001000";
4 => B"xx010000";
5 => B"xx100000";
END TABLE;
END;
Рис.8.
20. Реалізація неповного дешифратора при з використанням оператора DEFAULTS мови AHDL (текстовий файл dc3_5_np_t). Результати моделювання наведено на рис. 9.
SUBDESIGN dc3_5_np_t
(
in[2..0] : INPUT;
z[7..0] : OUTPUT;
)
BEGIN
DEFAULTS
Z[] = GND;
END DEFAULTS;
TABLE
in[] => z[];
0 => 1;
1 => 2;
2 => 4;
3 => 8;
4 => 16;
5 => 32;
END TABLE;
END;
Рис. 9
Зауважимо, що у випадку використання змінної х як імені вхідної групи, компілятор видає повідомлення про помилку вигяду.
Це зв’язано з тим, що змінна х є зарезервованим ідентифікатором.
Нижче наведено програму, яка реалізовує неповний дешифратор 4_5 та результати його моделювання (рис. 10).
SUBDESIGN dc4_5_tr_tb
(
k[3..0] : INPUT ;
Z[15..0] : OUTPUT;
)
BEGIN
TABLE
k[]=>Z[];
0 => B"xxxxxxxxxx000001";
1 => B"xxxxxxxxxx000010";
2 => B"xxxxxxxxxx000100";
3 => B"xxxxxxxxxx001000";
4 => B"xxxxxxxxxx010000";
5 => B"xxxxxxxxxx100000";
END TABLE;
END;
Рис. 10