Сумматоры

 

Сумматор - устройство, выполняющее операции арифметического сложения над двоичными числами. Где-то рассматривались математические операции над двоичными числами, где говорилось о том, что сумма двух нулей есть нуль, сумма нуля и единицы есть единица, сумма двух единиц есть нуль. Одноразрядный цифровой сумматор имеет три входа: два входа слагаемых и вход переноса (от предыдущего сумматора). При этом правила сложения чуток усложняются. Одноразрядный сумматор обозначается так:

Одноразрядный цифровой сумматор
Рис. 1 - Одноразрядный цифровой сумматор

 

Сумматор имеет входы А и В - слагаемые, С - вход переноса, S - выход суммы, Р - выход переноса. Табличка истинности:

Входы

Выходы

Слагаемые

Вход переноса

Сумма

Выход переноса

А

B

C

S

P

0

0

0

0

0

0

1

0

1

0

1

0

0

1

0

1

1

0

0

1

0

0

1

1

0

0

1

1

0

1

1

0

1

0

1

1

1

1

1

1

 

На выходе S представляется сумма сложения трех переменных - А, В, С. При переполнении сумматора, т. е. когда в результате сложения формируется единица в старшем разряде выходного числа, на выходе переноса Р формируется уровень лог. 1, который подается на вход переноса С следующего сумматора. В принципе, старшим разрядом суммы является выход переноса Р. В целом работу сумматора полностью иллюстрирует таблица. Из таких одноразрядных сумматоров составляются многоразрядные сумматоры (обычно 4-х разрядные), которые бывают последовательного и параллельного действия. Сумматоры последовательного действия обладают более низким быстродействием.

 

Вычитатель

 

Со сложением двоичных чисел все понятно. Как же осуществить на микросхемах-сумматорах операции вычитания двоичных чисел? Допустим необходимо выполнить вычитание: 11 - 5 = 6. В двоичных эквивалентах произведем операцию сложения числа 1011 (число 11) и обратный код числа 5, равный 1010 (прямой код 0101). Итак:

 

Если отбросить единицу в старшем (пятом) разряде, то получится код 0101, который соответствует числу 5. Но это не число 6. Значит к результату необходимо прибавить единицу. Кстати, операция увеличения какого-либо числа на единицу называется инкрементом, уменьшения на единицу - декрементом. На рисунке 2 показана схема четырехразрядного Вычитатель.

4-х разрядный вычитатель
Рис. 2 - 4-х разрядное устройство вычитания

 

Инверторы микросхемы DD1 формируют обратный код числа В. Число А поступает на входы А1-А4 сумматора DD2, обратный код числа В - на входы В1-В4 сумматора. На вход переноса Р0 подан уровень лог. 1, что обеспечивает прибавление к результату сложения единицы (т. е. инкремент результата). На выходах S1-S4 сумматора в итоге получается разность между числами А и В.

 

 

 

 

 

 

 

 

 

 

 

 

 

Десятичный сумматор

 

Чаще приходится суммировать десятичные числа. Ниже на рисунке приведена схема сумматора двоично-десятичных чисел на основе двоичных сумматоров.

Сумматор двоично-десятичных чисел
Рис. 3 - Сумматор двоично-десятичных чисел

 

Операцию сложения выполняет сумматор DD1. При сумме большей или равной десяти на выходе микросхемы DD2, которая является схемой сравнения входов, формируется сигнал переноса Р10. На второй вход (Y1-Y4) микросхемы DD2 подается двоичный эквивалент числа 9 (1001). Сумматор DD3 осуществляет десятичную коррекцию результата суммирования. При отсутствии сигнала переноса на выходе микросхемы DD3 повторяется код числа, который был на выходе DD1, поскольку на входы В поданы лог. 0. При наличии сигнала переноса Р10=1 на входах В2-В3 устанавливаются лог. 1, что соответствует коду числа 6. Допустим есть числа А=8 и В=4. На выходе сумматора DD1 появляется код числа 12 (8+4=12). На выходе DD2 формируется сигнал переноса, сумматор DD3 выполняет операцию 12+6=18. Числу 18 соответствует код 10010. На выходах S сумматора DD3 устанавливается код 0010 (собственный перенос микросхемы DD3 не учитывается). Поскольку на выходе Р10 число 10, на выходах сумматора число 2 (0010), то в результате получается число 12.

 

 

 

 

 

 

 

 

 

 

Сумматор-накопитель

 

Интересными свойствами обладает сумматор-накопитель, показанный на рисунке 4.

Сумматор-накопитель
Рис. 4 - Сумматор-накопитель

 

На рисунке показан простейший сумматор-накопитель. На один вход сумматора подается число К, а на второй - число с выхода регистра. В начале работы регистр обнуляется (сброс). Если на входы В сумматора DD1 подать некоторое число К, то при подаче импульса на вход С регистра (такт) в него запишется число К (в начальный момент на выходе регистра лог.0). Это же число К попадет на входы А сумматора и по следующему такту в регистр запишется уже число 2К, которое опять попадет на входы А сумматора. На выходе сумматора появится число 3К и по следующему такту запишется в регистр и т. д. То есть, в сумматоре-накопителе постепенно нарастает число. Когда в сумматоре-накопителе накопленное число превышает его объем, равный 2n-1, на выходе переноса появляется сигнал лог. 1, а на выходах S число nK-2n.

Применение таких сумматоров весьма разнообразно. Если вместо регистра установить ОЗУ (это делается в многоканальных системах), тогда такой узел становится важнейшей частью микропроцессора. Посмотрим на эти свойства сумматора-накопителя. Поскольку сигнал переноса сумматора появляется через W=2n/K тактовых импульсов, то такой сумматор является обратным преобразователем входного числа К в число W. Это число можно подсчитать на счетчике. Ну а если выразить частоту появления импульсов переноса через число К, получится вот это:

 

Это значит, что получается преобразователь кода числа К в частоту импульсов. Такой преобразователь можно использовать в электронных музыкальных инструментах (ЭМИ), всяких звонках и т. п.

С помощью сумматоров-накопителей можно производить умножение числа на некоторый постоянный коэффициент, можно сделать квадратичный накопитель и др.