Exklusiv eller XOR F5 Introduktion till digitalteknik EDAA05 Roger Henriksson Jonas Wisbrant På övning 2 stötte ni på uttrycket x = (a b) ( a b) som kan utläsas antingen a eller b, men inte både a och b. Detta uttryck är så pass vanligt att det fått ett eget namn och en egen operation, exklusiv eller XOR. Uttrycket ovan kan skrivas som x = a b Exklusiv eller är en s.k. härledd operation egentligen onödig, men praktisk. a b x 0 0 0 0 1 1 1 0 1 1 1 0 2 Digitala grindar Elektroniska implementationer av de olika logiska operationerna i den Booleska algebran. Hög spänning representerar värdet 1 sant. Låg spänning representerar värdet 0 falskt. NOT-grinden inverterare Enkelt exempel på hur logiska grindar kan implementeras fysiskt. Kan köpas som IC-kretsar eller fungera som logiska byggblock vid design av mera komplexa IC-kretsar. Grindar kopplas ihop i olika kombinationer för att implementera Booleska uttryck. Standard 7404 IC-krets. Möjlig implementation av NOT-grind. 3 4
Grindsymboler Namn Operation IEC-symbol Traditionell symbol NOT x Kombinatoriska nät Ett kombinatoriskt nät är ett system av hopkopplade logiska grindar som beräknar ett Booleskt uttryck. AND OR x y x y XOR x y NAND (x y) Ett kombinatoriskt nät tar en eller flera insignaler som input och producerar en eller flera utsignaler vars värde baseras på insignalernas värden. 5 6 Kombinatoriska nät och paraplyet Paraplyet i LogicSim Konstruera ett kombinatoriskt nät som talar om huruvida jag ska ta paraply med på morgonen! r : det regnar s : väderprognosen spår regn b : jag tar bilen p : jag tar med ett paraply på morgonen p = b (s r) DEMO LogicSim och paraplyet 7 8
Tillståndsmaskiner För att en digital krets ska kunna reagera inte bara på hur insignalerna ser ut just nu, utan också på hur de varit tidigare, behöver den ha ett minne. Man brukar säga att kretsen har ett tillstånd. Kretsen reagerar på olika sätt på en viss indatakombination beroende på vilket tillstånd den råkar befinna sig i. En krets som fungerar enligt ovan kan beskrivas som en s.k. tillståndsmaskin. Tillståndsdiagram En tillståndsmaskin kan beskrivas m.h.a tillståndsdiagram. Maskinen flyttar sig mellan tillstånden i maskinen beroende på hur indata ser ut ungefär som spelpjäsen på ett fiaspel. Vid varje tidsintervall (spelomgång) flyttar sig maskinen eventuellt till ett nytt tillstånd (ruta på spelplanen). Exempel: En tillståndsmaskin som producerar omväxlande 1 och 0 som utsignal så länge insignalen är 1. När insignalen är 0 fryses utsignalen. 9 10 Tillståndsdiagram notation Tillstånd med namn och tillståndsnummer Tillståndsövergång Insignalvillkor för tillståndsövergång samt ny utsignal 1 / 0 D-element Vi behöver något sätt att minnas vårt tillstånd. Därför inför vi en ny speciell grindtyp: D-elementet D står för Delay line. Insignaler: D: Värdet som ska minnas. CLK ( > i figuren) : Klocksignal. När CLK går från 0 till 1 kopieras värdet på D till utgången. Utsignal: x: Värdet på D vid senaste klockpulsen. Symbol för ett D-element, eller en s.k. D-vippa. 11 12
Synkrona nät och tillståndsmaskiner I ett synkront nät styr en klocksignal när tillståndsövergångar sker och nya utsignaler genereras. Vi låter det kombinatoriska nätet beräkna inte bara utsignaler, utan också vilket tillstånd maskinen ska gå till. Utsignalerna baseras dels på insignalerna och dels på maskinens gamla tillstånd. Vi kommer ihåg de gamla tillstånden m.h.a. D-element. Från tillståndsmaskin till krets Bygg en digital krets som implementerar följande tillståndsmaskin: Vi börjar med att numrera tillstånden LOW = 0, HIGH = 1. Därefter bygger vi en sanningstabell som beskriver vad utsignal (o) och nytt tillstånd (s ) ska bli för varje kombination av insignal (i) och tillstånd (s): s i s o 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 13 14 Från tillståndsmaskin till krets II Från sanningstabellen tar vi fram Booleska uttryck för s och o: s = o = s i s i s o 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 Nästa steg blir att realisera det kombinatoriska nätet som ska beräkna s och o: Från tillståndsmaskin till krets Slutligen fullbordar vi kretsen genom att återkoppla s till s via ett D-element samt ansluta en klockpulsgenerator: i o =1 s s 15 16
Förpackningsmaskin I en förpackningsmaskin vill vi bygga en digital krets som ger värdet 1 ut varannan gång insignalen får värdet 1. En produkt ska förpackas i två-pack så varannan gång ska en ny kartong matas fram Tillståndsmaskin: Förpackningsmaskin II Numrera tillstånden vi behöver två binära siffror: Låt s1 och s2 representera tillståndet. Sätt upp sanningstabell: s1 s2 i s1 s2 o 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 17 18 Förpackningsmaskin III Reflektioner Från sanningstabell s1 s2 i s1 s2 o 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 går vi till Booleska uttryck: s1 = s1 i i (s1 s2) s2 = i o = s1 i Den färdiga kretsen bygger ni ihop på laboration 2! 19 Tillståndsmaskiner är ett allmänt begrepp som inte bara förekommer i digitaltekniken ut även i många områden inom programmering, t.ex. inom kompilatorteknik (EDA180). Med hjälp av grindar konstruerar man mera avancerade moduler med ingångar och utgångar som sedan i sin tur sätts ihop till ännu komplexare system, osv. Till sist kan vi t.ex. få en komplett dator. Eftersom en dator består av ett stort antal tillståndsmaskiner förklarar det varför man pratar om en dators klockfrekvens och varför denna påverkar datorns snabbhet. 20