Endliche Zustandsautomaten designen: Vom Konzept zur Implementation
Bisher haben wir uns auf kombinatorische Logik konzentriert, wo Ausgänge ausschließlich von aktuellen Eingängen abhängen. In vielen realen Anwendungen müssen Schaltungen eine Erinnerung an vergangene Eingänge behalten und ihre Ausgänge entsprechend anpassen. Solche Schaltungen werden als sequentielle Schaltungen bezeichnet.
Dieser Artikel führt durch den End-to-End-Prozess des Designs einer sequentiellen Schaltung, illustriert an einem praktischen Beispiel: einem digitalen Quiz-Spiel, das bei jedem Tastendruck einen einzelnen-Taktzyklus-HIGH-Impuls erzeugen muss.
Schritt 1 – Anforderung definieren
Beginnen Sie mit der Formulierung des gewünschten Verhaltens in natürlicher Sprache:
„Wir benötigen eine sekundäre Schaltung, die für einen Taktzyklus einen einzelnen HIGH-Impuls ausgibt, wenn der Taster gedrückt wird, und weitere Drücke ignoriert, bis der Taster losgelassen und erneut gedrückt wird.“
Schritt 2 – Zustandsdiagramm zeichnen
Das Zustandsdiagramm visualisiert den Betrieb der Maschine. Jeder Kreis repräsentiert einen Zustand, während Pfeile Übergänge anzeigen, die durch den Eingang jedes Taktzyklus ausgelöst werden. Das untenstehende Diagramm ist ein Moore-Endlicher-Zustandsautomat, bei dem der Ausgang nur vom aktuellen Zustand abhängt.

Zustandsbeschreibungen:
- Standby – initialer Wartezustand.
- Puls aktivieren – erzeugt den HIGH-Ausgang.
- Warteschleife – hält LOW-Ausgang, bis der Taster losgelassen wird.
Die Pfeile sind mit dem Eingabewert beschriftet, der den Übergang auslöst. Beispielsweise bewegt ein '1'-Eingang vom Standby-Zustand in den Puls-aktivieren-Zustand; eine '0' hält ihn im Standby.
Schritt 3 – Zustände binär kodieren
Weisen Sie jedem Zustand Binärcodes zu, beginnend mit 0 für den Initialzustand. Die untenstehende Kodierung verwendet zwei Bits, ausreichend für die drei Zustände.

Schritt 4 – Zustands-Tabelle erstellen
Die Zustands-Tabelle listet alle Kombinationen von aktuellem Zustand und Eingang auf, zusammen mit nächstem Zustand und Ausgang. Spalten entsprechen aktuellen Zustandsbits, Eingangsbits, nächsten Zustandsbits und Ausgangsbits. Für dieses Beispiel ist die Tabelle unten gezeigt.

Wichtige Punkte:
- Jede Zeile deckt jede mögliche Binärkombination von Zustand und Eingang ab.
- Zeilen, die nicht existierenden Zuständen entsprechen, werden mit Don't-Care (X) markiert.
- Die Ausgangsspalte reflektiert den Moore-Ausgang, unabhängig vom Eingang.
Schritt 5a – Vorbereitung für D-Flip-Flop-Implementation
Zur Implementation der Maschine verwenden wir typischerweise Flip-Flops. Für ein D-Flip-Flop ist der Eingang, der zum Erreichen des nächsten Zustands erforderlich ist, einfach der nächste Zustandswert selbst. Erweitern Sie die Zustands-Tabelle um eine Spalte für jeden D-Eingang.

Schritt 5b – Vorbereitung für JK-Flip-Flop-Implementation
Wenn ein JK-Flip-Flop gewählt wird, werden zwei Spalten (J und K) pro Flip-Flop hinzugefügt. Ihre Werte werden aus der JK-Erregungstabelle abgeleitet:

Beispiel-Mapping: Für den Übergang von 0 zu 1 setzen Sie J=1 und K=X (Don't-Care).

Schritt 6 – Boolesche Funktionen via Karnaugh-Diagramme ableiten
Nutzen Sie Karnaugh-Diagramme, um die Ausdrücke für jeden Flip-Flop-Eingang und für den Ausgang zu vereinfachen. Die untenstehenden Karten illustrieren den Prozess für beide D- und JK-Implementationen.
D-Flip-Flop-Eingänge:

JK-Flip-Flop-Eingänge:


Ausgangsfunktion:


Schritt 7 – Physische Schaltung aufbauen
Mit den Booleschen Gleichungen in der Hand bauen Sie die Schaltung mit Flip-Flops und Logikgattern zusammen. Denken Sie daran, den Takt an alle Flip-Flops anzuschließen. Das fertige D-Flip-Flop-Design ist unten gezeigt.

Die JK-Flip-Flop-Version sieht so aus:

Einmal zusammengebaut, wird die Schaltung für jeden Tastendruck einen sauberen Ein-Taktzyklus-HIGH-Impuls erzeugen, unabhängig davon, wie lange der Taster gedrückt gehalten wird.
Kernaussagen
- Sequentielle Logik behält Erinnerung an vergangene Eingänge, was dynamisches Verhalten ermöglicht.
- Endliche Zustandsautomaten bieten einen rigorosen Rahmen für die Modellierung solchen Verhaltens.
- Flip-Flops implementieren den FSM in Hardware, indem sie Zustandsübergänge in physische Ausgänge übersetzen.
- Ein systematischer Design-Flow – Anforderungen, Diagramm, Kodierung, Tabelle, Logiksynthese, Assembly – gewährleistet zuverlässige Schaltungen.
Industrietechnik
- Hysterese in Thyristoren: Wie positive Rückkopplung Latching ermöglicht
- Die Evolution der CNC-Maschinen: Vom 18. Jahrhundert bis KI-gesteuerter Präzision
- CNC-Maschinen: Produktion steigern, Kosten senken, Präzision sichern
- 15 Wichtige Fräsmaschinen-Typen für Präzisionsmetallbearbeitung
- Bestandsmaschinen für Industrie 4.0 aufrüsten: Der Weg zum Erfolg
- Offsetdruckmaschinen: Überblick & Vorteile
- Fortschrittliche Flexodruckmaschinen: Vielseitige, hochwertige Lösungen
- Umfassender Leitfaden zu Präzisionsschleifmaschinen
- Vielseitige Fräsmaschinen: Fräsen, Bohren und mehr
- Bohrwerke meistern: Techniken, Anwendungen und Präzisionsbearbeitung