Gast
#1307484
moin moin bin grad auf der Suche nach einer final state machine, aber ich hab ned wirklich den Peil. Hat jemand ein gutes Tutorial oder sogar ein fertigen code für eine fsm? danke
|
Anzeige
|
Final State Machine
Gast
#1307484
moin moin bin grad auf der Suche nach einer final state machine, aber ich hab ned wirklich den Peil. Hat jemand ein gutes Tutorial oder sogar ein fertigen code für eine fsm? danke
Gast
#1307497
Probiers mal mit Google mit dem Begriff "Finite State Machine" statt "Final State Machine"
Gast
#1307499
ja des hab ich nach dem absenden auch gemerkt das ich final geschrieben hab. eigentlich sollte es finite state machine heißen (Finite State Machine == Automat) Versuch's doch mal so:
Man kann das in tausend Varianten implementieren.
Gast
#1307620
eine statemachine in vhdl wird dann z.b. so beschrieben :
...
signal state : std_logic_vector (3 downto 0);
...
process (clk, res)
begin
if res = '1' then
state <= X"0";
...
... weitere signale die resettet werden und in
... diesem prozess verwendet werden
...
elsif clk'event and clk = '1' then
case state is
when X"0" => if .... then
...
state <= X"..";
else
...
state <= X"..";
end if;
when X"1" => if .... then
state <= X"..";
...
else
state <= X"..";
...
end if;
when X"." => if .... then
state <= X"..";
...
else
state <= X"..";
...
end if;
when X"." => if .... then
state <= X"..";
...
else
state <= X"..";
...
end if;
when others => NULL;
end case;
end if;
end process;
so beschreibe ich immer statemachines in vhdl (wobei ich nicht bei
jedem-state ein if oder gar if-else statement habe. aber das ist ja die
implementierung der states selbst.
Solltest Du eine State Machine beschreiben wollen, welche besonders sicher gegen Störungen ist möchte ich Dir noch das Schlagwort "one hot encoding" ans Herz legen. Gruß B.B. > welche besonders sicher gegen Störungen ist möchte ich Dir noch das > Schlagwort "one hot encoding" ans Herz legen. Das Ziel von One-Hot codierten FSM ist nicht die Störfestigkeit. Besonders in dieser Disziplin sieht die One-Hot FSM ganz schlecht aus, denn es gibt (2^n)-n undefinierte Zustände. One-Hot wird auf FPGAs deshalb ganz gern implementiert, weil dann keine zusätzliche Logik zum ausdecodieren des aktuellen Zustands nötig ist. Denn jeder Zustand wird bereits durch ein einziges FF repräsentiert. Wie eine FSM implementiert wird, kann ich idR. einfach in den Syntheseeinstellungen der Toolchain auswählen. Ob undefinierte Zustände abgefangen werden, wird dann mit der Option Safe Implementation ausgewählt (Screenshot). Interessanter dürfte aber das Thema Ein- oder Zwei- (oder noch mehr) Prozess-Schreibweise von FSM sein. Das habe ich dort mal zusammengefasst: http://www.lothar-miller.de/s9y/categories/37-FSM-Schreibweisen EDIT: Siehe auch Beitrag "Typedefinition mit 3 Zustaenden" Hier klinke ich mich mal ein: Mir wäre es am liebsten, wenn man z.B. grafisch mit Knoten und Kanten die komplette FSM beschreiben (und vielleicht auch testen) könnte und dann daraus der passende Code (z.B. in C) generieren könnte. Das Ganze sollte also möglichst abstrahiert ablaufen. So etwas gibt es doch sicherlich. Vermutlich suche ich nur mit den falschen Begriffen :-( Chris D.
Gast
#1310306
Ja, sowas gibt es. Z.B. den FSM-Designer. Mehrere solcher Tools werden auf der englischen Wikipedia-Seite zu FSM verlinkt. http://en.wikipedia.org/wiki/Finite_state_machine Arghh, da habe ich natürlich nicht gesucht. Vielen Dank für den Hinweis - das ist genau das, was ich gesucht habe :-D Chris D. Lothar Miller schrieb:
> Das Ziel von One-Hot codierten FSM ist nicht die Störfestigkeit.
Habe mich diesbezüglich noch mal belesen - merci für die Info man lernt
nie aus....
Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|