d5b087de10 | ||
---|---|---|
.. | ||
README.md | ||
fsm.v | ||
fsm_test.v |
README.md
fsm
This module implements a Finite State Machine (FSM). The FSM is composed of states and transitions between them. These need to be specified by the client.
Usage
Have a look at fsm_test.v
for usage examples.
On each run()
, all the possible transitions from the current state are evaluated.
The first transition for the current state, whose condition evaluates to true is
taken (the condition is specified by a transition callback function).
In a successfull transition, the current state changes to the new one. When that happens:
- the client-specified
on_exit()
handler from the current state is called. - the client-specified
on_entry()
handler of the new state is called.
After all transitions are checked, and thus the state is changed, the client-specified
on_run()
handler of the now current state is called.