Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вводый курс цифровой электроники (К.Фрике, 2003)

.pdf
Скачиваний:
196
Добавлен:
12.08.2013
Размер:
8.2 Mб
Скачать

2 7 0 Глава 12. Арифметические

устройства

Р и с . 12.2. Последовательный сумматор для m разрядов. Осуществляется г-тый шаг.

12.3.Сумматор с последовательным переносом (ripple-carry-adder)

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

Со Хо Уо

сх xi у1

сг Х2 уг

сз хз Уз

Рис . 12.3. Сумматор с последовательным переносом для 4 бит

Как велико время выполнения суммирования двух т-разрядных чисел? На перенос Ci требуется только две задержки, поскольку для расчета переноса не нужен инвертор. Итак, суммарное время переноса Cm составляет:

бтг ZiJlhL'p (12.3)

{tu -^ и bergang = перенос)

Последний бит, вычисляемый суммы, который устанавливается, называется самый значимый бит (most significant bit (MSB)). Кон­ статируем, что для операции суммирования требуется умноженное

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. Как можно легко убедиться, справедливо:

ХгФуг =gi^Pi

(12.11)

Отсюда в соответствии с уравнением (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 вентиля, следовательно:

tE = 4tp

(12.14)

Общее время задержки при расчете -^Р и ^G составляет:

tp = tg = 3tp

(12.15)

УУ

хз .

У^~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

^. = Е'

(12.16)

 

г=0

274Глава 12. Арифметические устройства

ир^ля максимального числа входов вентиля Ne

Ne = m

(12.17)

Р и с . 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)