Ich versuche auch zu beantworten, wenn es denn jeder Mensch Code schwer ist, wie er und in Abhängigkeit von der Bedingung mag, wo die Hardware (Frequenz, externe Pfade, ...) arbeiten muss.
In einer Zustandsmaschine haben Sie einige Elemente:
- die Eingänge
- die Ausgänge
- den aktuellen Stand
- der nächste Zustand
Der nächste Zustand von aktuellen Zustand abhängig und Eingaben. Um keine kombinatorischen Schleifen zu haben, müssen Sie den nächsten Zustand des Ereignisses eines Taktsignals abtasten, so dass es zum aktuellen Zustand wird. Sie benötigen also einen VHDL-Prozess, um das Flip-Flop für den Zustand zu erstellen. In diesem Prozess können Sie alle Logik setzen, die Sie benötigen, um den nächsten Zustand zu berechnen. Wenn Ihre Ausgaben nur vom Status abhängen, benötigen Sie keine anderen Prozesse.
Ich mag es nicht, in den gleichen Prozess kombinatorische Logik zu setzen, wenn die Logik nicht sehr einfach ist (Ich mag es, aber es ist nicht obligatorisch!), So normalerweise spalte ich die FSM in zwei Prozess: eine erste sehr einfach Prozess, der den nächsten Zustand abtastet, um den aktuellen Zustand zu haben, und einen kombinatorischen Prozess, bei dem ich alle Ausgänge und den nächsten Zustand als Funktion der Eingänge und des aktuellen Zustands berechne.
In den gleichen Fällen müssen die Ausgänge abgetastet werden: Zum Beispiel müssen Sie bei Frequenzproblemen die internen Pfade von externen trennen oder wenn die Ausgänge eine große Last haben. In diesem Fall können Sie alle erforderlichen Flip-Flops im ersten Prozess hinzufügen, in dem Sie den nächsten Status abfragen oder einen oder mehrere dedizierte Prozesse erstellen.
Aber Sie können auch viele Varianten als Anzahl von Prozess haben: Ich arbeitete in einem Code, wo jedes Signal in einem dedizierten Prozess berechnet wird, so dass die resultierende Zustandsmaschine 20/30 Prozess hatte.
Das XST PDF von Xilinx zeigt Beispiele von 1,2 und 3 Prozess-FSMs (seltsamerweise nur eine von zwei Varianten des 2-Prozesses). Es ist zum Teil ein Mealy-Moore-Problem und zum großen Teil persönliche Vorliebe oder Auswendiglernen. Diejenigen mit einer analytischen Neigung könnten auf die Implikationen der in Sensitivitätslisten vorhandenen Elemente achten. – user1155120
@DavidKoontz Was wäre die 2. Variante der 2-Prozess-FSM? Ein Prozess für das Staatsregister und ein Prozess für alles andere? – rick
Das XST pdf ist eine nette Referenz, danke. @DavidKoontz –