40
Forelesning 4 Binær adder m.m.

Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

Forelesning 4

Binær adder m.m.

Page 2: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

2

Hovedpunkter

• Binær addisjon • 2’er komplement • Binær subtraksjon • BCD- og GRAY-code • Binær adder

• Halv og full adder • Flerbitsadder • Carry propagation / carry lookahead

Page 3: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

3

1 0 1 0 1 1 1 0

0 0 +

=

1 0 1 0 1 1 1 0

0 0

0 + =

1

1 0 1 0 1 1 1 0

0 0

0 + =

1

1

1 0 1 0 1 1 1 0

0 0

0 + =

1

1 0

1

1 0 1 0 1 1 1 0

0 0

0 + =

1

1 0 0

1 1

Binær addisjon

Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon

Eksempel Adder 5 og 13:

1 0 1 0 1 1 1 0

0 0

0 + =

1

1 0 0 1

1 1

5 0 3 1 8

+ = 1

Page 4: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

4

Negative binære tall

Mest vanlig representasjon: 2’er komplement

Lar mest signifikante bit være 1 for negative tall

Dette må være ”avtalt” på forhånd

0 0 1 1

0 0 0 0 0 0 1 0 0 0 1

0 1 0 0 0 1 0 1 0 1 0 1

0

1 1 1 1 1 1 0 1 1 1 1 0

0 1 1 1

1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0

7 6

3

1 2

4 5

0

-1 -2 -3 -4 -5 -6 -7 -8

Eksempel: 4 bit kan representere tallene –8 til +7

Page 5: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

5

2’er komplement

Setter minus foran et binært tall ved å invertere alle bittene og plusse på 1

+ 0 0 1 0 1 0 0 1 invertert 5:

1 0 1 1 = -5:

0 0 1 1

0 0 0 0 0 0 1 0 0 0 1

0 1 0 0 0 1 0 1 0 1 0 1

0

1 1 1 1 1 1 0 1 1 1 1 0

0 1 1 1

1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0

7 6

3

1 2

4 5

0

-1 -2 -3 -4 -5 -6 -7 -8

Eksempel: Finner -5:

Page 6: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

6

Binær subtraksjon

Fremgangsmåte for tall representert ved 2’er komplement:

Adder tallene på vanlig måte.

Eksempel: 1 0 0 1 1 1 0 1

0 =

1

0 1 0

1

6 2 4

- = + +

(1)

Går ut Betyr positivt tall

Page 7: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

7

Binær subtraksjon

Eksempel:

0 0 1 1 0 1 0 0

1 = 1 0 1

3 8

-5 -

= + +

Betyr negativt tall

Page 8: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

8

BCD-kode

Binary coded decimal (BCD)

En kode som er en mellomting mellom binærkode og desimalkode

Lett å visualisere flere siffer på desimale display

BCD

0 0 1 1

0 0 0 0 0 0 1 0 0 0 1

0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1

0

0

0 0 0

0 0 0 0 0 0 1

3

0 1 2

4 5 6 7 8 9 0

1 1 1 2

0 0 0 0 0 0 1 0 0 0 1 0

0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0

0 0 0 1 0 0 1 0 0 0 0 1

0 0 1 1

0 0 0 1 0 0 0 1

2

2 2

3

1 2

0 0 1 0

0 0 1 0 0 0 0 1

0 0 1 1

0 0 0 1 0 0 0 1

5

5 5

3

1 2

0 1 0 1

0 1 0 1 0 1 1 0

Desimal

Page 9: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

9

Gray-kode

Kun ett bit forandrer verdi når tallet inkrementeres/dekrementeres

Gray

0 0 1 0

0 0 0 0 0 0 1 0 0 1 1

0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1

0

0

0 0 0

0 0 0 0 0 0 1

3

0 1 2

4 5 6 7 8 9 0

1 1 1 2

1 1 1 1 1 1 0 1 1 0 1 0

Desimal

Spesielt gunstig ved overførsel av data mellom asynkrone system hvis man ikke har request/acknowledge

1 3 1 4 1 5

1 0 1 1 1 0 1 0 1 0 0 0

Page 10: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

10

Generell analyseprosedyre for digitale kretser

1) Sett funksjonsnavn på ledningene 2) Finn funksjonene 3) Kombiner funksjonsuttrykkene

Page 11: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

11

T2

T1

F´2

F2

F1

T3

Eksempel T2=ABC

T1=A+B+C

F2=AB+AC+BC

T3= F´2 (A+B+C) F´2

F1=ABC+ (AB+AC+BC)´ (A+B+C)

F1

Page 12: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

12

En av de mest brukte digitale kretser

Binær adder

Vanlige anvendelser:

• Basis for addisjon / subtraksjon / multiplikasjon / divisjon og mange andre matematiske operasjoner

• All form for filtrering / signalbehandling

Mikroprosessor ALU / Xbox / mikserbord / digitalt kommunikasjonsutstyr / AD-DA omformere osv...

Page 13: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

13

Ønsker å designe en generell binær adder

Funksjonelt eksempel

Adder to tall A=5 og B=13:

Binær adder

1 0 1 0 1 1 1 0

0 0 +

=

1 0 1 0 1 1 1 0

0 0

0 + =

1

1 0 1 0 1 1 1 0

0 0

0 + =

1

1

1 0 1 0 1 1 1 0

0 0

0 + =

1

0

1

1 0 1 0 1 1 1 0

0 0

0 + =

1

0 0

1 1

1 0 1 0 1 1 1 0

0 0

0 + =

1

0 0 1

1 1

S B A

A1

A0

B1

B0

S0 S1

0

C1

C2

Page 14: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

14

Et adder system

Systemelementer:

Halv adder

Full adder

Full adder

Full adder

A0 B0

Halvadder: Tar ikke mente inn Fulladder: Tar mente inn

C1 C0=0

A1 B1

C2

A2 B2

C3

A3 B3

C4

S0 S1 S2 S3

Page 15: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

15

Halvadder (ingen mente inn)

Adderer sammen de to minst signifikante bittene A0 og B0.

Sannhetstabell A0 B0 C1 S0

0 0 1 0 0 1 1 1

0 1 1 0

0 0 0 1

S0 = A0´B0 + A0B0´= A0 ⊕ B0

C1 = A0B0

Elementet har 2 innganger og 2 utganger

Page 16: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

16

Halvadder implementasjon

C1 = A0B0 C1 = A0B0

S0 = A0 ⊕ B0 S0 = A0´B0 + A0B0´

C1

S0

B0

A0

C1

S0

B0

B0 ´

A0 ´

A0

B0

A0

Page 17: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

17

Fulladder (mente inn)

Adderer sammen bit An , Bn med evt. mente inn

Sn = An ⊕ Bn ⊕ Cn (oddefunksjon) Cn+1 = An´BnCn + AnBn´Cn + AnBnCn´+ AnBnCn

Sannhetstabell

An Bn Cn+1 Sn

0 0 0 0 1 0 1 0

0 0 0 1

0 1 1 0

Cn

0 1 0 1

0 1 0 1 1 1 1 1

0 1 0 1

0 1 1 1

1 0 0 1

Elementet har 3 innganger og 2 utganger

Page 18: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

18

Forenkling

Forenkler Cn+1 ved Karnaughdiagram

Cn+1 = An´BnCn + AnBn´Cn + AnBnCn´+ AnBnCn

An

BnCn

0

1

00 01 11 10

1 1 1

1

Cn+1 = AnBn + AnCn + BnCn

Page 19: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

19

Implementasjon I

Rett fram implementasjon

Cn+1 = AnBn + AnCn + BnCn

Sn = An ⊕ Bn ⊕ Cn Sn

An Bn

Cn

An Bn

Cn

An

Cn Bn

Cn+1

Page 20: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

20

Implementasjon II Forenklet implementasjon av Cn+1 basert på

gjenbruk av porter fra Sn

Sn = (An ⊕ Bn) ⊕ Cn

An

BnCn

0

1

00 01 11 10

1 1 1

1

Leser ut Cn+1 fra karnaughdiagram på nytt

Cn+1 = AnBn + (AnBn´+ An´Bn ) Cn

Cn+1 = AnBn + (An ⊕ Bn) Cn

Cn+1 = AnBn + AnBn´Cn + An´BnCn

Page 21: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

21

Implementasjon II Vanlig implementasjon av en-bits fulladder

Sn = (An ⊕ Bn) ⊕ Cn Cn+1 = AnBn + (An ⊕ Bn) Cn

Sn

Cn+1

Bn

An

Cn

An ⊕ Bn

AnBn

Page 22: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

22

Binær adder

S B A 1 0 1 0

1 1 1 0 0 0 +

=

1 0 1 0 1 1 1 0

0 0

0 + =

1

1 0 1 0 1 1 1 0

0 0

0 + =

1

1

1 0 1 0 1 1 1 0

0 0

0 + =

1

0

1

1 0 1 0 1 1 1 0

0 0

0 + =

1

0 0

1 1

1 0 1 0 1 1 1 0

0 0

0 + =

1

0 0 1

1 1 0

Sn

Cn+1

Bn

An

Cn

Fulladder (evt. mente inn)

An

Bn Sn

Cn+1 Cn B0

A0

C1

S0

Halvadder (ikke mente inn)

C1

S0

A0

B0

Page 23: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

23

Menteforplantning

4-bits binær adder

Halv adder

Full adder

Full adder

Full adder

C1 C2 C3

C4

Page 24: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

24

Menteforplantning

Portforsinkelse gir menteforplantning (rippeladder)

Adderer 0101 og 1011

Halv adder

Full adder

Full adder

Full adder

0 0 0 0 0 0 0 0

0 0 0 0 0

0 0 0

1 1 1 1 0 1 0 0

0

0

1

0 0

1 1 0

Eksempel

1 1 1 1 0 1 0 0

0

1

0

0 0

1 1 0

1 1 1 1 0 1 0 0

0

1

0

1 0

0 1 0

1 1 1 1 0 1 0 0

0

1

0

1 1

0 0 0

1 1 1 1 0 1 0 0

0

1

0

1 1

0 0 1

Page 25: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

25

”Carry Lookahead”

Ønsker å unngå menteforplantning – gir økt hastighet

Gi – generate: gir alltid mente ut hvis Ai=1 og Bi=1

Pi – propagate: påvirker menteforplantningen

Page 26: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

26

”Carry Lookahead”

Si = Pi ⊕ Ci

Ci+1 = Gi + PiCi

Page 27: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

27

”Carry Lookahead”

C1 = G0 + P0C0

For en 4-bits adder bestående av 4 fulladdertrinn har vi: Si = Pi ⊕ Ci Ci+1 = Gi + PiCi

C2 = G1 + P1C1 = G1 +P1(G0 + P0C0) = G1 + P1G0 + P1P0C0

C3 = G2 + P2C2 = G2 + P2G1 + P2P1G0 + P2P1P0C0

Uttrykker C1, C2 og C3 rekursivt

Page 28: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

28

”Carry Lookahead” generator

Rett fram implementasjon av C1, C2, C3

Page 29: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

29

”Carry Lookahead” adder

4-bits Carry Lookahead adder med input carry C0

Page 30: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

30

Oppsummering

• Generell analyseprosedyre

– Halvadder • Binær adder

– Fulladder – Flerbits adder – Carry propagation / carry lookahead

Page 31: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

Portforsinkelse Porters elektriske egenskaper

Page 32: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

32

Hovedpunkter

– Portforsinkelse • Elektriske egenskaper

– Fanout

Page 33: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

33

Portforsinkelse

Portforsinkelse skyldes parasittiske kapasitanser i systemet

Portforsinkelse (propagation delay) er et mål på hvor lang tid det tar før utgangen til en port reagerer på en logisk forandring på inngangen

Portforsinkelsen er gitt av driveregenskapene til porten samt hvor stor kapasitans det er på utgangen

Kapasitansen på en utgang er vanligvis dominert av kapasistansene til inngangene utgangen er koblet til

Page 34: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

34

Portforsinkelse

A

B

tPHL

tPHL – portforsinkelse for utgang HØY til LAV

tPHL må generelt ikke være lik tPLH

tPLH

tPLH – portforsinkelse for utgang LAV til HØY

A B 1

Page 35: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

35

Portforsinkelse

Elektrisk model for portutgang / portinngang. LAV til HØY transisjon (CMOS)

RC-ledd

CMOS portinnganger kan elektrisk sett modelleres ved en kondensator

1 1 C

R

Page 36: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

36

Portforsinkelse

A B

Typisk inngangs-kapasitans for HC logikk er ca. 10pF

Kapasitanser i parallell adderes (større porforsinkelse)

10pF

10pF

10pF

10pF 10pF

CB = 50pF

Page 37: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

37

Portforsinkelse

A

B

tPLH tPHL

A

B

tPLH tPHL

A B

A B

Page 38: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

38

Kritisk vei

Sn

Cn

Bn

An

Cn-1

”Worst case” forsinkelse / kritisk vei i en krets bestemmes grovt sett av maks. antall porter (nivåer) ett signal må gjennomløpe

Nivå 1 Nivå 2 Nivå 3

Page 39: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

39

Fanout

Fanout: Maksimum antall TTL innganger som kan kobles til en utgang

Skyldes at TTL kretser trekker strøm på inngangene

Page 40: Forelesning 4 - Universitetet i oslo · Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon . Eksempel . Adder 5 og 13: 1 . 0 . 5 . 1 . 3 . 8 + = 1

40

Datablad - CD74HC08

Portforsinkelse, inngangskapasitans, fanout osv. finner man i databladet for porten

Hullmontert

Overflate-montert