Dagens tema Dagens temaer hentes fra kapittel 3 i læreboken Repetisjon, design av digitale kretser Kort om 2-komplements form Binær addisjon/subtraksjon Aritmetisk-logisk enhet (ALU) Demo av Digital Works 1/20
Design av digitale kretser ved eksempler Kombinatorisk krets som sammenligner to tall Ønsker å designe en krets som kan sammenligne to tall, A og B. Hvert tall er representert ved to bit. Kretsen skal finne A < B, samt A = B 1. Finner først antall inganger og antall utganger til kretsen: Inngangene er to tall som hvert er representert med to bit, dvs. til sammen fire innganger; to for A og to for B. Kaller disse a 1, a 0, b 1 og b 0 for hhv. A og B Det blir to utganger, kaller disse F 1 for A < B og F 2 for A = B a 1 a 0 b 1 b 0 Digital Krets (system) F 1 F 2 2/20
2. Trenger en oversikt over alle inngangs- /utgangs-kombinasjoner. Setter derfor opp en sannhetsverdi-tabell som inneholder inngangene og utgangene 3. Leser ut de termene der F 1 og F 2 blir 1 : F a1a 0b1b 0 a1a 0b1 b0 a1a 0b1b 0 a1a 0b1b F a a b b a a b b a a b b a a b 1 0 a1a 0b1b 0 a1a 0b1b 0 2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1b0 4. Setter inn i Karnaugh-diagram: F 1 b 1 b F 0 2 b 1 b 0 00 01 11 10 00 01 11 10 00 1 1 1 00 1 a 1 01 1 1 a 1 01 1 a 0 11 a 0 11 1 11 1 10 1 a 1 a 0 b 1 b 0 F 1 F 2 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 3/20
a 1 Bruker karnaugh-diagrammene til forenkling: a 1 a 0 F 1 b 1 b 0 00 01 11 10 00 1 1 1 01 1 1 11 11 1 F 1 a1b 1 a1a 0b0 a0b1b 0 b 1 a 1 a 0 b 0 a 0 b 1 b 0 F 1 Ser på den inverterte av F 2 : a 1 b 1 F 2 kan ikke forenkles umiddelbart. a 1 a 0 F b 2 1 b 0 00 01 11 10 00 1 01 1 11 1 10 1 F 2 F 2 a b 1 1 1 a b 1 a b 1 1 1 a b 1 a 0 a b 0 0 b 0 a a b 0 0 0b0 a 1 b 1 a 0 b 0 F 2 a 0 b 0 4/20
Design av sekvensielle kretser/system Trenger metoder for design av sekvensielle kretser. Tilstandsmaskin, sentrale begreper: Tilstand: Innholdet i alle lagerceller (flip-flop er, registre etc) på et bestemt tidspunkt Tilstandsdiagram: Grafisk fremstilling av tilstandene i et system og overgangene mellom dem Transisjon: Overgang fra en tilstand til en annen 5/20
Tilstandstabell Tilstandstabellen er en oversikt som gir samme informasjon som tilstandsdiagrammet, dvs. sammenhengen mellom nåværende tilstand, neste tilstand, input og output 6/20
Tilstandsmaskin Gir binærverdi til tilstandene: S0=00, S1=01 og S2=10 Trenger 2 flip-floper for å lagre tilstandsinformasjon Må bestemme boolske uttrykk for input til flip-flop ene (eksitasjonstabell) og for output. Kaller de 2 tilstandsbitene for hhv. A og B, input for y og output for F Reorganiserer tabellen på forrige side : 7/20
Tilstandsmaskin Velger å bruke D flip-floper (enklest) Må bestemme inngangene til slik at neste-tilstanden blir riktig, dvs hvilken kombinasjon av nåværende tilstand og input som gir en 1 i nestetilstand: DA = A B y + AB y DB = A B y + A By + AB y = Ay + By + A B y Output bestemmes tilsvarende: F = A By + A By = A B y D Q (eller bare F = B ved å bruke don t care -betingelser) A Q F D Q B Q 8/20
Representasjon i binær r 2-komplements 2 form Brukes for å representere binære tall med fortegn. Det mest signifikate bit et angir om tallet er positivt eller negativt Positive tall: Som før Negative tall: Representeres ved å invertere alle bit ene i det tilsvarende positive tallet og legge til 1. Eksempel: Konvertere 7 til 7 i binær 2-komplements form 1) 7 10 = 0111 2 2) Inverterer alle bit ene hver for seg: 0111 1000 3) Legger til 1: 1000 + 1 = 1001 Det vil si: 2-komplementet til 7 er 1001 og kan representere -7 Tar man 2-komplementet av dette tallet (1001): 4) Inverterer alle bitene: 1001 0110 5) Legger til 1: 0110 + 1 = 0111 (=7 10 ) Det vil si: Konverterer man til 2-komplementet to ganger kommer man tilbake til utgangspunktet! 9/20
2-komplements form (forts.) Ikke lenger mulig å lagre like store positive tall. Verdiområdet er endret fra 0 2 n -1 til 2 n-1 2 n-1 1 for et n-bits binært tall. Eksempel: 4 bit kan representere tall fra 0 til 15 uten fortegn, eller tall fra 8 til 7 på 2-komplements form (dvs. likevel 16 forskjellige verdier) Fordelen ved 2-komplements form er at addisjon og subtraksjon blir samme operasjon, dvs. addisjon! Svaret (summen) blir i 2-komplements form 10/20
Binær r addisjon Tilsvarer aritmetisk addisjon i titalls-systemet Eksempel: 0 0 0 1 + 0 0 1 1 0 1 0 0 Notasjonen a = a n-1 a n-2..a 1 a 0 brukes for å angi enkelt-bit ene i et tall a som er n bit langt. Sannhetsverditabell for halvadder: (dvs. a + b) S: Sum, C: Carry (mente) a b C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 S = a b + ab = a + b (a XOR b) C = ab 11/20
Binær r addisjon (forts.) Kretsen kalles halvadder fordi den ikke tar hensyn til eventuelle mentebit fra bitaddisjonen til høyre. Tar man hensyn til mentebit fra bitposisjon til høyre kalles kretsen en fulladder: a i b i C i C i+1 S i 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 S i = a i b i C i + a i b i C i + a i b i C i + a i b i C i C i+1 = a i b i C i + a i b i C i + a i b i C i + a i b i C i C i er mentebit et som ble generert i posisjonen til høyre for posisjon i, mens C i+1 er mentebit et som ble generert i posisjon i. 12/20
Binær r addisjon (forts.) Skriver om uttrykkene for S i og C i+1 : S i = a i b i C i + a i b i C i + a i b i C i + a i b i C i = a i (b i C i + b i C i ) + a i (b i C i + b i C i ) = a i (b i C i + b i C i ) + a i (b i C i + b i C i ) = a i + (b i C i + b i C i ) = a i + b i + C i C i+1 = a i b i C i + a i b i C i + a i b i C i + a i b i C i = C i (a i b i + a i b i ) + a i b i (C i + C i ) = Ci (a i + b i ) + a i b i 13/20
Binær r addisjon (forts.) For å addere tall med flere bit setter man sammen fulladdere: Svakhet: Mentepropagering (mest signifikante bitposisjon kan ikke beregnes før alle de mindre signifikante er beregnet) 14/20
Datapath og ALU Datapath: Den delen av en CPU hvor beregninger foretas (både aritmetiske og logiske, inkludert adresseberegninger) Aritmetisk-Logiske Enhet (ALU) utfører logiske og aritmetiske operasjoner på to inputvariable i data path. En CPU har flere ALU er slik at beregninger kan fortas i parallell, f.eks beregning av adresser (neste instruksjon) og utføring av selve instruksjoner Mye energi legges ned i å optimalisere designet av en ALU for å få maksimal ytelse 15/20
Datapath og ALU (forts.) Antall bit i Operation er avhengig av antall ulike operasjoner som ALUen kan utføre 16/20
1-bits ALU 1-bits ALU som kan utføre AND eller OR Kan designes med en MUX, AND og OR porter. Funksjonen ALU en utfører er mao. styrbar (kontrollert av Operation-signalet) 17/20
1-bits ALU (forts.) 1-bits ALU som kan utføre AND, OR eller addisjon 18/20
1-bits ALU (forts.) 1-bits ALU som kan utføre AND, OR, addisjon eller subtraksjon 19/20
n-bits ALU 1-bits ALU som kan utføre AND, OR, addisjon eller subtraksjon Setter sammen 1-bits ALU er Legg merke sammenkoblingen av C in og Invert_b på ALU0 for å gi riktig mente inn å legge til 1 ved subtraksjon (forutsetter 2-komplements form) 20/20