HOOFDSTUK 6: Logische Schakelingen 1. Inleiding combinatorisch vs. sequentieel gedrag gedrag v/e circuit = relatie tussen binaire waarden uit uitgangen en binaire waarden op ingangen combinatorisch gedrag uitgangen hangen enkel af van huidige ingangswaarden geheugenloos voorstellen door Boolese functies sequentieel gedrag uitgangen hangen af van huidige ingangen + vorige ingangen + initialisatie vorm van toestand/geheugen aanwezig voorstellen door twee Boolese functies toestandsfunctie: huidige toestand + input -> nieuwe toestand outputfunctie: huidige toestand + input -> uitgangswaarde Boole-algebra s definitie Boole-algebra over eindige verzameling is een structuur die voldoet aan: 1. en zijn interne binaire operaties op B 2. en zijn commutatief en associatief 3. en zijn distributief t.o.v. elkaar 4. B bevat neutraal element en eenheidselement 5. elk element in B heeft complement voorbeelden met eindige verz. en de binaire algebra deelverzamelingen eigenschappen idempotentie absorbstie De Morgan dubbel complement rijkheid van Boole-algebra s bestaan enkel voor een macht van 2 isomorf met Boole-algebra 1
2. Boolese functies Boolese functie definitie Boolese functie f is een afbeelding van van n Boolese veranderlijken op aantal binaire Boolese functies aantal binaire Boolese functies van n binaire variabelen = want aantal functies van naar is dus stel en aantal van alle binaire Boolese functies van binaire variabelen waarheidstabel structuur linkerkolom alle mogelijke inputcombinaties lexicografisch geordend rechterkolom bijhorende outputwaarde afmeting ongeacht de complexiteit toont geen structuur hyperkubus structuur x1 x2 x3 f ( x1, x2, x3) 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 inputs als hoekpunten van -dimensionale kubus output door bepaalde hoekpunten te markeren afmeting ongeachte de complexiteit naburige hoekpunten hebben gelijkaardige bitrepresentatie hamming-afstand = aantal zijden tussen 2 punten = aantal ongelijke bits 2
karnaughkaart opbouw kaart voor aangrenzende cellen hebben hamming-afstand 1 ook over verticale + horizontale grenzen heen veel structuur afstanden tussen punten met waarde 1 belangrijk basis voor implicantenmethode conceptueel + visueel <-> computers maximale grootte onpraktisch voor (twee kaarten van ) onbruikbaar voor (structuur maar voor klein deel meer) 3
Boolese vormen tekstuele representaties van functies voldoen aan syntaxis veel korter tonen enkel structuur functie beter beheersbaar door computer Boolese vormen verzameling Boolese vormen over (inputs) bestaat uit alle eindige sequenties van letters die voldoen aan recursieve syntaxis assignatie = functie kent waarde 0 of 1 toe aan elke variabele mogelijkheden valuatie onder assignatie = functie evalueert de functie (recursief) voor een bepaalde toekenning aan de inputs equivalente Boolse vormen Boolese vormen en zijn equivalent ( ) als: dus als: gevolg: equivalentieklassen van Boolese vormen in die zelfde functie voorstellen Disjunctieve standaardvorm (DSV) = canonische representant voor elke equivalentieklassen opbouw DSV is een som van mintermen -> minterm is product van lettervormen met, toenemende, index -> lettervorm is veranderlijke of zijn complement verschillende DSVn want verschillende mintermen = aantal verschillende functies DSV van functie is lege uitdrukking conclusies * elke Boolese functie kan voorgesteld worden door Boolese vorm + allemaal met verschillende DSV * elke Boolese functie kan geconstrueerd worden met enkel EN, OF en NIET * Boolese vormen zijn equivalent zelfde DSV 4
3. Combinatorische netwerken modellen van poorten en poortnetwerken poorten elementaire basiscircuits 0-n ingangen en 1 uitgang realiseert eenvoudige Boolese functie basispoorten verbinding met 0 verbinding met 1 buffer NOT-poort AND-poort OR-poort 0 ingangen 0 ingangen 1 ingang 1 ingang 2 ingangen 2 ingangen functionele volledigheid = alle mogelijke Boolese functies te bouwen met basispoorten AND+OR +NOT of NAND of NOR of EXOR + AND of EXOR + OR poortnetwerken opbouw basisblok = poort modelleren elementaire operaties uit keuzes uit verschillende functioneel volledige verzamelingen interconnectie van basispoorten steeds uitgangen naar ingangen nooit uitgangen aan elkaar verbinden gevolg: alle Boolese functies realiseerbaar functiesamenstelling = model voor modelleren van netwerkconstructie stapsgewijze constructie samenstellingsregels Boolese vormen te gebruiken gevolg: netwerken met boomstructuur compositieregels (analoog met 5
opmerkingen er zijn poortnetwerken die functies realiseren <-> niet door functiesamenstelling uitgang v/e poort aan 2 ingangen koppelen => geen boomstructuur corresponderen met stelsels Boolese vormen er zijn poortnetwerken die geen functies realiseren vb. sequentieel gedrag tweeniveau- vs. meerniveaunetwerken twee grote stijlen tweeniveaunetwerken som-van-productenstijl Boolese vorm met som van producten zoals DSV, maar vaak efficiëntere vormen haakjesvrij snelle netwerken (max. 2 poorten) veel poorten hoge fan-in bij veel argumenten (duur + vertraging) meerniveaunetwerken meerniveaugedaante gefactoriseerde Boolese vormen gebruik haakjes doel: # lettertekens beperken minder poorten lagere fan-in langer pad doorheen circuit synthese van poortnetwerken doel: optimaal ontwerk voor een functie realiseren optimaal = snelheid, kostprijs, dissipatie, betrouwbaarheid factoren aantal poorten in netwerk complexiteit v/d poorten (aantal inputs) opmerking: invertors niet meegerekend in kostprijs 6
manuele synthese van optimale tweeniveaunetwerken doel willekeurige Boolese vorm herschrijven als haakjesvrije som van producten met minmaal aantal termen en minimaal aantal factoren per term systeem combineren van implicanten tot priemimplicanten zoeken van minimale lijst priemimplicanten die functie bedekken grafische methode principe product van lettervormen is kubus implicant indien volledig bevat in functie => minimaal aantal maximale deelkubussen die functie volledig bedekken 1. functie in kaart brengen 2. termen groeperen grootste eerst + mag nog overlappen 3. minimale bedekking zoeken punten bedekt door 1 vlak zeker erin priemimplicanten daarna kiezen synthese van meerniveaunetwerken situering tweeniveau-synthese niet altijd beste keuze qua kostprijs vs. snelheid vaak zeer complexe netwerken eenvoudige circuits vaak toch snelste circuits => niet onnodig nog sneller vertraging bij complexe netwerken door hoge fan-in systeem decompositie van combinatorische functie in eenvoudigere stukken gewenste resultaat via samenstelling van de functies factorisatie herschrijven met zo weinig mogelijk lettertekens gemeenschappelijke delen buiten haakjes factorisatie vs. CMOS aantal FETs = 2x aantal lettervormen dus reductie bij factorisatie! duale structuur complement van formule uitwerken via De Morgan tot aan lettervormen 7
4. Sequentiële netwerken terugkoppeling in poortnetwerken effect terugkoppelingen niet altijd input/output relatie als Boolese vorm -> vergelijking met zelfde symbolen aan beide zijden 3 mogelijkheden: 0 oplossingen netwerk geen logisch niveau (vb. oscillatie/verboden gebied) 1 oplossing toch combinatorisch! meer oplossingen vorm van geheugenwerking mogelijk = geen Boolese fuctie! wiskundig model inwendige toestand karakteriseert geheugen afhankelijk van Boolese waarden in knopen v/h netwerk => eindig aantal toestand mogelijk (eindig netwerk) afhankelijkheden output enkel afhankelijk van input + toestand toestand enkel afhankelijk van input + oude toestand => gedrag beschrijven door 2 functies gegeven ingangen, uitgangen en verzameling van toestanden totale-toestandsruimte = alle combinaties van toestanden + inputs toestandsfunctie uitgangsfunctie stabiele totale toestand toestand is stabiel als Moore- en Mealy-automaten Moore-automaat als output enkel afhankelijk van huidige toestand Mealy-automaat als output ook afhankelijk van huidige input 8
analyse van poortnetwerken met terugkoppelingen aannames * SIC-hypothese (Single Input Change) = 1 inputwaarde tegelijk wijzigen * fundamentele mode = tussen twee wijzigingen tijd om te stabiliseren(indien mogelijk!) doel: representatie van functies en systeem: knippen in netwerken doel: aantal knooppunten selecteren die inwendige toestand voorstellen selectie door doorknippen kleine letter stroomopwaarts (toestand) hoofdletter stroomafwaarts (extra ingangen) gevolg: uiteindelijk stelsel combinatorische vergelijkingen plaatsen geknipt => mogelijke toestanden => minimaal aantal knipplaatsen zoeken! transitietabel opbouw kolommen: inputs rijen: inwendige toestand (hoofdletters) elementen: nieuwe toestand (kleine letters) + outputwaarden eigenschappen stabiele interne toestand als alle kleine letters = grote letters => elementwaarden voor toestand = rijwaarde combinatorisch circuit in elke kolom juist één stabiele interne toestand sequentieel circuit in elke kolom een interne toestand in minstens één kolom +1 interne toestand transitiediagram opbouw knopen: totale toestand (inputs + kleine letters) takken: transities tussen toestanden alleen vanuit initialisatietoestand bereikbare toestanden opnemen eigenschappen instabiele toestanden geven spontane transities (reden stabiele toestanden hebben expliciete reden nodig (vb. ) realiteit geen garantie theoretisch verloop vs. werkelijk gedrag geen Single Input Change, geen stabilisatie reden: niet-controleerbare verschillen in vertragingstijden 9
voorbeeld circuit transitietabel ABE CD 00 01 11 10 000 111, 01 111, 01 011, 01 011, 01 001 111,11 111,11 011,11 011,11 010 111, 01 111, 01 011, 01 011, 01 011 111,10 111,10 011,10 011,10 100 110, 01 110, 01 100, 01 100, 01 101 110,11 110,11 100,11 100,11 110 110,01 110,01 010,01 100,01 111 111,10 111,10 011,10 101,10 transitiegraaf abe, Q1Q 2 10
geheugenelementen en synchrone schakelingen probleem: onmogelijk werkelijk gedrag bij terugkoppeling te achterhalen kritische races, hazards, nauwkeurige analyse van circuit zelf nodig <-> onmogelijk => sequentiële schakelingen zo NIET implementeren principe gebruik geheugencellen of flipflops = klein deelnetwerk met zelf teruggekoppelde schakeling hier WEL grondige gedragsanalyse van mogelijk voorzien op elke geheugenkoppeling => elk sequentieel gedrag via geheugencel laten werken (klok)synchrone geheugencellen cel bevat gescheiden klokingang en data-ingang(en) klok bepaalt ogenblik transitie data bepaalt nieuwe toestand <-> asynchroon of inputsynchroon: veranderende inputs bepalen beide vb. flankgestuurde D-flipflop enkel stijgflank van kan cel doen wijzigen transacties op daarbuiten geen invloed stijgflank met => stijgflank met => 11
synchroon gedrag tijdsverloop 1. hold time inputwaarde binnennemen => input moet even stabiel blijven 2. propagation time flip-flop huidige toestand naar output + stabiliseren 3. propagation time combinatorisch nieuwe inputwaarde wordt berekent in toestandsfunctie (heeft soms outputwaarde nodig => wachten op ) 4. setup time insteltijd tot klok weer afgaat => input moet even stabiel blijven voorwaarden 1. alle geheugencellen zelfde kloksignaal + clock skew (tijdsverschuiving) beperken 2. alle geheugencellen compatibel met elkaars klokgedrag (liefst zelfde) vb. allemaal flankgestuurde D-flipflops nodig bij geschakelde geheugencellen 3. klokperiode voldoende groot 4. inputs nooit schommelen rond stijgende flank ( ) verantwoordelijkheid aansturend circuit geen inputverandering + gegarandeerd stabiel praktijk bijna altijd synchrone schakelingen met klok verdeling kloksignaal ZEER belangrijk + nauwkeurig hybride model bij hoge klokfrequenties verschillende delen op chip intern synchroon <-> onderling asynchroon 12