Как работает последовательный сумматор
Перейти к содержимому

Как работает последовательный сумматор

  • автор:

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)-том, такте показано добавлением к номеру предыдущего такта единицы.

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

Схема такого сумматора изображена на Рис. 8. Сумматор состоит из одноразрядного сумматора, выход pi+1 которого соединен с входом рi через D-триггер. Изображенные на рисунке сдвиговые регистры RG не входят непосредственно в схему сумматора, они служат для подачи на вход сумматора разрядов слагаемых (регистры 1 и 2) и приема выдаваемых сумматором разрядов суммы (регистр 3). Операция суммирования во всех разрядах слагаемых осуществляется с помощью одного и того же одноразрядного сумматора. Такое построение сумматора возможно за счет того, что слагаемые поступают в последовательной форме.

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

Работа последовательного сумматора.

С первым тактовым импульсом на входы сумматора поступают из регистров 1 и 2 цифры первого разряда слагаемых а1 и b1, из D-триггера на вход pi, подается уровень лог. 0. Суммируя поданные на входы цифры, одноразрядный сумматор формирует первый разряд суммы S1 выдаваемый на вход регистра 3, и переноса принимаемый в D-триггер. Второй тактовый импульс осуществляет в регистрах сдвиг на один разряд вправо; при этом на входы одноразрядного сумматора подаются цифры второго разряда слагаемых a2, b2 и перенос р2 получающаяся цифра второго разряда суммы вдвигается в регистр 3, переноса принимается в триггер и т.д.

Очевидное достоинство сумматора последовательного действия заключается в малом объеме оборудования, требуемого для его построения. Недостатком же является связанная с этим необходимость в последовательной обработке разрядов, что приводит к низкому быстродействию.

Дата добавления: 2017-11-21 ; просмотров: 4456 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Последовательный многоразрядный сумматор

Используя одноразрядный сумматор, можно построить суммирующее устройство для сложения многоразрядных двоичных чисел. Различают многоразрядные последовательные и параллельные сумматоры.

Последовательный сумматор состоит из одноразрядного сумматора, на входы которого из сдвигающих регистров, хранящих слагаемые Л и В, подаются по тактам разряд за разрядом коды этих чисел, начиная с младшего разряда (рис. 3.24). Если время элемента задержки равно одному такту (например, использован D-триггер), то сигнал переноса от предыдущего разряда, сформированный в предыдущем такте, поступит на нижний вход сумматора только в следующем такте, когда на входы anb будут поданы значения следующего разряда слагаемых. В результате на выходе s разряд за разрядом будет формироваться двоичное число, равное сумме чисел Л и В, которое будет восприниматься сдвигающим регистром суммы.

Последовательный многоразрядный сумматор

Рис. 3-24. Последовательный многоразрядный сумматор

Параллельные сумматоры

Недостатком последовательного сумматора является то, что выполнение операции сложения растягивается на множество тактов, которое тем больше, чем больше разрядность чисел. Значительно меньшее время выполнения операции имеет параллельный сумматор. В этом устройстве операция сложения производится одновременно во всех разрядах чисел Л и В, поступающих в параллельном коде. Для этого схему составляют из п одноразрядных сумматоров, соединяя выход переноса г-го разряда со входом переноса соседнего (г + 1)-го разряда (рис. 3.25). Такой сумматор называют сумматором с последовательным переносом. После того как сформируется результат на выходах всех одноразрядных сумматоров, он запоминается в параллельном регистре.

Для того чтобы на выходах одноразрядных сумматоров сформировался результат, необходимо, чтобы на входах присутствовали все три сигнала — cij, bj и pr Но сигнал переноса из разряда в разряд формируется предыдущими одноразрядными сумматорами, причем каждый последующий сумматор вынужден «ждать», пока не сформируется результат во всех предыдущих. В крайнем случае возможна ситуация, когда сигнал переноса будет последовательно передаваться через всю цепочку от самого младшего разряда до самого старшего, например, при сложении чисел А = 11. 11 и В = 00. 01. Поэтому время формирования результата в наихудшем случае включает в себя временные задержки, вносимые всеми одноразрядными сумматорами.

Параллельный сумматор с последовательным переносом

Рис. 3.25. Параллельный сумматор с последовательным переносом

Исключить длительность распространения переноса позволяет сумматор с параллельным переносом. Идея заключается в том, чтобы сигналы переноса для всех разрядов формировались чисто логически на основе слагаемых А и В. Рассмотрим, как это можно сделать.

Сигнал переноса в 1-й разряд рх0Ь0. Сигнал переноса во второй разряд можно определить по формуле (3.1):

Как видно, сигнал переноса р2 может быть получен по значениям предыдущих разрядов чисел Л и В без сигнала переноса/. формируемого сумматором. Подставляя в формулу (3.1) выражение для сигнала переноса р2, можно получить логическое выражение для сигнала переноса третьего разряда, в котором также будут значения только предыдущих разрядов чисел Л и В, и т.д. Таким образом, сигналы переноса для любого разряда могут быть сформированы чисто логическим путем по значениям слагаемых. Значит, нет необходимости ожидать, пока будут сформированы сигналы переноса одноразрядными сумматорами. Очевидно, однако, и другое. Чем больше разрядность чисел, тем выше сложность булевых функций сигналов переноса, особенно для самого старшего разряда. Поэтому сумматоры с параллельным переносом делают для чисел небольшой разрядности — не более восьми.

Структура сумматора с параллельным переносом приведена на рис. 3.26. Сигналы переноса формируются специальными логическими схемами ускоренного переноса CR (англ, салу — перенос), вычисляющими соответствующие булевы функции.

Для чисел большой разрядности применяют сумматоры с групповым переносом (рис. 3.27). Схема такого сумматора разбивается на / групп разрядности т: например, четыре группы по восемь разрядов для сложения 32-разрядных чисел. (Обозначение т эквивалентно изображению группы из т проводников и используется для указания разрядности цифровых устройств и линий связи между ними.) Каждая группа представляет собой параллельный сумматор, подобный изображенному на рис. 3.26. Па вход рвх поступает сигнал переноса от старшего разряда предыдущей группы к младшему разряду последующей группы. Этот сигнал формируется блоком переноса, анализирующим т разрядов слагаемых А п В «своей» группы, «не дожидаясь», когда в ней произойдет сложение всех разрядов. Блоки переноса (БП) разных групп включены последовательно и образуют тракт передачи переноса.

Сумматор с параллельным переносом

Рис. 3.26. Сумматор с параллельным переносом

Групповой сумматор с цепным переносом

Рис. 3.27. Групповой сумматор с цепным переносом

Эта структура сумматора с групповым переносом аналогична структуре сумматора с последовательным переносом, где вместо одноразрядных сумматоров включаются групповые. Такая структура получила название группового сумматора с цепным переносом.

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

Последовательный сумматор

Сумматоры – это КЦУ, выполняющие арифметическое (в противоположность логическому) сложение и вычитание чисел. Они имеют самостоятельное значение и являются также ядром схем арифметико-логических устройств (АЛУ), реализующих ряд разнообразных операций и являющихся непременной частью всех про­цессоров.

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

1) одноразрядный сумматор;

2) сумматор для последовательных операндов;

3) сумматор для параллельных операндов с последовательным переносом;

4) сумматор для параллельных операндов с параллельным переносом;

5) сумматор с последовательным распространением переноса по цепочке замкнутых ключей;

6) сумматор групповой структуры с цепным переносом;

7) сумматор групповой структуры с параллельным межгрупповым переносом;

8) сумматор с условным переносом;

9) накапливающий сумматор.

Наряду с сумматорами могут быть реализованы вычитатели, однако это поч­ти никогда не делается, поскольку вычитание выполняется посредством сложения с применением дополнительных либо обратных кодов.

Одноразрядный сумматор

Одноразрядный сумматор имеет три входа (два слагаемых и перенос из предыдущего разряда) и два выхода (суммы и переноса в следующий разряд).

Таблица истинности одноразрядного сумматора имеет вид, представленный в табл. 1.

Таблица 1

ai bi ci –1 ci si
1
1
1
0
1
0
0
0

Как видно из таблицы, совокупность сигналов ci и si по сути является двухзначной суммой трёх чисел ai, bi и ci –1 .

Аналитические выражения функций суммы S (от англ. sum) и переноса С (от англ. Carry)имеют вид

В базисе Шеффера функции si и ci выражаются следующим образом:

Непосредственное воспроизведение полученных формул на элементах двух­ступенчатой логики И-ИЛИ-НЕ приводит к применению элемента 2-2-2И-ИЛИ-НЕ для выработки сигнала переноса и элемента 3-3-3-3И-ИЛИ-НЕ для сигнала суммы . Такое решение используется в некоторых сериях микросхем, но более популярно решение, приводящее к некоторому сокра­щению аппаратной сложности схемы при сохранении минимальной задерж­ки по цепи переноса. Идея этого решения состоит в использовании полу­ченного уже значения в качестве вспомогательного аргумента при вычислении .

Из табл. 1 видно, что во всех её строчках, кроме первой и последней, si = . Чтобы сделать формулу справедливой также в первой и последней строчках, нужно убрать единицу в строчке нулевых входных величин и до­бавить единицу в строчку единичных входных величин, что приводит к со­отношению

Схема сумматора, построенного по этому соотношению, показана на рис. 1, а.

Рис. 1. Схема (а), условные обозначения (б, в, г) и пути распространения сигналов одноразрядного сумматора (д)

Можно привести ещё одно выражение для si, в котором происходит инвертирование на первой и последней комбинациях:

Это выражение, хотя и красиво с идейной точки зрения, но немного сложнее в реализации, чем приведённое выше соотношение.

Из табл. 1 видно, что и функция суммы, и функция переноса обладают свойством самодвойственности: при инвертировании всех аргументов ин­вертируется и значение функции, т. е.

Условное обозначение одноразрядного сумматора показано на рис. 1, б. Для варианта с выработкой инвертированных значений суммы и переноса на основании свойства самодвойственности можно пользоваться двумя ва­риантами обозначений для одной и той же схемы (рис. 1, в, г).

Быстродействие одноразрядного сумматора оценивается задержками по шести трактам распространения сигналов: от первого слагаемого до выхода суммы, от первого слагаемого до выхода переноса, от второго слагаемого до тех же выходов и от входа переноса до выхода переноса, от входа переноса до выхода суммы (рис. 1, д).Так как тракты от обоих слагаемых обычно одинаковы, то остаются четыре задержки, отмеченные надписями tas, tac, tcc и tcs на рис. 1, д.

На рис. 2 показана схема сумматора, входящая в библиотеку схемных ре­шений семейства программируемых СБИС фирмы Altera.

Рис. 2. Схема одноразрядного сумматора из библиотеки схемных решений
для СБИС фирмы Altera

Последовательный сумматор

Сумматор для последовательных операндов содержит всего один одноразряд­ный сумматор, обрабатывающий поочерёдно разряд за разрядом, начиная с младшего. Сложив младшие разряды, одноразрядный сумматор вырабатывает сумму для младшего разряда результата и перенос, который запоминается на один такт.

В следующем такте складываются вновь поступившие разряды слагаемых a 1 и b 1 с переносом из младшего разряда и т. д. Схема сумматора последователь­ных операндов (рис. 3, а),помимо сумматора, содержит сдвигающие реги­стры слагаемых и суммы, а также триггер запоминания переноса. Регистры и триггер тактируются синхроимпульсами СИ.

На рис. 3, б показана временная диаграмма, соответствующая операции сложения двух операндов 101 + 110 = 1011 или в десятичном выражении 5 + 6= 11.

Рис. 3. Схема сумматора для последовательных операндов (а) и её временная диаграмма (б)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *