ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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, б. В даній схемі інвертування значень розрядів тетрад здійснюється логічними елементами "виключальне АБО", а корекція реалізується типовою мікросхемою чотирирозрядного комбінаційного суматора. Доповняльний Д-код тетради виходить з оберненого додаванням одиниці до молодшого розряду.


Хід роботи


  1. У викладача отримати варіант завдання для виконання роботи.

  2. Ознайомитися з принципами побудови та характеристиками перетворювачів кодів.

  3. Синтезувати схему перетворювача кодів відповідно до завдання.

  4. Створити схему перетворювача кодів в прикладному програмному пакеті (ППП) Micro-Cap.

4.1 Створити в ППП Micro-Cap файл з новою назвою.

4.2 Розмістити в створеному файлі генератор на чотири виходи. Для цього в текстовому меню вибрати генератор (Component - Digital PrimitivesStimulus Generator - Stim4) та описати його параметри.

4.3 Створити групу ліній для прямих та інверсних значень сигналів генератора. Для отримання інверсних значень сигналів використати інвертори (Component - Digital PrimitivesStandart gatesInverters - Inverter).

4.4 Побудувати схему перетворювача кодів у створеному файлові з використанням логічних елементів І (And) та АБО (Or) з необхідною кількістю входів без використання затримки. Наприклад, використовуючи елементи І на 2 входи (Component - Digital Primitives - Standart gates - And gates - And 2 ) або елементи АБО на 3 входи (Component - Digital Primitives - Standart gatesOr gatesOr 3).

4.5 Присвоїти імена вхідним та вихідним лініям, наприклад, вхідні X1, X2, X3, X4 та вихідні Y1, Y2, Y3, Y4.

  1. Виконати моделювання і отримати часові діаграми роботи перетворювача кодів.

    1. Перейти до виконання програми моделювання роботи перетворювача кодів. Для цього в текстовому меню вибрати опцію AnalysisTransient і визвати таблицю для опису полів часової діаграми.

    2. Описати вхідні та вихідні сигнали з використанням полів X і Y Expression (вказати точки для побудови часової діаграми, наприклад, описати точки d(X1), d(X2), d(X3), d(X4)) та X і Y Range (вказати часовий діапазон перегляду сигналів).

    3. Отримати часові діаграми (використати піктограму Run для побудови діаграм).

  2. Вказати затримку сигналів для логічних елементів схеми відповідно до завдання. Отримати нові часові діаграми.

  3. Порівняти часові діаграми, зробити висновки.

  4. Оформити звіт по лабораторній роботі та захистити його у викладача.



Варіанти завдань

  1. 1-1-2-5. 10. 1-2-3-5.

  2. 1-1-3-4. 11. 1-2-3-6.

  3. 1-1-3-5. 12. 1-2-3-7.

  4. 1-1-3-6. 13. 1-2-4-2.

  5. 1-2-2-4. 14. 1-2-4-3.

  6. 1-2-2-5. 15. 1-2-4-4.

  7. 1-2-2-6. 16. 1-2-4-5.

  8. 1-2-3-3. 17. 1-2-4-6.

  9. 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