Сумматоры
.doc3.11. Сумматоры
Сумматор - устройство, выполняющее операции арифметического сложения двоичных чисел.
Одноразрядный цифровой сумматор имеет три входа: два входа слагаемых и вход переноса (от предыдущего сумматора). При этом правила сложения немного усложняются по сравнению со сложением на бумаге. Одноразрядный сумматор обозначается так:
Рис. 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 показана схема четырехразрядного вычитателя.
Рис.2. 4-х разрядное устройство вычитания
Инверторы микросхемы DD1 формируют обратный код числа В. Число А поступает на входы А1-А4 сумматора DD2, обратный код числа В - на входы В1-В4 сумматора. На вход переноса Р0 подан уровень лог. 1, что прибавляет результату сложения единицу (т. е. инкремент результата). На выходах S1-S4 сумматора в итоге получается разность между числами А и В.
Десятичный сумматор. Чаще приходится суммировать десятичные числа. На рисунке 3 приведена схема сумматора двоично-десятичных чисел на основе двоичных сумматоров.
Рис.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. Сумматор-накопитель
На рисунке показан простейший сумматор-накопитель. На один вход сумматора подается число К, а на второй - число с выхода регистра DD2. В начале работы регистр обнуляется (сброс). Если на входы В сумматора DD1 подать число К, то при подаче импульса на вход С регистра (такт) в него запишется число К (в начальный момент на выходе регистра лог.0).
Это же число К попадет на входы А сумматора и по следующему такту в регистр запишется уже число 2К, которое опять попадет на входы А сумматора. На выходе сумматора появится число 3К и по следующему такту запишется в регистр и т. д. То есть, в сумматоре-накопителе постепенно нарастает число. Когда в сумматоре-накопителе накопленное число превысит его объем, равный 2n-1, на выходе переноса появляется сигнал лог. 1, а на выходах S число nK-2n.
Применение таких сумматоров разнообразно. Если вместо регистра установить ОЗУ (как это делается в многоканальных системах), тогда такой узел становится важной частью микропроцессора.
Рассмотрим эти свойства сумматора-накопителя. Поскольку сигнал переноса сумматора появляется через W=2n/K тактовых импульсов, то такой сумматор является обратным преобразователем входного числа К в число W.
Если выразить частоту появления импульсов переноса через число К, получится:
Это значит, что получается преобразователь кода числа К в частоту импульсов. Такой преобразователь можно использовать в электронных музыкальных инструментах (ЭМИ), звонках и т. п.