We found a great article by Adam Taylor (Principal Engineer, EADS Astrium) that illustrates in detail how to implement state machines with your FPGA board. For anyone that is interested, Mr. Taylor provides a comprehensive tutorial on using the two classes of state machines (Moore and Mealy), state machine definitions, state machine encoding, and much more.
FPGAs are often called upon to perform sequence and control-based actions such as implementing a simple communication protocol. For a designer, the best way to address these actions and sequences is by using a state machine. State machines are logical constructs that transition among a finite number of states. A state machine will be in only one state at a particular point in time.
In short, safe, efficient state machine design is a key skill for every engineer working with FPGAs. The choice among Moore, Mealy or even mixed machines depends upon the needs of your overall system. Whichever type of state machine you select, understanding the tools and techniques available for implementation will ensure you achieve the optimal solution.
Be sure to read Mr. Taylor’s state machine article in full over at Design Spark. It will certainly help flesh out your understanding of state machines and state machine functionality.
If you’ve got anything to add, please do so in the comments section. I’m trying to stay on top of comment moderation, so if you don’t see your comment right away please know that it won’t be long until you do! Happy hacking.