12.4- Сумматор с параллельным переносом
на ( т — 1) время д^ля подсчета переноса плюс время для подсчета самого значимого бита Fm-i- MSB суммы Fm-i справедливо для времени задержки:
ts = (2 (m - 1) + 3) tp = (2m + 1) tp |
(12.4) |
Это очень большое время выполнения суммирования. Если вы брать для реализации двухкаскадный драйвер (с инверторами), по лучим оптимальное время суммирования 3tp. Но следует учитывать, что таблица истинности при сложении двух 8-позиционных двоичных чи сел имеет длину 2^"^ = 131072 строк (8бит + 8бит + 1бит(Со) = 17). Реализация подобной логической схемы привела бы к чрезмерным схемным затратам.
12.4. Сумматор с параллельным переносом
Компромисс между схемотехническими затратами и временем за держки представляет сумматор с опережением переноса (carry-look- ahead adder). Он образован схемой, состоящей из упрощенных одно разрядных сумматоров, которые не содержат схемы ^ля формирова ния перехода. Разумеется, перенос для отдельных полных суммато ров осуществляется с помощью дополнительной логической схемы. На основе многократного применения уравнения (12.2) для отдель ных переносов получаем:
С1 = хоуо у Со {хо V уо) == ^0 V соро |
|
(12.5) |
^0 |
РО |
|
|
|
С2 = xiyi Vci {xi V yi) |
= giW cipi = gi\/ |
gopi V copopi |
(12.6) |
91 |
Pi |
|
|
|
C3 = Х2У2 VC2 {X2 V У2) = |
^2 V C2P2 = |
|
|
=92 V giP2 V gopiP2 V copopiP2 |
|
(12.7) |
C4 = Хзуз |
VC3 (X3 V Уз) = ^3 V СзРз |
= |
|
93 |
|
рз |
|
|
= дз V д2Рз V giP2P3 V доР1Р2РзУ coPoPiP2P3^ |
(12.8) |
Глава 12. Арифметические устройства
При этом принято:
9i = ХгУг |
(12.9) |
Рг=ХгУуг |
(12.10) |
Равенство gi — 1 означает, что в каждом терме Сг+i генериру ется перенос. В этом случае обе входных переменных соответству ющего каскада полного сумматора равны 1 (сравните с уравнением (12.9)). Поэтому дп называют также «генерирование переноса» (car ry generate). В противовес этому pi воздействует только на один переход, также, если Ci = 1^ pi представляет собой 1, когда только одна из входных переменных равна 1 (уравнение (12.10)). Pi называ ют также «распространение переноса» (carry propagate). На рис. 12.4 показана схема сумматора с опережением переноса. Мы видим, что в начале реализуются функции д^ npi. Из них с помощью инвертирую щих выражений от 12, 5 до 12,7 получаем величины от -^CQ ДО -i СЗ.
Поскольку функции дп и рп уже сформулированы, их используют также при расчете сумм Fi. Как можно легко убедиться, справедливо:
Отсюда в соответствии с уравнением (12.1):
Fi = Xi^Xi^Ci = Qi i\>pi^Ci |
(12.12) |
В схеме используют инвертированную выходную функцию -iF^, которую получают путем инвертирования С^.
^Fi -^г<+>Рг^-^Сг |
(12.13) |
Поэтому в схеме, приведенной на рис. 12.4 применены еще два вентиля «исключающее ИЛИ», предназначаемые для формирования выходных функций. Кроме того, в данном схемном узле генерирует ся функция -iP и -iG, из которых затем в соответствии с уравнением (12.8) можно получить перенос (74-
Как видно из рисунка, при формировании сумм Fi сигнал про ходит 4 вентиля, следовательно:
Общее время задержки при расчете -^Р и ^G составляет:
УУ
хз .
У^~1
Х2 .
Я " 1
XI
уо
хо .
со
12.4' Сумматор с параллельным переносом |
273 |
^ 3 |
|
\и=^ |
|
|
|
|
>1р |
|
& |
|
|
|
|
^ 3 |
&Р- |
|
-./^ |
|
|
|
|
|
|
|
Л'З |
|
|
|
|
-1 |
П Й |
pi |
|
|
- l O I |
|
|
|
|
|
|
ts |
|
>1 |
|
g2 |
Яг is |
|
|
|
|
|
|
|
|
|
|
5*2 |
|
Р^ |
|
|
-|С2| |
п ^ 2 |
|
|
|
^1 |
|
|
|
|
|
|
|
>1М |
|
^1 |
|
_п |
|
|
|
|
|
|
|
51 |
|
|
|
|
-iC^l |
. ^1 |
ро |
|
|
|
|
|
|
|
>1 |
|
|
|
|
|
& |
|
>1 |
|
|
|
|
|
go |
|
|
|
|
|
|
|
so =1 |
.Fo |
|
1 |
р |
-iCO |
|
|
|
|
Рис . 12.4. Сумматор с логической схемой для генерации переносов -^d в соответствии с принципом «опараллельного переноса» (carry- look-ahead).
Аппаратные (hardware) затраты, необходимые для расчета пе реносов при сложении двух т-разрядных чисел, можно определить на основе уравнения (12.5)-(12.8) (как и для т больше 4). Получаем для числа вентилей Ngi
274Глава 12. Арифметические устройства
ир^ля максимального числа входов вентиля Ne
Р и с . 12.5. Логический символ сумматора, показанного на рис. 12.4.
12.4.1.Каскадирование сумматоров с параллельным переносом
Так как количество необходимых входов в вентиле и число венти лей при более длинных словах сильно увеличивается, целесообразно формировать в начале блоки из 4-битовых сумматоров с опереже нием переноса. Этот метод проиллюстрируем в начале на примере сумматора для 16-битовых двоичных чисел, который сформирован из четырех описанных выше 4-битовых сумматоров с параллельным переносом (CLA).
Для 4-битовых сумматоров i (г = 1... 4) вспомогательные сиг налы -iPi и -iG^ а также Со выводятся в соответствии с приведен ными ниже уравнениями CLA-генератора. Примененные уравнения соответствуют уравнениям 12.5-12.8. На основе этого генерируют ся переносы С4, Cg и Си для отдельных блоков. Эта схема имеет обозначение 74182.
С4 - |
Go V соРо - - (-Go-Po V -c^Go) |
(12.18) |
С8 = Gi V С4Р1 = Gi V GoPi V coPoPi = |
|
- |
- {-П G i - Pi V - GoGiPo V - cn-- GoGi) |
(12.19) |
12.4- Сумматор с параллельным переносом 275
С12 = |
«2 V CsP2 = G2 V G1P2 V G0P1P2 V С0Р0Р1Р2 = |
|
= |
-n(-nG2-P2 V ^ G i - G 2 - P i V |
|
|
|
V - Go- G i - G2Po V - CnGo- G i - G2) |
|
(12.20) |
C16 = |
G3 + C12P3 = |
|
|
= |
G3 + G2F3 + G1P2P3 + GQP1F2P3+C0 P0P1P2P2 |
(12.21) |
|
G |
P |
|
-1P = |
-^ Po V -П Pi V ^ P2 V -1P3 |
|
(12.22) |
-I G = |
-1G3— P3 V -> G2~i G3-iP2 V -«Gi-" G2~' G3->PiV |
|
|
V - G 0 - G 1 - G 2 - G 3 |
|
(12.23) |
В схеме 74182 Gie не генерируется, но вместо него генерируют ся сигналы -iG (блок генерации) и — Р (блок распространения), из которых затем с помощью двух вентилей (в соответствии с уравне нием (12.21)) можно сформировать Gie-
На рис. 12.6 показана полная схема генератора с опережением переноса, содержащегося в схеме 74182. Входы Р^ и G^ и выходы Р и Gинвepтиpyютcя, чтобы обеспечить совместимость с сумматором, показанным на рис. 12.4.
Логический символ схемы 74182 можно найти на рис. 12.7. Схе му генератора с опережением переноса на 16 бит можно составить из 4 арифметико-логических устройств (АЛУ, ALU) показанных на рис. 12.4, а одной схемы 74182. Схема генератора показана на рис. 12.8.
12.4.2.Сравнение сумматоров
Втабл. 12.1 сравниваются 3 сумматора по их величинам времени задержки. Можно видеть, что при более высоких аппаратурных за тратах сумматоры CLA-типа обладает большим быстродействием.
Таблица 12.1. Время задержки |
/tp. |
|
|
|
|
|
4 бит |
16 бит |
64 бит |
Последовательный сумматор |
|
12 |
48 |
192 |
Сумматор с последовательным |
переносом |
9 |
33 |
129 |
Сумматор CLA-типа |
|
4 |
8 |
12 |
276 Глава 12. Арифметические устройства
47Г
|
тт~ |
144 |
^ & |
|
[>T |
|
|
4 ^ p |
|
|
|
|
|
Г •- |
|
|
|
|
|
-/'з |
1 1 |
1 |
1 |
|
|
•J |
|
|
|
|
|
i Т |
|
|
|
|
|
-•^3 |
\ |
\ \ |
|
|
|
|
|
|
|
|
|
|
1 |
W^ |
1~ |
|
|
|
|
|
• |
1 |
• |
г j — — — |
L |
{- |
|
|
|
|
|
|
|
1 |
|
~L_ |
>1 |
|
|
|
|
1 |_i |
L |
|
Э |
-/>, |
т1 |
1 |
|
|
J1 — — — J |
|
IT |
iX |
|
|
|
""/^2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
TJX |
|
|
|
|
1 |
|
i T |
|
|
|
|
|
пР, |
|
|
T |
|
|
|
^ |
|
1 |
J |
1 |
|
|
|
|
|
/^ |
|
|
|
|
|
|
|
|
|
-.О] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
г |
|
|
|
|
.Ро |
1 |
|
|
|
|
|
|
>1 Э |
/^ |
|
|
|
|
|
|
|
|
|
-.Go |
|
|
|
|
|
|
|
|
|
[T]J
Рис. 12.6. Генератор с параллельным переносом 7418.
12.5.Арифметико-логические вычислительные устройства (А1и,АЛУ)
Арифметико-логические устройства (англ., arithmetic logic unit=ALU) должны иметь возможность наряду со сложением и вычитанием осу ществлять логические функции. Как правило, эти схемы содержат сумматор j\RR двух слагаемых. Кроме того, они в состоянии про водить с помощью специальной схемы такие логические операции с двумя операндами, как, например, побитовые И-соединения между двумя операндами.
12.5. Арифметико-логические вычислительные устройства
CI
СРО
-iGo С|CGO СР1 nG,—ClCG 1 СР2 -.G2_dCG2
- Л — d C P 3 -,Оз—dCG2
CPG
СР -.Р
C G t > - ^^G
СОО COl С02
Рис. 12.7. Логический символ генератора с последовательным переносом 74182.
В качестве примера представлено 4-битовое АЛУ 74181. Оно проводит, в зависимости от 4-битового управляющего слова S', раз личные операции. С помощью выхода М может производиться пе реключение от логических к арифметическим операциям.
Схему ALU 74181 можно рассматривать как расширение схемы сумматора, приведенной на рис. 12.4. Для выполнения различных операций создаются вместо сигналов pi и gi сигналы р[ и д[ в со ответствии со следующими формулами:
р• |
= |
-п |
{^Хг\/ Зо^УгУ |
Siyi) |
(12.24) |
Pi |
= |
-" |
(<S3-^ Xi-^ Vi V 52"^ |
Xiyi) |
(12.25) |
Для управляющего слова S = (1,0,0,1) имеем p[ = pi VL g[ — g. Схема формирования показана на рис. 12.9. Она применяется вместо схемы формирования pi и ^^, приведенной на рис. 12.4.
Схема ALU 74181 показана на рис. 12.10. Мы видим, суммиро вание может быть реализовано с помощью логической схемы «ис ключающее ИЛИ» (EXOR) в соответствии с уравнением (12.13). По сле сокращения получаем tf.
и = 9i^Pi |
= ^ {ss^Xi-^yiW |
S2^Xiyi\/ -п81ХгУг\/ -^SQXi^yi) |
(12.26) |
с помощью других управляющих слов S могут быть образованы другие функции, как это будет показано ниже.
Как обрабатываются переносы Сг? Сначала отметим, что пере носы ->Сг требуются только для арифметических операций. Поэтому вводят вход М, который для проведения арифметических операций должен быть установлен в состояние 0. При работе с логикой с опе режением переноса из уравнений (12.5)-(12.7) получаем с учетом М
Глава 12. Арифметические |
устройства |
CI (0.15)СР
-.G
(0... 15X^0
|
|
|
CI |
CPG |
-.P |
n,>1 Cl6 |
|
|
|
cpb |
|
|
|
<1CP0 |
|
|
|
|
CGf> |
-пГ? |
|
|
|
-qcGO |
|
|
|
|
|
qcpi |
|
|
|
|
|
|
qcGi |
coo |
|
|
CI (О..Л5)СР |
|
qCP2 |
CO I |
|
|
-,G |
•dCG2 |
|
|
|
|
C02 |
|
|
(0. |
15)С0р |
|
|
|
|
|
|
|
|
Р-
10
II
CI (О.ЛЗХ^Р |
- i P |
|
(0...15)CGp |
- i G |
|
Р и с . 12.8. Сумматор типа CLA («с последовательным переносом») на 16 бит, состоящий из 4-битовых сумматоров и одного CLAгенератора.
12.5. Арифметико-логические вычислительные устройства 279
следующие уравнения ^щя сигналов от UQ ДО [/3- В случае М = О С/^ заменяют сигналы переноса Ct:
щ |
= -^ ЬМсо) |
|
|
|
|
|
(12.27) |
ui |
= -^ {-п Мд'о V - Мр'осо) |
|
|
|
|
(12.28) |
^2 = |
- |
(- Мд[ V - Мд'^р[ V - |
MpJjp'iCo) |
|
(12.29) |
из = |
- |
(- М^^ V -п Мд[р'2 V -п M^()p'op'i V - Mp'oPiP2Co) |
(12.30) |
|
|
|
|
|
& |
|
|
|
|
|
|
|
|
С |
& |
|
|
|
|
|
|
|
- i V / |
& |
г |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
& |
>1 |
g-' |
|
|
|
|
|
|
|
|
S2
S3
Рис. 12.9. Логическая схема для генерации 16 различных функций.
В случае М = О (арифметические функции) эти уравнения иден тичны инвертированным уравнениям (12.5)-(12.7). Для М = 1 все
Ui = l.
Как можно видеть из рис. 12-4, при ->С{ с помощью логической функции «исключающее ИЛИ» (EXOR) формируются выходные функ ции:
-^Fi=UiM¥ti |
(12.31) |
Сигнал переноса и сигналы генерации блока и распространения |
блока создаются в соответствии с уравнением (12.8): |
|
-. С = Зз V 52Рз V 9'iP'2P'3 V 9oP'lP'2P3 |
(12.32) |
-- -Р = PoP'iP2P3 |
(12.33) |
С4 = G у Pop[p2p'sCQ |
(12.34) |
280 Глава 12. Арифметические устройства
12.5.1. Примеры операций
Слож:ение
Управляющее слово при проведении сложения имеет вид: S = = (1, 0,0,1). При этом получаем:
д[ = |
^ {-.Хг\/ |
-^Уг) |
= ХгУг = Qi |
(12.35) |
р- = |
-1 (-П Хг^ Уг) = |
Xi\/yi=pi |
(12.36) |
U = 9z<^Pi |
|
|
(12.37) |
Так как М = О, действительно: |
|
|
|
щ = -^со |
|
|
(12.38) |
Щ = -- {доУроСо) |
|
|
(12.39) |
U2^^ |
{gi V gopi |
V popico) |
(12.40) |
^3 ^ ^ |
{92 V giP2 V gopopi V P0P1P2C0) |
(12.41) |
Отсюда справедливо Ui = "«Сг, и, как следует из схемы, сумма будет рассчитываться следующим образом:
^Fi = Ui^ti |
= ^Cii\^Xii\>yi = -^ {CiZ ШХгФ |
Уг) |
(12.42) |
Вычитание |
(subtraction) |
|
|
Управляющее слово для вычитания имеет вид: = |
(0,1,1,0)5. При |
этом определяем для д[ и р[: |
|
|
|
р- = |
^ (-П Хг V yi) = Хг-^ Уг |
|
(12.43) |
|
р'. = |
^{-^ ХгУг) =Хг\/-^Уг |
|
(12.44) |
Видим, что в противоположность уравнениям (12.35) и (12.36) Уг оказывается инвертированным. Если установить Со == 1, что вызы вает суммирование с 1, получим двойное дополнение (точное допол нение) для у. Отсюда получаем как результат разность х — у при представлении с двойным дополнением.
Отрицание (negation) |
|
Управляющим словом является iS = (0,0,0,0) и М = 1. |
|
На основе этого получим в соответствии с уравнением |
(12.26): |
и = ^ |
{Xiyi V Хг-^Уг) = ^ Xi |
(12.45) |
Так как М = 1, получим |
С/^ = 1, и на выходе появятся в |
соответ |
ствии с уравнением (12.31) инвертированные ж^:
^Fi = UiM>ti = ^ti = -- {-^Xi) |
(12.46) |