Gast
#865495
Hallo.
Ich möchte eine FSM auf bestimmte Werte eines einfachen Counters
schalten. Dazu habe ich folgenden code:
type State is (S0, S1, S2);
signal Current_State, Next_State: State;
Counter: Process (reset, clk)
begin
if reset ='1' then
counter <= "00000";
Current_State <= S0;
elsif rising_edge(clk)then
counter <= counter + '1';
if counter = "10100" then -- 20
Current_State <= Next_State;
counter <= "00000";
end if;
case counter is
when "01001" => Current_State <= Next_State;
when "10011" => Current_State <= Next_State;
when "10100" => Current_State <= Next_State;
when others =>
end case;
end if;
end process ;
Bei der Simulation passiert aber gar nichts, die FSM bleibt konstant auf
S0. Ich habe es auch schon mit dem IF statement versucht, aber auch das
funktioniert nicht. Warum ist das so, kann ich eine FSM so nicht
schalten?