C. Sequentielle Logik C.1. Einordnung Schaltungen mit innerem Zustand. Nächster Zustand nach jeweils t. Im Prinzip getaktete Schaltungen. Speichernde Schaltungen. Grosser Zustandsraum. Höhere Informatik Systemprogrammierung: - Betriebssystemkonzepte, Ein- & Ausgabe E Architektur: - Recherarchitektur, Instruktionssatz, Mikroarchitektur F G K H J I Digitaltechnik Rechnerarithmetik: - Zahlendarstellung, Operatoren, Konvertierung... Digitale Schaltungen: - Zustandsmasch., Zähler, ALU, PLA, Optimierung Digitale Logik: - Gatter, digitale Signale, Signalausbreitung... C D B Elektronik Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 1
C.2. Abgrenzung Sequentielle Logik vs. Kombinatorische Logik Kombinatorische Logik - Idealisierung: Die Resultate sind sofort nach dem Anlegen der Eingangswerte da (verzögerungsfrei), Keine Rückführung von Ausgängen an den Eingang, Kein innerer Zustand, nur Eingangsvariablen. Kombinatorische Logik - Realisierung: Signallaufzeiten beschränkt (Lichtgeschwindigkeit, Schaltverzögerungen...), Herstellungstoleranzen unter anderem bei den Schaltzeiten von Schaltelementen, Kein definierter Zeitpunkt für den Übergang von einem Zustand zum nächsten. Sequentielle Logik: Rückkopplungen vom Ausgang zum Eingang ermöglichen einen Zustand zu halten, Zustandswechsel nach Ablauf aller Gatterlaufzeiten, ausgelöst durch den Takt, Beschränkte Signal-/Gatterlaufzeiten werden berücksichtigt. => Speicherung, Ablaufsteuerung, Taktung möglich. Schaltnetze: kombinatorisch, ohne Zustand. Schaltwerke: Sequentiell, mit Zustand. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 2
C.2.1 Rückgekoppeltes UND-Gatter Einfachstes Schaltwerk: Annahme einer endlichen Gatterlaufzeit t, Der Ausgang hängt vom früheren Zustand ab, y(t + t) = a(t) y(t) : a y(t ) a y(t) y(t + t) y(t + 2 t) y(t + 3 t) 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 3
C.2.2 Rückgekoppeltes Oder-Gatter Rückkopplung: Wertefolge für X bei Anfangskonfiguration Werte für X als Funktion des vorherigen Wertes Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 4
C.2.3 Rückgekoppeltes NOR-Gatter Wahrheitstafel eines NOR-Gatters zur Erinnerung: Schaltung: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 5
Wertefolge für X bei AnfAgskonfiguration: Werte für X als Funktion des vorherigen Wertes: Schaltung schwingt für A=0! t Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 6
C.2.4 RS-Flip-Flop Zwei wechselweise rückgekoppelte NOR-Gatter: Eine Möglichkeit ist: A=0, B=0, X=1, Y=0... Wie verhält sich das Schaltwerk bei unterschiedlichen Eingängen? 16 Belegungsvarianten für A, B, X, Y betrachten, pro Gatter eine Signallaufzeit t impliziert. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 7
Tabelle aller Zustandsübergänge: Stabile Zustände: 0,0,0,1, 0,0,1,0, 0,1,1,0, 1,0,0,1, 1,1,0,0, Instabile Zustände: 0,0,0,0, 0,0,1,1, 0,1,0,0, 0,1,0,1, 0,1,1,1, 1,0,0,0, 1,0,1,0, 1,0,1,1, 1,1,0,1, 1,1,1,0, 1,1,1,1, X(t)=X(t+ t), Y(t)=Y(t+ t), X(t) X(t+ t), Y(t) Y(t+ t), - + + - - - + - - + - - + - - - Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 8
Stabile Verhaltensweisen nach einer gewissen Zeit: für die Werte (A, B) gleich (0, 1), (1, 0), (1, 1), entweder die Werte X, Y bleiben bei unveränderter Eingabe konstant, oder die Werte X, Y ändern sich noch einmal und bleiben dann konstant; oder die Werte X, Y ändern sich noch zweimal und bleiben dann konstant; siehe Tabelle der Zustandsübergänge. Zustandsabhängige Verhaltensweise: für die Werte (A, B) gleich (0, 0), stabil, falls X Y (speichert), instabil, falls X=Y. Instabil: die Schaltung kippt in einen stabilen Zustand, evtl. erst nach sehr langer Zeit, evtl. oszilliert die Schaltung, Y Metastabiler Zustand. X Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 9 B A
C.2.5 Was tun wir nun angesichts des instabilen Verhaltens? Ersten könnten wir einen Oszillator bauen: Die Taktrate ergibt sich aus der Verzögerungszeit der Gatter, Taktrate kann durch externe Beschaltung beeinflusst werden, Geht auch einfacher... Nötigenfalls (A, B)=(1,1) verbieten: Kann sonst zu (X,Y)=(0,0) führen, falls beide Eingänge gleichzeitig auf Null fallen, Damit ergäbe sich ein instabiler Zustand. Mit X Y und (A, B) (1,1) ergeben sich 2 stabile Schaltungszustände, nämlich (1,0) und (0,1): => bistabile Kippstufe, bistabiler Speicher, Flip-Flop (hier RS-Flip-Flop) Umbenennung der Ein- und Ausgänge R = A S = B X = Q Y = Q Reset, Löschen Set, Setzen Ausgang negierter Ausgang, Q-quer Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 10
Flip-Flop (hier RS-Flip-Flop) kann einen binären Wert speichern. Verkürzte Wahrheitstafel eines RS-Flip-Flops: R S Next Q 0 0 Q Q bleibt unverändert (gespeichert). 0 1 1 Setzen 1 0 0 Löschen 1 1 Eingabekombination nicht erlaubt Blockschaltbild: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 11
Festhalten eines kurzzeitigen Wertes auch nach dessen Abklingen: Beispiel: Warnung eines Drucksensors D in einem Kraftwerk Drucksensor liefert ein binäres Signal (Set), RS-Flip-Flop hält das Signal fest, Warnlampe am Ausgang des FF, explizites Rücksetzen des Alarms durch Schalter Latch / Auffangregister: Wert D wird aufgefangen und gehalten (rastet ein), englisch eigentlich: Raste, Klinke, evtl. mit Reset -Taste: D Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 12
Zeitdiagramm - Reaktion des RS-Flip-Flops über die Zeit steigende Signalflanke triggert das Umschalten des Flip-Flops, Verzögerung und Einschwingzeit abhängig von der Gatterlaufzeit, nach 2 t ist das Flip-Flop eingeschwungen, Schaltimpuls kann auch länger sein. Realisierung mit NAND-Gattern Einsatz von NAND- statt NOR-Gattern Ausgänge invertiert ( De Morgan Law). Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 13
C.3. Asynchrone und synchrone Schaltwerke C.3.1 Asynchrone Schaltwerke Gatterlaufzeit bestimmt Zeitdauer bis stabiles Ergebnis vorliegt, veränderte Eingänge sorgen direkt für veränderte Ergebnisse, sehr schnelle Schaltungen möglich, zuverlässiges Design schwierig, aufwändiger Entwurf, Zeit ist Echtzeit. C.3.2 Synchrone Schaltwerke zentraler Takt Signal hat Zeit stabil zu werden Übernahme eines Eingabesignals nur zu festen Zeitpunkten langsamste Teilschaltung bestimmt maximale Taktfrequenz einfacher und systematischer Entwurf Zeit ist Taktzeit Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 14
C.3.3 Getaktetes RS-Flip-Flop Synchrone Schaltung Realisierung mit NOR-Gattern, Übernahme der Eingänge nur während einer Taktphase, Takt am Eingang C (Clock). Alternative Realisierung mit NAND-Gattern: Ausgänge invertiert ( De Morgan Law). Blockschaltbild: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 15
C.3.4 Zeitverhalten des getakteten RS-Flip-Flops Veränderungen finden nur während der 1-Phase des Taktsignals statt: C = 1, C = Active, C = True, C = Asserted Mehrere Veränderungen pro Taktphase möglich, letzte bleibt. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 16
C.3.5 Getaktetes RS-Flip-Flop im grösseren Schaltungkontext Problem: mögliche Kopplungen zw. Aus- & Eingang des Flip-Flops: selbst bei kurzen Taktphasen sind ungewollte Rückkoppelungen möglich, Veränderungen am Ausgang können Veränderungen am Eingang innerhalb einer Taktphase nach sich ziehen. Lösung: Master-Slave-RS-Flip-Flop Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 17
C.3.6 Master-Slave-RS-Flip-Flop Zweistufiges Flip-Flop: Komplementäres Eingangssignal erforderlich (R S oder R=0, S=0), Master Flip-Flop reagiert auf C=1, Slave Flip-Flop reagiert auf C=0. Takt auf 1: Master Flip-Flop nimmt Eingänge auf, Slave bleibt unverändert Takt auf 0: Master Flip-Flop ignoriert die Eingänge, Slave übernimmt Zustand des Masters Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 18
C.3.7 Zeitverhalten des Master-Slave-RS-Flip-Flop (2) Der Ausgang des Flip-Flops reagiert auf die absteigende Taktflanke. Schnelle Rückkoppelung über externes Schaltnetz nun unkritisch. QM: Q-Ausgang des Master-Flip-Flops Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 19
C.3.8 Flankengetriggerte Flip-Flops Nach außen sichtbares Verhalten eines Master-Slave-RS-Flip-Flops Übernahme der Eingänge nur bei (positiver) Taktflanke. Blockschaltbild flankengetriggerter RS-Flip-Flops positive Flankentriggerung positive Flanke = aufsteigende Flanke negative Flankentriggerung negative Flanke = absteigende Flanke Takteingang wird negiert Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 20
C.3.9 Mehrstufige Verarbeitung (Pipelining) Mit Master-Slave-Flip-Flops sind folgende Schaltwerke denkbar: R C S Q Q Schaltnetz R C S Q Q Schaltnetz R C S Q Q pro Takteinheit: logische Verarbeitung in den einzelnen zwischengeschalteten Schaltnetzen, Getaktete Weitergabe der Information an die nächste Stufe der Pipeline, nach drei Takten kommt die verarbeitete Information am Ende heraus, Ausgabe am Ende der Pipeline. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 21
Schieberegister mit Inverter als einfaches Beispiel: Annahme: alle Flip-Flops geben zu Beginn Q = 0 aus. R C S #1 Q Q R C Q R C Q S Q S Q #2 #3 Zeitverhalten Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 22
Ein einzelner Wert in obigen aufeinanderfolgenden Stufen. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 23
Weiterreichen aufeinanderfolgender Werte durch das Schaltwerk: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 24
C.3.10 D-Flip-Flop Synchroner Baustein: nur noch einen Dateneingang, (intern invertiert), mit Takteingang C: Verkürzte Wahrheitstafel eines D-Flip-Flops D C Q 0 0 Q Q bleibt unverändert 0 1 0 0 wird übernommen 1 0 Q Q bleibt unverändert 1 1 1 1 wird übernommen Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 25
Realisierung: Flankengetriggertes D-Flip-Flop: positive Flankentriggerung => negative Flankentriggerung Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 26
C.3.11 Register Eine Bank von Flip-Flops bilden ein Register: Speichert eine bestimmte Anzahl von Binärstellen, Clock C oder Register Select. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 27
C.3.12 JK-Flip-Flop RS-Flip-Flop mit zusätzlicher Umschaltfunktion (Toggle) in der Regel synchron und mit Master-Slave-Aufbau Verkürzte Wahrheitstafel eines JK-Flip-Flops: C J K Q 0 * * Q keine Änderung ohne Takt 1 0 0 Q 1 0 1 0 Rücksetzen (K=R) 1 1 0 1 Setzen (J=S) 1 1 1 Q Q wird invertiert (Toggle Q ) Blockschaltbilder: Positive & negative Flankentriggerung: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 28
Realisierung eines JK-Flip-Flop mit Master-Slave-Aufbau Spezialfall T-Flip-Flop: Toggle Flip-Flop mit einem Eingang T=K=J plus Takteingang, jeder Taktzyklus invertiert die Ausgänge, eignet sich als Frequenzteiler: Halber Takt Takt Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 29
C.4. Typische Schaltwerke C.4.1 Schieberegister 8- bis 32-stelliges Register für Binärstellen. Binärwerte im Register werden z.b. nach rechts geschoben. Realisierung mit D-Flip-Flops: Vielseitige Verwendbarkeit: Serie-Parallelwandlung von Daten an der seriellen Schnittstelle: Arithmetische und logische Operationen. Schieberegister für Links- und Rechtsschiebe-Operationen Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 30
1-aus-2-Multiplexer: Shift-Clock: Takt für jeweils einen Verschiebungsschritt, Left=true/false: Wählt den Eingabewert von Links bzw. Rechts, Right-In/Left-In: Eingabe für Verschiebung nach rechts bzw. links, Right-Out/Left-Out: Ausgabe für Verschiebung nach rechts bzw. links, Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 31
C.4.2 Asynchroner Zähler Zum Beispiel ein dreistelliger Binärzähler: zählt absteigende Flanken des Taktimpulses zählt von 0 bis 7 mit Wrap-around, eignet sich als Frequenzteiler. Aufbau mit JK-Flip-Flops im Toggle-Mode : Die Ausgänge wechseln die Polarität jeweils zum Taktzeitpunkt, Grundtakt liegt nur am linken Eingang an, sodann halbe/viertel/achtel Taktrate. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 32
Zeitverhalten Die absteigende Flanke wird durch alle Stufen durchgereicht, Dominoeffekt verzögert stabilen Zustand des Zählers, lange Zähler sind nicht beliebig schnell taktbar. Das kann z.b. bei einem 32-Bit Register lange dauern. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 33
C.4.3 Synchroner Zähler Unmittelbarer Übergang aller beteiligten Flip-Flops pro Taktzyklus Acht mögliche Zustände eines dreistelligen Binärzählers: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 34
C.4.4 Einsatz von JK-Flip-Flops Aufstellen einer Zustandsübergangstabelle für das JK-Flip-Flop: Übergang Q Q' J K 0 0 0 d K Eingang irrelevant 0 1 1 d K Eingang irrelevant 1 0 d 1 J Eingang irrelevant 1 1 d 0 J Eingang irrelevant Drei JK-Flip-Flops sind notwendig für einen dreistelligen Zähler: Der Takt ist jeweils für alle Flip-Flops identisch, Wie müssen Steuereingänge J und K angesprochen werden? Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 35
C.4.5 Gesucht Schaltnetze zur Ansteuerung der Flip-Flops Alle Flip-Flops werden ständig getaktet Ausgänge aller Flip-Flops bestimmen die aktuelle Ansteuerung. Schrittweises Fortschalten über MS Flip-Flops und Takt: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 36
C.4.6 Zustandsübergänge des Zählers Folgezustände ermitteln: 000 =>001 =>010 =>011 =>100 =>101 =>110 =>111 =>000 Übergänge pro Flip-Flop ermitteln: Ausgangszustand (und Ausgabe) Folgezustand Eingänge der Flip-Flops Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 0 0 0 0 0 1 0 d 0 d 1 d 0 0 1 0 1 0 0 d 1 d d 1 0 1 0 0 1 1 0 d d 0 1 d 0 1 1 1 0 0 1 d d 1 d 1 1 0 0 1 0 1 d 0 0 d 1 d 1 0 1 1 1 0 d 0 1 d d 1 1 1 0 1 1 1 d 0 d 0 1 d 1 1 1 0 0 0 d 1 d 1 d 1 Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 37
C.4.7 Schaltnetzentwurf Eingänge für das Schaltnetz sind die Ausgänge Qi der Flip-Flops. Ausgänge sind Ansteuerungen Ji und Ki für die Flip-Flops. Beispiel: Schaltfunktion für den Schaltnetzausgang K2: Einsatz von Minimisierungstechniken für minimale Schaltungen, DNF für K2 = Q 0 Q 1 Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 38
C.4.8 Schaltfunktionen insgesamt Schaltnetz für 6 Schaltfunktionen: J 2 = Q 0 Q 1 K 2 = Q 0 Q 1 J 1 = Q 0 K 1 = Q 0 J 0 = 1 K 0 = 1 Realisierung der Schaltung: nur ein UND-Gatter erforderlich... Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 39
C.5. Systematischer Schaltwerkentwurf C.5.1 Entwurf von synchronen Schaltwerken mit internem Zustand Wie kommt man allgemein von Systemanforderungen zum Schaltwerk? Endliche Automaten als Systemmodell, endliche Menge von Zuständen. Übergänge zwischen den Zuständen: Abhängigkeit der Übergänge von vorherigen Zuständen, Abhängigkeit der Übergänge von Eingabewerten. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 40
C.5.2 Beispiel 1: dreistelliger Binärzähler acht Zustände für den dreistelligen Zähler. Direkte Ausgabe der Zustandsrepräsentation durch Flip-Flop-Ergebnisse. Keine Abhängigkeit der Zustandsübergänge von den Eingabewerten: unbedingte Übergänge pro Taktzyklus, hier keine externen Eingänge. Gesucht: allgemeines Verfahren zur Synthese synchroner Schaltwerken aus der Beschreibung endlicher Automaten Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 41
C.5.3 Beispiel 2: Hochwassererkennung Szenarium zur Wasserstandanzeige: Ausgabe W=1: Hochwasser, Ausgabe W=0: Niedrigwasser, Wasserstandssensoren: H=1 bzw. L=1, wenn Wasser oberhalb der Marke. Stabilisierung durch Hysterese: doppelte Wasserstandsmessung, Oszillation vermeiden. Schaltwerk mit Hysterese-Eigenschaft gesucht: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 42
C.5.4 Endlicher Automat zur Wasserstandsmessung Ausgaben gekoppelt an Zustände: Zustandsmenge des Automaten: Mindestens so viele Zustände vorsehen, wie mögliche Ausgaben. evtl. mehr, da Schaltwerk sich irgend etwas merkt Zustandsübergänge abhängig von Eingabewerten, Hier: [Niedrigwasser, Hochwasser]. Markierung der Kanten mit Kombinationen von Eingabewerten: nicht aufgeführte Kombinationen implizieren Verbleib in vorherigen Zustand entweder Zustandsübergang jeweils zum Taktzeitpunkt (synchron), oder Zustandsübergang bei einer Veränderung, Empfehlung: alle Kombinationen angeben. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 43
C.6. Typisierung v. Automaten - Moore-Automat Getaktetes System auf Vorschlag von E. Moore, Bell Labs. Eingabewerte und bisheriger Zustand führen zu Zustandsveränderungen, Eingabewerte wirken sich erst einen Takt später auf die Ausgabe aus, Ausgabewerte hängen nur vom augenblicklichem Zustand ab. Moore-Automat als Tupel: M = ( Q, Σ, Ω, δ, λ, q 0, F ) Q als endliche Zustandsmenge ( Q < ) Σ als Eingabealphabet ( Σ <, Q Σ = ) Ω als Ausgabealphabet ( Ω < ) δ als Übergangsfunktion δ : Q Σ Q ) λ als Ausgabefunktion λ : Q Ω ) q 0 Q als Startzustand F Q Menge der Endzustände... (?) Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 44
C.6.1 Mealy-Automat Ebenfalls getaktetes System, aber nach G. Mealy, IBM. Eingabewerte wirken auch direkt auf den Ausgang. Mealy-Automat als Tupel: M = ( Q, Σ, Ω, δ, λ, q 0, F ) Q als endliche Zustandsmenge ( Q < ) Σ als Eingabealphabet ( Σ <, Q Σ = ) Ω als Ausgabealphabet ( Ω < ) δ als Übergangsfunktion δ : Q Σ Q ) λ als Ausgabefunktion λ : Q Σ Ω ) q 0 Q als Startzustand F Q Menge der Endzustände... => Γυτ γεβρυελλτ Λοεωε Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 45
C.6.2 Entwurfsschritte für einen Moore-Automaten 1. Zustandsdiagramm und Zustandstabelle erstellen. 2. binäre Zustandscodierung, binäre Zustandstabelle. 3. Flip-Flop-Typ auswählen, Flip-Flop-Ansteuerung in Zustandstabelle. 4. Wahrheitstabelle für Ausgabefunktionen. 5. Minimisieren von Ansteuerungs- und Ausgabefunktionen. 6. Aufbau der Schaltung. C.6.3 Entwurfsschritte für einen Mealy-Automaten 1. Zustandsdiagramm bzw. Zustandstabelle, einschließlich Ausgaben. 2. binäre Zustands-Codierung & -tabelle, einschließlich Ausgaben. 3. Flip-Flop-Typ auswählen, Flip-Flop-Ansteuerung in Zustandstabelle. 4. (entfällt, da schon unter 1. & 2.) 5. Minimisieren von Ansteuerungs- und Ausgabefunktionen. 6. Aufbau der Schaltung. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 46
C.6.4 Moore-Automat für Hochwasser-Erkennung Schritt 1a: Zustandsdiagramm erstellen Ausgabewerte y = y 1, y 2... y m (hier m = 1 und y 1 = W), Ausgabewerte werden hinter die Zustandsbezeichnung geschrieben, Eingabewerte werden als Tupelwerte direkt auf die Kanten gezeichnet, verkürzte Darstellung der Eingabewerte/-variablen. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 47
Schritt 1b: Zustandstabelle erstellen alle Kanten bzw. Zustandsübergänge erfassen, gleichwertig mit Zustandsdiagramm (aber ohne Ausgaben) Zustände Eingänge H L Folgezustände NW 0 d NW NW 1 0 NW NW 1 1 HW HW 0 0 NW HW d 1 HW HW 1 0 HW Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 48
Schritt 2: binäre Zustandscodierung & -tabelle festlegen. Die Automatenzustände müssen im zweiten Schritt binär codiert werden, Hier nur ein Flip-Flop erforderlich zur Zustandsrepräsentation, Hier: NW = 1, HW = 0 (entspricht nicht der Ausgabe W). Zustände Q 0 Eingänge H L Folgezustände Q 0 NW 1 0 d NW 1 NW 1 1 0 NW 1 NW 1 1 1 HW 0 HW 0 0 0 NW 1 HW 0 d 1 HW 0 HW 0 1 0 HW 0 Auf Vollständigkeit der Zustände achten! (sonst evtl. unbest. Verhalten), spätestens hier müssen alle möglichen Übergänge erfasst werden, auch Zustände außerhalb des Automaten müssen erfasst werden, z.b. vierter Zustand bei Automat mit drei Zuständen und zwei Flip-Flops.. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 49
Schritt 3a: Auswahl JK-Flip-Flops, Ermitteln der Flip-Flop-Ansteuerung, Zustände Eingänge Folgezust. Ansteuerung. Q 0 H L Q 0 J 0 K 0 1 0 d 1 d 0 1 1 0 1 d 0 1 1 1 0 d 1 0 0 0 1 1 d 0 d 1 0 0 d 0 1 0 0 0 d Gestützt auf Zustandsübergangstabelle JK-Flip-Flop (siehe oben): Übergang Q Q' J K 0 0 0 d K Eingang irrelevant 0 1 1 d K Eingang irrelevant 1 0 d 1 J Eingang irrelevant 1 1 d 0 J Eingang irrelevant Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 50
Schritt 4: Ausgabefunktionen in Abhängigkeit vom Zustand aufstellen: Schritt 5: Minimisieren der Ansteuer- und Ausgabefunktionen: (andere Zustandscodierung ergäbe noch einfachere Ausgabefunktion) J 0 = L H K 0 = L H W = Q 0 Schritt 6: Aufbau der Schaltung: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 51
C.6.5 Mealy-Automat für Hochwasser-Erkennung Schritt 1a: Zustandsdiagramm Ein- und Ausgabewerte als Tupel direkt auf die Kanten zeichnen Schritt 1b: Zustandstabelle Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 52
Schritt 2: binäre Zustandscodierung & -tabelle, Ausgabewerte wie beim Moore-Automaten mit Ausnahme der zusätzlichen Ausgaben. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 53
Schritt 3: Auswahl JK-Flip-Flops, Ermitteln der Flip-Flop-Ansteuerung Tabelle identisch zum Moore-Automaten (zusätzlich Ausgänge). Schritt 4 entfällt. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 54
Schritt 5: Minimisieren der Ansteuer- und Ausgabefunktionen: J 0 = L H K 0 = L H W = Q 0 H + Q 0 L + H L Schritt 6: Aufbau der Schaltung Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 55
C.7. Sequenzerkennung C.7.1 Moore-Automat zur Sequenzerkennung Sequenzerkenner ein Eingang E mit verschiedenen Eingabewerten pro Taktzyklus ein Ausgang Y ist 1, falls Sequenz erkannt (hier 010 ) Schritt 1a: Zustandsdiagramm: Bedeutung der Zustände A: bisher nichts erkannt B: 0 erkannt C: 01 erkannt D: 010 erkannt Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 56
Schritt 1b: Zustandstabelle => Schritt 2a: binäre Zustandscodierung: Schritt 2b: Zustands-Tabelle: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 57
Schritt 3: JK-Flip-Flops und deren Ansteuerung Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 58
Schritt 4: Ausgabefunktion in Abhängigkeit vom Zustand Schritt 5: Minimisieren Trivialerweise ergibt sich: Y = Q1 Q0 Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 59
Flip-Flop #1 J 1 = Q 0 E K 1 = Q 0 E + Q 0 E Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 60
Flip-Flop #0 J 0 = E K 0 = E Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 61
Schritt 6: Aufbau der Schaltung Moore Automat erkennt nun die Sequenz 010. Moore-Automat als Tupel: M = ( Q, Σ, Ω, δ, λ, q 0, F ) Q als endliche Zustandsmenge { A, B, C, D } Σ als Eingabealphabet { 0, 1 } Ω als Ausgabealphabet { 0, 1 } q 0 = A als Startzustand F = D Endzustand Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 62
C.7.2 Mealy-Automat zur Sequenzerkennung Schritt 1a: Zustandsdiagramm: Kanten werden mit Eingabe E und Ausgabe Y beschriftet, Eingabewert E = { 0, 1 } - allgemein E = [ E 1, E 2,... E n ], Ausgabewert Y = { 0, 1 } - allgemein Y = [ Y 1, Y 2,... Y m ]. Bedeutung der Zustände A.. D entsprechend dem Moore-Automaten. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 63
Schritt 1b: Zustandstabelle erste drei Spalten identisch zum Moore-Automaten, ergänzt um Ausgangssignal: Schritt 2: binäre Zustandscodierung, binäre Zustandstabelle identisch zu Moore-Automat (bis auf zusätzliche Ausgangsspalte). Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 64
Schritt 3: JK-Flip-Flops und deren Ansteuerung identisch zu Moore-Automat (bis auf zusätzliche Ausgangsspalte) Schritt 4: entfällt Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 65
Schritt 5: Minimisieren Flip-Flop-Ansteuerfunktionen identisch zu Moore-Automat, Ausgabefunktion Y (ohne Verzögerung um einen Takt): Y= Q 1 Q 0 E Schritt 6: Aufbau der Schaltung: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 66
C.7.3 Vergleich zwischen Moore- und Mealy-Automaten Beide geeignet zum Aufbau beliebiger synchroner Schaltwerke. Vorteile Moore-Automat: geringerer Schaltungsaufwand, wenn Ausgabewerte nur vom Zustand abhängen taktsynchrone Ausgabe Nachteile Moore-Automat: Reaktion erst im nächsten Taktzyklus Nachteile Mealy-Automat: asynchrone Eingabesignale bewirken asynchrone Ausgabesignale Vorteile Mealy-Automat: Ausgang kann sofort auf Eingänge reagieren geringerer Schaltungsaufwand, wenn Übergänge zum selben Zustand verschiedene Ausgabewerte erzeugen sollen, z.b.: Modifiziertes JK-Flip-Flop: Ausgabe soll anzeigen, dass sich Flip-Flop-Zustand geändert hat. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 67
C.8. Auswahl bzw. Einfluss des Flip-Flop-Typs Beispiel: Synchroner Zähler von 0 bis 2: Reset-Leitung R: (R=1) => zurück zur 0 Realisierung als Moore-Automat Schritt 1a: Zustandsdiagramm: Schritt 1b: Zustandstabelle: sei dem Leser überlassen, siehe auch Schritt 2... Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 68
Schritt 2a: binäre Zustandscodierung: Nur 3 Zustände anstatt 4. Schritt 2b: binäre Zustandstabelle: Übergangsfunktion δ in den Folgezustand, abhängig von Eingabe und aktuellem Zustand: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 69
Schritt 3: JK-Flip-Flops und deren Ansteuerung: Schritt 4: Ausgabefunktionen trivial, da die Zustände direkt in Ausgaben abbildbar sind. Schritt 5: Minimisieren: J 1 = Q 0 R K 1 = 1 J 0 = Q 1 R K 0 = 1 Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 70
Schritt 6: Aufbau der Schaltung mit JK Flip-Flops Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 71
C.8.1 T-Flip-Flops als Alternative Schritt 3: T-Flip-Flops und deren Ansteuerung: Schritt 5: Minimisieren: T 1 = Q 1 + Q 0 R T 0 = Q 0 + Q 1 R Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 72
Schritt 6: Aufbau der Schaltung mit T-Flip-Flops: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 73
C.8.2 Alternative: D-FlipFlops Schritt 3: D-FlipFlops und deren Ansteuerung: Schritt 5: Minimisieren D 1 = Q 0 R D 0 = Q 0 Q 1 R Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 74
Schritt 6: Aufbau der Schaltung mit D-Flip-Flops: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 75
C.8.3 Pragmatik des FlipFlop-Typs Jedes getaktete FlipFlop kann verwendet werden Unterschiede in der Schaltung JK-FlipFlop tendiert zu besser minimisierbaren Ansteuergleichungen, JK-FlipFlop impliziert viele don t cares in der Übergangstabelle. einfach anzusteuernde FF tendieren zu komplexen Ansteuergleichungen: z.b. D-Flip-Flops aber unser Beispiel zeigt eine Ausnahme. Die Wahl der Flip-Flops ergibt sich meist aus der aktuellen Verfügbarkeit von bestimmten Bausteinen/-elementen. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 76
C.8.4 Reduktion von Zuständen Weniger Flip-Flops durch Reduktion der Zustände. Zust. mit gleicher Ausgabe und gleichen Folgezust. zusammenfassen. Zustandsdiagramm eines Moore-Automaten: Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 77
C.8.5 Zustandsoptimierung bei einem Mealy-Automaten Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 78
C.8.6 Zusammenfassung Schaltwerke Logische Ebene. Schaltwerke: sequentiell & zustandsbehaftet im Unterschied zu Schaltnetzen, Zustände in Flip-Flops speichern (RS, D, JK, T), asynchrone und synchrone Schaltwerke. Schaltwerkentwurf Moore-Automat (Ausgabe eines inneren Zustandes), Mealy-Automat (direkte und indirekte Ausgabe), systematischer Entwurf. Zustandsübergänge ansteuern: Gestützt auf alte Zustände in den FlipFlops und auf aktuelle Eingangswerte, Über ein (kombinatorisches) Schaltnetz. Ausgangssignale erzeugen mit einem kombinatorischen Schaltnetz. Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 79
Inhaltsverzeichnis für Kapitel C C. Sequentielle Logik...1 C.1. Einordnung...1 C.2. Abgrenzung Sequentielle Logik vs. Kombinatorische Logik...2 C.2.1 Rückgekoppeltes UND-Gatter...3 C.2.2 Rückgekoppeltes Oder-Gatter...4 C.2.3 Rückgekoppeltes NOR-Gatter...5 C.2.4 RS-Flip-Flop...7 C.2.5 Was tun wir nun angesichts des instabilen Verhaltens?...10 C.3. Asynchrone und synchrone Schaltwerke...14 C.3.1 Asynchrone Schaltwerke...14 C.3.2 Synchrone Schaltwerke...14 C.3.3 Getaktetes RS-Flip-Flop...15 C.3.4 Zeitverhalten des getakteten RS-Flip-Flops...16 C.3.5 Getaktetes RS-Flip-Flop im grösseren Schaltungkontext...17 C.3.6 Master-Slave-RS-Flip-Flop...18 C.3.7 Zeitverhalten des Master-Slave-RS-Flip-Flop (2)...19 C.3.8 Flankengetriggerte Flip-Flops...20 C.3.9 Mehrstufige Verarbeitung (Pipelining)...21 C.3.10 D-Flip-Flop...25 C.3.11 Register...27 C.3.12 JK-Flip-Flop...28 C.4. Typische Schaltwerke...30 C.4.1 Schieberegister...30 C.4.2 Schieberegister für Links- und Rechtsschiebe-Operationen...31 C.4.3 Asynchroner Zähler...32 C.4.4 Synchroner Zähler...34 Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 80
C.4.5 Einsatz von JK-Flip-Flops...35 C.4.6 Gesucht Schaltnetze zur Ansteuerung der Flip-Flops...36 C.4.7 Zustandsübergänge des Zählers...37 C.4.8 Schaltnetzentwurf...38 C.4.9 Schaltfunktionen insgesamt...39 C.5. Systematischer Schaltwerkentwurf...40 C.5.1 Entwurf von synchronen Schaltwerken mit internem Zustand...40 C.5.2 Beispiel 1: dreistelliger Binärzähler...41 C.5.3 Beispiel 2: Hochwassererkennung...42 C.5.4 Endlicher Automat zur Wasserstandsmessung...43 C.6. Typisierung v. Automaten - Moore-Automat...44 C.6.1 Mealy-Automat...45 C.6.2 Entwurfsschritte für einen Moore-Automaten...46 C.6.3 Entwurfsschritte für einen Mealy-Automaten...46 C.6.4 Moore-Automat für Hochwasser-Erkennung...47 C.6.5 Mealy-Automat für Hochwasser-Erkennung...52 C.7. Sequenzerkennung...56 C.7.1 Moore-Automat zur Sequenzerkennung...56 C.7.2 Mealy-Automat zur Sequenzerkennung...63 C.7.3 Vergleich zwischen Moore- und Mealy-Automaten...67 C.8. Auswahl bzw. Einfluss des Flip-Flop-Typs...68 C.8.1 T-Flip-Flops als Alternative...72 C.8.2 Alternative: D-FlipFlops...74 C.8.3 Pragmatik des FlipFlop-Typs...76 C.8.4 Reduktion von Zuständen...77 C.8.5 Zustandsoptimierung bei einem Mealy-Automaten...78 C.8.6 Zusammenfassung Schaltwerke...79 Technische Informatik 2 Winter 2008/09, P. Schulthess & F. Hauck, VS Informatik, Ulm C - 81