Исследование и сравнение полусумматора и сумматора
Основной элементарной операцией, которую можно выполнять с числами в цифровых устройствах — это арифметическое сложение двух одноразрядных двоичных чисел. АЛУ — Арифметико-логическое устройство процессора, будет обязательно содержать в составе своём такие элементы как сумматоры. Такие схемы позволят, к примеру, складывать двоичные числа. Но помимо сложения они обладают есть еще множеством функций.
Ключевые слова
Текст научной работы
Основной элементарной операцией, которую можно выполнять с числами в цифровых устройствах — это арифметическое сложение двух одноразрядных двоичных чисел.
АЛУ — Арифметико-логическое устройство процессора, как правило, в составе своем обязательно содержит такие элементы, как сумматоры. Такие схемы позволят, к примеру, складывать двоичные числа. Но помимо сложения они обладают есть еще множеством функций.
Арифметико-логическое устройство — это специальное комбинационное устройство в интегральном исполнении, при помощи которого можно выполнить некоторый спектр операций для обработки не одноразрядных данных, притом действие, которое выполняется в текущий момент времени, можно будет определить сочетанием сигналов на управляющих входах.
Блок арифметико-логического устройства — это основной элемент процессоров и микропроцессоров, использующийся в совокупности с регистрами и иными блоками управления.
Микросхемы арифметико-логического устройства разнообразных серий по своему функционалу похожи, в том числе и по назначению выводов.
Сумматоры относят к важным компонентам устройств цифровой обработки сигналов. Суммирование, вычитание, умножение — эти некоторые арифметические функции используют сумматор как строительный блок. Помимо этого, сумматор также зачастую может являться как основной элемент, ограничивающий быстродействие схемы. Таким образом, создание быстродействующей схемы сумматора — это одна из важных задач — к разработке и оптимизации сумматора нужно отнестись с должным вниманием. Данную оптимизацию разрешается выполнить как на уровне логических элементов, так и на уровне схемы. Чаще всего, на этапе оптимизации на уровне логики разработчики стремятся так записать булевы уравнения, чтобы схема получилась наиболее быстрой или с минимальным размером. С другой стороны, на этапе оптимизации на уровне схемы размеры транзисторов и топология схемы подбираются так, дабы получить максимальное быстродействие.
Процесс сложения будет происходить следующим образом. Предположим, нам нужно произвести сложение чисел из двоичной системы исчисления 1001 и 0011. Для начала, необходимо сложить числа младших разрядов (последние цифры): 1+1=10. Получается, что младшем разряде будет 0, а 1 — это перенос в противоположный разряд, т.е. в старший. Затем: 0 + 1 + 1(от переноса) = 10, т.е. в текущем разряде опять же записывается 0, а 1 перейдет в противоположный младшему разряд. На следующем этапе уже получается: 0 + 0 + 1(от переноса) = 1. Как итог, сумма будет равняться 1100.
Полусумматор
Теперь, не будем обращать внимание на перенос из предыдущего разряда, а будем рассматривать только то, как будет сформировываться сумма данного разряда. При условии, что нам были предоставлены два 0 и две 1, то получится, что сумма данного разряда равняется 0. Но, если же одним из двух слагаемых будет единица, то сумма равняется уже 1. Для получения таких результатов необходимо использовать вентиля «ИСКЛЮЧАЮЩЕГО ИЛИ».
Для того, чтобы перенести 1 в следующий разряд, нужно чтобы два слагаемых равнялись 1. Данная операция реализуется при помощи вентиля «И».
С помощью приведенной ниже схемы, которая именуется полусумматором, можно реализовать сложение в рамках одного разряда (не учитывая возможной пришедшей 1 из противоположного разряда). Полусумматор располагает двумя входами (для слагаемых) и двумя выходами (для суммы и переноса). На схеме, изображенной ниже, продемонстрирован полусумматор, состоящий из вентилей «ИСКЛЮЧАЮЩЕЕ ИЛИ» и «И».
Рисунок 1. Схема полусумматора.
Сумматор
Сумматор, в отличие от полусумматора, располагает тремя выходами, а не двумя, т.к. у него есть возможность учитывать перенос из прошлого разряда. Но, как минус, придется немного усложнить схему, дабы учесть перенос. Как итог, можно сказать, что она состоит из двух полусумматоров.
Рисунок 2. Схема сумматора.
Для примера разберем один из случаев. Необходимо сложить 0 и 1, а также 1 из переноса. Сперва найдем совокупность текущего разряда. Как можно заключить по левой схеме «ИСКЛЮЧАЮЩЕЕ ИЛИ», в которую будут входить a и b, на выходе получаем 1. В последующее «ИСКЛЮЧАЮЩЕЕ ИЛИ» уже входят две единицы. Следовательно, окончательный ответ будет равен 0.
Дальше рассмотрим, что будет происходить с процессом переноса. Сперва, в первый вентиль «И» приходят 0 и 1 (a и b). Как итог — 0. Во следующий вентиль (правее) приходят две 1, которые дают единицу. Проход сквозь вентиль «ИЛИ» нуля от первого «И» и единицы от второго «И» как итог дает нам 1.
Работу схемы можно проверить простым сложением 0+1+1= 10. Получается, что 0 будет оставаться в текущем разряде, а единица перейдет в противоположный. Из этого следует, что логическая схема работает правильно.
Для того, чтобы дать описание работы такой схемы с учетом всех возможных вариантов на входе, можно воспользоваться следующей таблицей истинности.
Сумматоры. Полусумматоры и полные сумматоры. Параллельный сумматор с параллельным переносом. Сумматор-вычитатель
Комбинационный сумматор – это цифровое устройство, предназначенное для арифметического сложения чисел, представленных в виде двоичных кодов.
Обычно сумматор представляет собой комбинацию одноразрядных сумматоров. При сложении двух чисел в каждом разряде производится сложение трех цифр: цифры первого слагаемого Ai, цифры второго слагаемого Bi и цифры переноса из младшего разряда Pi-1. В результате суммирования на выходных шинах получается сумма S i и перенос в старший разряд P i.
Сумматоры с поразрядным переносом выпускаются в виде микросхем на 2 и 4 разряда. Например, К561ИМ1 – сумматор на 4 разряда. Для увеличения разрядности до 8 необходимо взять две микросхемы и соединить их последовательно по цепи переноса.
Сумматор с поразрядным последовательным переносом наиболее прост с точки зрения схемной реализации, однако имеет низкое быстродействие. Время выполнения операции зависит от разрядности так как включает в себя затраты времени на вычисление во всех более младших разрядах и выполнение в них переносов.
Для повышения быстродействия используются сумматоры с параллельным переносом.
По числу входов различают: полусумматоры, полные сумматоры.
Полусумматор
Полусумматор (Half Summator) складывает два числа самого младшего разряда A, B без учета переноса. Результат сложения S и перенос в старший разряд P (рис.1) значения, которых представлены в таблице истинности (табл.1).
Рис. 1 Обозначение одноразрядного полусумматора, (а),
и его функциональная схема, (б).
Таблица истинности полусумматора Таблица 1
Из таблицы 1 следует, что, если A = 1 и B = 1, то происходит переполнение разряда S = 0 и вырабатывается сигнал переноса в старший разряд P = 1.
Вывод: максимальное значение результата сложения на полусумматоре с учетом переноса равно: A0 + B0 = 12+12 = 102 = 210, где P0 = 1, S0 = 0.
Аналитические выражения выходных сигналов:
Полный сумматор
Одноразрядный полный сумматор (Summator) имеет три входа: для разряда слагаемого An, разряда слагаемого Bn и входного сигнала переноса из младшего разряда Pn-1.
Результат сложения Sn и перенос в старший разряд Pn (рис. 3.2) значения, которых представлены в таблице истинности (табл. 2).
Рис. 2 Обозначение одноразрядного полного сумматора, (а),
и его функциональная схема на полусумматорах, (б).
Вместо элемента 2ИЛИ можно использовать третий полусумматор, у которого S = P n.
Таблица истинности одноразрядного полного сумматора Таблица 2
B n
P n –1
S n
P n
Вывод: сложение в двоичной системе производится с учетом переноса из младшего разряда аналогично «сложению в столбик» в десятичной системе. При этом максимальное значение результата сложения в одном разряде с учетом переносов равно: An + Bn + Pn—1 = 12+12+12 = 112 = 310, где Pn = 1, Sn = 1.
Как видно из карт Карно, функция результата не минимизируется, а функция переноса упрощается (табл. 3), что сделано также в аналитическом виде и реализовано на логических элементах (рис. 3).
Из таблицы истинности следуют выражения для сигналов:
Карта Карно для Sn Карта Карно для Pn Таблица 3
Рис. 3 Принципиальная схема одноразрядного полного сумматора
на элементах И, ИЛИ, НЕ: получение суммы (а), и переноса, (б).
Параллельный многоразрядный сумматор состоит из n одноразрядных сумматоров (рис. 4). Входные сигналы подаются на одноразрядные сумматоры одновременно. Если появляются сигналы переноса, то они поступают в старший разряд.
Вывод: пока не состоится сложение в младшем разряде и не определится значение переноса не может быть определена сумма в разряде более старшем.
Максимальное значение результата сложения с учетом переносов: Pn, Sn = 112 = 310.
Рис. 4 Параллельный многоразрядный сумматор
При использовании обратного кода перенос из самого старшего разряда подается на вход переноса самого младшего разряда. В остальных случаях на вход самого младшего разряда подается логический ноль.
Сумматоры с поразрядным переносом выпускаются в виде микросхем на 2 и 4 разряда. Например, К561ИМ1 – сумматор на 4 разряда. Для увеличения разрядности до 8 необходимо взять две микросхемы и соединить их последовательно по цепи переноса.
Сумматор с поразрядным последовательным переносом наиболее прост с точки зрения схемной реализации.
Быстродействие данного сумматора ограничено временем, за которое сигнал переноса последовательно распространяется через все разряды сумматора.
Этот недостаток отсутствует у параллельных сумматоров с параллельным переносом.
Параллельный сумматор с параллельным переносом
В данных устройствах сигнал переноса формируется с одновременным (параллельным) учетом всех переносов в младших разрядах, по отношению к рассматриваемому разряду.
Для построения сумматора с параллельным переносом используются две вспомогательные функции.
Функция генерации (порождения переноса) – принимает единичное значение, если перенос на выходе данного разряда появляется независимо от наличия или отсутствия входного переноса:
Функция прозрачности (транзита переноса) – принимает единичное значение, если перенос на выходе данного разряда появляется только при наличии входного переноса. Это следует из выражения (3.1):
Тогда перенос на выходе младшего разряда:
что, с учетом выражений для дополнительных функций, соответствует зависимости для определения переноса одноразрядного сумматора (1).
Сумматор и полусумматор
Арифметико-логическое устройство процессора (АЛУ) обязательно содержит в своем составе такие элементы как сумматоры. Эти схемы позволяют складывать двоичные числа.
Как происходит сложение? Допустим, требуется сложить двоичные числа 1001 и 0011. Сначала складываем младшие разряды (последние цифры): 1+1=10. Т.е. в младшем разряде будет 0, а единица – это перенос в старший разряд. Далее: 0 + 1 + 1(от переноса) = 10, т.е. в данном разряде снова запишется 0, а единица уйдет в старший разряд. На третьем шаге: 0 + 0 + 1(от переноса) = 1. В итоге сумма равна 1100.
Полусумматор
Теперь не будем обращать внимание на перенос из предыдущего разряда и рассмотрим только, как формируется сумма текущего разряда. Если были даны две единицы или два нуля, то сумма текущего разряда равна 0. Если одно из двух слагаемых равно единице, то сумма равна единице. Получить такие результаты можно при использовании вентиля ИСКЛЮЧАЮЩЕГО ИЛИ.
Перенос единицы в следующий разряд происходит, если два слагаемых равны единице. И это реализуемо вентилем И.
Тогда сложение в пределах одного разряда (без учета возможной пришедшей единицы из младшего разряда) можно реализовать изображенной ниже схемой, которая называется полусумматором. У полусумматора два входа (для слагаемых) и два выхода (для суммы и переноса). На схеме изображен полусумматор, состоящий из вентилей ИСКЛЮЧАЮЩЕЕ ИЛИ и И.
Сумматор
В отличие от полусумматора сумматор учитывает перенос из предыдущего разряда, поэтому имеет не два, а три входа.
Чтобы учесть перенос приходится схему усложнять. По-сути она получается, состоящей из двух полусумматоров.
Рассмотрим один из случаев. Требуется сложить 0 и 1, а также 1 из переноса. Сначала определяем сумму текущего разряда. Судя по левой схеме ИСКЛЮЧАЮЩЕЕ ИЛИ, куда входят a и b, на выходе получаем единицу. В следующее ИСКЛЮЧАЮЩЕЕ ИЛИ уже входят две единицы. Следовательно, сумма будет равна 0.
Теперь смотрим, что происходит с переносом. В один вентиль И входят 0 и 1 (a и b). Получаем 0. Во второй вентиль (правее) заходят две единицы, что дает 1. Проход через вентиль ИЛИ нуля от первого И и единицы от второго И дает нам 1.
Проверим работу схемы простым сложением 0 + 1 + 1 = 10. Т.е. 0 остается в текущем разряде, и единица переходит в старший. Следовательно, логическая схема работает верно.
Работу данной схемы при всех возможных входных значениях можно описать следующей таблицей истинности.
Сумматор. В отличие от полусумматора сумматор учитывает перенос из предыдущего разряда, поэтому имеет не два, а три входа
В отличие от полусумматора сумматор учитывает перенос из предыдущего разряда, поэтому имеет не два, а три входа.
Чтобы учесть перенос приходится схему усложнять. По-сути она получается, состоящей из двух полусумматоров.
Рассмотрим один из случаев. Требуется сложить 0 и 1, а также 1 из переноса. Сначала определяем сумму текущего разряда. Судя по левой схеме ИСКЛЮЧАЮЩЕЕ ИЛИ, куда входят a и b, на выходе получаем единицу. В следующее ИСКЛЮЧАЮЩЕЕ ИЛИ уже входят две единицы. Следовательно, сумма будет равна 0.
Теперь смотрим, что происходит с переносом. В один вентиль И входят 0 и 1 (a и b). Получаем 0. Во второй вентиль (правее) заходят две единицы, что дает 1. Проход через вентиль ИЛИ нуля от первого И и единицы от второго И дает нам 1.
Проверим работу схемы простым сложением 0 + 1 + 1 = 10. Т.е. 0 остается в текущем разряде, и единица переходит в старший. Следовательно, логическая схема работает верно.
Работу данной схемы при всех возможных входных значениях можно описать следующей таблицей истинности.
13.Синхронные суммирующие счётчики
14.Синхронные вычитающие счётчики
На рис. 3.34 приведена схема асинхронного трехразрядного двоичного вычитающего счетчика, построенного на базе D-триггеров. Отметим, что условия для изменения состояний триггеров вычитающих счетчиков аналогичны условиям для суммирующих счетчиков с той лишь разницей, что они должны “опираться” на значения инверсных, а не прямых выходов триггеров. Следовательно, рассмотренный выше счетчик можно превратить в вычитающий, просто переключив входы “С” триггеров с выходов Q на выходы . Когда в качестве разрядных триггеров используются D-триггеры, синхронизируемые передним фронтом синхроимпульсов, для получения вычитающего счетчика (асинхронного) входы “С” последующих тригеров соединяются с прямыми выходами предыдущих, также как в счетчике прямого счета, построенного на JK-триггерах.
Работа вычитающего счетчика на D-триггерах наглядно иллюстрирована на рис. 3.34, (б). Из рис. 3.34 следует, что после нулевого состояния всех триггеров, с приходом первого синхроимпульса они устанавливаются в состояние “1”. Поступление второго синхроимпульса приводит к уменьшению этого числа на одну единицу и т.д. После поступления восьмого импульса, снова, все триггеры обнуляются и цикл счета повторяется, что соответствует модулю М=8.
В некоторых случаях необходимо, чтобы счетчик мог работать как в прямом, так и в обратном направлении счета. Такие счетчики называются реверсивными. Реверсивные счетчики могут быть как асинхронного, так и синхронного типа. Они строятся путем применения логических коммутаторов (мультиплексоров) в цепях связи между триггерами. Так, например, асинхронный реверсивный двоичный счетчик можно построить, если обеспечить подачу сигналов с прямого (при суммировании) или с инверсного (при вычитании) выхода пре-дыдущего JK- или Т-триггера на счетный вход последующего. В случае, когда реверсивный счетчик строится на базе D-триггеров, управляемых передним фронтом, для получения режима прямого счета следует соединить инверсный выход предыдущего с счетным входом последующего триггера.
Все рассмотренные типы счетчиков могут быть использованы в цифровых устройствах “умеренного” быстродействия, когда частота следования синхроимпульсов не превышает критического значения, при котором время задержки установки триггеров последних (старших) разрядов счетчика становится соизмеримым с длительностью периода входных тактовых импульсов. В связи с этим, асинхронные счетчики строятся на относительно небольшое количество разрядов, так как при большем количестве разрядов выходные сигналы триггеров старших разрядов появляются позднее, чем управляющие фронты синхроимпульсов (поступающих на вход первого триггера) .
15.Синхронный счётчик с изменённым коэффициентом пересчёта. Собрать счётчик по М=10.Последовательное включение двоично-десятичных счётчиков.
16.Дешифраторы. Условные понятия. Пример дешифратор 3×8. Таблица истинности.
Дешифратор (декодер) — это узел, преобразующий код, поступающий на его входы, а сигнал только на одном из его выходов. Дешифраторы широко применяются в устройствах управления, в системах цифровой индикации с газоразрядными индикаторами, для построения распределителей импульсов по различным цепям и т.д. Схема используется я перевода двоичных цифр в десятичные. Дешифратор двоичного n-разрядного кода имеет 2 n выходов, т.к. каждому из 2 n значений входного кода должен соответствовать единичный сигнал на одном из выходов дешифратора.
Таблица истинности для дешифратора трехразрядного двоичного кода десятичных цифр: