J
jc
Guest
Allow me to clarify. I now consider the issues of illegal state
detection and binary conversion as two separate points of discussion.
In the latter, all I'm suggesting now is that here is a means for
translating an fsm into a format better understood through chipscope
and/or status regs, regardless of how that fsm is ultimately coded. I
take the blame for suggesting originally that using the "OTHERS"
clause in this binary conversion takes care of illegal states. I now
agree that this is not the case.
For illegal state detection, it's up to the designer to either use a
synthesis switch so that the tools can add the overhead logic into the
original fsm code--which is completely separate from the binary
conversion part--or build in this detection/recovery manually. I
suggested that doing this within the binary conversion realm could
alleviate performance issues that could occur with safe mode built
within the original fsm.
Sorry for the confusion.
John
KJ wrote:
detection and binary conversion as two separate points of discussion.
In the latter, all I'm suggesting now is that here is a means for
translating an fsm into a format better understood through chipscope
and/or status regs, regardless of how that fsm is ultimately coded. I
take the blame for suggesting originally that using the "OTHERS"
clause in this binary conversion takes care of illegal states. I now
agree that this is not the case.
For illegal state detection, it's up to the designer to either use a
synthesis switch so that the tools can add the overhead logic into the
original fsm code--which is completely separate from the binary
conversion part--or build in this detection/recovery manually. I
suggested that doing this within the binary conversion realm could
alleviate performance issues that could occur with safe mode built
within the original fsm.
Sorry for the confusion.
John
KJ wrote:
I fully understand that "when others" does not necessarily generate
recovery logic. Altera (and I suspect other tools) require a specific
synthesis tool setting in order to enable 'safe state machines'. With
Quartus, the setting is called "Safe State Machine" and is defined as
"Tells the compiler to implement state machines that can recover
gracefully from an illegal state."