VHDL FSM Problem

Feb 26, 2004 3 Replies

Iam using 2 process type FSM in my VHDL code the problem is the FSM is not working correctly , It hazards randomly when I checked the syntheizer reprt I founded that



"Using one-hot encoding for signal "



It automatically uses one hot techneque for the FSM



Now , how can I force it to use "gray" type ?


This depends on the synthesizer you are using. Generally speaking, it can either be done through the synthesizer settings or via synthesizer attributes embedded in the VHDL code. Check your synthesizer's manual.

/Mikhail

To reply directly: matusov at square peg ca (join the domain name in one word and add a dot before "ca")

I'm quite sure that this will NOT solve the problem ...

check the following:

- all inputs to the state machine must be synchronous to the clock ... that means they must be registered with the same clock before they are used inside ...

- the timing-constraints are correct and met

bye, Michael

You might also want to check the clock integrity. double edges can wreck havoc with one-hot fsms (the bit at '1' gets cleared but doesn't offer enough setup time for the next bit to get set, so one-hot is at all 0s).

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required