Zustand plus Regeln
Ein endlicher Automat ist jede sequentielle Schaltung, die aus genau zwei Teilen besteht: einem Zustandsregister — Flip-Flops, die festhalten, in welchem von endlich vielen Zuständen sich der Automat gerade befindet — und kombinatorischer Logik, die aus dem aktuellen Zustand und den aktuellen Eingängen den nächsten Zustand (und den Ausgang) berechnet. Bei jeder Taktflanke wird der Ausgang dieser Logik ins Register übernommen und wird so zum neuen aktuellen Zustand.
Moore-Automaten: Ausgang hängt nur vom Zustand ab
Bei einem Moore-Automaten ist der Ausgang ausschließlich eine Funktion des aktuellen Zustands — nie direkt der Eingänge. Das bedeutet, der Ausgang kann sich nur bei einer Taktflanke ändern, einen Takt nachdem der auslösende Eingang den Zustandswechsel verursacht hat, garantiert dafür aber einen glitchfreien Ausgang: Nichts, was der Eingang zwischen den Taktflanken tut, kann ihn flackern lassen.
Mealy-Automaten: Ausgang hängt von Zustand und Eingang ab
Der Ausgang eines Mealy-Automaten ist eine Funktion sowohl des aktuellen Zustands als auch des aktuellen Eingangs, sodass er noch im selben Takt reagieren kann, in dem sich der Eingang ändert — oft lässt sich dieselbe Aufgabe damit mit weniger Zuständen lösen. Der Preis: Ein Glitch am Eingang kann kurzzeitig auch den Ausgang stören, da zwischen Eingang und Ausgangslogik kein Flip-Flop sitzt.
Ein Zähler ist der einfachste Moore-Automat
Boolflows Block für den 4-Bit-Zähler ist bereits ein Moore-Automat — sein Zustand ist der Zählwert, und sein Ausgang ist genau dieser Zustand, ganz ohne separate Ausgangslogik. Um einen eigenen Automaten zu bauen, kombinieren Sie ein REG4 als Zustandsregister mit einem PLM-Block (oder gewöhnlichen Gattern), der aus dem aktuellen Registerwert den nächsten Zustand und den Ausgang berechnet, und verbinden Sie den PLM-Ausgang im Schaltungseditor zurück mit dem Registereingang.