IN2 Logiske porter om forenkling til ALU
Hovedpunkter Utlesing av sannhetsverdi-tabell; Max og Min-termer Forenkling av uttrykk med Karnaugh diagram Portimplementasjon Kretsanalyse Adder og subtraktor design Generell Black-box design/tankesett Enkoder og Dekoder Multiplexer og DeMultiplexer ALU Datapath
Minterm I en funksjon kan en binær variabel x opptre som x eller x En funksjon kan være gitt på sum av produkt form Eksempel: F = xy + xy + x Hvert produktledd som inneholder alle variablene kalles en minterm. For to variable finnes det 4 forskjellige mintermer: xy + xy + x y + x y For 3 variable finnes det 2 3 forskjellige mintermer Omid Mirmotahari 4
Maksterm En funksjon kan være gitt på produkt av sum form Eksempel: F = (x+y)(x+y )y Hvert summeledd som inneholder alle variablene kalles en maksterm For to variable finnes det 4 forskjellige makstermer: (x+y) (x+y ) (x +y) (x +y ) For n variable finnes det 2 n forskjellige makstermer Omid Mirmotahari 5
Sannhetstabell / mintermer Hvis man genererer en funksjon ut i fra sannhetstabellen får man en sum av mintermer Eksempel: F = x y z + xy z + xyz En sannhetstabell kan sees på som en liste av mintermer x y z F Omid Mirmotahari 6
Notasjon Mintermer har notasjon m x Maxtermer har notasjon M x Funksjoner som bare består av sum/produkt av min/maxtermer (kanonisk form) har følengde notasjon: F(x,y,z) = S(m 3, m 6 ) = S(3, 6) = x yz+xyz F(x,y,z) = P(M 3, M 6 ) = P(3, 6) = (x+y +z )(x +y +z) Omid Mirmotahari 7
Karnaughdiagram Grafisk metode for forenkling av Boolske uttrykk Uttrykket må være representert ved sum av mintermer (m x ). Disse leser vi direkte ut av sannhetstabellen Metoden egner seg for funksjoner med 2-4(5) variable Eksempel, 2 variable: F = m + m 3 = a b + ab Eksempel, 4 variable: F = m + m + m 5 = A B C D + A B C D + ABCD Omid Mirmotahari 8
Prosedyre, 2 variable Setter inn mintermene i diagram Eksempel: generell funksjon - 2 variable F = m + m + m 2 + m 3 Omid Mirmotahari 9
Prosedyre, 2 variable F = xy og F 2 = x y + xy + xy Omid Mirmotahari
Prosedyre, utlesning Grupperer naboruter som inneholder slik at vi får sammenhengende rektangler, Velg så store grupper som mulig. Antall element må være en potens av 2 Representerer gruppene ved de variablene i gruppen som ikke varierer xy x y Omid Mirmotahari
Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen av uttrykkene som representerer hver gruppe F = xy F 2 = x + y y xy x Omid Mirmotahari 2
Karnaugh - 3 variable Plassering av mintermer for 3-variable funksjoner: Mintermene plasseres slik at kun variabel varierer i mellom hver vannrette/loddrette naborute yz Omid Mirmotahari 3
Karnaugh - 4 variable Plassering av mintermer for 4-variable funksjoner Mintermene plasseres slik at kun variabel varierer i mellom hver vannrette/loddrette naborute Omid Mirmotahari 4
Grupperingsregler for diagram med 2-4 variable Grupperer naboruter som inneholder slik at vi får sammenhengende rektangler Ytterkantene av diagrammet kan også være naboruter Eksempel Omid Mirmotahari 5
Grupperingsregler for diagram med 2-4 variable Omid Mirmotahari 6
Grupperingsregler for diagram med 2-4 variable Omid Mirmotahari 7
Utlesningssregler for diagram med 2-4 variable Representerer hver gruppe ved de variablene i gruppen som ikke varierer. Diagrammets funksjon blir summen av hvert gruppeledd: Eksempel F = AD + CD +B C +AB Omid Mirmotahari 8
Utlesningsregler for diagram med 2-4 variable Eksempel: F = y + w z + xz Merker oss at jo større ruter desto enklere uttrykk Omid Mirmotahari 9
Utlesningssregler for diagram med 2-4 variable F = B D + C B + A CD Omid Mirmotahari 2
Utlesning av ere Ved å lese ut de tomme rutene ( erne) fra diagrammet får man F Dette kan noen ganger gi en enklere funksjon, eksempel: F = yz + wx F = (yz + wx ) Hadde vi lest ut ere ville vi fått F = xy + w y + w z + xz Omid Mirmotahari 2
Spesialteknikker Omid Mirmotahari 22
XOR XOR funksjonen dekker maksimalt uheldige er plasseringer i diagrammet Har man XOR porter til rådighet bruker man disse I dette eksemplet kan stk. 3-inputs XOR realisere F Omid Mirmotahari 23
XOR XNOR XOR XOR representerer den odde funksjonen, dvs de kombinasjoner av inngangen hvor det er odde antall ere ab cd ab cd Man kan også bruke Karnaugh diagram til å forenkle enkelte XOR funksjoner. XNOR er den inverterte funksjonen av XOR ab cd ab cd cd cd ab ab Omid Mirmotahari 24
XOR XOR funksjonen kan kombineres med andre ledd Eksempel: F = AÅBÅCÅD + A C D Omid Mirmotahari 25
Designeksempel Vi ø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 Vi har dermed 2 2=4 innganger, og 2 utganger Setter navn på utgangene: F for A>B og F 2 for A=B A A B Digitalt system F B F 2 Omid Mirmotahari 26
Designeksempel Vi trenger en oversikt over alle mulige inngangs/utgangs kombinasjoner, derfor: Setter opp en sannhetstabell for hver utgang (slår sammen til en dobbel tabell) Leser ut mintermer F = A A B B + A A B B + A A B B + A A B B + A A B B + A A B B Innganger A A B B Utganger F 2 = A A B B + A A B B + A A B B + A A B B Omid Mirmotahari 27 F F 2
Forenkler uttrykket for å spare porter F B B Setter inn i Karnaughdiagram A A F = A A B B + A A B B + A A B B + A A B B + A A B B + A A B B F 2 = A A B B + A A B B + A A B B + A A B B AA F 2 B B Omid Mirmotahari 28
F B B Leser ut av diagrammene F = A B + A B B + A A B A A F 2 : Ingen forenkling mulig ved utlesning av ere, leser derfor ut ere F 2 = A B + A B + A B + A B Inverterer begge sider F 2 = (A B + A B + A B + A B ) F 2 A A B B Omid Mirmotahari 29
Implementerer uttrykkene F = A B + A B B + A A B F 2 = (A B + A B + A B + A B ) ( Hva med XOR? ) A B A B B A A B F A B A B F A F 2 B A B Omid Mirmotahari 3
Black box tankesett! Styring av heis Omid Mirmotahari 3
Designeksempel Styring av heis Inngangssignaler fra sensor K = Knapp trykket inn: / V = Overvekt: / D = Dør lukket: / K V D Kontroll logikk M Utgangssignal til aktuator: M = Motor på: / Omid Mirmotahari 32
Sannhetstabell for designet K V D M M = KV D Omid Mirmotahari 33
Implementasjon på portnivå Omid Mirmotahari 34
Generell analyseprosedyre for digitale kretser ) Sett funksjonsnavn på ledningene 2) Finn funksjonene 3) Kombiner funksjonsuttrykkene Omid Mirmotahari 35
Eksempel T 2 T 2 =ABC F F 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) Omid Mirmotahari 36
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 Omid Mirmotahari 37
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 C 2 C S Omid Mirmotahari 38 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 adder C 3 Full adder C 2 Full adder C C = Halv adder S 3 S 2 S S Omid Mirmotahari 39
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 Omid Mirmotahari 4
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 Omid Mirmotahari 4
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 S n A n B n C 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 Omid Mirmotahari 42
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 Omid Mirmotahari 43
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 Omid Mirmotahari 44
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 Omid Mirmotahari 45
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 Omid Mirmotahari 46
Binær adder Halvadder (ikke mente inn) A B S C n+ C n C C A n A n B n Fulladder (evt. mente inn) S n A B + S = A B C n+ B n S n S Omid Mirmotahari 47 C n
Menteforplantning 4-bits binær adder Full adder C 3 Full adder C 2 Full adder C Halv adder C 4 Omid Mirmotahari 48
Menteforplantning Portforsinkelse gir menteforplantning (rippeladder) Eksempel Adderer og Full adder Full adder Full adder Halv adder Omid Mirmotahari 49
Komparator Komparator sammenligner to tall A og B 3 utganger: A=B, A>B og A<B Eksempel: 4-bits komparator Utgang A=B Slår til hvis A =B og A =B og A 2 =B 2 og A 3 =B 3 Kan skrives: (A ÅB ) (A ÅB ) (A 2 ÅB 2 ) (A 3 ÅB 3 ) Omid Mirmotahari 5
Komparator - eksempel Utgang A>B slår til hvis: (A 3 >B 3 ) eller (A 2 >B 2 og A 3 =B 3 ) eller (A >B og A 2 =B 2 og A 3 =B 3 ) eller (A >B og A =B og A 2 =B 2 og A 3 =B 3 ) Kan skrives: (A 3 B 3 ) + (A 2 B 2 ) (A 3 ÅB 3 ) + (A B ) (A 2 ÅB 2 ) (A 3 ÅB 3 ) + (A B )(A ÅB ) (A 2 ÅB 2 ) (A 3 ÅB 3 ) Omid Mirmotahari 5
Komparator - eksempel Utgang A<B slår til hvis: (A 3 <B 3 ) eller (A 2 <B 2 og A 3 =B 3 ) eller (A <B og A 2 =B 2 og A 3 =B 3 ) eller (A <B og A =B og A 2 =B 2 og A 3 =B 3 ) Kan skrives: (A 3 B 3 ) + (A 2 B 2 ) (A 3 ÅB 3 ) + (A B ) (A 2 ÅB 2 ) (A 3 ÅB 3 ) + (A B )(A ÅB ) (A 2 ÅB 2 ) (A 3 ÅB 3 ) Omid Mirmotahari 52
Komparator - eksempel Omid Mirmotahari 53
Dekoder Dekoder tar inn et binært ord, gir ut alle mintermer Eksempel: 3bit inn / 8bit ut Omid Mirmotahari 54
Dekoder - sannhetstabell Eksempel: 3bit inn Utganger Innganger x y z D D D 2 D 3 D 4 D 5 D 6 D 7 Omid Mirmotahari 55
Dekoder generering av logiske funksjoner Dekoder - elektrisk sannhetstabell. Kan generere generelle logiske funksjoner direkte fra mintermene på utgangen Eksempel: Fulladder A n B n S n C n C n+ Omid Mirmotahari 56
Enkoder Enkoder motsatt av dekoder Eksempel: 8x3 enkoder Innganger Utganger D D D 2 D 3 D 4 D 5 D 6 D 7 x y z x = D 4 + D 5 + D 6 + D 7 y = D 2 + D 3 + D 6 + D 7 z = D + D 3 + D 5 + D 7 Antar at det ikke eksisterer andre inngangskombinasjoner Omid Mirmotahari 57
Enkoder Eksempel D D 2 D 4 D 6 z x = D 4 + D 5 + D 6 + D 7 y = D 2 + D 3 + D 6 + D 7 z = D + D 3 + D 5 + D 7 Y X D D 3 D 5 D 7 Omid Mirmotahari 58
Multiplekser Multiplekser (MUX) velger hvilke innganger som slippes ut Hver inngang kan bestå av ett eller flere bit A B C UT N Select Omid Mirmotahari 59
MUX Eksempel: 2- MUX Implementasjon Symbol Omid Mirmotahari 6
Eksempel: 4- MUX Omid Mirmotahari 6
MUX Eksempel: 2- MUX Omid Mirmotahari 62
Demultiplekser Demultiplekser motsatt av multiplekser INN A B C N Omid Mirmotahari 63 Select
Kombinert adder/subtraktor M=: adder / M=: subtraktor / V: overflow bit Omid Mirmotahari
Aritmetisk logisk enhet (ALU) Den delen av CPU hvor logiske og aritmetiske beregninger utføre, f.eks addisjon, subtraksjon, AND, OR osv Omid Mirmotahari 65
Operasjoner som ALU skal utføre: (eksempelvis) AND OR XOR Addisjon Subtraksjon Følgende byggeblokker trenger vi: Fulladder Multiplekser AND,OR og NOT Omid Mirmotahari 66
Operasjon Operasjon Out a b M U X Out AND (ab) OR (a+b) Omid Mirmotahari 67
Operasjon a b 2 3 M U X Out Operasjon Out AND OR XOR? Omid Mirmotahari 68
Operasjon mente inn a b Add 2 3 M U X Out Operasjon Out AND OR XOR SUM mente ut Omid Mirmotahari 69
b_invert Operasjon mente inn Operasjon = a2aa a2 = b_invert a = MSB MUX a = LSB MUX a b Add mente ut 2 3 M U X Out Operasjon Out ab a+b a XOR b a SUM b ab a+b a XOR b a SUB b Omid Mirmotahari 7
-bit ALU inst = a2aa Inst(2) = a2 invert b Inst() = a MSB MUX Inst() = a LSB MUX inst computation a b a b a + b a + b a b a b a + b a - b Omid Mirmotahari 7
N-bit ALU Omid Mirmotahari 72
ALUer i CPU Moderne CPU kan inneholde flere ALUer ALUer kan designes til å håndtere flere funksjoner per trinn og mer komplekse. Alternativt kan man bruke software aktivt til å designe slik at en ALU kan utføre komplekse operasjoner over flere trinn. TRADE-OFF: hvor skal man plassere kompleksiteten, i hardware eller software Ulemper med å sette kompleksitet i hardware er høyere kostnader i fbm strømforbruk, areal og produksjonskost. ALU designet spiller en stor rolle med hensyn på CPU sin ytelse, da det mest komplekse operasjonen setter maksimal klokkefrekvens. Omid Mirmotahari 73
ALU ALU Arithmetic Logic Unit Generell regneenhet Eksempel: SN74LS8 4bit utbyggbar ALU 3 forskjellige operasjoner Omid Mirmotahari
ALU - SN74LS8 Omid Mirmotahari
Komplett CPU: 4-bit databuss / 3bit adressebuss 76 Omid Mirmotahari