Dagens temaer Dagens temaer er hentet fra P&P kapittel 3 Motivet for å bruke binær representasjon Boolsk algebra: Definisjoner og regler Kombinatorisk logikk Eksempler på byggeblokker 05.09.2003 INF 103 1
Hvorfor bare 0 og 1? En digital krets representerer informasjon med bare to verdier: 0 og 1 Nesten all elektronikk har digitale kretser, f.eks datamaskiner, mobiltelefoner, spillkonsoller, mikrobølgeovner, CD-spillere osv. Endel systemer inneholder også analog elektronikk, f.eks forsterkere i stereoanlegg. Moderne digitale kretser inneholder to typer grunnleggende byggeblokker: Transistorer og kondensatorer: En transistor kan sammenlignes med en elektrisk bryter (av = 0, på = 1 ). En kondensator kan sammenlignes med et batteri som lagrer strøm (tomt= 0, fullt = 1 ) 05.09.2003 INF 103 2
Transistorer og kondensatorer er svært små (0,000000018 m er vanlig transistor-størrelse). På én krets får man plass til mange millioner transistorer, mao. man kan bygge kompliserte systemer som tar liten plass. Problem med transistorer: Ikke perfekte, dvs at de aldri er helt slått av eller helt slått på, og at de varierer innbyrdes. Problem med kondensatorer: De lekker strøm, slik at de over tid tømmes av seg selv. Ved å lagre kun 0 og 1 og innføre slingringsmonn kompenseres for avvikene: Strøm eller spenning 1 (full) 0 (tom) 05.09.2003 INF 103 3
Boolsk algebra (1) Boolsk algebra er et sett av regneregler som benyttes for regne med 0 og 1 0 og 1 kalles også lav og høy fordi de representeres ved lav/høy elektrisk spenning eller strøm En boolsk eller logisk variabel er en variabel som kan ha verdien enten 0 eller 1 I boolsk algebra er det tre basale regneoperasjoner: AND, OR og NOT. Disse kan defineres ved følgende sannhetsverdi-tabeller: a b ab 0 0 0 0 1 0 1 0 0 1 1 1 a b a+b 0 0 0 0 1 1 1 0 1 1 1 1 a a 0 1 1 0 AND OR NOT 05.09.2003 INF 103 4
Boolsk algebra (2) Andre funksjoner kan defineres v.h.a AND, OR og NOT: a XOR b = (a AND (NOT b)) OR ((NOT a) AND b) = ab + a b a XNOR b = ((NOT a) AND (NOT b)) OR (a AND b) = a b + ab a NAND b = NOT(a AND b) = a +b (NB: Merk denne!) a NOR b = NOT(a OR b) = a b (NB: Merk denne!) I de to siste funksjonene er det benyttet en regneregel som kalles for De Morgans teorem: (ab) = a + b (a + b ) = a b 05.09.2003 INF 103 5
Boolsk algebra (3) Andre regneregler for Boolsk algebra er: X + X = 1 X + X = X X * X = 0 X * 0 = 0 X * 1 = X X + 0 = X X + 1 = 1 (X ) = X Disse regnereglene kan brukes til å forenkle uttrykk: Eksempel: X*Y + X*Y = X(Y+Y ) = X*1 = X Eksempel: XYZ + X YZ + X YZ (X+Z) = (X + X )YZ + X YZ X + X YZ Z = 1*YZ + 0 + 0 = YZ 05.09.2003 INF 103 6
Boolsk algebra (4) En boolsk funksjon kan enten spesifiseres ved en funksjonsforskrift, eller ved en sannhetsverditabell Eksempel funksjonsforskrift 2 variable: F = ab + a b Eksempel funksjonsforskrift 3 variable: G = xyz + x z + xy Eksempel sannhetsverditabell 2 variable: a b F Eksempel sannhetsverditabell 3 variable: x y z G 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 05.09.2003 INF 103 7
Boolsk algebra (5) Funksjonsforskrifter egner seg best for funksjoner med få ledd og variable. Sannhetsverdi-tabeller brukes ved funksjoner med mange ledd og variable, og ved datamaskinassistert design. Ved store design bruker man programmer for å analysere og forenkle boolske funksjoner før de implementeres med logiske porter. En logisk port angir en boolsk funksjon, med de vanligste symbolene vist nedenfor: AND OR NOT NAND NOR XOR 05.09.2003 INF 103 8
Design og analyse av kombinatorisk logikk I kombinatorisk krets er det ingen hukommelse: Output-verdiene fra en krets kun er avhengig av nåværende input-verdier alene. I en sekvensiell krets er output-verdiene avhengige av både nåværende og tidligere input-verdier. Dette betyr at kretsen må ha innebygget hukommelse. Med design menes prosessen med å sette sammen mindre byggeblokker til større moduler, mens analyse er å finne ut hva en bestemt krets faktisk gjør. For å kontrollere at et design er korrekt (dvs utfører den ønskede funksjonen) må man teste og analysere kretsen etter at den er ferdig. Ofte er det ikke mulig å teste/analysere fullstendig, og det hender at kommersielle kretser blir sluppet på markedet med feil! 05.09.2003 INF 103 9
Eksempel: Analyser kretsen gitt under Steg 1: Sett symboler på utgangen(e) og mellomsignaler, dvs signaler mellom porter: x 2 x 1 x 4 x 5 F x 3 x 6 05.09.2003 INF 103 10
Steg 2: Utled likningene for mellomsignalene og sett inn ingangssignalene: x 1 = x 2 = x 3 = x 4 = x 5 = x 6 = Steg 3: Utled tilslutt uttrykket for utgangssigalet F ved å sette inn verdiene for X 4, X 5 og X 6 som funksjon av inngangssignalene a, b og c F= x 4 +x 5 + x 6 = x 1 x 4 x 2 x 5 F= x 3 x 6 05.09.2003 INF 103 11
Ofte brukes bare NAND- eller bare NOR-porter for å implementere boolske funksjoner, fordi de tar mindre plass enn AND, OR og NOT-porter. NAND (og NOR) funksjonen er universell, dvs at den kan brukes til å implementere enhver boolsk funksjon. Man benytter seg av følgende egenskaper de Morgans teorem (ab) = a + b de Morgans teorem (a+b) = a b (a ) = a AND, OR og NOT kan lages ved hjelp av kun NANDporter på følgende måte: 05.09.2003 INF 103 12
Trenger ofte større byggeblokker enn bare AND, OR og NOT-porter når man designer kretser Eksempel på slike byggeblokker er Multiplexer Dekoder Adder Latch (1-bits minnekrets) Flip-flop (1-bits minnekrets) Skiftregister (Fler-bits minnekrets) Multiplekseren sender ett av mange input-signaler ut på én output-linje. Hvilken inputlinje som velges bestemmes av select-signalene: a 3 a 2 a 1 a 0 MUX F S 1 S 0 05.09.2003 INF 103 13
Select-linjene er innsignaler, og utgangssignalet lik ett av de fire inngangssignalene: S 1 S 0 0 0 0 1 1 0 1 1 F a 0 a 1 a 2 a 3 Kan designes f.eks slik: 05.09.2003 INF 103 14
En dekoder setter en av 2 n outputlinjer til 1, avhengig av input-kombinasjonen på n input-linjer: F 3 d 1 d 0 Dekoder F 2 F 1 F 0 Sannhetsverditabellen for en dekoder er som følger d 1 d 0 0 0 0 1 1 0 1 1 F 3 F 2 F 1 F 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 05.09.2003 INF 103 15