All the examples in this thread use the case statement for the next state logic. I would say this is the preferred way to code this logic since it will synthesize to parallel logic. An if else structure on the next state logic describe a prioritized structure.
AFAIK, when using case statements, the end result is a large MUX for all the cases that have to do a lot of switching. Using if-else eliminates this because you don't build up a large MUX. Can someone confirm this?
Yes, may be.
This is very synthesizer dependent.
BTW, it also depends on your coding style. Because some coding styles may add up some extra memories (latches, or FF's)
--
Amr Ali