Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000468.doc
Скачиваний:
56
Добавлен:
30.04.2022
Размер:
5.67 Mб
Скачать

3.3.2. Сумматор последовательного действия

С умматор для последовательных операндов содержит один одноразрядный сумматор, который обрабатывает операнды поочередно разряд за разрядом, начиная с младшего. Он состоит из одноразрядного сумматора, двух сдвигающих регистров A и B, в которых хранятся слагаемые, сдвигающего регистра С для записи результата вычисления и D-триггера, в котором запоминается перенос в старший разряд при нахождении суммы в текущем разряде (рис. 3.20).

Рис. 3.20 Сумматор последовательного действия

Двоичные числа слагаемых А и В поступают параллельно на входы данных регистров RG и записываются а них. Регистры и триггер тактируются синхроимпульсами.

При каждом такте цифры разрядов слагаемых, начиная с младшего разряда, поступают из сдвигающих регистров А и В на входы ai и bi одноразрядного сумматора, на вход pi которого из D-триггера поступает значение переноса из младшего разряда. После их суммирования значение суммы цифр данного разряда с выхода Si сумматора вдвигается в последовательный регистр результата С, а перенос с выхода pi+1 запоминается в D-триггере. Для нахождения суммы N-разрядного числа требуется N тактов работы одноразрядного сумматора.

Например, суммирование четырехразрядных чисел 1011 и 0011 осуществляется за четыре такта.

Первый такт. Цифры младшего разряда (1 и 1) слагаемых выдвигаются из сдвигающих регистров и поступают на входы ai и bi одноразрядного сумматора, а так как переноса в младший разряд нет, то из D-триггера на вход переноса pi поступит 0. Результат суммирования (Si=0) запоминается в последовательном регистре, а перенос pi+1=1 – в D-триггере.

Второй такт. Цифры 1 и 1 второго разряда слагаемых и перенос 1 из D-триггера поступают на входы сумматора, получающаяся при этом сумма 1 запишется в регистре С, а перенос 1 – в D-триггере.

Третий такт. Цифры третьего разряда 0 и 0 и перенос из D-триггера 1 при суммировании дают сумму 1 и перенос 0.

На четвертом такте цифры 1 и 0 четвертого разряда слагаемых и перенос 0 из D-триггера дадут в результате сумму 1 и перенос 0. Так как перенос равен 0 и все цифры разрядов слагаемых использованы, то суммирование прекращается. Если бы перенос оказался отличным от 0, то его следовало бы записать в регистр результата в качестве старшего разряда, сложив предварительно с цифрами слагаемых (цифры слагаемых пятого разряда равны 0).

В действительности же обычно этого не делают, либо предусматривая заранее такие слагаемые, которые не вызывают переполнения ячеек разрядов регистра суммы, либо переписывая для последующих действий перенос в специальный разряд переноса регистра признаков ЭВМ.

Основное достоинство последовательных сумматоров – относительная простота, а недостаток – малое быстродействие.

3.3.3. Сумматор параллельного действия с последовательным переносом

Сумматор параллельного действия должен работать быстрее, чем сумматор последовательного действия, но он сложнее. Параллельные сумматоры в свою очередь делятся на сумматоры с последовательным и параллельным переносом. Схема сумматора с последовательным переносом приведена на рис. 3.21. Слагаемые A и B хранятся в регистрах, из которых они подаются в параллельном коде на входы слагаемых всех одноразрядных сумматоров одновременно. В каждом сумматоре происходит определение суммы цифр данного разряда и переноса в старший разряд. Поступление на вход одноразрядного сумматора переноса из младшего разряда ведет к необходимости его учета путем добавления к результату (сумме), полученному в этом разряде, что меняет значение суммы и переноса. Получаются новые суммы и новые переносы, последние также поступают на входы одноразрядных сумматоров и также меняют значения их выходов. В результате происходит распространение сигнала переноса от младшего разряда к старшему.

Процесс суммирования как бы разбивается на несколько асинхронных т актов (шагов). На первом шаге определяются начальные суммы и переносы. На каждом из последующих шагов (тактов) происходит определение разрядных сумм и переносов с учетом переносов из младших разрядов (полученные на предыдущем такте переносы добавляются к суммам, образуя новые суммы и переносы, которые также требуется учесть).

Р

Рис.3.21. Сумматор параллельного действия

ассмотрим пример определения суммы чисел 01101 и 00011. Процесс распространения переноса представлен в таблице 3.13. В скобках S(i) и p(i) укажем номер такта i, на котором получена сумма или перенос. На каждом такте участвуют в качестве слагаемых суммы и переносы, полученные на предыдущем такте. Переносы p(i), полученные на i-том такте, в следующем такте сдвигаются на один разряд влево и только потом добавляются к суммам на (i+1)-ом такте, что в обозначении переноса, учитываемого на следующем, (i+1)-том, такте показано добавлением к номеру предыдущего такта единицы.

Работа сумматора параллельного действия Таблица 3.13

1 такт

+

01101

00011

1 слагаемое

2 слагаемое

суммы разрядов S(1)

переносы p(1)

01110

00001

2 такт

+

01110

00010

суммы разрядов S(1)

переносы p(1+1) сдвинуты на 1 разряд

суммы разрядов S(2)

переносы p(2)

01100

00010

3 такт

+

01100

00100

суммы разрядов S(2)

переносы p(2+1) сдвинуты на 1 разряд

суммы разрядов S(3)

переносы p(3)

01000

00100

4 такт

+

01000

01000

суммы разрядов S(3)

переносы p(3+1) сдвинуты на 1 разряд

суммы разрядов S(4)

переносы p(4)

00000

01000

5 такт

+

00000

10000

суммы разрядов S(4)

переносы p(4+1) сдвинуты на 1 разряд

суммы разрядов S(5)

переносы p(5)

10000

00000

Как видно из примера, в рассматриваемом сумматоре определено значение суммы пятиразрядных чисел за пять «тактов», длительность каждого из которых определяется длительностью формирования выходных сигналов в соответствующем сумматоре.