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

КЛЕВО_FPGA

.pdf
Скачиваний:
35
Добавлен:
14.04.2015
Размер:
8.21 Mб
Скачать

Глава 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)

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)

12.5. Арифметико-логические вычислительные устройства 281

-n^~rfib

- ^ г -

-хуг 4-{1>

-1X2"

-1У1 -Ki>

-»л:г

пУо-тЧ!}^

-^ 0 -So •У} ^2

^3

л / — [ 1 >

>1

с

&

gxCS&^ ^ \Р2

IS

ёг

>\ w^±—1

Ш£^

ДН}

с

1^ьНз^

>1Ь!Р^

С

>1 ^ 0

^1

ш

 

С4

 

 

8L Ь

 

 

W3

-1

 

 

 

>1

 

 

U2

-1

-ni^2

r-L

 

>1

^

' ^ X^Y

 

 

- 1

=1

-/^1

i/i

К

 

ад-

 

 

к

 

~т/о

 

 

«О

 

 

со