Двоично-десятичные сумматоры
Выполняют действия над десятичными числами, закодированными в двоично-десятичном коде. Обычный способ построения двоично-десятичных сумматоров предусматривает первичное суммирование тетрад обычным двоичным сумматором и последнюю коррекцию результата. Коррекция необходима – результат может превышать 9, а тетрада должна содержать числа от 0 до 9.
Если сумма меньше 9, коррекция не требуется.
Если при сложении тетрад и переноса из предыдущего результата лежит от 10 до 15 – переноса не возникает, тогда как нужен перенос и уменьшение полученного числа на 10. Вычитание 10 можно заменить сложением с дополнительным кодом 10 – в двоичном представлении – 10=1010, 10ОБР=0101, 10ДОП=0110. Таким образом к полученному результату необходимо прибавить корректирующую поправку 6 и обеспечить сигнал переноса.
Если при первичном сложении результат превысил 15, то разрядная сетка переполняется и вырабатывает перенос в следующую (старшую тетраду). Однако цена этого переноса – 16, а для десятичных число должно быть 10 (опять необходимо прибавить к полученному результату поправку 6).
Тетрада двоично-десятичного сумматора содержит сумматоры 1 и 2 и цепи выработки корректируемой поправки при переполнении или получении числа от 10 до 15.
В последнем случае вырабатывается сигнал переноса.
Накапливающие сумматоры реализуют с помощью комбинационного сумматора и регистра.
Комбинационные реализуют:
, а накапливающие то есть к содержимому сумматора имеющему память, добавляется очередное слагаемое, результат остается в памяти, замещая собой старое содержимое.
Перед началом суммирования регистр устанавливается в ноль.
Первая сумма равна А.