
- •Саратовский государственный технический университет
- •Функциональные элементы арифметических операций
- •Передаточная характеристика вентиля по напряжению
- •Помехоустойчивость вентиля
- •1.3 Быстродействие вентиля
- •1.4 Типовые логические элементы
- •1.5 Синтез цифровых схем из логических вентилей
- •Функциональная модель сумматора
- •2.1 Структура опу сумматора
- •2.2 Одноразрядный полный сумматор (full adder)
- •Схемы сложения
- •Каскадное сложение
- •Сложение с предвычислением переносов
- •Вычисление типов переносов с помощью параллельной префиксной схемы
- •Полная схема сумматора с предвычислением переносов
- •Блок параллельного вычисления префиксов
- •Сумматор трех n- битовых чисел
- •4. Техническое и программное обеспечение
- •5. Требования безопасности труда
- •6. Методика эксперимента Постановка задачи и исходные данные
- •7. Вопросы для самопроверки
- •Содержание отчета
- •Содержание
- •Моделирование операционных устройств вычислительных машин. Сумматор
- •Вычислительные машины, системы и сети
Схемы сложения
В этом разделе будут рассмотрены 3 схемы сложения n-битных двоичных чисел.
Каскадное сложение (ripple-carryaddition) позволяет сложить
дваn- значных числа за
времяcпомощью схемы размера
.
Время можно уменьшить до
,
используя сложение с предвычислением
переносов (carry-lookaheadaddition), причем соответствующая
схема также имеет размер
.
Рассматривается также схема с запоминанием
переносов (carry-saveaddition), которая за времяO(1) сводит сложение 3-хn-
разрядных чисел к сложениюn-разрядного
и (n+1) – разрядного чисел.
Схема также имеет размер
.
Каскадное сложение
Неотрицательное целое число aзаписывается в двоичной системе как
последовательностьn–
битов (,…,
),
причем
и
|
(8) |
При сложении по двум n–
значным числам,…,
)
и
строится (n+1) – значное
число
,…,
),
равное их сумме.
При сложении столбиком (справа налево)
мы складываем в i-м разряде,
и входной бит переноса
(carry–inbit). Младший разряд суммы
записывается вi– тый
разряд ответа (
)
, а старший становится выходным битом
переноса (carry–outbit)
и используется при сложении в следующем
разряде.
В младший разряд ничего не переносится,
поэтому . Последний перенос становится старшим
разрядом суммы
.
Поскольку
=parity(
),
а
=majority(
)
для каждого шага может быть использован
описанный выше сумматор.
Таким образом n– разрядный
каскадный сумматор состоит из
последовательно соединенных простых
сумматоров,
так что выход
сумматора
является входом для
.
На входе
фиксировано
значение 0, не зависящее от входов.
Поскольку бит переноса проходит через
все сумматоры, глубина каскадного
сумматора равна n(а глубина
элементаравнаi+ 1). Поэтому время
работы составляет
.
Сложение с предвычислением переносов
В каскадном сумматоре бит переноса
вычисляется
в момент времениi. Значения
известны с самого начала. В некоторых
случаях они определяют бит переноса
:
если |
если |
Однако если один из битов равен 1, а другой 0, то
имеет
значение, а именно
Если то
(перенос «распространяется» (propagate);
Каждому разряду, следовательно, соответствует один из трех типов переноса (carrystatuses):k(kill),g(generate) илиp(propagate). Тип переноса известнее заранее, что позволяет уменьшить время работы схемы сложения.
Зная тип переноса для соседних сумматоров
((i-1)- го иi-го),
можно определить тип переноса для их
соединения, считаявходным битом, а
-
выходным: зная, как изменяется бит
переноса на каждом шаге, можно рассчитать,
что произойдет за два шага, то есть как
зависит
от
.
Еслиi– й разряд имеет
тип переносаp, то тип
переноса для соединения совпадает с
типом (i-1)- го разряда
|
|
| ||
|
Ξ |
k |
p |
g |
|
k |
k |
k |
g |
p |
k |
p |
g | |
g |
k |
k |
g | |
|
|
|
|
|
Рис. 9 Таблица операции Ξ
Таблицу на рис. 9 можно рассматривать как определение операции (композиции типов переноса) на множестве {k,p,g}; она будет обозначаться символом Ξ. Эта операция ассоциативна.
Операция определяет тип переноса для
некоторого участка числа, если известны
типы переносов отдельных разрядов.
Обозначим через тип переноса вi– том
разряде:
Тогда зависимость, скажем бита от
определяется композицией
.
Поскольку в нулевой разряд переноса от
младших разрядов не поступает, условно
положим .
Тогда перенос на выходеi– го разряда определяется композицией
:
,
если композиция равнаk,
и
,
если композиция равнаg.
(Значениеpдля композиции
невозможно, поскольку для этого все
члены должны быть равныp,
а это не так для
)
Представим формальную запись.
Положим и определим
,…,
в виде
|
(9) |
Тогда ,…,
являются префиксами (prefixes)
выражения
.
Таким образом, вычисление битов переноса
сводится к вычислению префиксов
.
Оставшиеся действия выполняются за
время Θ(1): достаточно подать биты переноса
на входы сумматоров.