Aufrufe
vor 4 Jahren

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL

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

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik In den Synthesewerkzeugen wird abhängig von der gewählten Zustandscodierung den Elementen des Aufzählungstyps von links beginnend eine aufsteigende Bitkombination zugeordnet. Der Entwickler kann damit unabhängig von seinem VHDL-Modell die vom Synthesewerkzeug vorgegebenen Codierungsalgorithmen ausprobieren. Alternativ kann in den VHDL-Modellen auch eine explizite Codierung erfolgen. Mit einer expliziten Codierungsvorgabe im VHDL-Modell wird die automatische Synthese des Synthesewerkzeugs umgangen und somit fest vorgegeben werden. Hierfür gibt es zwei Möglichkeiten: • Verwendung eines benutzerspezifischen Attributs, z.B. das Attribut ENUM_CODING des IEEE-Standards 1076.3. Beispiel: TYPE State_type IS (SO, S1, S2, S3); ATTRIBUTE ENUM_CODING : STRING; ATTRIBUTE ENUM_CODING OF State_Type : TYPE IS ’’00 01 10 11’’; SIGNAL CurrentState : State_Type; SIGNAL NextState : State_Type; Nach der Deklaration des Aufzählungstyps State_type mit den vier Zuständen S0 bis S3 wird zunächst das Attribut ENUM_CODING dem Namen und Typ nach für Aufzählungstypen deklariert. Die Werte des Attribut ENUM_CODING sind dadurch vom Typ String. Anschließend kann das deklarierte Attribut für den Aufzählungstyp State_type benutzt und dessen Werte festgelegt werden. Wie zu erkennen ist, erfolgt in diesem Beispiel eine binäre Zustandscodierung durch die Wahl der Bit-Strings ’’00 01 10 11’’. • Definition von Konstanten vom Typ eines Vektors, dessen Breite der Anzahl der Zustands- Flipflops entspricht. Beispiel: SUBTYPE State_type IS STD_LOGIC_VECTOR (3 DOWNTO 0); CONSTANT S0 : State_type := ’’0001’’; CONSTANT S1 : State_type := ’’0010’’; CONSTANT S2 : State_type := ’’0100’’; CONSTANT S3 : State_type := ’’1000’’; SIGNAL CurrentState : State_Type; SIGNAL NextState : State_Type; Nach der Deklaration des Subtyps State_type als std_logic_vector mit vier Elementen werden bei dieser expliziten Zustandscodierung zunächst die für eine One-Hot Codierung benötigten vier Konstanten deklariert. Danach werden wie sonst die Signale für den aktuellen Zustand und den Folgezustand vom Typ StateType deklariert. Bei dieser Codierungsvorgabe im VHDL-Modell erscheinen in der Simulation nicht mehr die symbolischen Zustandsnamen, sondern nur noch die vorgegebenen Bitkombinationen. VHDL-SYNTHESE 171

Hardwarebeschreibungssprachen - Integrated Circuits and Systems ...
Entwurf digitaler Schaltungen (F1) Modellbildung und ... - TU Clausthal
Klausur - Hardware-Entwurf / VHDL - Technik
Was ist VHDL? V: very high speed integrated circuit HDL hardware ...
Eine Einführung in die Schaltungsent- wicklung mit VHDL
FPGA-Einführung und Hardwareentwurf mit VHDL von ... - Technik
Schaltungsdesign mit VHDL
VHDL Kurzreferenz Aufbau eines VHDL Moduls Bibliotheken ...
VHDL Kurzbeschreibung - Homepage of www.emmelmann.org
VHDL - Grundelemente - Friedrich-Alexander-Universität Erlangen ...
VHDL -- Grundelemente - Friedrich-Alexander-Universität Erlangen ...
VHDL-Crash-Kurs (PDF) - Friedrich-Alexander-Universität Erlangen ...
VHDL-Grundlagen - Eingebettete Systeme - Goethe-Universität
VHDL-Grundlagen - Technische Informatik an der Universität Frankfurt
VHDL-Grundlagen - Technische Informatik an der Universität Frankfurt
VHDL -- Simulation - Friedrich-Alexander-Universität Erlangen ...
Entwicklung eines 8 Bit RISC Prozessors mit VHDL