C
Calvin C
Hi all,
VHDL "when others" clause is to cover unused states in a state
machine:
i.e.
....
when state0 =>
when state1 =>
...
when state8 =>
when others =>
(back to state0)
We use one-hot for our 9-state state machine and use synopsys DC for
the synthesis. The synthesized netlist shows 9 FFs as expected for the
state machine.
We next load the netlist into modelsim and use command "force -fixed
reg2/d 1 time1 -cancel time2" to apply a short pulse '1' to input D of
FF#2, to be captured by one clock edge when FF#2 output, reg2/q is at
'0'.
We'd expect the state machine to be able to go back to state0 shortly
after that "induced noise" incident as instructed in "when others"
clause.
The state machine however hangs up!!!
What could the problem be ?
Thanks,
Calvin
VHDL "when others" clause is to cover unused states in a state
machine:
i.e.
....
when state0 =>
when state1 =>
...
when state8 =>
when others =>
(back to state0)
We use one-hot for our 9-state state machine and use synopsys DC for
the synthesis. The synthesized netlist shows 9 FFs as expected for the
state machine.
We next load the netlist into modelsim and use command "force -fixed
reg2/d 1 time1 -cancel time2" to apply a short pulse '1' to input D of
FF#2, to be captured by one clock edge when FF#2 output, reg2/q is at
'0'.
We'd expect the state machine to be able to go back to state0 shortly
after that "induced noise" incident as instructed in "when others"
clause.
The state machine however hangs up!!!
What could the problem be ?
Thanks,
Calvin