So wählen Sie zwischen Mealy und Moore State Machine

7

Ich kenne die grundlegenden Unterschiede zwischen Mealy und Moore FSM (Finite State Machine). Was ich verstehen möchte, ist Folgendes:

  • Vor- und Nachteile der Verwendung von Mealy gegenüber Moore und umgekehrt
  • In welcher Situation ist Moore besser geeignet als Mealy und umgekehrt

Die Vergleichszahlen können Latenz, Durchsatz, Fläche (Zustandscodierung von FFs), Leistung usw. sein.

nurabha
quelle
Hatten Sie Probleme, Informationen zu Mealy vs. Moore FSMs zu finden? Im Internet ist ziemlich viel verfügbar.
Travisbartley

Antworten:

8

Aus einer diskreten Logik- und HDL-Perspektive:

-Mehlige Maschinen haben (im Allgemeinen) weniger Zustände. Mehlige Maschinen ändern ihre Ausgabe basierend auf ihrer aktuellen Eingabe und ihrem aktuellen Zustand und nicht nur auf dem aktuellen Zustand. Weniger Zustände bedeuten jedoch nicht immer eine einfachere Implementierung.

-Mehrere Maschinen sind möglicherweise sicherer zu verwenden, da sie den Status an der Taktflanke ändern (wenn Sie die DFF-Logik für den aktuellen und den nächsten Status verwenden), während mehlige Maschinen schneller sind, da der Status von der Eingabe abhängt. Somit kann sich der Zustand asynchron ändern. Dies hängt von der Vorhersagbarkeit gegenüber der Rohgeschwindigkeit ab. Wenn es darauf ankommt, ist es schwierig, harte Linien zu zeichnen, bei denen eine Maschine immer besser wäre als die andere.

Es kommt wirklich auf die jeweilige Aufgabe an. Möchte man eine synchrone oder asynchrone Maschine haben? Ist Geschwindigkeit von größter Bedeutung? Wird es möglicherweise instabile (springende) Signale geben? Sind sowohl die Eingänge als auch der aktuelle Status verfügbar? Die Antwort auf jede dieser Fragen bestimmt den Maschinentyp, der am besten funktioniert.

Es ist erwähnenswert, dass Mealy-Maschinen für eine Hardware- Implementierung weniger Hardware in ihren Schaltkreisen benötigen. Wenn Sie jedoch mit einem HDL- und RTL-Szenario arbeiten, ist die tatsächliche Menge an diskreter Hardware möglicherweise nicht besonders wichtig.

Jay Greco
quelle
Obwohl eine Moore-Maschine nur Eingänge abtasten oder Ausgänge an Taktflanken ändern kann, würde ich denken, dass ein Mealy-Maschinendesign ähnlich hergestellt werden könnte. Während einige argumentieren könnten, dass solche Flops, die einer Mealy-Maschine hinzugefügt werden, einen Teil des "Zustands" der Zustandsmaschine darstellen würden, würde ich annehmen, dass es hilfreicher ist, die Zustandsmaschine so zu betrachten, dass sie nur diejenigen Zustandsaspekte umfasst, die von der Maschine und erzeugt werden Feedback geben. Beachten Sie, dass bei ROM-basierten Maschinen die Anwendung dieser Unterscheidung auf Eingangsflops kritisch sein kann, wenn die diese Flops speisenden Signale asynchron sind.
Supercat
Wenn zwischen einem asynchronen Signal und einem ROM-Adressstift nur ein einziges Flop vorhanden ist, kann die Metastabilität dieses einzelnen Flops den gesamten Systemzustand beschädigen, selbst wenn sein Wert in einem bestimmten Zeitschritt nur ein Zustandsbit für den nächsten Zeitschritt steuern sollte. Wenn der Eingang dagegen einen Flop speist, dessen Ausgang nur einen zweiten Flop speist, werden 99,9999% der Metastabilitätsereignisse auf dem ersten Flop vom zweiten sicher absorbiert.
Supercat
4

Jay deckte fast alles ab, um Ihre Frage zu beantworten. Ein "Vorteil" der Moore-Maschine besteht darin, dass sie in einer Nachschlagetabelle oder einem SRAM-Speicher implementiert werden kann. Wenn sich Ihre Implementierung auf einem FPGA befindet, sagen wir mal ... dies kann Ihnen manchmal die Entscheidung erleichtern.

BobLobLaw
quelle