Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Eingebettet

Vergleich von Binär-, Gray- und One-Hot-Codierung

Dieser Artikel zeigt einen Vergleich der Implementierungen, die sich aus der Verwendung von Binär-, Gray- und One-Hot-Kodierungen zur Implementierung von Zustandsautomaten in einem FPGA ergeben. Diese Codierungen werden oft von den Synthese- und Implementierungstools ausgewertet und angewendet, daher ist es wichtig zu wissen, warum die Software diese Entscheidungen trifft.

Finite State Machines (FSMs) sind ein weit verbreiteter Bestandteil fast jedes digitalen Systems. Aus diesem Grund untersuchen Synthesetools Ihren Code häufig, um FSMs zu erkennen und Optimierungen durchzuführen, die die Codierung der Zustände ändern können. Es spielt keine Rolle, ob Sie die Werte, die Ihre Zustände in Ihrem Quellcode implementieren, sorgfältig ausgewählt und angegeben haben, das Synthesetool kann diese Werte durch andere ersetzen, die möglicherweise sogar eine andere Bitlänge als Ihre ursprüngliche Codierung haben.

Wenn Sie die Implementierung von Zustandsautomaten in Verilog auffrischen möchten, sollten Sie meinen Artikel mit dem Titel Create Finite State Machines in Verilog lesen.


Codierung von Zuständen:Gray vs. Binary vs. One-Hot

Die drei beliebtesten Codierungen für FSM-Zustände sind Binär, Gray und One-Hot.

Binäre Kodierung

Die binäre Codierung ist die unkomplizierte Methode, die Sie intuitiv verwenden können, wenn Sie Ihren Zuständen sequentiell Werte zuweisen. Auf diese Weise verwenden Sie so wenig Bits wie möglich, um Ihre Zustände zu codieren.

Ein Beispiel für One-Hot-Codierung. Bild von Steve Arar

Graue Kodierung

Gray-Code besteht aus einer Sequenz, bei der sich nur ein Bit zwischen einem Wert und dem nächsten ändert. Zusätzlich zur Verwendung der minimalen Anzahl von Bits minimiert diese Codierung den dynamischen Stromverbrauch, wenn die Reihenfolge der Zustände optimal befolgt wird.

Das Gray-Code-Rad. Bild von Marie Christiano

One-Hot-Encoding

Schließlich besteht die One-Hot-Codierung darin, ein Bit zu verwenden, das jeden Zustand repräsentiert, so dass zu jedem Zeitpunkt ein Zustand in dem Bit, das den aktuellen Zustand repräsentiert, als 1 und in allen anderen Bits als 0 codiert wird. Dies mag aufgrund der Anzahl der verwendeten Bits und der übermäßigen Anzahl ungültiger Zustände zunächst nicht sehr effizient erscheinen. One-Hot-Encoding ist jedoch sehr gut, um die Stimulus-Logik für die Flip-Flops zu vereinfachen, da die Zustände nicht dekodiert werden müssen. Die Bits sind die Staaten.

Ein Beispiel für One-Hot-Codierung. Bild von Steve Arar

Weitere Informationen zu Zustandscodierungen finden Sie im Artikel Encoding the States of a Finite State Machine in VHDL von Steve Arar.

Welche Kodierung ist die beste?

Dies ist eine schwierige Frage, vor allem, weil jede Codierung ihre Vor- und Nachteile hat. Es handelt sich also um ein Optimierungsproblem, das von einer Vielzahl von Faktoren abhängt.

Nun, all diese Behauptungen sind nur fundierte Vermutungen, und das Finden der optimalen Zustandszuordnung ist ein kompliziertes Problem. Aus diesem Grund ist mein offizieller Rat, den Compiler für Sie entscheiden zu lassen. Trotzdem habe ich beschlossen, die Ergebnisse dieser drei Codierungen in drei verschiedenen Entwicklungstools und drei verschiedenen Zustandsautomaten zu vergleichen.

Im nächsten Artikel besprechen wir die Ergebnisse meiner Experimente.


Eingebettet

  1. Vergleich von Stahl der Serien 300, 400 und 500
  2. Oktale und hexadezimale Numerierung
  3. Binäre Addition
  4. Binäre Subtraktion
  5. Strukturen und Klassen in C++
  6. Vergleich von Six Sigma und Lean Manufacturing
  7. Welchen Kodierungstyp sollte ich verwenden? Beispiel-FPGA-Anwendungen
  8. Morsecode und doppelte Erpressung:Der Stand der Malware heute
  9. Brandschutz für EDM- und CNC-Maschinen:Vergleich Ihrer Optionen
  10. Eigenschaften und Qualitäten von Grauguss erklärt