Designing Scalable Finite State Machines
A Finite State Machine (FSM
) is an abstract computational module used to represent a system that can be in exactly one of a finite number of states at any given time. An FSM
can transition from one state to another on a given input, and it can perform an action during the transition.
In control theory, there is a classification of Moore and Mealy machines. Moore’s FSM
output depends only on a state, that is, the FSM
uses only entry actions. Mealy’s FSM
output depends on the input and current state, that is, the action it performs is determined by both the current state and the input.
The FSM
s that we will cover in this chapter are a combination of both Moore and Mealy FSM
s as they support both actions performed during transitions and entry and exit actions that depend only on a current state. FSM
s are also called Unified Modeling Language (UML) state machines and are used in real-life applications in embedded systems to...