Flipflop

Aus Informatik
Wechseln zu: Navigation, Suche

RS-Flipflop

Eine Schaltung zur Speicherung eines Binärzustandes muss in der Lage sein, einen zeitlich begrenzten Zustand am Eingang zu einem dauerhaften Ausgangszustand zu machen. Damit der Ausgangszustand auch nach dem Wegfall des Eingangszustandes weiterhin bestehen bleibt, muss er selbst auf einen Eingang zurückwirken können. Eine erste Versuchsschaltung könnte folgendermaßen aussehen:

This is supposed to be a flash animation. You'll need the flash plugin and a browser that supports it to view it.


Abbildung 28: ODER-Gatter mit Rückkopplung des Ausgangs auf einen Eingang
Bekommt S den Wert 1, nimmt der Ausgang Q ebenfalls den Wert 1 an und er behält ihn auch, wenn S den Wert 0 annimmt. Die Schaltung "merkt" sich also, dass einmal Q = 1 war. Diese Schaltung hat aber den Nachteil, dass sich das Ausgangssignal nicht mehr verändern lässt, d.h. es kann nicht wieder zurückgesetzt werden. Dazu wäre eine Unterbrechung der Rückführungsleitung notwendig. Um dies zu erreichen, trennen wir die Rückkopplungsleitung auf und fügen zum Rücksetzen einen Eingang R ein. Ferner bauen wir ein UND-Gatter ein, das im Fall R = 0 die 1 am Ausgang des ODER-Gatters durchlässt und im Fall R = 1 den Ausgang Q auf 0 zurücksetzt:

This is supposed to be a flash animation. You'll need the flash plugin and a browser that supports it to view it.


Abbildung 29: ODER-Gatter mit Unterbrechung der Rückkopplung durch eine Torschaltung
Die Schaltung lässt sich also von Q = 1 auf Q = 0 und zurück "kippen"; sie heißt daher Kippschaltung, oder auch - weil sie zwei stabile Zustände einnehmen kann - bistabiles Element bzw. Flipflop. Nun ist es üblich, einheitliche Bauelemente innerhalb eines Schaltnetzes / eines Schaltwerkes zu verwenden. Da Q := Ø R Ù (S Ú Q) zu Q := Ø (R Ú Ø (S Ú Q)) äquivalent ist, kann man das UND-Gatter auch durch ein NOR-Gatter ersetzen:

This is supposed to be a flash animation. You'll need the flash plugin and a browser that supports it to view it.



Abbildung 30: Flipflop aus NOR-Gattern
Nun ordnen wir die Gatter noch symmetrisch an und führen den Ausgang des zweiten NORGatters als Ausgang Ø Q = Q aus der Schaltung heraus. Ferner stellen wir die Forderung, dass die beiden Ausgänge Q und Ø Q stets unterschiedliche Werte haben. Damit bekommen wir folgende Schaltung: Abbildung 31: RS-Flipflop aus NOR-Gattern Mit S = 1, R = 0 lassen sich die Ausgänge auf Q = 1, Q = 0 bringen - gleichgültig, welche Werte sie vorher besaßen: Funktion Setzen (Set). Dieser Zustand bleibt auch erhalten, wenn nunmehr S = 0 wird: Funktion Speichern. Ist dagegen S = 1, R = 1, so werden Q und Q auf Null gezwungen, was unserer Forderung, dass die Ausgänge stets verschiedene Werte haben sollen, widerspricht. Diese Belegung bezeichnen wir als irregulär und suchen sie im Folgenden tunlichst zu vermeiden. Mit S = 0, R = 1 lassen sich die Ausgänge auf Q = 0, Q = 1 bringen - gleichgültig, welche Werte sie vordem besaßen: Funktion Rücksetzen (Reset). Dieser Zustand bleibt auch erhalten, wenn nunmehr R = 0 wird: Funktion Speichern. Auf Grund des beschriebenen Verhaltens heißt S der Setzeingang und R der Rücksetzeingang, und die Schaltung ein RS-Flipflop. Das geschilderte Verhalten fassen wir in folgender Funktionstabelle zusammen: Tabelle Das RS-Flipflop lässt sich auch durch einen endlichen Automaten darstellen, dessen Zustandsgraphen man aus der Tabelle entwickeln kann: Abbildung 32: Zustandsgraphen des RS-Flipflops Das RS-Flipflop ist also ein endlicher Automat mit der Eingabemenge {00,01,10,11} und zwei Zuständen, wobei ein Zustand Q = 0 und der andere Zustand Q = 1 darstellt. Die Ausgabemenge ist hier gleich der Zustandsmenge. Aus diesem Flipflop lassen sich nun zahlreiche weitere Flipfloptypen entwickeln; wir nennen es seiner grundlegenden Bedeutung wegen auch Grundflipflop. Das zugehörige Schaltsymbol ist nebenstehend abgebildet.

RS-Flipflop mit Taktsteuerung

Das Grundflipflop ist eine asynchrone Schaltung, d.h. ein Zustandswechsel erfolgt stets unmittelbar nach dem Eintreffen der Eingangssignale. Bei umfangreicheren Schaltungen kann es zu Störungen kommen, weil nicht alle Gatter genau gleichzeitig schalten. In solchen Fällen bevorzugt man die synchrone Arbeitsweise, bei der alle Speicherelemente von einem gemeinsamen Takt gesteuert werden, der die Flipflops synchronisiert. Dies geschieht mittels eines zusätzlichen Eingangs C (von engl.: clock = Uhr), der ein Taktsignal führt, welches den Zeitpunkt bestimmt, zu dem der Zustandswechsel erfolgen soll.Wir legen zu diesem Zweck vor die Eingänge des Grundflipflops ein Tor aus zwei UND-Gattern, das - vom Takt gesteuert - die an den Eingängen anliegenden Signale durchschaltet oder sperrt. Das liefert folgende Schaltung:

Takt.GIF

This is supposed to be a flash animation. You'll need the flash plugin and a browser that supports it to view it.


Gilt C = 1 (aktiver Taktzustand), sind die Eingänge R und S zum Grundflipflop durchgeschaltet. Ist jedoch C = 0 (passiver Taktzustand), liefern die beiden UND-Gatter den Wert 0, und Änderungen von R und S bleiben damit ohne Wirkung: die Eingänge R und S sind gesperrt.
Das taktzustandsgesteuerte RS-Flipflop hat obenstehendes Schaltsymbol. Zur Unterscheidung vom Takteingang C nennt man die Eingänge R und S auch Vorbereitungseingänge. Zusammenfassend stellen wir fest: Beim ungetakteten RS-Flipflop bestimmen die Vorbereitungseingänge R und S den Folgezustand und den Zeitpunkt des Zustandswechsels. Beim getakteten Flipflop legen die Vorbereitungseingänge den Folgezustand fest, der Übergangszeitpunkt wird jedoch vom Takteingang bestimmt.

D-Flipflop

Nun wollen wir die unzulässige Eingangsbelegung R = S = 1 durch eine geeignete Schaltung verhindern. Dabei gehen wir auch von der Überlegung aus, dass die Information oft nicht in der Form (S, R), sondern als binäres Datum D vorliegt. In der folgenden Schaltung ist der R-Eingang über einen Inverter mit dem S-Eingang, der jetzt D-Eingang heißt, verbunden; damit haben die beiden Eingänge stets entgegengesetzte Werte und die unzulässige Belegung R = S = 1 ist ausgeschlossen.

This is supposed to be a flash animation. You'll need the flash plugin and a browser that supports it to view it.


Ist im aktiven Taktzustand (C = 1) der Eingang D = 1, so wird Q = 1 gesetzt. Liegt dagegen D = 0 an, so wird das Flipflop zurückgesetzt (Q = 0). Solange der Takt im 1-Zustand ist, „rastet“ der Ausgang stets auf das Signal am D-Eingang ein, weshalb dieses Flipflop auch D-Latch (engl.: latch = Raste, Klinke) genannt wird. Im passiven Zustand (C = 0) bleibt der Wert von Q erhalten, er wird am Ausgang zur Weiterverarbeitung bereitgehalten. Das D-Flipflop gibt somit das Eingangssignal D stets um einen Takt verzögert weiter. Dieser Flipfloptyp heißt deshalb D-Flipflop (engl.: delay = Verzögerung). Um diese Arbeitsweise zu garantieren, darf sich das Signal am Dateneingang D nur während des passiven Taktzustandes (C = 0) ändern.