package rfsm
Install
Dune Dependency
Authors
Maintainers
Sources
md5=d1280c02294eaa3d3d87a9d04bc8b91f
sha512=46ef32b23755144036ca530f76636a166e835ebb4baf9a32b8ebfa838ccfb3c7ac8df37d709d12198a5f9d5f13280b341d221989c6a5344963b83daddd47e319
Description
A toolset for describing and simulating StateChart-like state diagrams
Published: 30 Mar 2021
README
RFSM
RFSM is a toolset for describing and simulating StateChart-like state diagrams. The toolset is composed of
an Ocaml library
a command-line compiler (
rfsmc
)
RFSM tools take
a description of a system as a set of StateChart-like state diagrams
a description of stimuli to be used as input for this system
and generate
a graphical representation of the system (to be viewed with Graphviz for example)
execution traces as
.vcd
files (to be viewed with Gtkwave for example)
Additionnaly, dedicated backends can generate system descriptions in
CTask
(a C dialect with primitives for describing tasks and event-based synchronisation)SystemC
VHDL
for simulation of implementation.
The rfmsc
compiler is intended to be used from the command line. Graphical User Interfaces are provided separately:
Documentation
The user manual can be found here
The library API is documented here
Installation
The latest stable version is provided as a ready-to-install OPAM package. Just type
opam install rfsm
Compiling and running examples
Some examples are provided in the directories single and multi (the former concerns systems built from a single state diagram, the latter systems built from several diagrams).
For compiling and running an example
get a copy of the source tree and go to the selected example directory
git clone https://github.com/jserot/rfsm
cd rfsm/examples/single/gensig/v2
(for example)
build the top
Makefile
by invoking:rfsmmake main.pro
(this supposes that therfsm
package has been properly installed; in particular that therfsmc
andrfsmmake
executables are available on your path)the generated
Makefile
contains a set of rules togenerate and view the graphical representation of the system (
make dot
)simulate the behavior the system and view the execution traces (
make sim
)generate code describing the system in C (
make ctask.code
), SystemC (make systemc.code
) and VHDL (make vhdl.code
)
Viewing the graphical representations (.dot
files) and the execution traces (.vcd
files) is carried out by calling external programs called $DOTVIEWER
and $VCDVIEWER
in the Makefile. Default values are provided in the file <opam_prefix>/share/rfsm/platform
, where <opam_prefix>
is the root of the opam
tree where the rfsm
package has been installed. These values will probably to be adjusted according to your system.
The generated SystemC (resp. VHDL) code is written in sub-directory ./systemc
(resp. ./vhdl
). Also generated in these directories is a dedicated Makefile
for compiling and running the generated code and viewing the results. This Makefile
is derived from a template located in directory <opam_prefix>/share/rfsm/templates/
. These templates will also probably have to be adjusted to suit your local SystemC
or VHDL
installation.
Some examples also contain a ./ml
sub-directory. The ocaml
source code located in these sub-directories illustrates the use of the rfsm
library. The code can be compiled and run by simply typing make
(provided, again, that the rfsm
package has been properly installed).
Dependencies (5)
-
ocaml
>= "4.10"
-
ocamlgraph
>= "1.8"
-
lascar
>= "0.7"
-
menhir
>= "2.0" & < "20211215"
-
dune
>= "2.6"
Dev Dependencies
None
Used by
None
Conflicts
None