Digital- och datorteknik Föreläsning #5 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Kostnad för grindnät Vad är ett ”bra” grindnät? De egenskaper som betraktas som eftersträvansvärda vid realisering av ett grindnät är: • Att grindnätet tar få fysiska komponenter i anspråk, för att på så sätt hålla både pris, fysiskt utrymme och strömförbrukning på en låg nivå. • Att grindnätet är snabbt, d v s att löptiden (tiden det tar för en förändring i insignalerna till nätet att visa sig på utsignalen) är kort. Detaljer i realiseringen som påverkar dessa egenskaper kallar vi för kostnaden för ett grindnät. Kostnad för grindnät Vad påverkar kostnaden för ett grindnät? Det som huvudsakligen påverkar kostnaden hos ett grindnät är: • Antalet transistorer: ju fler transistorer desto större fysiskt utrymme och högre strömförbrukning • Antalet grindingångar: ju fler ingångar desto fler transistorer • Antalet grindar: ju fler grindar desto större antal grindingångar Minimering av kostnaden för ett grindnät bör alltså i första hand ha målet att hålla antalet grindar, grindingångar och transistorer på en låg nivå. Logikgrindar De grundläggande logikoperationerna: INVERTERARE (ICKE, NOT) x 0 1 u x u 1 0 u=x 2 transistorer ELLER (OR) x y u 6 transistorer OCH (AND) x y u 6 transistorer x 0 0 1 1 y 0 1 0 1 u 0 1 1 1 x y u 0 0 1 1 0 1 0 1 0 0 0 1 u = (x + y) u = (x ∗ y) Logikgrindar Andra användbara logikoperationer: NOR xx yy u x 0 0 1 1 y 0 1 0 1 u 1 0 0 0 u = (x + y) u x 0 0 1 1 y 0 1 0 1 u 1 1 1 0 u = (x ∗ y) 4 transistorer NAND xx yy 4 transistorer Kostnad för grindnät Hur kan vi minimera kostnaden för ett grindnät? Följande metoder bidrar till att hålla kostnaden nere: 1. Karnaughminimering 2. Användning av grindar med N > 2 ingångar 3. Konvertering av AND/OR (SP-form) till NAND/NAND 4. Konvertering av OR/AND (PS-form) till NOR/NOR 5. Identifiering av XOR/XNOR-funktion 6. Identifiering av ”don’t care”-termer Kostnad för grindnät 1. Karnaughminimering: Ett Karnaughdiagram är ett mycket kraftfullt verktyg som gör det möjligt att härleda en minimal lösning för nät på både AND/OR-form (SP-form) och OR/AND-form (PS-form). zw xy SP-form: 00 01 11 10 00 0 0 0 0 01 0 0 1 1 11 0 1 0 0 PS-form: 10 0 1 1 1 f = (x + y)(x + z)(z + w)(x + y + z) f = xzw + xyz + xyz Kostnad för grindnät 2. Användning av grindar med N > 2 ingångar: Om enbart grindar med maximalt två ingångar används krävs det flera grindar av samma sort när en logisk funktion kräver tre eller fler invariabler. En sådan lösning kan användas vid enstaka tillfällen, men bör generellt sett undvikas av följande skäl: • Det krävs en extra logikgrind för varje ytterligare invariabel. • Totala löptiden växer logaritmiskt med varje ytterligare invariabel. Exempel 1: fyra invariabler ger två grindars fördröjning Exempel 2: åtta invariabler ger tre grindars fördröjning Kostnad för grindnät 2. Användning av grindar med N > 2 ingångar: Associativa lagarna (T5) säger att evalueringsordningen är godtycklig för OR- och AND-grindar. Det är därför enkelt att konstruera sådana grindar med tre eller fler ingångar: Ursprunglig grind • Det krävs enbart ett extra par transistorer för varje ytterligare invariabel. • Totala löptiden växer inte alls (eller ytterst lite) med varje ytterligare invariabel. Kostnad för grindnät 3. Konvertering av AND/OR (SP-form) till NAND/NAND: Med hjälp av regeln för dubbel negation (T9) och De Morgans lagar (T6) kan man enkelt konvertera ett AND/OR-nät till ett NAND/NAND-nät med ekvivalent funktion: (1) Dubbel negation ger oförändrad funktion 6+6+6+8=26 transistorer (2) De Morgans lagar ger oförändrad funktion 4+4+4+6=18 transistorer Kostnad för grindnät 4. Konvertering av OR/AND (PS-form) till NOR/NOR: Med hjälp av regeln för dubbel negation (T9) och De Morgans lagar (T6) kan man enkelt konvertera ett OR/AND-nät till ett NOR/NOR-nät med ekvivalent funktion: (1) Dubbel negation ger oförändrad funktion 6+6+6+8=26 transistorer (2) De Morgans lagar ger oförändrad funktion 4+4+4+6=18 transistorer Kostnad för grindnät 5. Identifiering av XOR- och NXOR-funktion: I Karnaughdiagram kan man ofta se följande diagonala mönster: y 0 1 0 0 1 1 1 0 x u = x⋅y + x⋅y y 0 1 0 1 0 1 0 1 x u = x⋅y + x⋅y Att realisera endera av funktionerna i ett grindnät med enbart de grundläggande logikgrindarna (INV, OR, AND) skulle kräva fem grindar (2 INV, 1 OR, 2 AND) med totalt 2+2+6+6+6=22 transistorer Kostnad för grindnät 5. Identifiering av XOR- och NXOR-funktion: Det visar sig dock att endera funktion kan realiseras mer effektivt enligt följande lösningar med 12 transistorer vardera: u = x⋅y + x⋅y u = x⋅y + x⋅y Dessa funktioner kallas för exklusivt ELLER (XOR) respektive icke exklusivt ELLER (NXOR), och är mycket användbara i olika sammanhang för att reducera kostnaden för ett grindnät. Kostnad för grindnät XOR (”exclusive OR”) NXOR (”negated XOR”) x y u x y u 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 u = x ⊕ y = x⋅y + x⋅y u = x ⊕ y = x⋅y + x⋅y Dessa logikgrindar kan ej ha fler ingångar än två. Genom att kaskadkoppla flera grindar kan man dock möjliggöra att fler än två signaler kopplas till nätet. Kostnad för grindnät 6. Identifiering av ”don’t care”-termer: I en funktionstabell eller ett Karnaughdiagram kan man ibland stöta på så kallade ”don’t care’-termer. Sådana anges som ’−’ i tabellen/diagrammet, och betyder att funktionens värde inte är av intresse (t ex på grund av att motsvarande kombination av invariabler aldrig kan förekomma). zw xy 00 01 11 10 00 0 0 0 0 01 0 0 1 1 11 − 1 − − 10 − 1 1 1 SP-form: f = xzw + xyz + xyz Tips! En ”don’t care”-term kan tolkas på valfritt sätt (1 eller 0), vilket gör det möjligt att hitta grindnät med lägre kostnad! Kostnad för grindnät 6. Identifiering av ”don’t care”-termer: I en funktionstabell eller ett Karnaughdiagram kan man ibland stöta på så kallade ”don’t care’-termer. Sådana anges som ’−’ i tabellen/diagrammet, och betyder att funktionens värde inte är av intresse (t ex på grund av att motsvarande kombination av invariabler aldrig kan förekomma). zw xy 00 01 11 10 00 0 0 0 0 01 0 0 1 1 11 − 1 − − 10 − 1 1 1 SP-form: f = x + xyz Tips! En ”don’t care”-term kan tolkas på valfritt sätt (1 eller 0), vilket gör det möjligt att hitta grindnät med lägre kostnad! Kombinatoriska nät Vad kännetecknar ett kombinatoriskt nät? Ett kombinatoriskt nät är uppbyggt av logikgrindar, och varje utsignal är entydigt definierad av insignalernas värden. I ett kombinatoriskt nät ändras utsignaler i samma ögonblick som dess insignaler ändras. Ett kombinatoriskt nät saknar minne, d v s en utsignal beror inte på gamla värden på insignaler. Kombinatoriska nät Vad kännetecknar ett kombinatoriskt nät? Några exempel på kombinatoriska nät är: • Jämförare • Kodomvandlare • Omkodare • Väljare (”multiplexer”) • Fördelare (”de-multiplexer”) • ALU (”arithmetic-logic unit”) Flera av de ovanstående exemplen är viktiga byggblock i en dator, och vi återkommer snart till dessa i kursen. Kombinatoriska nät Demonstrationsexempel – jämförare: Uppg 4.14 (Exempel på don't care.) Figuren gäller för ett kombinatoriskt nät som har utsignalen f = 1 om den NBCD-kodade siffran X = (x3x2x1x0)NBCD är större än eller lika med fem (X x0 x1 5). x2 X 5 x3 För alla andra NBCD-kodade siffror skall gälla att f = 0. Tal som inte tillhör NBCD-koden skall betraktas som "don't care". Konstruera ett minimalt kombinatoriskt nät med NAND-grindar och INVERTERARE. f
© Copyright 2024