Mit der Zustandskodierung wird den Zuständen des Automaten eine binäre Repräsentation zugeordnet. Dadurch können die Zustände durch eine Menge von Flipflops realisiert werden. Ziel der Zustandskodierung ist es, minimale Kosten zu erzielen. Für PLA-Realisierungen soll die Anzahl der Produktterme nach der zweistufigen Logikminimierung minimal sein, für mehrstufige Realisierungen die Anzahl der Literale in der faktorisierten Form.
Für die Kodierung kleiner Automaten gibt es drei Standardverfahren:
- Binäre Kodierung
- Gray-Kodierung
- One-Hot-Kodierung
Bei der binären Kodierung werden die Zustände binär durchnummeriert. Mit Flipflops lassen sich so Zustände kodieren. Dadurch wird eine minimale Anzahl von Flipflops verwendet, so dass wiederum geringe Kosten erreicht werden können.
Bei der Gray-Kodierung (auch einschrittige Kodierung genannt) werden den Zuständen Binärwerte derart zugeordnet, dass bei einem Zustandswechsel nur ein Flipflop seinen Wert ändert. Dadurch wird für die Setz- und Rücksetzvorgänge der Flipflops nur wenig Hardware benötigt.
Bei der One-Hot-Kodierung wird jeder Zustand durch ein Flipflop repräsentiert. Dadurch wird die Schaltung zunächst teuer, da viele Flipflops verwendet werden, aber man erwartet, dass für die Auswertung der Zustandsübergänge einfachere Schaltnetze ausreichen, da nur einzelne Zustandsbits ausgewertet werden müssen. Letzlich soll der Flächenaufwand stets minimal sein. Diese Kodierung bietet sich für FPGAs an, da viele Flipflops zur Verfügung stehen.
Für sehr wenige Zustände ist es möglich, sämtliche Kodierungen auszuprobieren, die Kosten der Realisierungen zu bestimmen und die günstigste auszuwählen. Für größere Automaten ist dies nicht mehr möglich. Dann werden heuristische Verfahren verwendet, um eine möglichst kostengünstige Kodierung zu finden.