Перетворювач прямого коду в додатковий
Додатковий код додатного двійкового числа збігається з його прямим і оберненим кодами. Дододатковий код від'ємного двійкового числа утворюється з його оберненого коду додаванням до молодшого розряду одиниці. Таким чином, операція перетворення прямого коду в додатковий не є порозрядною і виконується значно складніше, ніж отримання оберненого коду.
Відповідність між прямим і додатковим кодами на прикладі чотирьох цифрових розрядів (беззнакових) наведена в табл. 1.
Таблиця 1.
|
| Прямий код |
| ||||||||||||
Х4 | Х3 | Х2 | Х1 | Y4 | Y3 | Y2 | Y1 | Х4 | Х3 | Х2 | Х1 | Y4 | Y3 | Y2 | Y1 |
Знаковий розряд прямого коду використовується як керуючий сигнал: якщо ХЗН = 0, то вихідний код повторює значення вхідного; при ХЗН = 1 реалізується перетворення згідно з табл. 2.
Карта Карно відповідно до табл. 1 для отримання мінімальних форм функцій перетворення прямого коду в доповняльний показана на рис. 1.
а б в г
Рис. 1. Карта Карно для функцій перетворювача прямого коду в доповняльний: а – Y1; б – Y2; в – Y3; г – Y4
На основі карт Карно з врахуванням знакового розряду ХЗН прямого коду для функцій Y1 ,Y2 ,Y3 ,Y4 , що представляють виходи перетворювача, отримуємо:
(1)
У загальному вигляді для Yi справедливе рівняння:
(2)
Схема перетворювача прямого коду в додатковий на основі виразів (1) і (2) показана на рис. 2,а. Даний перетворювач характеризується високою швидкодією. Час встановлення вихідного коду визначається трьома затримками поширення сигналу, однак в міру зростання номера розряду лінійно зростає й необхідне число входів використовуваних елементів АБО.
Другий варіант схеми перетворювача (рис. 2,б) використовує тільки двовходові елементи АБО, при цьому диз'юнктивна сума змінних утворюється послідовним способом. У такій реалізації схема перетворювача спрощується, однак час встановлення вихідного коду істотно збільшується.
Рис. 2. Схеми перетворювачів прямого коду в додатковий.
Практичне правило отримання додаткового коду полягає в тому, що праворуч від першої одиниці (враховуючи і саму одиницю) в прямому коді числа значення розрядів - незмінні, а зліва від одиниці (крім знакового) - інвертуються. Наприклад, для прямого коду 10100100 додатковим буде код 11011100.
Для перетворення в додатковий код багаторозрядних двійкових чисел часто використовують переведення числа в обернений код і подальшого додавання одиниці до його молодшого розряду за допомогою суматора.
Завдання для самоконтролю
Задача 1. Виконати аналіз роботи схеми на рис.3 (стр.55), якщо х1=1, х2=0, х3=1, х4=0. Для цього потрібно вказатирівні сигналів на входах і виходах пристрою та на логічних елементах рис.3. Отримані результати порівняти з даними таблиці 1 (стр. 54).
Задача 2***. Побудувати схему асинхронного перетворювача двійкового коду 8421 в код 2421 використовуючи мультиплексори а) 8→1, б) 16→1, використовувати інтегральну мікросхему мультиплексора КР1533КП7.
Для розв’язування задачі використовувати таблицю 1, для побудови діаграм Вейча за допомогою яких можна визначити інформаційні області Dі для кожного мультиплексора (а, б).