5 1

Глава 5. комбінаційної ФУНКЦІОНАЛЬНІ ВУЗЛИ

5 1. ПЕРЕТВОРЮВАЧІ КОДІВ, шифратор, дешифратор

вузли комбінаційного типу характеризується однозначним відповідністю вихідних сигналів допустимим комбінаціям сигналів на вході і не залежать від послідовності їх зміни. Для побудови комбінаційного функціонального вузла повинні бути задані всі безліч кодів (слів) і відповідний нм набір вихідних кодів або система рівнянь, що описує залежність кожного розряду вихідного коду незалежних вхідних змінних. Комбінаційні схеми будуються або на основі логічних елементів, або на основі постійних запам'ятовуючих пристроїв (ПЗУ), в які записується таблиця перетворення вхідних слів у вихідні До комбінаційною функціональних вузлів відносяться перетворювачі кодів, (окремим випадком яких є шифратори і дешифратори), мультиплексори, демультиплексори, пристрою зсуву чисел, комбінаційні суматори, цифрові компаратори і ін.

Перетворювачі кодів призначені для перекладу з однієї форми подання в іншу.

Наприклад, при введенні інформації в ЕОМ необхідно перетворювати десяткові числа в двійкові, а при поданні інформації на індікаюри або принтер - виконавчі або двійковій-десяткові коди в коди управління знакогенератор, світлодіодними або жідкокріаалліческімі індикаторними панелями, механізмом друку.

Відправним пунктом для побудови перетворювача кодів є таблиця відповідності, в якій записується спітнілий набір вхідних і відповідний ьабор вихідних слів. Якщо вхідні і вихідні слова записані двійковими символами, то сішез перетворювача коду зводиться до знаходження для кожного розряду вихідного слова булевої функції, що встановлює зв'язок даного розряду з вхідними наборачя довічних змінних. Знаходження такого зв'язку і мінімізація булевого виразу здійснюється за допомогою карт Карно (діаграм Вейча). На заключному етапі отримана функція перетвориться до вигляду, зручного для реалізації в заданому (обраному) елементному базисі.

У табл. 5.1 наведені найбільш поширені в цифровій схемотехніці двійкові коди [36]. У позначеннях кодів 8121, 7421, 5421, 2421 вказано десятковий вага двійковій одиниці відповідного розряду.

Код Грея утворений послідовністю двійкових чисел, в якій два будь-яких сусідніх числа (перше і останнє число також вважаються сусідніми) відрізняються тільки одним розрядом. У коді Джонсона перехід до наступного числа здійснюється послідовною заміною 0 на 1, починаючи справа, а після установки у всіх розрядах 1 - заміною 1 на 0.

Коди, іспользуютс в арифметичних пристроях для виконання операцій додавання і віднімання двійково-десяткових чисел.

Нехай необхідно побудувати перетворювач двійкового коду 421 в розрядний код Грея. Запишемо таблицю відповідності (табл. 5.2).

Кожен розряд одержуваного на виході коду є незалежною функцією вхідних наборів, якою необхідно знайти і мінімізувати.

Для цього скористаємося картами Карно, записавши в клітини карти значення для кожного з наборів:

Відповідно тотожним виразами (5.1) - (5.3) можчо отримати різні варіанти перетворювача (рис., Б, в).

Вибір найкращого варіанта реалізації виробляє розробник, керуючись технічними міркуваннями.

Аналогічно, використовуючи ту ж табл. 5.2, можна виконати зворотне греобразованіе коду Грея в код 421:

На рис. 5.2 показаний один з можливих варіантів перетворювача коду Грея в двійковий код 421.

Візуалізація двійковій-десяткових чисел часто проізгодітся за допомогою семісегмсн гпих панелей на основі рідких кристалів або світлодіодів (рис. 5.3, а), широко використовуваних в мікрокалькуляторах електронному годиннику і т. Д. Якщо сегменти позначені буквами, як показано на рис. , То табл. 5.3. встановлює відповідність між двійковій-десятковим числом і необхідним для відображення десяткової цифри набором сегментів.

Сегмент а визначається наборами коду 8421 наступним чином:

Аналогічно отримаємо булеві вирази для інших сегментів:

Схема перетворювача коду 8421 в код семисегментний індикатора, реалізована на елементах, показана на рис. 5.4.

Окремим випадком перетворювача кодів є шифратор - пристрій, що забезпечує видачу певного кола у відповідь на збудження одного з входів. Шифратори широко використовуються для перетворення десяткових цифр і буквених символів в двійковий код при введенні інформації в ЕОМ та інші цифрові пристрої.

Розглянемо приклад побудови шифратора для перетворення десяткових чисел в код 8421 згідно табл. 5.4. Вхідними є виконавчі змінні, які формуються при натисканні відповідної клавіші пристрою введення.

Змінні є незалежними і дозволяють побудувати вхідних комбінацій, але якщо накладається обмеження, що забороняє натискання двох і більше клавіш, то з +1042 залишається 11 допустимих вхідних комбінацій. Відповідний даному обмеження вхідний код називають кодом «1 з» або унітарною. У табл. 5.4 утримуючи клавішу відповідає «югіческая 1», я ненажатой - «логічний 0». Дві перших вхідних комбінації породжують один і той же двійковий код 0000. Відмінність між ними полягає в тому, що при натисканні клавіші «0», як і при введенні інших цифр, в пристрої має формуватися команда введення і запам'ятовування черговий десяткової цифри.

Як видно з табл. 5.4, ​​двійкова змінна приймає значення «1», якщо «1» з'являється на вході або на вході, або, або, або. При всіх інших вхідних комбінаціях т. Е. В термінах алгебри логіки

Аналогічно запишемо для інших виходів:

Згідно з наведеними равеіствччн (5.4) шифратор можна реалізувати в базисі АБО-НЕ (рис. 5.5, а, б) або в базисі (рис. 5 з 5, а, г).

Такі шифратори відносяться до перетворювачів коду «1 з» в двійковий кол. Часто обмеження на кількість натискає клавішу виявляється неприйнятним і потрібно побудувати шифратор так, щоб він при одночасному натисканні декількох клавіш реагував тільки на найстарший (або молодший) з них. Перетворювачі коду даного виду називають пріоритетними Шифратори. Вони реалізують перетворення коду з в код 8421.

У таблиці відповідності для пріоритетного шифратора, в якому вхідна змінна з максимальним номером має максимальний пріоритет (табл. 5.5), значення вхідних змінних праворуч від діагоналі з «1» не повинні визначати вихідний код.

Пріоритетний шифратор можна побудувати на основі найпростішого шифратора, що перетворює відповідно до виражень (5.4) код «1 з 10» в код 8421, якщо попередньо перетворити вхідний код «X з 10» в Позначимо вихідні змінні перетворювача «1 з 10» через.

Вхідна змінна має максимальний пріоритет, тому не залежить від інших вхідних змінних:. Будь-яка інша вихідна змінна приймає значення «1», якщо за умови, що ні на один з «старших» входів 9 не подана «логічна 1», т. Е.

Схема (рис. 5.6) реалізує перетворення (5.5). Її перевагою є рівномірна затримка поширення сигналів по всіх входів, а недоліком - необхідність застосування багатовхідних схем АБО-НЕ.

Якщо не висуваються жорсткі вимоги по швидкодії, наприклад, для клавіатурного введення, перетворювач коду «А з 10» в «1 з 10» можна виконати за ітераційного принципу (рис. 5.7) [91]. У такій схемі сигнал пріоритетного заборони поширюється від старшого входу до молодшого через послідовно з'єднані елементи АБО, тому в цілому тривалість перетворення в код «1 з 10» визначається часом установки виходу, запізнювання на якому максимально.

Для отримання схеми пріоритетного шифратора досить виходи перетворювача «X з 10» в «1 з 10» підключити до відповідних входів перетворювача коду "1 з 10" в код 8421.

Зворотне перетворення двійкового коду в кол «1 з» виконують перетворювачі коду, звані дешифраторами. Найбільш широко дешифратори використовуються в пристроях виведення інформації з ЕОМ і інших цифрових пристроїв на зовнішні пристрої візуалізації і документування алфавітно-цифрової інформації. Для цього потрібно подати сигнал на 1 з, наприклад, катодів газорозрядної індикатора або елементів вибірки символів друкувального пристрою

Синтез структури дешифратора, як і будь-якого іншого перетворювача кодів, починається із запису таблиці відповідності вхідних і вихідних кодів. Нехай необхідно перетворити двійковий код 21 в код «1 з 4» Тоді табл 5 6 підлогу ниє але визначає значення виходів для всіх вхідних наборів. Далі слід для кожної вихідної функції скласти карту Карно і отримати її минимизированное вираз. У розглянутому прикладі це безглуздо, так як для кожної функції карта Карно містить тільки одну "1", тому відповідний їй минтерм і є мінімальною формою. Тоді на підставі табл. 5.6 напишемо:

Вирази (5.6) уожіо реалізувати в елементному базисі (рис або базисі АБО-НЕ (рис 5 8, в)

Якщо число входів і число виходів «дешифратора пов'язані співвідношенням. то виходи визначені для всіх двійкових наборів і дешифратор називається повним [97] У разі дешифратор неповним. Приклад неповного дешифратора - перетворювач двійкового коду 8421 в код «1 з 10» згідно табл. 5.7.

Оскільки 6 з 16 можливих вхідних наборів не визначені, є можливість довільним довизначенням карти Карно мінімізувати ряд вихідних функцій дешифратора. Наприклад, функції можна спростити до вигляду:

Аналогічно спрощуються функції. З огляду на, що функції не спрощуються, у чому легко можна переконатися, побудувавши для них карти Карно, остаточно запишемо логічні функції, які повинен реалізувати синтезується десятковий дешифратор:

Відповідний десятковий дешифратор реалізований на основі логічних елементів АБО-НЕ (рис. 5.9). Відзначимо, що в мінімізованому варіанті дешифратора не допускається подача на його вхід кодів 8421, що не увійшли в табл. 5.7.

Так, якщо на вхід дешифратора на рис. 5.9 подати код 1011 то одночасно на двох виходах встановлюються «логічні 1». Таким чином, якщо на входах дешифратора можуть подаватися будь-які з комбінації і не допускається одночасне збудження більш ніж одного з його виходів, спрощення схеми описаним методом неприпустимо і кожна з вихідних функцій повинна бути визначена повним набором вхідних змінних. У гаком неповному дешифраторі (як приклад на рис. 5.10 показаний варіант на елементах) «зайві» вхідні комбінації не порушують ні один з його виходів:

Розглянуті вище схеми дешифраторів відносяться до типу лінійних і для них характерно одноступенчатое дешифрування вхідних розрядних кодів за допомогою -входових логічних елементів.

Лінійні дешифратори забезпечують перетворення коду з мінімальною затримкою і використовуються в найбільш швидкодіючих цифрових схемах. Однак зі зростанням розрядності вхідного коду швидко наростає навантаження кожного з входів і кількість корпусів ІМС для реалізації дешифратора. Лінійна структура зазвичай використовується для побудови дешифраторів при.

Якщо число входів, то з метою зменшення кількості корпусів ІМС дешифратори виконуються за багатоступеневою схемою.

Першою сходинкою пірамідального дешифратора є найпростіший лінійний дешифратор з числом виходів (див. Рис. 5.8, б). Кожна наступна сходинка, керована додаткової вхідної змінної, дозволяє подвоїти кількість виходів і получнгь і так далі, т. Е. -ступенчатий повний пірамідальний дешифратор має число виходів, причому (при лінійний і пірамідальний дешифратори збігаються).

В якості ілюстрації побудуємо повний пірамідальний дешифратор для випадку (рис. 5.11). Затримка поширення сигналу в пірамідальному дешифраторі в k разів більше, ніж в лінійному. Інший недолік таких дешифраторів полягає в нерівномірному навантаженні входів, яка зростає з ростом кількості ступенів.

Кількість необхідних двухвходових логічних елементів (або АБО-НЕ) для реалізації пірамідального -ступенчатого дешифратора на виходів з урахуванням інверторів визначається співвідношенням

і практично подвоюється з додаванням чергової сходинки. При одночасному використанні елементів або АБО-НЕ з чергуванням ступенів на них (рис. 5.12) необхідну кількість двухвходових вентилів зменшується вдвічі:

Малюнок (див. Оригінал.)

Малюнок і таблиця 5.8. (Див. Оригінал.)

Таблиця 5.8. (Продовження)

НЕ з чергуванням ступенів на них (рис. 5.12) необхідну кількість двухвходових вентилів зменшується вдвічі:

У разі якщо число входів повні дешифратори целесообойзно будувати але матричної структурі. При парному кількість рядків і стовпців матриці одно і матриця вихідних вентилів виходить квадратної. При непарному вхідні змінні поділяють на. В обох випадках для вибору рядків і стовпців (рис. 5.13), в вузлах яких підключаються двухвходових вентилі, використовуються лінійні або пірамідальні дешифратори. Такого типу дешифратори називають прямокутними.

Таким чином, прямокутний дешифратор містить два ступені незалежно від величини і забезпечує високу швидкодію. Для реалізації прямокутного дешифратора з лінійним дешифратором в його першій стугепі необхідно елементів при парному елементів при непарному. У прямокутному дешифраторі на рис. 5.13 виходи є інверсними, т. Е. На всіх його пиходач, крім одного, який визначається вхідним кодом, уіанавлнпаются «логічні і лише на одному виході -« логічний 0 »На основі комбінації будь-якого з дешифраторів з виходами вхідні шифратора можна помтроіть перетворювач вихідного коду в заданий. Для цього достатньо відповідним чином з'єднати виходи дешифратора з входами шифратора.

У табл. 5 8 наведено параметри шифраторів і дешифраторів найбільш широко застосовуваних серій ІМС. На рис. 5.11 показано функціональне призначення висновків ІМС з табл. 5.8.