Добавлен: 10.02.2019
Просмотров: 3441
Скачиваний: 44
Т ак как все суммируемые разряды имеют одинаковые веса, то таблица истинности полного одноразрядного сумматора имеет следующий вид.
Д ля получения алгебраического представления выходных функций и удобно воспользоваться картами Карно. Из них можно установить, что функция неминимизируема.
О днако, выражение для нее можно преобразовать таким образом, чтобы при представлении использовать операцию суммирования по модулю два (функцию логической неравнозначности). В этом случае запись получается достаточно компактной и схема сумматора будет иметь вид.
С труктура ее верхней части представляет собой схему контроля четности. Если проанализировать по таблице свойства функции , то можно увидеть, что она действительно принимает единичное значение, когда количество единиц в трехразрядной комбинации нечетное.
Промышленностью в составе серий цифровых микросхем выпускаются одноразрядные сумматоры – К155ИМ1, К555ИМ5 (два в одном корпусе) и ряд других.
В цифровых системах обработки информации требуется осуществлять процедуру сложения многоразрядных чисел. Ее можно реализовать либо последовательным образом, либо параллельно. Разряды операндов не зависят друг от друга, поэтому процесс их суммирования сводится к сложению разрядов, имеющих одинаковые веса. Если при этом возникает перенос, он должен быть добавлен к сумме следующих по старшинству разрядов, как это показано на примере с уммирования чисел в десятичной и двоичной системах счисления.
Отсюда следует, что для сложения чисел произвольной разрядности можно использовать одноразрядный сумматор, подавая разряды на обработку последовательно друг за другом и учитывая сигналы переносов.
В этом случае, процедура сложения чисел 11 и 9, представленных двоичными кодами 1011 и 1001 должна происходить так, как показано на рисунке, где представлен один и тот же сумматор, в разные моменты времени. На первом этапе на него поступают младшие разряды операндов и нулевой сигнал переноса. Младший разряд суммы, равный нулю, может быть считан с соответствующего выхода S0 , а единичный сигнал переноса должен быть прибавлен на следующем шаге к значениям соответствующих разрядов операндов. При этом сформируется разряд суммы S1 и так далее.
Т ак как разрядность суммы на единицу больше разрядности слагаемых, то для считывания с выхода S0 последнего разряда суммы S4 потребуется дополнительный этап, на котором сигнал переноса необходимо передать на выход S0 . Для этого его надо просуммировать с двумя нулями.
П роцесс сложения n-разрядных чисел в таком сумматоре займет N+1 шаг. Если среднюю задержку формирования выходных сигналов сумматора принять за τ, то время, потребуемое для выполнения процедуры сложения может быть оценено как .
Такой сумматор должен содержать узел для последовательного ввода разрядов слагаемых (УПВ), а также устройство для запоминания на один такт разряда переноса (УП). Сам сумматор является комбинационным устройством, то есть при поступлении новых данных сразу же изменится и результат обработки, а так как сигнал переноса требуется в следующем такте, то его необходимо запомнить.
Несмотря на относительную простоту, существенным недостатком такого сумматора является его низкое быстродействие, поэтому подобные узлы находят применение там, где скорость вычислений не играет существенной роли, например в калькуляторах.
При работе с большими массивами цифровых данных, скорость вычислений становится очень важной, и в этом случае используются параллельные методы обработки.
Т ак как в ходе суммирования разряды связаны только через сигналы переносов, то структура параллельного двоичного сумматора на примере четырехразрядного устройства может быть представлена следующим образом.
Здесь разряды операндов поступают одновременно (параллельно) и сигналы переносов с предшествующих разрядов подаются на соответствующие входы сумматоров, обрабатывающих последующие. Такая структура называется параллельным сумматором с последовательным распространением переносов.
Проверить правильность работы данного устройства можно на примере сложения двоичных кодов чисел 14 и 11.
Н есмотря на идентичность одноразрядных сумматоров, их функции несколько отличаются. Это связано с тем, что здесь осуществляется обработка арифметических данных и поэтому значение разряда определяется не только его состоянием (0,1), но и местоположением, то есть весом. Отсюда следует, что для получения правильного результата разряды данных на такой сумматор требуется подавать в строго определенном порядке.
Б ыстродействие этой схемы можно оценить, зная время задержки появления сигнала суммы и переноса - . В первом приближении их можно считать равными . Тогда условная диаграмма процедуры сложения будет выглядеть следующим образом.
Через время после прихода операндов сформируется правильное значение нулевого разряда суммы и переноса в первый разряд . Остальные разряды суммы и переносов, отмеченные штрихами, могут иметь неверные значения, так как к этому моменту правильное значение только поступит на соответствующий вход второго сумматора и на его обработку совместно с разрядами также понадобится интервал времени .
Таким образом через истинными будут значения разрядов суммы , через - и т. д. Отсюда следует, что несмотря на параллельное (одновременное) поступление всех разрядов операндов, правильное значение суммы может быть считано лишь через . В общем случае этот интервал зависит от разрядности суммируемых чисел и среднее время задержки такого устройства равно , где - количество разрядов слагаемых. Наличие множителя объясняется тем, что перенос на сумматор, обрабатывающий последний разряд, поступает пройдя последовательно соединенных аналогичных узлов.
Н а принципиальных схемах четырехразрядный сумматор изображается следующим образом. Такие устройства можно использовать для построения сумматоров большей разрядности, соединяя их соответствующими выходами и входами переносов, как это показано для восьмиразрядного варианта.
Для суммирующих блоков с внутренним последовательным переносом такой способ соединения является единственно возможным. При этом задержка формирования результата будет возрастать пропорционально их количеству. В общем случае, если использовать штук - разрядных блоков, то время задержки сложения разрядных чисел будет определяться соотношением .
Повысить быстродействие многоразрядного сумматора можно, ускорив процесс формирования и передачи сигналов переноса по разрядам.
П усть имеется устройство – схема формирования переноса (СФП), которое по результатам анализа разрядов операндов, способно сформировать сигнал выходного переноса с задержкой τ. Структура четырехразрядного сумматора будет в этом случае будет выглядеть следующим образом.
Однако к повышению быстродействия суммирующего блока данное решение не приведет, так как несмотря на то, что перенос появится с задержкой τ, результат сложения сформируется не ранее, чем через , ( в суммирующем блоке соответствующей разрядности).
В то же время при последовательном соединении таких блоков время сложения будет определяться соотношением . За перенос достигнет последнего блока и понадобится для завершения процедуры сложения старших разрядов операндов.
Если аналогичные схемы формирования переносов подключить ко входам переносов всех одноразрядных сумматоров внутри блока, то задержка формирования суммы станет равной при любой его разрядности.
Д ля структуры из штук - разрядных блоков она составит то есть быстродействие такого многоразрядного сумматора окажется существенно выше, чем у предыдущих вариантов.
Можно ли создать устройства, формирующие переносы в старшие разряды, не дожидаясь промежуточных результатов сложения? Сигнал переноса, одноразрядного сумматора описывается соотношением Если аналогичное устройство применяется для сложения следующих по старшинству разрядов, то в данной формуле изменятся индексы, то есть .
Э то выражение можно преобразовать следующим образом , то есть перенос можно получить не дожидаясь сигнала , а обработав все разряды операндов и сигнал входного переноса .
При такой форме представления функции переноса выигрыша в скорости формирования не будет, так как из-за последовательной процедуры обработки задержка появления выходного сигнала составит или примерно , если под понимать задержку в сумматоре.
Однако если это выражение преобразовать, в частности раскрыть скобки, то оно трансформируется к виду
. Реализация функции в новом представлении позволит осуществить параллельную обработку компонент, что существенно уменьшит время формирования сигнала переноса (до . Аналогичным образом решалась задача повышения быстродействия приоритетного шифратора.
Сумматоры с такой внутренней структурой называются сумматорами с параллельным переносом. Однако их каскадирование возможно только путем соединения выхода переноса предыдущего блока с соответствующим входом последующего, то есть минимальная задержка формирования результата будет равна .
Е сли подобные формирователи переносов устанавливать между суммирующими блоками, то при теоретической задержке в структура сумматора из блоков будет нерегулярной, так как каждой последующей схеме придется обрабатывать весь предшествующий набор операндов. То есть они должны иметь разную конфигурацию и, кроме того, резко возрастет количество связей между элементами такого многоразрядного сумматора.
Повысить быстродействие при сохранении регулярности структуры оказалось возможным после разработки сумматоров с ускоренным переносом. В них схемы формирования переносов выносятся за суммирующие блоки, а с целью уменьшения числа связей на сумматоры возлагается частичная обработка сигналов переносов.
Для этого функция , описывающая сигнал переноса в - том разряде представляется в виде . Компонента называется функцией генерации, а - распространения переноса и задача их формирования в озлагается на одноразрядные сумматоры. Система уравнений, описывающая работу схемы ускоренного формирования переносов для четырех разрядов сумматора, выглядит следующим образом, а структура сумматора имеет вид.
П оследнее выражение представляет сигнал переноса в следующий суммирующий блок и может быть записано как , где , а . Это позволяет рассматривать каждый такой блок как эквивалент некоторого сумматора со стандартными значениями функций распространения и генерации переноса, что дает возможность объединять их в многоразрядную структуру посредством аналогичных схем ускоренного переноса (СУП).
Задержка формирования сигнала в представленном четырехразрядном сумматоре составит (по на формирование функций , переносов во все разряды и самого результата).
В ремя задержки в шестнадцатиразрядном сумматоре, четырехразрядные блоки объединяются через схемы ускоренного переноса, составит , а в шестидесятичетырехразрядной структуре .
Промышленностью выпускается большой ассортимент микросхем сумматоров в интегральном исполнении: К155ИМ3 – четырехразрядный параллельный сумматор с последовательными переносами, К555ИМ6 – аналогичный сумматор, с параллельными переносами между разрядами, К155ИП3 – многофункциональное устройство, включающее четырехразрядный сумматор с ускоренным переносом, К155ИП4 – четырехразрядная схема ускоренного переноса.
В приведенной таблице представлены результаты сравнения быстродействия 16 разрядных параллельных сумматоров, построенных на основе четырехразрядных блоков.
N=16, n=4, k=4 Структура |
Время задержки теоретическое |
Время задержки реальное |
Тип микросхем |
С последовательным переносом |
16τ |
180 нС |
К155ИМ3 |
С паралл. переносом в сумматоре и последоват. между блоками |
5τ |
75 нс |
К555ИМ6, К155ИП3 |
С ускоренным переносом |
4τ |
50 нС |
К155ИП3 К155ИП4 |
4.9 Устройства вычитания двоичных кодов
чисел.
Операцию вычитания в любой позиционной системе счисления можно представить как сложение уменьшаемого с отрицательным вычитаемым 15-7=15+(-7). То есть, процедуру вычитания двоичных кодов чисел можно реализовать с использованием сумматоров. Однако при этом необходимо каким-либо образом представлять в двоичном коде отрицательные числа.
Так как цифровые логические элементы воспринимают два уровня сигналов, один из которых обозначается нулем, а другой – единицей, то знак числа может быть закодирован лишь одним из них. В частности, в разрядную сетку добавляется знаковый разряд, который располагается правее самого старшего и принимает нулевое значение, если число положительное и единичное, когда оно меньше нуля.
Формально с кодами знаков могут проводиться те же действия, что и с разрядами числа, однако их результат требуется дополнительно интерпретировать. Как уже отмечалось, кроме двоичного кода для представления чисел используются инверсный (обратный) и дополнительный. Инверсный образуется путем преобразования нулей во всех, кроме знакового, разрядах в единицы и наоборот, а дополнительный получается из инверсного арифметическим прибавлением к его младшему разряду единицы. Таким образом, запись прямого кода числа +12 будет выглядеть как 0 1100, инверсного - 0 0011, а дополнительного – 0 0100 (здесь при прибавлении единицы образуются переносы в старшие разряды).
Последний вид кода называется дополнительным потому, что число которое им представлено дополняет исходное до ближайшей старшей степени основания системы счисления. В приведенном примере последняя запись соответствует числу 4, которое дополняет исходное 12 до 24, то есть до 16. Дополнительный код может быть сформирован в системе счисления с любым основанием. К примеру, в десятичной дополнительный код 13 будет равен 87, так как 87=100-13.
Используя понятие дополнительного кода, операцию вычитания можно заменить сложением уменьшаемого с дополнительным кодом вычитаемого, если не учитывать переполнение разрядной сетки.
Например: 64-13→64+87=64+(100-13)=64-13+100→64-13=51. Когда вычитаемое больше уменьшаемого, то ситуация будет следующей 13-64→13+36=13+(100-64)=100-(13-64)=49. То есть, если результат отрицательный, он оказывается представленным в дополнительном коде.
0 1101 |
1 1011 |
1 0 1000 |
13-5=(+13)+(-5)=+8
Дополнительный код 5 это прямой код одиннадцати, то есть комбинация 1011. В предложенном примере наблюдается перенос из знакового разряда, который не учитывается.
0 0110 |
1 0011 |
1 1001 |
Дополнительный код 13 равен 0011. В данном случае результат оказался равным –9, но так как он отрицателен, то представлен в дополнительном коде. При этом числу 9 будет соответствовать 7 в прямом.