Раздел: Документация
0 ... 83 84 85 86 87 88 89 ... 119 Yp - 10} = Хр + Ур - 10 + 3 = {Хр} + {Ур} - 16 + 3. Поэтому к остатку суммы {Хр} + {Yp} - 16 следует прибавить число 3. Если Хр + Yp < 10, то {Хр} + {Yp} < 16 и на выходе двоичного сумматора перенос отсутствует (cp+i = 0), а сумма {Лр} + {Ур} = {Хр +Ур} + 3. Поэтому из суммы {Хр} + {Yp} следует вычесть число 3, чтобы получить величину {Хр + Ур}, которая является кодом с избытком 3 суммы Хр + Ур. Вычитание какого-либо числа эквивалентно сложению его с дополнением до 2", поэтому вместо вычитания числа 3 можно прибавить число 24 - 3 = 13 = 1101. Таким образом, если перенос возникает, то к остатку суммы следует прибавить число 3, а если он отсутствует, то к сумме следует прибавить число 13. Итак, одноразрядный десятичный сумматор для десятичных разрядов, представленных в коде с избытком 3, описывается соотношениями: Г 0, если {.Yp} + {Ур} + ср < 16, CP+1 - 1 1, если {Хр} + {Yp} + ср > 16, /с г J iXp) + iYp) + СР + 13 если СР+! = °Г6 411 рр> + + Ср + 3] если Ср+1 = 1К ) где Cp+i - перенос в следующий десятичный разряд; {Sp} - значение р-го десятичного разряда суммы чисел А и У; ср = 0 или 1 - перенос из предыдущего десятичного разряда. Сложение с числами 3 и 13 называется коррекцией суммы. Из соотношения (6.41) видно, что вычисление суммы {SP} можно выполнить с помощью двух последовательно включенных 4-разрядных двоичных сумматоров: первый сумматор вычисляет вспомогательную сумму 5* = {Лр} + {Yp} 4- ср и перенос ср+1, а второй сумматор - сумму {Sp} = S* +Cp+iep+icp+il, так как Cp+icp+icp+i 1 = 13приср+1 = 0 и cp+icp+icp+i 1 =Зприср+1 = 1. Такое устройство называется сумматором кодов с избытком 3. Рассмотрим пример вычисления суммы двух чисел, представленных в коде с избытком 3. Пусть требуется сложить два числа А = 326 и У = 475 (S = X + y = 801). Все операции по преобразованию чисел описываются схемой:
0111 .1010.1000= {У}. + + Сложение чисел А и У в коде с избытком 3 поясняется схемой: х 102 х 101 х 10° - веса десятичных разрядов, 8421 8421 8421 - веса двоичных разрядов, ОНО . 0101 . 1001= {А}, + 0111 . 1010 . 1000= {У}, 0 11 - перенос, 1110 . 0000 . 0001 = {А} + {У}, 1101 . ООП . ООН - коррекция, 1011 . ООП . 0100= {5} = {А + У}, 1101 . 1101 . 1101- перевод в код 8-4-2-1, 1000 . 0000 . 0001 = {5} = 801 (код 8-4-2-1) (над точками в строке {А} + {У} указаны переносы из предыдущего разряда). Рассмотрим теперь вычитание n-разрядных десятичных чисел Л и У с использованием кода с избытком 3. Так как S = А - У = Х- 10" + (Юп - У) = А - 10" + W, где W = 10"-У, то вычитание из X числа У эквивалентно сложению X с дополнением У до 10" с коррекцией результата на 10" (следует вычесть 10"). Рассмотрим прямой и дополнительный коды с избытком 3 для десятичных чисел А любого знака. Прямой код с избытком 3 задается соотношением если X > 0, если А1 < 0, где Л = \Х\. Старший n-й разряд, равный 0 или 1, определяет знак 1 числа. Дополнительный код с избытком 3 определяется соотношением UXUn - /если Х * ° РШ- I Y{W}, если А < 0, . где W - 10" - А, А = \Х\. Полезно сравнить это соотношение с Выражением (6.40) для дополнительного кода двоичных чисел. Поскольку операция вычитания из А числа У заменяется опера-(Цией сложения А с дополнением W, то основным требованием к кодам, используемым для выполнения арифметических операций сложения и вычитания, является схемотехническая простота отыскания дополнения W. Код с избытком 3 относится к классу самодополняю-Щихся кодов: {Ар} + {Ар} = {9} для любых {Ар} = {0},{1},..., {9}. Действительно, пусть Хр = 4 = 0100. Тогда {Ар} = 0111, {.Yp} = 1000 и {ХР} + {ХР) = 1111-0011 = 1100= {9}. Поэтому для дополнительного кода с избытком 3 имеет место соотношение {W} = {Лр} + 1, из которого следует алгоритм получения дополнения W в коде с избытком 3 (аналогичное соотношение было получено и для двоичного дополнительного кода). Правила преобразования прямого кода с избытком 3 в дополнительный с избытком 3 и правила обратного преобразования такие же, как и для двоичного дополнительного кода. Правило сложения чисел, представленных в дополнительном коде с избытком 3, определяется соотношением [{5}]д=[{Х}]д + [{У}]д при условии, что нет переполнения разрядной сетки (совпадает с правилом сложения двоичных чисел в дополнительном коде). Ясно, что вычисление суммы дополнительных кодов можно выполнить рассмотренным выше сумматором кодов с избытком 3. Используя данные правила, рассмотрим числовой пример. Пусть требуется вычислить сумму S чисел А и У, где X = +257, У = -648. Все необходимые для этого преобразования чисел А и У описываются схемой: хЮ2 хЮ1 х10°-веса десятичных разрядов, 8421 8421 8421-веса-двоичных разрядов,
Вычитание чисел А и У, представленных в дополнительном коде с избытком 3, поясняется схемой: хЮ2 а И)1 х 10°-веса десятичных разрядов, 8421 8421 8421- веса двоичных разрядов, 0.0101 . 1000 . 1010= [{А}]д, + 1 .0110 1000 0101= [{У}]д. 0 1 0 1.1100.0000. 1111= [{А}]д + [{У}]д, U . llOl . UUll . 11U1- коррекция, Убедимся, что полученная сумма S = 257 - 648 = -391. Для , этого преобразуем [{S1} в значение, представленное в прямом коде s 8-4-2-1. Преобразования определяются схемой: IхЮ2 хЮ1 х10°-веса десятичных разрядов, 8421 8421 8421 - веса двоичных разрядов, I1.1001 .ООП .1100= [{S}]д, I1.0110.1100.0011= l.{Ws}, 5+ 0.0000 .0000. 0001 = +1, {1.0110.1100.0100= [{5}]п = l.{Ws} + 1, I+0.1101.1101.1101- перевод в прямой код 8-4-2-1, j1. ООП . 1001. 0001 = [5]п = -391 (код 8-4-2-1). Иногда возникает необходимость использования 6-ричной систе-мы счисления (например, при построении многоканальных таймеров на основе оперативных запоминающих устройств). В этом случае сложение и вычитание проще всего выполнять в дополнительном 3-разрядном двоичном (4-2-1) коде с избытком 1 или в дополнительном 4-разрядном двоичном (8-4-2-1) коде с избытком 5. Эти коды облагают теми же свойствами, что и дополнительный код с избытком 3 ;,для десятичной системы счисления. Дополнение W числа X в шестеричной системе счисления определяется соотношением: W = 6" - А, где А - n-разрядное шестеричное число. I \ 6.10. Сумматоры Сумматоры предназначены для выполнения операций сложения и вычитания как двоичных, так и десятичных чисел, а также используются при построении цифровых устройств для производства более сложных арифметических операций и в раз-«личных электронных устройствах обработки информации. Двоичные параллельные сумматоры с последовательным переносом. Комбинационным двоичным параллельным Щумматором называется КС, производящая вычисление суммы двух двоичных п-разрядных чисел при одновременной подаче всех их разрядов. Способы реализации арифметических операций сложения и вычитания будем рассматривать для целых Едвоичных чисел, что упрощает изложение методики их синтеза. Целые положительные n-разрядные двоичные числа будем обозначать через А = (хп-1,...,х0) и У = (уп-1,...,уо), где (xn i,... ,xq), (уп-i,- •, Уо) - векторная запись аргументов п переключательных функций суммы S = (s„ i,... ,so) и переноса сп из старшего п - 1-го разряда, xn i и уп-\ - старшие разряды. Таким образом, те-разрядный двоичный параллельный сумматор представляет собой КС, имеющую 2п -f 1 вход и п -f 1 выход (с учетом переноса со в младший разряд, необходимого для каскадирования сумматоров и реализации операций вычитания; 5" - Sum - сумма, С - Carry - перенос): Si = /.(a:„ i,...,xo,j/n-i,со), * = 0,1,..., п - 1; сп = ip(xn-i,...,x0, уп-1,...,уо,с0). Операция сложения положительных двоичных Чисел определяется правилами двоичной арифметики: значение переноса c,+i в i + 1 разряд равно 1, если не менее двух величин из а;,-, у, и с, равны 1, где г, и у, - разряды чисел А* и Y, а с, - перенос из i - 1-го разряда; значение г-го разряда суммы s,- чисел А и Y равно 1, если нечетное число величин х,-, у, и С{ равно 1. Пример: 5 4 3 2 1 0 - номера разрядов, 25242322212°- веса разрядов,
Если при сложении разрядная сетка не переполняется, то перенос с„ в гг-й разряд отсутствует и С = (0, c„ i,..., с2, сь 0), а 5 = (s„ i,..., s0). В общем случае С = (сп,сп ь ... ,с2,сьс0). Таблица истинности (табл. 6.20), описывающая закон функционирования одноразрядного двоичного сумматора, составляется на основании сформулированного выше правила сложения положительных чисел. Из диаграмм Вейча для функций 5,- и ct+i (рис. 6.95), составленных по табл. 6.20, следует, что Si = Xi © у{ © с,-, c,-+i = x{yi V Xic{ V ytCi = ЩуЩс{у~с{. (6.42) На рис. 6.96,а показана схема одноразрядного сумматора, выполненная в соответствии с полученными формами функций S{ и c, + i. Функцию c,+i можно представить не в минимальной форме: c,+i = х{у{ V (ii ф yi)ci = gt V piCi, Si = i, ф j/; ф с, = Pi ф Ci, Таблица 6.20. Одноразрядный сумматор
1 с
*1 Рис. 6.95 Si =1 -s &"~ J i- a Рис. 6.96 у * М 1 1L-.......J1.1 SM SM Bee: 2° *i 21 SM 0 ... 83 84 85 86 87 88 89 ... 119
|