bitGateLab Digital · Lernen
Deutsch
Simulator öffnen

Lernen › Thema 9

Latches und Flipflops: SR, D, JK und T Schritt für Schritt

7 Min. Lesezeit · bitGateLab-Team

Bisher hingen die Ausgänge deiner Schaltungen nur von den momentanen Eingängen ab. Um zu zählen, einen Datenwert zu speichern oder dir zu merken, bei welchem Schritt ein Ablauf gerade steht, brauchst du einen Speicher, und die kleinste Speicherzelle ist das Latch. Hier baust du ein Latch aus zwei Gattern auf, machst daraus ein flankengetriggertes Flipflop und lernst die Tabellen kennen, die du für den Entwurf von Zählern und Zustandsautomaten brauchst.

Das SR-Latch

Zwei NOR-Gatter, deren Ausgänge über Kreuz auf die Eingänge zurückgeführt sind, bilden ein SR-Latch. Die Rückkopplung erzeugt das Gedächtnis: Hat der Ausgang einmal einen Wert angenommen, hält er sich von selbst.

≥1 ≥1 R S Q Q̄
SR-Latch aus NOR-Gattern: Q = NOR(R, Q) und Q = NOR(S, Q). Eine Kreuzung ohne Punkt ist keine Verbindung.
SRNächstes QWirkung
00QHalten
010Reset
101Set
11—Verboten

Mit S = R = 1 liefern beide NOR-Gatter 0, Q und Q sind dann also nicht mehr komplementär. Schlimmer noch: Gehen danach beide Eingänge gleichzeitig auf 0, hängt der Endzustand davon ab, welches Gatter schneller ist. Deshalb ist diese Kombination verboten. Die charakteristische Gleichung, gültig unter der Bedingung S·R = 0, lautet Q+ = S + R·Q.

Mit NAND-Gattern erhält man das SR-Latch mit low-aktiven Eingängen: 11 hält, 01 setzt Q = 1, 10 setzt Q = 0, und 00 ist die verbotene Kombination (beide Ausgänge auf 1).

Das D-Latch: transparent, solange es freigegeben ist

Um die verbotene Kombination zu beseitigen, fügt man einen Freigabeeingang EN hinzu und erzeugt S = D·EN und R = D·EN. Da S und R nie gleichzeitig 1 sind, verschwindet das Problem. Das Verhalten ist einfach:

Die Transparenz ist die Schwäche des Latches. Verbindest du den Ausgang eines Latches über Logik mit seinem eigenen Eingang, kann das Signal, solange EN = 1 ist, mehrmals umlaufen, und das Ergebnis ist unvorhersehbar. Für synchrone sequenzielle Schaltungen braucht man etwas, das den Datenwert in einem einzigen Augenblick übernimmt.

Flankengetriggerte Flipflops

Ein D-Flipflop, das auf die steigende Flanke getriggert wird, übernimmt D nach Q ausschließlich in dem Augenblick, in dem der Takt von 0 auf 1 wechselt. Die übrige Zeit ignoriert es D. Man baut es aus zwei hintereinandergeschalteten D-Latches (Master und Slave) mit entgegengesetzten Freigaben auf: Solange der Takt auf 0 liegt, folgt der Master D, und der Slave ist gesperrt; steigt der Takt, sperrt der Master, und der Slave gibt den übernommenen Wert an den Ausgang weiter. Seine Gleichung ist die einfachste: Q+ = D.

Ausgehend vom Grund-Flipflop definiert man zwei weitere Typen, die im Entwurf häufig verwendet werden:

JKQ+Wirkung
00QHalten
010Reset
101Set
11QToggeln

Beispiel: Ein JK-Flipflop startet bei Q = 0 und erhält fünf Flanken mit (J, K) = (1,0), (0,0), (1,1), (0,1), (1,1). Wende bei jeder Flanke Q+ = J·Q + K·Q an:

  1. (1,0), Q = 0: 1·1 + 1·0 = 1.
  2. (0,0), Q = 1: 0·0 + 1·1 = 1 (hält).
  3. (1,1), Q = 1: 1·0 + 0·1 = 0 (toggelt).
  4. (0,1), Q = 0: 0·1 + 0·0 = 0.
  5. (1,1), Q = 0: 1·1 + 0·0 = 1 (toggelt).

Folge von Q nach jeder Flanke: 1, 1, 0, 0, 1.

Anregungstabellen

Die charakteristische Tabelle beantwortet die Frage „Wohin geht Q bei gegebenen Eingängen?“. Für den Entwurf braucht man die umgekehrte Frage: „Q soll von diesem Wert auf jenen wechseln, welche Eingänge lege ich an?“. Das ist die Anregungstabelle, und du wirst sie bei jedem Zähler und jedem Zustandsautomaten verwenden.

Q → Q+DTJ KS R
0 → 0000 X0 X
0 → 1111 X1 0
1 → 001X 10 1
1 → 110X 0X 0

Die X beim JK sind der Grund, warum dieses Flipflop meist kürzere Gleichungen liefert: Für den Wechsel von 0 auf 1 ist es egal, ob K gleich 0 (Set) oder 1 (Toggeln) ist, und diese Freiheit nutzt man im Karnaugh-Diagramm aus.

Setup-Zeit, Hold-Zeit und maximale Frequenz

Ein reales Flipflop verlangt, dass D eine gewisse Zeit vor der Flanke stabil ist, die Setup-Zeit (tsu), und eine gewisse Zeit danach stabil bleibt, die Hold-Zeit (th). Ändert sich D innerhalb dieses Fensters, kann der Ausgang eine Weile auf einem Zwischenpegel verharren, bevor er sich entscheidet: Das ist die Metastabilität. Außerdem braucht der Ausgang nach der Flanke eine Verzögerungszeit tCQ, bis er sich ändert.

In einer synchronen Schaltung verlässt das Signal ein Flipflop, durchläuft kombinatorische Logik und erreicht das nächste. Die minimale Taktperiode ist:

Tmin = tCQ + tLogik + tsu

Beispiel: tCQ = 15 ns, der längste kombinatorische Pfad braucht 20 ns und tsu = 5 ns.

Tmin = 15 + 20 + 5 = 40 ns, also fmax = 1 / 40 ns = 25 MHz.

Für die Hold-Zeit betrachtet man den kürzesten Pfad: Ist das minimale tCQ gleich 5 ns und liegt zwischen zwei Flipflops keine Logik, kommt der neue Datenwert 5 ns nach der Flanke an. Mit th = 3 ns ist die Bedingung erfüllt, denn 5 ns ≥ 3 ns.

Die Setup-Zeit begrenzt die Frequenz und lässt sich durch einen langsameren Takt einhalten. Die Hold-Zeit hängt nicht von der Frequenz ab: Wird sie verletzt, versagt die Schaltung selbst bei sehr niedriger Geschwindigkeit.

Häufige Fehler

Probiere es im Simulator aus

Den Unterschied zwischen Latch und Flipflop sieht man in einem Zeitdiagramm sofort. Baue beide auf und speise sie mit demselben Signal.

  1. Platziere zwei NOR-Gatter und verbinde den Ausgang jedes Gatters mit einem Eingang des anderen; füge die Eingänge S und R und zwei LED-Anzeigen hinzu.
  2. Schalte S und R um, um die vier Zeilen der Tabelle zu überprüfen, auch die verbotene, und beobachte, dass Q und Q dann gleichzeitig 0 sind.
  3. Platziere ein D-Latch und ein D-Flipflop und schließe an beide denselben Dateneingang und dasselbe Takt- bzw. Freigabesignal an.
  4. Öffne das Zeitdiagramm und ändere D mehrmals, während der Takt auf 1 liegt: Das Latch folgt den Änderungen, und das Flipflop übernimmt nur den Wert an der steigenden Flanke.
  5. Wiederhole das mit einem JK-Flipflop mit J = K = 1 und beobachte, dass sein Ausgang die halbe Taktfrequenz hat.

Übungen

  1. Ein T-Flipflop startet bei Q = 1 und erhält bei vier Flanken T = 1, 1, 0, 1. Welche Werte nimmt Q an?
    Lösung

    Q+ = T ⊕ Q: 1⊕1 = 0, 1⊕0 = 1, 0⊕1 = 1, 1⊕1 = 0. Folge: 0, 1, 1, 0.

  2. Welche Werte von J und K brauchst du, damit ein Flipflop von Q = 1 auf Q = 0 wechselt?
    Lösung

    J = X, K = 1. Mit K = 1 und J = 0 erfolgt ein Reset; mit J = K = 1 wird getoggelt. Beide Möglichkeiten bringen Q auf 0.

  3. Gegeben sind tCQ = 12 ns, tsu = 4 ns und eine gewünschte Frequenz von 40 MHz. Wie lange darf die Logik zwischen den Flipflops höchstens brauchen?
    Lösung

    T = 1 / 40 MHz = 25 ns. tLogik ≤ 25 − 12 − 4 = 9 ns.

  4. Schreibe die Gleichung für D so auf, dass sich ein D-Flipflop wie ein JK verhält.
    Lösung

    D = J·Q + K·Q, das ist die charakteristische Gleichung des JK.

Mit diesen Bausteinen kannst du nun zu den Zählern und Schieberegistern und danach zu den Zustandsautomaten übergehen.