Statemachines
Transcription
Statemachines
Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA State Machines Marc Reichenbach und Michael Schmidt Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/11 1 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Gliederung Endliche Automaten Automaten Synthese FSM Beschreibung in VHDL FSM Abbildung auf FPGA Ressourcen 2 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Endliche Automaten • FSM (Finite State Machines) • Realisierung zyklischer Funktionsabläufe • Synchronisierung von Systemkomponenten (Steuerwerke) • verschiedene Varianten (Moore, Mealy, Medvedev ) mit spezifischen Vor- und Nachteilen 3 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Moore Automat • Synchrones Schaltwerk • Schematische Darstellung: • besteht aus • zwei kombinatorischen Komponenten transition logic und output logic • einer sequentiellen Komponente state memory 4 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Moore Automat • Ausgabe eines Moore Automaten abhängig von Funktion O = FMoore (S), also nur vom aktuellen Zustand • Folgezustand S + abhängig von Eingabe und aktuellem Zustand, d.h. S + = FMoore (I , S) • Zustandsspeicher wird mit n DFFs realisiert → demnach 2n Zustände codier- und speicherbar 5 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Mealy Automat • Synchrones Schaltwerk (aber mit kombinatorischem Pfad!!!) • Schematische Darstellung: • besteht aus • zwei kombinatorischen Komponenten transition logic und output logic • einer sequentiellen Komponente state memory 6 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Mealy Automat • Folgezustand S + abhängig von Eingabe und aktuellem Zustand, d.h. S + = FMealy (I , S), wie bei Moore Automat • Ausgabe eines Mealy Automaten abhängig von Funktion O = FMoore (I , S), also neben aktuellem Zustand auch von der aktuellen Eingabe • Ausgabe ändert sich asynchron mit Änderung der Eingabe (komb. Pfad) → Mealy kann zu komb. Schleifen in Gesamtschaltung führen, deshalb Moore meist bevorzugt 7 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Medvedev Automat • Synchrones Schaltwerk mit taktsynchroner Ausgabe • Schematische Darstellung: • besteht aus • einer kombinatorischer Komponente transition logic • einer sequentiellen Komponente state memory 8 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Medvedev Automat • Folgezustand S + abhängig von Eingabe und aktuellem Zustand, d.h. S + = FMedvedev (I , S), wie bei Moore und Mealy • Ausgabe eines Medvedev Automaten entspricht aktueller Zustandcodierung, d.h. O = S • dafür ist spezielle Zustandscodierung für Medvedev erforderlich → überlicherweise mehr DFFs für Zustände benötigt, aber Ausgabe direkt aus DFFs (taktsynchron) 9 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Darstellungs-Form: Diagramm • für grafische Veranschaulichung eines Automaten • Zustände des Automaten mit Kreisen dargestellt • Zustandsübergänge mit Pfeilen gekennzeichnet, Bedingungen an den Pfeilen • wichtig: Markierung des Startzustandes • Zuweisung der Ausgaben vom Automatentyp abhängig • Moore/Medvedev: Ausgaben in den Zustandskreis • Mealy: Ausgaben an zugehörige Pfeile 10 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Darstellungs-Form: Diagramm • Beispiel Moore und Mealy Diagramm 11 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Darstellungs-Form: Tabelle und Synthese • Tabellen wichtig für Automaten-Synthese • 1.) binäre Codierung der Ein- u. Ausgaben sowie der Zustände → jedes Zustandsbit wird später mit einem DFF realisiert • 2.) Aufstellen der Zustandsübergangs-Tabelle und der Ausgabe-Tabelle • 3.) Minimierung (optional) • 4.) Ableiten der DNFs für Schaltnetz-Realisierung 12 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Darstellungs-Form: Tabelle und Synthese • Beispiel-Tabellen für Moore und Mealy 13 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Darstellungs-Form: Tabelle und Synthese • Ableitung der DNFs für Zustandsübergangs-Schaltnetz 14 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Darstellungs-Form: Tabelle und Synthese • Ableitung der DNFs für Ausgabe-Schaltnetz 15 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Darstellungs-Form: Tabelle und Synthese • Resultierende Schaltungen 16 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Darstellungs-Form: Tabelle und Synthese • für Moore-Beispiel wurde Medvedev-Automat realisiert, da O = S1 • für Ausgabe-Schaltnetz des Mealy-Automaten kann Übergangs-Schaltnetz wiederverwendet werden, da O = S0+ • Mealy braucht weniger Zustände (im Allgemeinen), aber Nachteil des kombinatorischen Pfades zwischen Ein- und Ausgabe • deshalb Moore/Medvedev meist bevorzugt • Frage: Ist ein nach Folie 12 synthetisierter Automat ressourcen-minimal? 17 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Beschreibungsformen in VHDL • verschiedene Möglichkeiten in VHDL einen Zustandsautomaten zu modellieren • Beispiel: manuelle Synthese • Tabellen aufstellen und DNFs ableiten gemäß Folie 12 • DNFs als Schaltnetz mit Datenflussbeschreibungen modellieren • DFFs in VHDL beschreiben für Modellierung der Zustandsbits • Problem: bei größeren Automaten sehr zeitintensiv und unübersichtlich 18 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Beschreibungsformen in VHDL • Beschreibung in VHDL deshalb im Hilfe kombinatorischer und taktsynchroner Prozesse • Ein-Prozess Beschreibung • ein taktsynchroner Prozess mit Beschreibung des Automaten • Syntheseergebnis ist Netzliste mit booleschen Gattern und DFFs • Vorteil: Ausgaben sind immer taktsynchron (zusätzliche Register automatisch integriert) • Nachteil: unübersichtlich, keine klare Trennung zwischen komb. und taktsynchronen Schaltungsteilen 19 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Beschreibungsformen in VHDL • Zwei-Prozess Beschreibung • besteht aus einem taktsynchronem Prozess für Realisierung von DFFs • sowie einem komb. Prozess zur gemeinsamen Realisierung von Ausgabe- u. Übergangsschaltnetz • Vorteil: übersichtlicher, leichter erweiterbar 20 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Beschreibungsformen in VHDL • Drei-Prozess Beschreibung • besteht aus einem taktsynchronem Prozess für Realisierung von DFFs • sowie zwei komb. Prozessen zur getrennten Realisierung von Ausgabe- u. Übergangsschaltnetz • Vorteil: übersichtlichste Beschreibung • im XST User Guide empfohlen für Realisierung auf Xilinx FPGAs 21 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Beschreibungsformen in VHDL • Beispiel: Moore-Automat mit Drei-Prozess Beschreibung l i b r a r y ieee ; use i e e e . std_logic_1164 . a l l ; e n t i t y moore i s port ( clk , reset , enable : in std_logic ; i : in std_logic ; o : out s t d _ l o g i c ) ; end moore ; a r c h i t e c t u r e b e h a v i o r o f moore i s −− a two b i t v e c t o r i s r e q u i r e d f o r t h e r e a l i z a t i o n −− o f t h r e e s t a t e s ( f o r t h e e x a m p l e b e f o r e ) s i g n a l s t a t e , n e x t _ s t a t e : s t d _ l o g i c _ v e c t o r ( 1 downto 0 ) ; begin ... 22 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Beschreibungsformen in VHDL • Taktsynchroner Prozess zur Realisierung der DFFs ... STATE_MEM: p r o c e s s ( c l k , r e s e t ) begin i f r e s e t = ’ 1 ’ then s t a t e <= " 00 " ; e l s i f c l k ’ e v e n t and c l k = ’ 1 ’ then i f e n a b l e = ’ 1 ’ then s t a t e <= n e x t _ s t a t e ; end i f ; end i f ; end p r o c e s s ; ... 23 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Beschreibungsformen in VHDL • Kombinatorischer Prozess zur Realisierung der Ausgabe ... −− Ausgabe Moore n u r vom Z u s t a n d a b h a e n g i g OUTPUT_DECODE: p r o c e s s ( s t a t e ) begin i f s t a t e = " 00 " then o <= ’ 0 ’ ; e l s i f s t a t e = " 01 " then o <= ’ 0 ’ ; e l s i f s t a t e = " 10 " then o <= ’ 1 ’ ; else o <= ’ 0 ’ ; end i f ; end p r o c e s s ; ... 24 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Beschreibungsformen in VHDL • Kombinatorischer Prozess zur Realisierung der Zustandsübergänge ... TRANSITION_LOGIC : p r o c e s s ( s t a t e , i ) begin n e x t _ s t a t e <= s t a t e ; −− d e f a u l t t o a v o i d l a t c h e s case ( s t a t e ) i s when " 00 " => i f i = ’ 1 ’ then n e x t _ s t a t e <= else n e x t _ s t a t e <= end i f ; when " 01 " => i f i = ’ 1 ’ then n e x t _ s t a t e <= else n e x t _ s t a t e <= end i f ; " 01 " ; " 00 " ; " 10 " ; " 00 " ; ... 25 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Beschreibungsformen in VHDL ... when " 10 " => i f i = ’ 1 ’ then n e x t _ s t a t e <= " 10 " ; else n e x t _ s t a t e <= " 00 " ; end i f ; when o t h e r s => n e x t _ s t a t e <= " 00 " ; end c a s e ; end p r o c e s s ; end b e h a v i o r ; 26 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Abbildung auf Spartan3E • Abbildung kann durch Synthese-Optionen beeinflusst werden 27 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Abbildung auf Spartan3E • wichtige Synthese Optionen vorallem Zustandscodierung (FSM Encoding Algorithm) und Abbildungsoption (FSM Style) • RTL Schematic für Moore Beispiel mit User Codierung • Ergebnis wie erwartet (entspricht manueller Synthese) 28 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Abbildung auf Spartan3E • ABER: RTL Schematic für Moore Beispiel mit Auto Codierung • Synthese Ergebnis verbessert → wie ??? 29 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Abbildung auf Spartan3E • Analyse des Synthese Reports 30 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Abbildung auf Spartan3E • Synthese-Tool ändert Zustandscodierung während Optimierungsschritt • anstatt S2 = ”10” wird S2 = ”11” gesetzt • Gray Codierung führt für dieses Beispiel zu minimalem Ressourcenverbrauch • aufgrund Synthese-Tool Optimierung ist manuelle Synthese deshalb meist überflüssig 31 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Abbildung auf Spartan3E • wird FSM Style auf LUT gesetzt, erfolgt Abbildung auf LUTs und DFFs 32 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA FSM Abbildung auf Spartan3E • alternativ kann ein Zustandsautomat auch direkt als Wahrheitswerttabelle realisiert werden • mit FSM Style auf Bram, erfolgt Abbildung auf Ramb16 Komponenten 33 / 34 Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA Literatur Bücher • VHDL-Synthese, Jürgen Reichardt, Bernd Schwarz, 5. Auflage, Oldenbourg Wissenschaftsverlag GmbH, 2009, ISBN 978-3-486-58987-0 Springer-Verlag Berlin Heidelberg, 1999, ISBN 3-540-64310-9 • XST User Guide, UG627 (v12.4), December, 2010 34 / 34