Комбинационные операционные элементы способны выполнять только преобразование и передачу данных, но не хранение их.
Сумматор предназначен для арифметического сложения двоичных кодов, которое осуществляется в нем с помощью операции
S := A + B + C,
где A, B – двоичные коды слагаемых, C – перенос в младший разряд суммы (от сложения предыдущих разрядов).
Условное обозначение n – разрядного комбинационного сумматора на структурных схемах показано на рис. 1.8.
P – выход переноса из старшего, т.е. n–1-го разряда. Сигнал с этого выхода может использоваться в качестве сигнала ЛУ.
При сложении чисел в дополнительном коде знаки чисел располагаются в старшем разряде разрядной сетки и участвуют в суммировании наряду с числовыми разрядами. В результате в n–1-м разряде сумматора формируется знак результата.
Сумматор выполняет только одну микрооперацию и поэтому для его работы не требуется управляющих сигналов. С другой стороны, вход C можно рассматривать и как управляющий, задающий выполнение двух различных микроопераций.
Для получения сумматоров большей разрядности два или большее число сумматоров соединяют последовательно по цепи переноса (рис. 1.9).
Рис. 1.9
Если операнды являются числами в дополнительном коде, то на сумматоре можно выполнить операцию вычитания. Для этого на одну из шин, например, на шину B подается обратный код уменьшаемого, т.е. , а на вход C подается сигнал 1 (рис. 1.10). Тогда
S = A+ + 1 = A + ( +1) = A + (-B) = A - B.
Реализация операции вычитания в дополнительном коде на сумматоре основана на том, что инвертирование кода числа В и прибавление к его младшему разряду 1 эквивалентно смене знака числа.
Формирователи (преобразователи) двоичных кодов предназначены для преобразования двоичных кодов из одного формата в другой (рис. 1.11). Для арифметических операционных устройств наиболее типичным является преобразование прямого кода в обратный. Такое устройство в зависимости от управляющего сигнала выдает либо входной код D без изменения, либо обратный код D. Формирователи обратного кода реализуются на схемах сложения по модулю 2.
Функционирование формирователя обратного кода полностью определяется табл. 1.1
Таблица 1.1
Y1 |
Микрооперация |
0 |
U := D |
1 |
U := ¬D |
Использование формирователя обратного кода на входе сумматора позволяет синтезировать универсальную схему для выполнения операций сложения и вычитания в дополнительном коде (рис. 1.12).
Рис. 1.12
Если Y1 = 0, то формирователь кода передает код B на вход сумматора без изменения. При этом сумматор производит сложение
S = A +B + 0,
что соответствует выполнению команды арифметического сложения.
Если подать Y1 = 1, то формирователь кода будет передавать на вход сумматора обратный код B. При этом сумматор будет производить сложение
S = A+ + 1,
что соответствует выполнению команды арифметического вычитания.