FPGA > САПР > Функционально-логическое проектирование: Курс лабораторных работ

ЛР4 > Побудова схеми двійкового суматора та віднімача. Арифметичні дії над двійковими числами

Тема: Двійкові суматори

Мета роботи: Вивчення правил виконання арифметичних дій над двійковими числами і дослідження принципів побудови двійкових суматорів і віднімачів.

Завдання

Завдання №1

Синтезувати комбінаційні схеми нижче зазначених суматорів із заданими параметрами в САПР Altera Quartus II в режимі графічного редактора (Graphic Editor). Провести дослідження часових параметрів отриманих схем (Simulator).

Завдання №2

Використовуючи ЛЕ, наявні в САПР Altera Quartus II, спроектувати схему та дослідити роботу (зняти часову діаграму і таблицю затримок) однорозрядного суматора.

Завдання №3

Дослідити роботу (зняти часову діаграму і таблицю затримок) ІС 2-розрядного суматора К155ІМ2 або аналогічного типу.

Завдання №4

На базі ІС К155ІМ2 або суматора аналогічного типу спроектувати схему 4-розрядного двійкового суматора – віднімача і виконати такі арифметичні операції А+В і С-D (значення А, В, С, D, що відповідають вашому варіанту) і перевірити функціонування пристрою використовуючи налагоджувальний модуль UP2.

Методичні вказівки

1. Правила виконання арифметичних операцій

Арифметичні дії (операції) належать до числа найбільш поширених операцій, що виконуються цифровими пристроями (ЦП).

Правила виконання арифметичних операцій над двійковими числами аналогічні відповідним правилам десяткової арифметики і зведені в табл.1.

Таблиця 1. Правила і приклади виконання арифметичних операцій над двійковими числами.

Двійкове додавання

Двійкове віднімання


Двійкове ділення

Для виконання арифметичних операцій над двійковими числами із знаком вводять додатковий (знаковий) розряд, який вказує, чи є число додатним або від’ємним. Якщо число додатне, в знаковий розряд проставляється символ 0, якщо ж число – від’ємне, то в знаковий розряд проставляється символ 1. Наприклад, число (5) з урахуванням знакового розряду (відділяється крапкою) запишеться як 0.101, а число (-3) – як 1.011.

При додаванні чисел з однаковими знаками числа складаються ісумі присвоюється код знака доданків, наприклад:

                

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

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

Щоб представити від’ємне двійкове число у зворотному коді, треба поставити в знаковий розряд 1, а у всіх інших розрядах прямого коду замінити одиниці нулями, а нулі – одиницями, тобто проінвертувати число.

При записі від’ємного двійкового числа в додатковому коді, треба поставити 1 в знаковий розряд, а решта розрядів отримати з зворотного коду числа, додаванням 1 до молодшого розряду.

Наведемо приклади запису двійкових чисел із знаками в прямому, зворотному і додатковому кодах.

Число    Прямий код        Зворотний код     Додатковий код

+6     0.110         0.110        0.110

-5     1.101         1.010        1.011

-11     1.1011         1.0100        1.0101

Пояснимо процедуру віднімання чисел 5 і 3, та 3 і 5. Послідовність і взаємозв’язок операцій представлена в табл. 2.

Таблиця 2

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

З наведеного вище можна зробити наступний висновок. В ЦП (в комп’ютері, зокрема) немає потреби використовувати два спеціалізованих обчислювальних пристрої, один з яких – двійковий суматор, а інший – двійковий віднімач. Виявляється, що застосування простого математичного «трюку» (подання двійкових чисел у зворотному або додатковому коді) дозволяє пристосувати двійковий суматор для виконання, як операцій додавання двійкових чисел, так і операцій їх віднімання.

Більш того, за допомогою двійкового суматора можна забезпечити також виконання операцій і множення і ділення двійкових чисел (тобто всіх чотирьох арифметичних дій), оскільки множення являє собою послідовне додавання, а ділення – послідовне віднімання. Приклади виконання цих операцій наведено в табл. 3.

Таблиця 3

2. Двійкові суматори

Сумування багато розрядних двійкових чисел А=anan-1…a0 та B=bnbn-1…b0 проводиться шляхом їх порозрядного складання з перенесенням між розрядами. Тому основним вузлом багаторозрядних суматорів є комбінаційний однорозрядний суматор, який виконує арифметичне додавання трьох однорозрядних чисел (цифр): цифри даного розряду першого доданка (ai), цифри даного розряду другого доданка (bi) і цифри (1 або 0) переносу з сусіднього молодшого розряду (pi). В результаті додавання для кожного розряду виходять дві цифри – сума для цього розряду (Si) і перенесення в наступний старший розряд (pi +1).

Умовне графічне зображення одно розрядного суматора і його таблиця істинності (функціонування) наведені на рис. 1.

ai bi pi Si рi+1
01010

1

0

1

00110

0

1

1

00001

1

1

1

01101

0

0

1

00010

1

1

1

а)

Рис. 1. Таблиця істинності (а) і умовне позначення (б) однорозрядного суматора

Для синтезу схеми одно розрядного суматора запишемо вирази для Si и pi+1 (виходів суматора):

     (1)

 (2)

Схема однорозрядного суматора, побудована в відповідності з виразами (1) і (2) наведена на рис. 2.

Багаторозрядний паралельний суматор може бути складений з однорозрядних суматорів, число яких дорівнює числу розрядів доданків, шляхом з’єднання виходу, на якому формується сигнал переносу даного розряду, з входом для сигналу переносу сусіднього старшого розряду. Такий спосіб організації переносу називається послідовним. Приклад побудови 3-розрядного паралельного суматора демонструє рис. 3. В суматорах цього типу перенос поширюєтьсяпослідовно від розряду до розряду по мірі утворення суми в кожному розряді. При найбільш несприятливих умовах перенесення, наприклад, при додаванні чисел 11…11 і 00…01 буде мати місце «пробіг» одиниці переносу через весь суматор від наймолодшого до найстаршого розряду. Тому в найгіршому випадку час поширення перенесення

Тзт.р.пер.=n×tзт.р.пер.,

де tзт.р.пер. – час затримки розповсюдження переносу в одному розряді;

n – число розрядів суматора.

Рис. 3. Функціональна схема 3-розрядного паралельного суматора з послідовним переносом

Даний тип суматора найбільш простий з точки зору схеми ланцюгів поширення переносу, але має порівняно низьку швидкодію.

Більш високою швидкодією володіють суматори з паралельним переносом, в яких сигнали формуються в усіх розрядах одночасно. Цій меті служать спеціальні схеми прискореного переносу.

3 Двійкові віднімачі

В п.1.1 була показана можливість заміни операції віднімання двійкових чисел операцією їх складання. Для цього зменшуване і від’ємник представляються у зворотному чи додатковому кодах.

Розглянемо приклади застосування двійкового суматора для виконання операції віднімання. На рис. 4, а наведена схема 3-розрядного двійкового віднімача, в якій від’ємник представлено в зворотному коді. Вона відрізняється від схеми двійкового паралельного суматора (рис. 3.) Включенням 3-х інверторів, які забезпечують перетворення двійкового числа B = b2b1b0 (від’ємника) в зворотний код і ланцюгом додаткового (циклічного) перенесення з виходу переносу 3-го (старшого) розряду на вхід переносу 1-го (молодшого) розряду.

На рис. 4, б зображена схема 3-розрядного віднімача, в якій від’ємник (B) представлено в додатковому коді. Останнє досягається подачею (додаванням) “1” до молодшого розряду зворотного коду від’ємника. Необхідність в ланцюзі циклічного переносу при цьому відпадає.

4 Двійкові суматори – віднімачі

Тепер, коли ми знаємо, що двійкові суматори можна використовувати як для складання, так і для віднімання, спроектуємо схему універсального пристрою – суматора-віднімача, поклавши в її основу схему віднімача (рис. 4, б). Щоб ця схема працювала як 3-розрядний суматор, досить тимчасово (умовно) виключити з неї 3 інвертора і на вхід переносу молодшого розряду подати “0”. У перетвореному вигляді ця схема замість інверторів містить три логічних елемента М2 (сума по модулю 2). Один вхід елемента М2 розглядається як керуючий вхід (V). При подачі 0 на вхід V логічного елемента М2 інформаційні біти кожного розряду двійкового числа b2b1b0 проходять через цей елемент без інверсії. Таким чином, при установці 0 на керуючому вході схема складає двійкові числа a2a1a0 і b2b1b0. Результат з’являється на вихідних індикаторах. Крім того, логічний 0 на керуючому вході V надходить на вхід переносу молодшого розряду двійкового суматора.

Щоб схема працювала як 3-розрядний віднімач, на керуючому вході V потрібно встановити рівень логічної 1. В цьому випадку логічний елемент М2 діє як інвертор сигналів на входах B однорозрядних суматорів. Крім того, логічна 1 на керуючому вході надходить на вхід переносу молодшого розряду двійкового суматора.

Контрольні запитання

  1. Представте операнди (доданки – при додаванні; зменшуване і від’ємник – при відніманні) в двійковому зворотному коді і виконайте такі операції:

    а) (+7)    б) (+8)    в) (+3)    г) (+13)

    (-1)     (-5)     (-8)     (-10)

  2. Представте операнди в двійковому додатковому коді і виконайте ті ж операції,що і в питанні 1.
  3. Дайте визначення однорозрядного суматора і спроектуйте його схему в САПР MAX+ на логічних елементах. Порівняйте потрібні для цього апаратурні витрати (кількість ІС) з витратами, необхідними для схеми, наведеної на рис. 2.
  4. Вкажіть переваги і недоліки двійкових суматорів з послідовним переносом.
  5. На базі ИС К155ІМ2 або суматора аналогічного типу спроектуйте схему 8-розрядного суматора-віднімача.

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

№ варіанта 1 2 3 4 5 6 7 8 9 10 11
А 2 3 3 4 5 5 4 2 4 2 3
В 2 2 3 2 1 2 1 1 3 3 1
С 6 7 5 5 4 6 7 6 7 5 5
D 5 4 1 3 4 4 5 3 3 2 4
№ варіанта 12 13 14 15 16 17 18 19 20 21 22
А 3 3 2 4 5 5 2 2 5 7 2
В 2 4 3 1 1 3 1 3 4 1 7
С 5 7 6 6 6 6 7 6 7 6 5
D 4 4 5 3 4 1 5 6 3 5 2

Комментарии: