- •4.6. Сумматоры
- •4.6.1 Комбинационные двоичные сумматоры
- •4 .6.2 Многоразрядные двоичные сумматоры
- •4.6.3. Параллельный перенос
- •Перенос для первого разряда сформируется как
- •4.6.4. Накапливающий 4-разрядный двоичный сумматор
- •4.6.5. Суммирование двоично-десятичных чисел
- •4.6.5. Суммирование чисел со знаками
- •4.6.7. Арифметическо-логические устройства
4.6.5. Суммирование двоично-десятичных чисел
Особенность суммирования десятичных чисел, представленных двоично-десятичными кодами, связана с тем, что перенос из старшего разряда младшей тетрады в старшую, должен происходить при N ≥ 9, а не при N ≥ 15, как было при двоичном суммировании. При N ≥ 9 к полученному результату необходимо прибавить 610 (двоичный код 0110). Прибавить число 610 можно с помощью дополнительного сумматора. Причем определять, когда следует прибавлять корректирующий и когда делать этого не надо, должен специальный узел – схема коррекции. В таблице на рис. 4. 55. а указаны коды, требующие коррекции, даны их двоичные эквиваленты и номера минтермов.
Выражение для сигнала коррекции имеет вид:
Yк = M10 M11 M12 M13 M14 M15,
где
M10
÷
M15
= S3
S1
÷
S3S2S1S0.
Нанесем на карту Карно функцию Yк (рис. 4.55, б) и проведем минимизацию. Единицы функции опишутся двумя контурами:
Y
к
=
S3
S2
S3
S1.
Высокий уровень на выводе двоичного переноса P4 также указывает на необходимость коррекции, с учетом этого, получим окончательное выражение:
Yк = S3 S2 S3 S1 P4.
Схема сумматора, с узлом коррекции, собранным по выведенному выражению, приведена на рис. 4.56.
П
ример.
Установим на вход число = 710
= 01112
и число B
= 610
= = 01102.
На выходе первого сумматора образуется
сумма
=
11012.
На выводах сумматора S3
и S2
высокие уровни и, следовательно, на
выходе корректирующего узла тоже высокий
уровень. Это означает, что на входах
второго
сумматора установлен код коррекции B
=
610
= 01102,
на входе А
этого сумматора число 1310.
Результат на выходе второго сумматора
– число S2
= 1910
= 1 00112,
который представлен в виде десятичного
переноса p4
= 1 и четырехразрядного числа суммы S
= 310
= 00112,
4.6.5. Суммирование чисел со знаками
Суммирование чисел со знаками производят с использованием обратных или дополнительных кодов. Рассмотрим вариант построения сумматора двух четырехразрядных чисел и B(4). Знак числа принято указывать в старшем бите (требуется дополнительный пятый разряд). Положительное число в пятом разряде кодируется 0, отрицательное число 1. Мы выберем модифицированные коды, когда под знак отдаются два старших разряда:
A6 A5 = 00 – число положительное, A6 A5 = 11 – число отрицательное.
Пример. Заданы числа A10 = 910 и B10 = 1210, необходимо просуммировать их со знаками = (+A + B), S2 = (+A – B), S3 = (– A + B), S4 = (–A – B). Прямой код положительного числа Aпр = 00 10012, обратный код отрицательного числа Aобр = 11 10012, аналогично для числа B: Bпр = 00 11002, Bобр = 11 00112,
Возможные варианты результатов суммирования Таблица 4.13
S1 = (+ A + B) |
S2 = (+ A – B) |
S3 = (– A + B) |
S4 = (– A – B) |
||||
Aпр |
00 1001 |
Aпр |
00 1001 |
Aобр |
11 0110 |
Aобр |
11 0110 |
Bпр |
00 1100 |
Bобр |
11 0011 |
Bпр |
00 1100 |
Bобр |
11 0011 |
S1 |
01 0101 |
S2 |
11 1100 |
S3 |
1 00 0011 |
S4 |
1 10 1001 10 1001 |
Инверсия |
|
|
11 0011 |
|
|
|
11 1010 |
Ответ |
+ 2110 |
|
– 310 |
|
+ 310 |
|
– 2110 |
Примечание Стрелкой обозначен циклический перенос
Проанализируем полученные результаты.
1. При суммировании чисел с одинаковыми знаками (S1, S4) возможно переполнение разрядной сетки. Если бы под знак оставляли один разряд, то в первом случае (S1) при суммировании положительных чисел получили бы отрицательное число 1 01012 (–510). Во втором случае при суммировании отрицательных чисел получили бы +510.
2. При переполнении разрядной сетки единицу переполнения необходимо циклически прибавить к младшему разряду суммы (S3, S4)
Эти особенности будут учтены при разработке сумматора чисел со знаками.
В связи с тем, что отрицательные числа необходимо инвертировать, воспользуемся замечательным свойством логического элемента «неравнозначность» (XOR) инвертировать аргумент A в зависимости от уровня (низкий – высокий) аргумента B. В таблице истинности «исключающее ИЛИ» (неравнозначность) показано, что при b = 0 сигнал a проходит на выход не меняясь, при b = 1 сигнал a инвертируется. Это говорит о том, что данный логический элемент можно применить для преобразования кода числа в обратный код. Предлагаемый вариант функциональной схемы сумматора двоичных чисел со знаками приведен на рис. 4.57.
Ч
исла
A
и B
подаются
на входы сумматора через ЛЭ
«неравнозначность», на второй управляющий
вход которого подается сигнал знака
(0,1). Выходные сигналы суммы передаются
на выход также через ЛЭ «неравнозначность»,
знак выходного сигнала снимается со
старшего разряда (S5).
Выход переполнения разрядной сетки
P5
соединен со входом P0
младшего разряда для выполнения функции
циклического переноса.

00
0010