This is to announce release 0.3.0 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)
This release adds function for transforming FSMs (moving output valuations from states to transitions and vice versa and a Fsm.defactorize
to defactorize an FSM wrt. to its local variables. It also includes a custom toplevel to use the library interactively. A complete list of changes is given in the distibution.
FSML is available from Github or as an OPAM package .
Comments and feedback welcome.
JS