R
Roger Dahl
Guest
Hi all,
I've just started playing around with VHDL and I'm having trouble
solving a particular problem.
I have two FSMs. FSM A is clocked at a slow speed and FSM B is clocked
at a fast speed. I would like FSM B to cycle through all its states
each time FSM A changes state. The states for each FSM is declared as
a type.
Is there a standard solution to this kind of problem?
One solution that I have been trying to implement involves having a
third process that sets a signal when FSM A changes state and clears
the signal when FSM B changes state. That signal would be used for
telling FSM B to start going.
I have tried to implement that process like this:
process(CurrentFSM_A_State, CurrentFSM_B_State)
begin
[if triggered by A, set signal. if triggered by B, clear signal]...
end process;
However, I am unable to determine within the process if it was
triggered by CurrentFSM_A_State or CurrentFSM_B_State. rising_edge()
etc doesn't work since the signals are types, not single signals.
Any help would be greatly appreciated.
Roger Dahl
I've just started playing around with VHDL and I'm having trouble
solving a particular problem.
I have two FSMs. FSM A is clocked at a slow speed and FSM B is clocked
at a fast speed. I would like FSM B to cycle through all its states
each time FSM A changes state. The states for each FSM is declared as
a type.
Is there a standard solution to this kind of problem?
One solution that I have been trying to implement involves having a
third process that sets a signal when FSM A changes state and clears
the signal when FSM B changes state. That signal would be used for
telling FSM B to start going.
I have tried to implement that process like this:
process(CurrentFSM_A_State, CurrentFSM_B_State)
begin
[if triggered by A, set signal. if triggered by B, clear signal]...
end process;
However, I am unable to determine within the process if it was
triggered by CurrentFSM_A_State or CurrentFSM_B_State. rising_edge()
etc doesn't work since the signals are types, not single signals.
Any help would be greatly appreciated.
Roger Dahl