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