omputertechnik r. Wolfgang Koch 4.3 chwerke, equentielle chungen peicher, egister... : Frühere Eingaben (innere Zustände) spielen eine olle (werden gespeichert) Friedrich chiller University ena epartment of Mathematics and omputer cience ena, Germany wolfgang.koch@uni-jena.de Y t = F ( X t, X t-, X t-2,... ) = F ( X t, Z t ) Z innerer Zustand Z t Zustand zum Zeitpunkt t diskrete Zeitpunkte - Taktregime chwerke, equentielle chungen, Folgeschungen ealisierung durch logische Gatter mit ückkopplungen 2 4.3. 4.3. 4.3.. as Grund-FF (das -FF) as Grund-FF ( das -FF) a b a b a b a b a b a b a= y=b a= y= a= y=b a= y= = = = = = =, = = = = = = = = = =, = = = = (setzen) (speichern, an u. nichts geändert) 3 (rücksetzen) (speichern, an u. nichts geändert) 4
as Grund-FF ( das -FF) as Grund-FF ( das -FF) etzen peichern ücksetzen peichern bei = = verschiedene Ausgangsbelegungen jeweils die e Belegung wird beibehen peicher 5 Taktdiagramm: Verzögerung 2τ Flip Flop 6 as Grund-FF ( das -FF) ückkopplung, aber nur eine! as Grund-FF ( das -FF) Anwendung:. peicher für Bit (direkt oder als Grundbaustein für andere, spezielle FF-Typen) 2. Entprellen von mechanischen chern: Kontakt federt mehrmals kurz zurück kein roblem bei Lichtschern, aber schlimm in elektronischen chungen bei == wirken beide Gatter als Negatoren ( = ), die als ing zusammen geschen sind: = = = (peicher-ing) mit bzw. kann der Inh des ings geändert werden 7 Kontakt prellt 8 2
as -FF der verbotene Zustand Eine mögliche Eingangsbelegung haben wir bisher noch nicht betrachtet: = = = = Es gilt nun nicht mehr: = aber das ist nicht weiter schlimm und kein Grund zum Verbieten edenfalls ist die Zustand nicht unbestimmt und schwingt auch nicht, wie in manchen Büchern fälschlich behauptet wird Was passiert aber, wenn wir diesen Zustand speichern wollen, wenn wir die Eingänge gleichzeitig von auf zurücksetzen? =, = =, = = oder: =, = =, = = (=)??? 9 as -FF der verbotene Zustand = = = = Was passiert wenn wir die Eingänge gleichzeitig von auf zurücksetzen? =, = =, = = oder: =, = =, = = (=)??? er Ausgang der chung hängt von der eihenfolge unserer Gedanken ab das kann nicht sein. Aber in der rais können nicht beide Eingangssignale genau gleichzeitig umschen auch wegen verschiedener Gatterlaufzeiten. Ein Eingangssignal schet zwangsläufig etwas eher auf Null, es gibt seinen Anspruch eher auf und unterliegt. (Wer zuerst nachgibt verliert) er Ausgang ist also ungewiss, unbestimmt Wettrennenbedingung (ace ondition) as -FF der verbotene Zustand = = = = Was passiert wenn wir die Eingänge gleichzeitig von auf zurücksetzen? er Ausgang ist ungewiss Wettrennenbedingung (ace ondition) er Zustand == ist nicht deshalb verboten, weil sein Ausgang unbestimmt oder instabil ist (er ist wohl bestimmt und stabil), sondern weil sein Folgezustand möglicherweise (nämlich beim gleichzeitigen ückschen der Eingänge auf Null) unbestimmt ist. Wie bei der ünde sie ist eigentlich nicht selbst schlecht, aber sie hat oft unerwünschte Folgen Verbieten nützt meist nicht viel Verhindern ist besser andere FF-Typen: -FF, K-FF, as -FF selbst erfunden verboten don t care - telle NO Gatter KNF (en auslesen, =) = ( ) = ( ) = ( ) 2 NO, verb. Zust.: == wegen = 2 3
as -FF selbst erfunden jetzt mit NAN NAN Gatter NF (en auslesen, =) = ( ) = ( ) 2 NAN (in rais häufiger) Achtung: Eingänge jetzt negiert, am -Gatter verb. Zust.: == wegen = egel anders als bei NO, ace aber auch hier verboten 3 as -FF selbst erfunden Warum erfinden wir das FF mit einem verbotenen Zustand, wenn der uns stört? Warum sagen wir nicht, was bei dieser Eingangsbelegung passieren soll, z.b. auch peichern? Abgesehen davon, dass die chung komplizierter wird (keine don t care tellen), nützt das nicht viel: der Übergang von == zu == geht nach wie vor nicht gleichzeitig, sondern ein ignal schet später um: == (= ) =, = (=) =, = (=) oder == (= 4 ) =, = (=) =, = (=) as -FF as -FF hat einen verbotenen Zustand: ==. Verbieten nützt meist nicht viel Verhindern ist besser Man könnte auf die Idee kommen, den verbotenen Zustand dadurch auszuschließen, dass man immer = setzt. Man bräuchte dann nur einen Eingang, sagen wir. =, = amit ist aber nicht nur == verhindert, sondern auch das peichern mit ==!! Es geht dennoch, wenn man einen zweiten Eingang vorsieht, der zwischen Eingeben und peichern unterscheidet: einen Takt- oder Übernahme- Eingang. Wir haben damit das -Flipflop aus Kap. 3. 5 as -FF =, = Man sieht einen zweiten Eingang vor, der zwischen Eingeben und peichern unterscheidet: einen Takt- oder Übernahme-Eingang. Wir haben damit das -Flipflop aus Kap. 3. = = = ==, speichert = =, =, = übernimmt Bit Anwendung: ata Latch hält Information, die an nur kurz, während = anliegt: egister, Flags 6 4
Kombinatorische Grundschungen as -FF = 4.3.4 Hazards Y = A A A Y = = ==, speichert = =, =, = übernimmt Bit 7 Y ideal A Y Verzögerung, eine Gatterlaufzeit Hazard, Glitch 8 Kombinatorische Grundschungen Kombinatorische Grundschungen A Y A Y A Hazards Y = A Y A Y = A A besonders unangenehm: Hazards in sequentiellen chungen (speziell in ückkoppelzweigen: falsche Zustände werden gespeichert) Y = A unser -FF aus Kap. 3: = = A 9 2 Y = A A neu 5
Kombinatorische Grundschungen Kombinatorische Grundschungen besonders unangenehm: Hazards in sequentiellen chungen (speziell in ückkoppelzweigen: falsche Zustände werden gespeichert) unser -FF aus Kap. 3: besonders unangenehm: Hazards in sequentiellen chungen (speziell in ückkoppelzweigen: falsche Zustände werden gespeichert) unser -FF aus Kap. 3: = = = = ( ) = wenn öffnet, ist ev. noch nicht geschlossen, öffnet Fehler! = 2 = 22 Anwendung des -FF: egister Zur Zwischenspeicherung n Bit breiter Worte (Operanden, Ergebnisse, Adressen, Befehle) im rozessor Operanden-egister, Adress-egister, Befehls-egister 2 2 : : : n- n- Übernahmesignal (Takt) z.b. teuerleitung vom teuerwerk 23 Anwendung des -FF: egister chieberegister: für serielle atenübertragung über eine Leitung, für serielle echenwerke, zur Erzeugung von -rüfsummen ie Bits rutscht bei jedem Takt ein FF weiter, ein neues Bit kommt in FF, das rechteste Bit verlässt das chieberegister Eing. Leider funktioniert das obige chieberegister nicht zuverlässig: ist der Takt länger, als eine FF-Zeit, rutscht das Eingangsbit durch mehrere FFs durch. Ausweg: Taktflankensteuerung n- 24 6
Taktflankensteuerung Unser bisheriges -FF war Takt-Zustands-gesteuert: solange = war, wurden Änderungen an den Eingängen übernommen und an die Ausgänge durchgereicht (Transparenz) Bei Taktflankensteuerung sollen nur während des kurzen Umschmoments des Taktes (- Flanke, oder - Flanke) aten übernommen werden. Lösung: Master-lave-rinzip Master-lave-rinzip : Wie chleuse in der chifffahrt, völlige Entkopplung von Ein- und Ausgang M 2 M-FF M M-FF 25 öffnet, 2 ist zu M übernimmt nach schließt, 2 noch zu M speichert, unabh. von 2 öffnet, ist zu übernimmt nach 26 Flip-Flops ( im engeren inne besonders bei Hardwareentwicklern) Taktzustandsgesteuertes (-) FF Latch : während = transparent, keine Verzögerung as K-FF K wie -FF,, K Taktflankengesteuertes (-) FF Flip-Flop (egister) kein verbotener Zustand, wechselt bei jedem Takt : Wechselt bei jedem Takt, d.h. funktioniert nur (flanken-) getaktet, würde sonst schwingen, meist K-Masterlave-Flipflop nicht transparent, nie kombinatorisch, Ein- und Ausgang immer entkoppelt, Verzögerung höherer Aufwand durch Master-lave-rinzip, nicht immer nötig z.b. bei egistern im echner 27 K-FF universelles FF: - FF ( enthen, s. oben, =, K = ) - FF ( =, K = ~ ) T - FF ( Wechsel-FF, Trigger-FF, =K= ) 28 7
as K-FF Entwurf as K-FF ymbol K K K ( = ) = K K 29 ieses Flipflop hat zusätzlich asynchrone - und - Eingänge. Asynchron bedeutet, die Eingänge sind unabhängig vom Takt, sie wirken sofort. iese Eingänge dienen zum etzen von Anfangswerten bzw. zum Löschen, z.b. beim Einschen des Gerätes. ie Kennzeichnung des Taktes bedeutet, dieser Eingang wirkt auf alle anderen Eingänge, die mit gekennzeichnet sind, also auf und K (aber nicht auf und ). ie Zeichen kennzeichnen Master-lave-Flipflops 3 as K-FF T-FF, Frequenzteiler, asynchrone Zähler Bei der Belegung =K= schet das K-FF bei jedem Takt um, wir haben ein W-FF bzw. T-FF (Trigger-FF). amit lassen sich einfach Frequenzteiler und (asynchrone) Zähler modulo 2 n aufbauen., Eing. 2 3 T T T FF Zustandstabellen Eingänge Ausgang E 2 E (=E ) K (=E ) (=E ) T (T=E ) verb. f f/2 2 f/4 3 3 2 3 4 5 6 7 FF Anregungstabellen K,,,, = neu,, T 32 8
Entwurf mit Hilfe der FF-Anregungstabelle K ( = ) = K K K neu 33 Entwurf mit Hilfe der FF-Anregungstabelle K neu =,, K K = K 34 Entwurf mit Hilfe der FF-Anregungstabelle K K Entwurf mit Hilfe der FF-Anregungstabelle K = = K K 35 K 36 9