This is to announce the first public release of FSML, an OCaml library for describing and describing synchronous finite state machines.
FSML is a simplified version of the library provided in the Rfsm package for which
-
the system is composed of a single FSM
-
this FSM has a single, implicit, triggering event (typically called the clock , hence the term synchronous used in the description)
The FSML library provides
-
a type
Fsm.t
for describing FSMs- possibly having local variables
- for which transitions , implicitely triggered by a clock, are defined by a set of boolean guards and a set of actions
-
a set of PPX extensions for building values of type
Fsm.t
-
functions for producing and viewing graphical representations of FSMs in the
.dot
format -
functions for saving and reading FSM representations in files using the JSON format
-
functions for performing single or multi-step simulations of FSMs and generating trace files in the
.vcd
format to be viewed by VCD viewers such as gtkwave -
functions for generating C or VHDL code from a FSM representation (for integration into existing code and/or simulation)
FSML is available from Github or as an OPAM package.