State-assignment approaches
Random assignment
- Use when encoding is tight
- i.e. you are using most of the states
- CAD tools choose best of 10 random assignments
One-hot encoding
- Use for simple design of small state machines
Output-based or heuristic encoding
- Reuse outputs as state bits
- Fits nicely with synchronous Mealy machines
- Yields small circuits for most FSMs