Digital- och datorteknik Föreläsning #3 Biträdande professor Jan Jonsson Instittionen för data- och informationsteknik Chalmers tekniska högskola Från data till digitala byggblock: Krsens inledande föreläsningarna har introdcerat bitar, bitsträngar och binära koder, d v s det som representerar de data som vår dator kommer att bearbeta. Nästa steg blir n att ta fram de byggblock (digitala kretsar) som senare på lämpligt sätt kombineras till större byggblock och blir det som tgör datorns grndläggande delar. För detta syfte behöver vi logikgrindar, digitala kretselement som tför enklare logiska operationer. I en logisk operation representerar varje bit ett sanningsvärde* som kan vara antingen SANT ( 1 ) eller FALSKT ( 0 ). * ) Vi har alltså stött på änn en kodning (tolkning) av binära siffror. Grndläggande logikoperationer och dess symboler: Grind (Gate) INVERTERARE (ICKE, NOT) ELLER (OR) OCH (AND) Symbol y y 1 1 Fnktionstabell 0 1 1 0 y 0 0 0 0 1 1 1 0 1 1 1 1 y 0 0 0 0 1 0 1 0 0 1 1 1 Booleskt ttryck = = + y = y Fnktionstabell: Beskriver de möjliga logiska värden som kan påföras en grinds ingångar samt det reslterande värdet på grindens tgång. Regelverk för logiska operationer och grindnät: För bearbetning av variabler (symboler) som representerar tal finns regler som beskriver hr dessa variabler får manipleras, för att eempelvis lösa ekvationssystem och ttrycka formler. Detta regelverk kallas algebra. Ett motsvarande regelsystem finns för bearbetning av variabler som representerar logiska värden. Dessa regler kan användas för att beskriva och analysera beteendet hos logikgrindar, t e för påvisa ekvivalens mellan två givna grindnät eller för att ta fram kretslösningar med så få grindar som möjligt. Detta speciella regelverk kallas. 1
George Boole Clade Shannon Egenskaper: Den booleska algebran definieras av en ppsättning värden som variabler och konstanter kan anta en ppsättning grndläggande operationer som kan tföras på variabler och konstanter en ppsättning räkneregler De värden som kan antas är SANT (1, ) eller FALSKT (0, ) På 1930-talet jobbade Shannon med switchnät, nät ppbyggda av kretselement som kan väla mellan två tillstånd. Kretselementen bestod vid den tiden av reläer. För att modellera och analysera kretselementen på en matematisk form använde han den algebra som Boole presenterat i mitten av 1800-talet. De grndläggande operationer som kan tföras är: ICKE (negation): (alt. ' el. ) ELLER (disjnktion): + y (alt. y) OCH (konjnktion): y (alt. y, y el. y) Räkneregler: (Postlat) P1. + y = y + (kommtativa lagarna) y = y P2. (y + z) = y + z (distribtiva lagarna) + (y z) = ( + y) ( + z) P3. + 0 = (netralt element) 1= P4. + = 1 (komplementlagarna) = 0 Räkneregler: (Teorem) T5. + (y + z) = ( + y) + z (associativa lagarna) (y z) = ( y) z T6. y = ( + y) (De Morgans lagar) + y = ( y) T7. + = (idempotent element) = T8. + 1= 1 (annihilerande element) 0 = 0 T9. () = (dbbel negation) 2
För att illstrera hr användbar är i digitaloch datorteknik, föreställer vi oss ett scenario i en inte alltför avlägsen framtid: D är helt ny på ditt jobb som konstrktör av digitala system, och har fått i ppgift att avslta ett pågående projekt. Allt går bra tills d kommer till en delkomponent som tyvärr använder för många logiska grindar för att projektet skall ppfylla kraven. Mer specifikt har d fastnat vid fnktionen f = (+y)(+z) som tar tre logiska grindar i anspråk, men som d misstänker kan realiseras med färre grindar. Om d hittar en sådan lösning sklle prodkten knna färdigställas (varandes lite billigare och strömsnålare), vilket säkerligen sklle ppskattas av din chef. Då deadline för ppgiften är redan i morgon, och då d känner dig ortinerad vad gäller denna del av digitalteknik som kallas "kretsminimering, rådfrågar d en kollega som lovar att ta en titt på detta snarast möjligt. När arbetsdagen är nästan till ända kommer din kollega med en lösning som bara behöver två grindar: g = +yz. Din kollega har dock bråttom hem och hinner inte stanna för att förklara hr han fått fram lösningen, tan säger bara "Trst me! Då d vet att din kollega gått på Högskolan i X, och inte på Chalmers, vill d helst verifiera att den nya lösningen ger samma fnktion som den första. D vill j inte lämna ifrån dig en felaktig design det första d gör på ditt nya jobb Metod 1: Visa på lämpligt sätt att ( + y)( + z) = + y z Ställ pp en sanningstabell och visa att de två ttrycken ger samma tfall för varje kombination av ttryckens variabler. En tid har gått och d tänker tillbaka på den lyckade starten på ditt jobb. Fast det retar dig lite att d inte hade egen knskap för att lösa detta. Därför tar d fram ditt gamla material från krsen i Digital- och datorteknik, och går igenom det i lgn och ro nder en helg, så att d kan vara ordentligt förberedd nästa gång en liknande ppgift dyker pp. Så: hr borde d ha löst ppgiften??? Metod 2: Visa ekvivalensen algebraiskt genom att tillämpa räknereglerna i den Boolska algebran. 3
SP- och PS-form: I det framtida scenariot observerade vi att fnktionen hos en krets kan ttryckas på två olika former: Som en smma av prodkter, SP-form, även kallad disjnktiv form. Din kollegas lösning, +yz, är eempel på sådan form. Som en prodkt av smmor, PS-form, även kallad konjnktiv form. Den lösning d ville förbättra, (+y)(+z), är eempel på sådan form. SP-form och PS-form för samma fnktion är alltså ekvivalenta, så endera formen kan väljas. Dock kan den ena i praktiken vara mer lämpad, t e på grnd av begränsningar i hr många grindar som totalt får användas, eller på grnd av begränsningar i vilken typ av grindar som får användas. Mintermer och matermer: Utgående från fnktionstabellen för en given Booleskt fnktion är det möjligt att härleda fnktionens SP-form respektive PS-form: För SP-form skall vi identifiera de rader i tabellen som har ett fnktionsvärde lika med 1. Den nika prodkten av invariabler för en sådan rad kallas för en minterm. Smman av alla mintermer kallas för SP normal form. För PS-form skall vi identifiera de rader i tabellen som har ett fnktionsvärde lika med 0. Den nika smman av invariabler för en sådan rad kallas för en materm. Prodkten av alla matermer kallas för PS normal form. Observera att varje minterm och materm är nik och innehåller samtliga invariabler. Karnaghminimering Kommentar: Ta fram SP normal form för ( + y)( + z) Vi väljer SP-form eftersom vi såg att din kollegas lösning, med det minsta antalet grindar, hade den formen. Minimering av Booleska fnktioner: Om vi inte är nöjda med den lösning som ges av fnktionens SP normal form eller PS normal form, kan vi härleda ett minimalt ttryck genom Karnaghminimering. Denna metod bygger på att man för in fnktionstabellen i en matris med invariablernas olika värden längs rader och kolmner. Varje rta i matrisen representerar fnktionsvärdet för en minterm (för SP form) eller en materm (för PS form). 4
Karnaghminimering Minimering av Booleska fnktioner: För att ge möjlighet till effektiv eliminering av onödiga variabler skall intilliggande rader respektive kolmner representera termer ordnade enligt Gray-kod, d v s de skiljer sig åt i en bitposition. Ringa in så stora grpper av 1:or (för SP form) eller 0:or (för PS form) som möjligt, och ta fram ttrycken för dessa. Gör Karnaghminimering på SP normal form för ( + y)( + z) 5