Hardware-Entwurf mit VHDL
Hardware-Entwurf mit VHDL
Hardware-Entwurf mit VHDL
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Hardware</strong>-<strong>Entwurf</strong> <strong>mit</strong> <strong>VHDL</strong><br />
Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik<br />
6.5.4 Zustandscodierung<br />
In den bisherigen Modellen wurde für die Definition der Zustände ein Aufzählungstyp <strong>mit</strong> symbolischen<br />
Namen verwendet. Abhängig von der gewählten Zustandscodierung wird bei der FSM-Synthese<br />
den symbolischen Zuständen eine Bitrepräsentation zugeordnet, so dass die Zustände durch Bitkobinationen<br />
codiert werden können und der Zustandsspeicher durch Flipflops realisiert werden kann.<br />
Die Art der Zustandscodierung beeinflusst nicht das funktionale Verhalten des Automaten, wohl aber<br />
den <strong>Hardware</strong>verbrauch und die erreichbare Taktfrequenz. Wegen des Einflusses der Zustandscodierung<br />
auf den <strong>Hardware</strong>verbrauch und die Geschwindigkeit eines Automaten werden im folgenden gebräuchliche<br />
Zustandscodierungen, deren <strong>VHDL</strong>-Modellierung und deren Auswirkungen auf das Synthesergebnis<br />
näher behandelt.<br />
Varianten der Zustandscodierung:<br />
• Die binäre Zustandscodierung nummeriert die Zustände binär durch. Mit n Flipflops können 2 n<br />
verschiedene Zustände gespeichert werden. Mit dieser Codierung erreicht man eine minimale<br />
Anzahl an Flipflops. Für die Schaltnetze aber wird zusätzliche Logik benötigt.<br />
• Bei der einschrittigen Zustandscodierung nach dem Gray-Code werden die Zustände den<br />
Binärwerten so zugeordnet, dass sich bei Zustandsänderungen nur ein Zustandsbit ändert. Dies<br />
begünstigt kleinere Übergangsschaltnetze, da weniger Logik für das Setzen und Rücksetzen<br />
der Flipflops benötigt wird. Mit dieser Codierung erreicht man ebenfalls eine minimale Anzahl<br />
an Flipflops.<br />
• Die sog. One-Hot Codierung ordnet jedem Zustand ein eigenes Flipflop zu. Der Status eines<br />
Automaten wird so durch nur jeweils ein gesetztes Flipflop bestimmt. Automaten, die <strong>mit</strong> diesem<br />
Zustandscode generiert wurden, haben meistens die kleinsten Verzögerungszeiten, aber<br />
auch den größten Flächenverbrauch, da jeder Zustand ein eigenes Flipflop benötigt.<br />
Beispiel: Zustandscodierungen für vier Zustände<br />
Umsetzung der Zustandscodierung:<br />
Zustand Binär Gray One-Hot<br />
S0 00 00 0001<br />
S1 01 01 0010<br />
S2 10 11 0100<br />
S3 11 10 1000<br />
Tabelle 6.1: Binäre, Gray und One-Hot Zustandscodierung<br />
Die bisherigen <strong>VHDL</strong>-Modelle enthielten für die Zustandsdefinition etwa folgende Deklarationen:<br />
TYPE State_type IS (SO, S1, S2, S3);<br />
SIGNAL CurrentState : State_Type;<br />
SIGNAL NextState : State_Type;<br />
<strong>VHDL</strong>-SYNTHESE 170