Forelesning 4 Binær adder m.m.
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 2
Binær addisjon Prosedyren for binær addisjon er identisk med prosedyren for desimal addisjon Eksempel Adder 5 og 3: + + 5 3 = = 8 3
Negative binære tall Mest vanlig representasjon: 2 er komplement Lar mest signifikante bit være for negative tall Dette må være avtalt på forhånd Eksempel: 4 bit kan representere tallene 8 til +7 7 6 5 4 3 2 - -2-3 -4-5 -6-7 -8 4
2 er komplement Setter minus foran et binært tall ved å invertere alle bittene og plusse på Eksempel: Finner -5: 7 6 5 4 3 2 5 invertert 5: -5: + = - -2-3 -4-5 -6-7 -8
Binær subtraksjon Fremgangsmåte for tall representert ved 2 er komplement: Adder tallene på vanlig måte. Eksempel: + + 6-2 = () = 4 Går ut Betyr positivt tall 6
Binær subtraksjon Eksempel: + + 3-8 = = -5 Betyr negativt tall 7
BCD-kode Binary coded decimal (BCD) En kode som er en mellomting mellom binærkode og desimalkode Lett å visualisere flere siffer på desimale display Desimal 2 3 4 5 6 7 8 9 2 2 2 2 2 3 BCD 5 5 2 5 3 8
Gray-kode Kun ett bit forandrer verdi når tallet inkrementeres/dekrementeres Spesielt gunstig ved overførsel av data mellom asynkrone system hvis man ikke har request/acknowledge Desimal 2 3 4 5 6 7 8 9 2 3 4 5 Gray 9
Generell analyseprosedyre for digitale kretser ) Sett funksjonsnavn på ledningene 2) Finn funksjonene 3) Kombiner funksjonsuttrykkene
Eksempel T 2 T 2 =ABC FF T T =A+B+C T 3 = F 2 (A+B+C) T 3 F 2 F 2 F 2 =AB+AC+BC F =ABC+ (AB+AC+BC) (A+B+C)
Binær adder En av de mest brukte digitale kretser Vanlige anvendelser: Mikroprosessor ALU / Xbox / mikserbord / digitalt kommunikasjonsutstyr / AD-DA omformere osv... Basis for addisjon / subtraksjon / multiplikasjon / divisjon og mange andre matematiske operasjoner All form for filtrering / signalbehandling 2
Binær adder Ønsker å designe en generell binær adder Funksjonelt eksempel Adder to tall A=5 og B=3: A B S + = A A B B 3 C 2 C S S
Et adder system Systemelementer: Halvadder: Tar ikke mente inn Fulladder: Tar mente inn A 3 B 3 A 2 B 2 A B A B C 4 Full C 3 Full C 2 Full C Halv C = adder adder adder adder S 3 S 2 S S 4
Halvadder (ingen mente inn) Adderer sammen de to minst signifikante bittene A og B. Elementet har 2 innganger og 2 utganger Sannhetstabell S = A B + A B = A B C = A B A B S C 5
Halvadder implementasjon A B A B S A B S A B C C S = A B + A B S = A B C = A B C = A B 6
Fulladder (mente inn) Adderer sammen bit A n, B n med evt. mente inn Elementet har 3 innganger og 2 utganger S n = A n B n C n (oddefunksjon) Sannhetstabell A n B n C n S n C n+ C n+ = A n B n C n + A n B n C n + A n B n C n + A n B n C n 7
Forenkling Forenkler C n+ ved Karnaughdiagram A n B n C n C n+ = A n B n C n + A n B n C n + A n B n C n + A n B n C n C n+ = A n B n + A n C n + B n C n 8
Implementasjon I Rett fram implementasjon S n = A n B n C n A n B n C n S n C n+ = A n B n + A n C n + B n C n A n B n A n C n C n+ B n C n 9
Implementasjon II Forenklet implementasjon av C n+ basert på gjenbruk av porter fra S n S n = (A n B n ) C n Leser ut C n+ fra karnaughdiagram på nytt B n C n C n+ = A n B n + A n B n C n + A n B n C n A n C n+ = A n B n + (A n B n + A n B n ) C n C n+ = A n B n + (A n B n ) C n 2
Implementasjon II Vanlig implementasjon av en-bits fulladder S n = (A n B n ) C n C n+ = A n B n + (A n B n ) C n A n A n B n B n S n A n B n C n+ C n 2
Binær adder Halvadder (ikke mente inn) A B S C n+ C n C A n B n C Fulladder (evt. mente inn) S n A n A B + S = A B C n+ B n S n S C n 22
Menteforplantning 4-bits binær adder Full C 3 Full C 2 Full C Halv adder adder adder adder C 4 23
Menteforplantning Portforsinkelse gir menteforplantning (rippeladder) Eksempel Adderer og Full Full Full Halv adder adder adder adder 24
Carry Lookahead Ønsker å unngå menteforplantning gir økt hastighet G i generate: gir alltid mente ut hvis A i = og B i = P i propagate: påvirker menteforplantningen 25
Carry Lookahead S i = P i C i C i+ = G i + P i C i 26
Carry Lookahead For en 4-bits adder bestående av 4 fulladdertrinn har vi: S i = P i C i C i+ = G i + P i C i Uttrykker C, C 2 og C 3 rekursivt C = G + P C C 2 = G + P C = G +P (G + P C ) = G + P G + P P C C 3 = G 2 + P 2 C 2 = G 2 + P 2 G + P 2 P G + P 2 P P C 27
Carry Lookahead generator Rett fram implementasjon av C, C 2, C 3 28
Carry Lookahead adder 4-bits Carry Lookahead adder med input carry C 29
Oppsummering Generell analyseprosedyre Halvadder Binær adder Fulladder Flerbits adder Carry propagation / carry lookahead 3
Portforsinkelse Porters elektriske egenskaper
Hovedpunkter Elektriske egenskaper Portforsinkelse Fanout 32
Portforsinkelse 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 Portforsinkelse skyldes parasittiske kapasitanser i systemet 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 33
Portforsinkelse t PLH portforsinkelse for utgang LAV til HØY t PHL portforsinkelse for utgang HØY til LAV t PHL må generelt ikke være lik t PLH A A B B t PLH t PHL 34
Portforsinkelse CMOS portinnganger kan elektrisk sett modelleres ved en kondensator Elektrisk model for portutgang / portinngang. LAV til HØY transisjon (CMOS) RC-ledd R C 35
Portforsinkelse Typisk inngangskapasitans for HC logikk er ca. pf pf pf Kapasitanser i parallell adderes (større porforsinkelse) A B pf C B = 5pF pf pf 36
Portforsinkelse A A B B t PLH t PHL A B A B t PLH t PHL 37
Kritisk vei Worst case forsinkelse / kritisk vei i en krets bestemmes grovt sett av maks. antall porter (nivåer) ett signal må gjennomløpe Nivå Nivå 2 Nivå 3 A n B n S n C n C n- 38
Fanout Fanout: Maksimum antall TTL innganger som kan kobles til en utgang Skyldes at TTL kretser trekker strøm på inngangene 39
Datablad - CD74HC8 Portforsinkelse, inngangskapasitans, fanout osv. finner man i databladet for porten Hullmontert Overflatemontert 4