ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2021
Просмотров: 142
Скачиваний: 1
Лабораторна робота №1
Синтез та дослідження перетворювача кодів
Мета роботи: Синтезувати та виконати моделювання схеми перетворювача кодів. Дослідити його роботу з використанням часових діаграм, побудованих у Micro-Cap.
1. ПЕРЕТВОРЮВАЧІ КОДІВ
1.1. Загальна характеристика перетворювачів кодів
Перетворювачем коду називається функціональний вузол комп'ютера, призначений для перетворення двійкового коду з однієї форми в іншу.
Для подання інформації використовують різноманітні двійкові та двійково-десяткові коди: прямий, обернений, доповняльний і їхні модифікації, циклічний з лишком три та інші. Існує велика кількість кодів, які забезпечують:
• простоту виконання арифметико-логічних операцій;
• зручність переведення чисел з десяткової системи в двійковий код;
• надійність виконання заданих алгоритмів функціонування і ефективний контроль результатів обчислень;
• зменшення апаратних витрат при побудові цифрових пристроїв. Найбільш поширеними є прямий, обернений і доповняльний коди, які забезпечують представлення знака числа і заміну операції віднімання додаванням. До перетворювачів коду відносяться шифратори і дешифратори, однак за традицією ці функціональні вузли виділені в окремі самостійні класи.
Прямий, обернений і доповняльний коди використовуються для записування знака числа, заміни операції віднімання чисел додаванням їхніх кодів, а також для визначення переповнення розрядної сітки. Для представлення знака числа у них відводиться знаковий розряд, який розташовується зліва від числа і відділяється комою. У знаковий розряд записується нуль — для позитивного числа і одиниця — для негативного.
1.2 Перетворювач прямого коду в обернений
У прямому двійковому коді ХПР = ХЗН Хn-1, ..., Х1 один розряд, звичайно старший, відображає знак числа, інші — значення цифрових розрядів; при цьому для додатного числа ХЗН = 0, а для від'ємного ХЗН = 1. Обернений код додатного двійкового числа збігається з прямим кодом, а для від'ємного числа цифрові розряди прямого коду інвертуються.
У процесі перетворення прямого коду в обернений значення знакового розряду ХЗН використовується як керуючий сигнал, що забезпечує отримання такого виразу:
(1.1)
де — значення i-го розряду оберненого коду; — значення i-го розряду додатного вхідного числа ( = 0); — значення і-го розряду від'ємного вхідного числа ( = 1).
1.3 Перетворювач прямого коду в доповняльний
Доповняльний код додатного двійкового числа збігається з його прямим і оберненим кодами. Доповняльний код від'ємного двійкового числа утворюється з його оберненого коду додаванням до молодшого розряду одиниці. Таким чином, операція перетворення прямого коду в доповняльний не є порозрядною і виконується значно складніше, ніж отримання оберненого коду.
Відповідність між прямим і доповняльним кодами на прикладі чотирьох цифрових розрядів (беззнакових) наведена в табл. 1.1.
Таблиця 1.1
Прямий код |
Доповняльний код |
Прямий код |
Доповняльний код |
||||||||||||
X4 |
X3 |
X2 |
X1 |
Y4 |
Y3 |
Y2 |
Y1 |
X4 |
X3 |
X2 |
X1 |
Y4 |
Y3 |
Y2 |
Y1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
Знаковий розряд прямого коду використовується як керуючий сигнал: якщо = 0, то вихідний код повторює значення вхідного; при = 1 реалізується перетворення згідно з табл. 1.1.
Карта Карно відповідно до табл. 1.2 для отримання мінімальних форм функцій перетворення прямого коду в доповняльний показана на рис. 1.1.
На основі карт Карно з врахуванням знакового розряду прямого коду для функцій Y1, Y2, Y2, Y4, що представляють виходи перетворювача, отримуємо:
; ; ; (1.2)
; .
У загальному вигляді для Уi справедливе рівняння:
. (1.3)
Схема перетворювача прямого коду в доповняльний на основі виразів (1.2) і (1.3) показана на рис. 1.2, а. Даний перетворювач характеризується високою швидкодією. Час встановлення вихідного коду визначається трьома затримками поширення сигналу, однак в міру зростання номера розряду лінійно зростає й необхідне число входів використовуваних елементів АБО.
Другий варіант схеми перетворювача (рис. 1.2, б) використовує тільки двовходові елементи АБО, при цьому диз'юнктивна сума змінних утворюється послідовним способом. У такій реалізації схема перетворювача спрощується, однак час встановлення вихідного коду істотно збільшується.
Практичне правило отримання доповняльного коду полягає в тому, що праворуч від першої одиниці (враховуючи і саму одиницю) в прямому коді числа значення розрядів - незмінні, а зліва від одиниці (крім знакового) — інвертуються. Наприклад, для прямого коду 10100100 доповняльним буде код 11011100.
Для перетворення в доповняльний код багаторозрядних двійкових чисел часто використовують переведення числа в обернений код і подальшого додавання одиниці до його молодшого розряду за допомогою суматора.
1.4 Двійково-десяткові перетворювачі
У комп'ютерах широко використовується двійково-десяткове кодування, в якому кожна десяткова цифра зображується чотирирозрядним двійковим кодом, тобто тетрадою двійкових символів. Число різних двійково-десяткових кодів визначається числом можливих комбінацій по десять із 16 комбінацій, які допускаються тетрадою. Десяткові числа можуть представлятися в коді "з лишком 3”, в коді з вагою "5421" або "2421" (код Айкена) та ін.
Найбільш поширеним є код прямого заміщення "8421”, в якому кожна десяткова цифра 0, 1, ..., 9 замінюється її двійковим еквівалентом 0000, 0001, ..., 1001. Такий код називають також зваженим Д-кодом. Наприклад, число 729 у двійково-десятковому коді записується у вигляді трьох тетрад:0111001010012-10.
Для Д-кодів розроблені машинні алгоритми операцій додавання, віднімання, множення, ділення та інші. Операції над десятковими числами (десяткова арифметика) входять до складу команд комп'ютерів різних класів.
Особливістю Д-кодів є наявність десяти дозволених і шести заборонених комбінацій двійкових символів в тетраді. Поява забороненої комбінації при виконанні операцій над числами свідчить про виникнення помилки або ж про необхідність корекції результату.
У розрядній сітці машини двійково-десяткові коди представляються у формі з плаваючою або фіксованою комою. При цьому від'ємні числа відображаються в прямому, оберненому або доповняльному кодах. Для Д-кодів не виконується умова отримання оберненого коду інвертуванням розрядів тетради.
Застосування Д-кодів у комп'ютерах не вимагає виконання різного роду перетворень: двійково-десяткових чисел у двійкові та навпаки. Наприклад, за допомогою шифратора забезпечується порівняно простий спосіб введення в машину десяткових цифр двійково-десятковим кодом.
Значення однієї тетради Д-коду, доповнення тетради до дев'яти "9-Д" (обернений код) і до десяти "10-Д" (доповняльний код), а також коди з "лишком 3" і з вагою "5421" наведені в табл. 1.2.
Таблиця 1.2
Код Д |
Код "9-Д" |
Код "10-Д" |
Код "Д+3" |
Код "5421" |
|||||||||||||||
X4 |
X3 |
X2 |
X1 |
Y4 |
Y3 |
Y2 |
Y1 |
F4 |
F3 |
F2 |
F1 |
Z4 |
Z3 |
Z2 |
Z1 |
E4 |
E3 |
E2 |
E1 |
0 0 0 0 0 0 0 0 1 1 |
0 0 0 0 1 1 1 1 0 0 |
0 0 1 1 0 0 1 1 0 0 |
0 1 0 1 0 1 0 1 0 1 |
1 1 0 0 0 0 0 0 0 0 |
0 0 1 1 1 1 0 0 0 0 |
0 0 1 1 0 0 1 1 0 0 |
1 0 1 0 1 0 1 0 1 0 |
1 1 1 0 0 0 0 0 0 0 |
0 0 0 1 1 1 1 0 0 0 |
1 0 0 1 1 0 0 1 1 0 |
0 1 0 1 0 1 0 1 0 1 |
0 0 0 0 0 1 1 1 1 1 |
0 1 1 1 1 0 0 0 0 1 |
1 0 0 1 1 0 0 1 1 0 |
1 0 1 0 1 0 1 0 1 0 |
0 0 0 0 0 0 0 0 1 1 |
0 0 0 0 1 1 1 1 0 1 |
0 0 1 1 0 0 1 1 0 0 |
0 1 0 1 0 1 0 1 0 0 |
Систему мінімальних логічних виразів оберненого двійково-десяткового коду отримуємо за допомогою карт Карно (рис. 1.3), в які вносяться значення розрядів Y]-Y4 за даними табл. 1.2.
На основі карт Карно отримуємо систему рівнянь для розрядів Y\ - Y4 оберненого Д-коду:
; ; ; . (1.4)
Із виразів (1.4) випливає, що значення другого розряду тетради прямого і оберненого Д-кодів збігаються. Схема перетворювача прямого Д-коду в обернений на основі співвідношень (1.4) показана на рис. 1.4, а.
Можливий і інший спосіб побудови перетворювача Д-коду в обернений: спочатку інвертуються цифри всіх тетрад (виходить код з лишком шість) і потім відбувається віднімання з кожної тетради числа мінус 0110, що еквівалентне додаванню в доповняльному коді плюс 1010 (без урахування перенесень між тетрадами). Наприклад, А = ‑148, прямий Д-код [A] *ПР = 1 0001 0100 1000; після інвертування маємо: [A]* ПР = 1 1110 1011 0111; після додавання плюс 1010 до кожної тетради одержуємо значення оберненого Д-коду: [A]об =11000 0101 0001.
Схема перетворювача на основі інвертування і корекції тетрад показана на рис. 1.4, б. В даній схемі інвертування значень розрядів тетрад здійснюється логічними елементами "виключальне АБО", а корекція реалізується типовою мікросхемою чотирирозрядного комбінаційного суматора. Доповняльний Д-код тетради виходить з оберненого додаванням одиниці до молодшого розряду.
Хід роботи
-
У викладача отримати варіант завдання для виконання роботи.
-
Ознайомитися з принципами побудови та характеристиками перетворювачів кодів.
-
Синтезувати схему перетворювача кодів відповідно до завдання.
-
Створити схему перетворювача кодів в прикладному програмному пакеті (ППП) Micro-Cap.
4.1 Створити в ППП Micro-Cap файл з новою назвою.
4.2 Розмістити в створеному файлі генератор на чотири виходи. Для цього в текстовому меню вибрати генератор (Component - Digital Primitives – Stimulus Generator - Stim4) та описати його параметри.
4.3 Створити групу ліній для прямих та інверсних значень сигналів генератора. Для отримання інверсних значень сигналів використати інвертори (Component - Digital Primitives – Standart gates – Inverters - Inverter).
4.4 Побудувати схему перетворювача кодів у створеному файлові з використанням логічних елементів І (And) та АБО (Or) з необхідною кількістю входів без використання затримки. Наприклад, використовуючи елементи І на 2 входи (Component - Digital Primitives - Standart gates - And gates - And 2 ) або елементи АБО на 3 входи (Component - Digital Primitives - Standart gates – Or gates – Or 3).
4.5 Присвоїти імена вхідним та вихідним лініям, наприклад, вхідні X1, X2, X3, X4 та вихідні Y1, Y2, Y3, Y4.
-
Виконати моделювання і отримати часові діаграми роботи перетворювача кодів.
-
Перейти до виконання програми моделювання роботи перетворювача кодів. Для цього в текстовому меню вибрати опцію Analysis – Transient і визвати таблицю для опису полів часової діаграми.
-
Описати вхідні та вихідні сигнали з використанням полів X і Y Expression (вказати точки для побудови часової діаграми, наприклад, описати точки d(X1), d(X2), d(X3), d(X4)) та X і Y Range (вказати часовий діапазон перегляду сигналів).
-
Отримати часові діаграми (використати піктограму Run для побудови діаграм).
-
-
Вказати затримку сигналів для логічних елементів схеми відповідно до завдання. Отримати нові часові діаграми.
-
Порівняти часові діаграми, зробити висновки.
-
Оформити звіт по лабораторній роботі та захистити його у викладача.
Варіанти завдань
-
1-1-2-5. 10. 1-2-3-5.
-
1-1-3-4. 11. 1-2-3-6.
-
1-1-3-5. 12. 1-2-3-7.
-
1-1-3-6. 13. 1-2-4-2.
-
1-2-2-4. 14. 1-2-4-3.
-
1-2-2-5. 15. 1-2-4-4.
-
1-2-2-6. 16. 1-2-4-5.
-
1-2-3-3. 17. 1-2-4-6.
-
1-2-3-4. 18. 1-2-4-7.
Затримки логічних елементів
Варіанти |
Елемент І (нс) |
Елемент АБО (нс) |
Елемент НІ (нс) |
1-5 |
5 |
10 |
5 |
6-10 |
10 |
10 |
10 |
11-15 |
5 |
15 |
10 |
16-20 |
10 |
5 |
5 |
21-25 |
15 |
10 |
10 |