Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DM_5.pdf
Скачиваний:
38
Добавлен:
23.02.2015
Размер:
1.38 Mб
Скачать

Пример. Вычесть 56 из 23, используя 8-битовые числа со знаком. Поскольку

56 = 00111000 и 23 = 00010111, имеем

Сначала находим двоичное дополнение числа 00111000, которое равно 11001000, а затем выполняем сложение:

Так как двоичным дополнением числа 11011111 является 00100001, которое равно 33, число 11011111 равно -33.

Пример. Вычесть 7328 из 3614, воспользовавшись 16-битовыми шестнадцатеричными числами со знаком. Поскольку 732810 = 1CA016 и 3614 = E1E16, имеем

Сначала находим двоичное дополнение числа 1СА0, которое равно E35F, а затем выполняем сложение:

Поскольку двоичным дополнением числа F1E является 0E82 и 0Е82 = 371410,

то 3614 - 7328 = –3714.

5.5 Проектирование сумматоров

Ранее мы рассматривали функциональные схемы с одним выходом, т.е. схемы, которые соответствовали одной булевой функции нескольких булевых аргументов. Но часто требуется построить схемы с несколькими выходами, сигнал на каждом из которых соответствует своей булевой функции, а значения аргументов (сигналов на входе) общие. Важным примером таких схем являются арифметические регистры микропроцессоров. Здесь мы рассмотрим способ конструирования функциональных схем простейших сумматоров – полубитного, одноразрядного, двухбитного, трехбитного и n – битного сумматоров.

Полубитный сумматор. Пусть p и q обозначают двоичные цифры, которые предстоит сложить, а d1 и d0 — двоичные цифры суммы, получающейся на выходе сумматора (здесь d1 будет представлять старший разряд, а d0 – младший разряды суммы )

26

Полусумматор находит сумму двух двоичных чисел (единиц и/или нулей) согласно таблице сложения

Таблицы истинности для булевых функций d0 и d1 должны иметь вид

Следовательно, d0 p q'+p' q и d1 = p q . Тогда функциональную схему полусумматора можно представить следующим образом

Поскольку

p q'+p' q (p + q) (p q)'

(это

проверяется,

например,

построением

таблиц

истинности),

то

для

булевых

функций

d0 (p + q) (p q)' и d1 = p q схему полусумматора можно построить также в следующем виде

Полусумматор часто обозначается символом, изображенным на следующем рисунке

Одноразрядный (полный) двоичный сумматор складывает три двоичных одноразрядных числа. Он производит сложение двух бинарных чисел p, q (обычно это i – е двоичные разряды многоразрядных двоичных чисел) и учитывает еще перенос r из предыдущего разряда (добавляет двоичную цифру). На выходе одноразрядного сумматора выдается сумма

27

p +2 q +2 r = d0# и еще вычисляется перенос d1# в следующий разряд. На схемах его часто обозначают следующим образом

Пусть р,q и r обозначают одноразрядные двоичные числа, которые необходимо сложить, а d1# ,d0# — первый (старший) и второй (младший) разряды их суммы. Построим следующие таблицы истинности:

Здесь d0 (p + q) (p q)' младший разряд суммы р+2 q и d1 = p q - старший разряд этой суммы. Тогда d0# (младший разряд суммы трех чисел) есть

младший разряд результата сложения

d0+2 r – это видно из приведенной

таблицы.

d1#

 

Из приведенной таблицы для

(старший разряд суммы трех чисел)

имеем такое представление

в

виде дизъюнкции минтермов

d1# = p q r + p q r'+p q'r + p'q r . Для упрощения этого выражения составляем карту Карно.

Из нее получаем d1# p q + p r + q r p q + (p + q)r . Поэтому схема может быть приведена к виду, показанному на следующем рисунке, в который мы включили два полубитных сумматора.

28

Заметим, что старший разряд (выход) второго полубитного сумматора мы игнорируем. Более подробно эта схема представлена на следующем рисунке

Здесь схемы полусумматоров мы отметили пунктирными прямоугольниками,

и символ представляет игнорируемый выход второго полусумматора, который, конечно, можно не делать.

Двухбитный сумматор — это устройство, которое вычисляет сумму двух двоичных чисел, выдавая в качестве ответа трехзначное двоичное число. На вход он получает два двузначных двоичных числа, а на выходе у него оказывается трехзначное число, равное сумме вводимых чисел. Иными словами, 2-битный сумматор складывает числа в двоичной системе счисления. Например, 102+112=1012.

Обозначим через а и b цифры первого вводимого в сумматор числа, а через с и d — цифры второго (см. рисунок). Пусть e,f,g — цифры вычисляемой суммы.

Составим следующую таблицу истинности

29

 

b

c d

 

 

ab+2 cd

 

 

a+2 c

b+2 d

u2+2 v1

 

u1 V u3

a

e f g

u1

v1

u2

v2

u3

v3

 

1

1

1

1

 

1

 

 

1

 

 

0

 

1

0

1

0

0

1

 

1

1

1

1

0

 

1

 

 

0

 

 

1

 

1

0

0

1

0

0

 

1

1

1

0

1

 

1

 

 

0

 

 

0

 

0

1

1

0

1

0

 

1

1

1

0

0

 

0

 

 

1

 

 

1

 

0

1

0

1

0

1

 

0

1

0

1

1

 

1

 

 

0

 

 

1

 

1

0

0

1

0

0

 

1

1

0

1

0

 

1

 

 

0

 

 

0

 

1

0

0

0

0

0

 

1

1

0

0

1

 

0

 

 

1

 

 

1

 

0

1

0

1

0

1

 

0

1

0

0

0

 

0

 

 

1

 

 

0

 

0

1

0

0

0

1

 

0

0

1

1

1

 

1

 

 

0

 

 

0

 

0

1

1

0

1

0

 

1

0

1

1

0

 

0

 

 

1

 

 

1

 

0

1

0

1

0

1

 

0

0

1

0

1

 

0

 

 

1

 

 

0

 

0

0

1

0

0

1

 

0

0

1

0

0

 

0

 

 

0

 

 

1

 

0

0

0

1

0

0

 

0

0

0

1

1

 

0

 

 

1

 

 

1

 

0

1

0

1

0

1

 

0

0

0

1

0

 

0

 

 

1

 

 

0

 

0

1

0

0

0

1

 

0

0

0

0

1

 

0

 

 

0

 

 

1

 

0

0

0

1

0

0

 

0

0

0

0

0

 

0

 

 

0

 

 

0

 

0

0

0

0

0

0

 

0

Здесь ab – первый двоичный операнд и a – его старшая двоичная цифра, а b – младшая. Также cd – второй двоичный операнд и c – его старшая двоичная цифра, а d – младшая. Результат efg=ab+2 cd, где g,f,e – младшая, средняя и старшая цифры результата суммирования. В таблице также заполнены столбцы для двоичных сумм a+2 c, b+2 d, u2+2 v1. Очевидно, что в функциональной схеме они могут быть получены с использованием полубитных сумматоров. Значения последнего столбца u1 V u3 могут быть получены с использованием двоичного элемента ИЛИ.

Из таблицы видно, что столбец v2 совпадает со столбцом g. Поэтому младший разряд результата может быть получен как младший разряд суммы цифр b+2 d. Столбец v3 совпадает со столбцом f. Поэтому средняя цифра результата может быть получена как сумма u2+2 v1. Также из таблицы видно, что старшая цифра суммы может быть получена бинарным сложением e=u1 V u3. Исходя из всего сказанного функциональная схема 2-битного сумматора может быть представлена следующей схемой

30

На следующем рисунке представлена функциональная схема 3-битного сумматора, складывающего два трехзначных двоичных числа с цифрами a,b,с и d,е,f соответственно. В качестве суммы получается четырехзначное число с цифрами g,h,i,j .

Мы не будем строить таблицы истинности для этого сумматора, а проанализируем его работу на примере сложения двух трехзначных двоичных чисел, например, 110+2 011=1001. Для этого мы проставили значения сигналов на предыдущей схеме. В общем случае мы, конечно, должны составить таблицы истинности для булевой функции, соответствующей каждому выходу, и убедиться, что при любых входных значениях (двоичных аргументах) мы получаем двоичные цифры суммы на соответствующих выходах.

n – разрядный двоичный сумматор суммирует два n – разрядных двоичных числа и возвращать их сумму, и еще, возможно, разряд переполнения (переноса). Для построения его схемы мы используем одноразрядный двоичный сумматор. Напомним, что он производит сложение двух двоичных цифр xi,yi и учитывает еще перенос pi из предыдущего разряда. На выходе одноразрядного сумматора выдается сумма xi+2 yi+2 pi=zi и вычисляется

31

перенос pi+1 в следующий разряд. На схемах такой сумматор часто обозначается следующим образом

Пусть первое слагаемое n – разрядного сумматора имеет вид xn xn1 xn2 ...x2 x1 ,

второе – yn yn1 yn2 ...y2 y1 и сумма – zn zn1 zn2 ...z2 z1 , где xi , yi , zi - i-е двоичные цифры (0 или 1) слагаемых и результата. Построим последовательную схему из одноразрядных сумматоров следующего вида

Здесь р1 = 0, z1 = x1 y1 – младшая двоичная цифра результата сложения

младших разрядов слагаемых (символ обозначает сложение по модулю 2, т.е. младшую двоичную цифру сложения), p2 – цифра переноса из младшего разряда. Далее z2 = x2 y2 – вторая цифра результата и p3 – цифра переноса

из второго разряда. И так далее. Если значение pn+1=1, то это сигнал о переполнении сумматора. Важно, что каждый очередной одноразрядный сумматор вступает в работу только после окончания работы предыдущего одноразрядного сумматора, который вырабатывает перенос. Поэтому на рисунке изображены элементы задержки в виде кружков на входе переноса очередного одноразрядного сумматора. Этот элемент запирает каждый одноразрядный сумматор до тех пор, пока не закончилось суммирование в предыдущем разряде. Синхронизация этого процесса характеризуется тактовой частотой процессора. Быстродействие компьютера зависит от тактовой частоты процессора и от величины разрядности n сумматора.

32

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]