Reports groups of elements from VHDL code according to logic formulas.
This can be used, for example, to check if coding rules have been followed, or to confirm that a group of elements are indeed what their creator intended them to be (flip-flops, state machines, etc...).
A mix of temporal (CTL) and first order logic (as well as a few special operators) is used to write the formulas.
The use of this tool for anything other than its development is currently not recommended. Indeed, this is an early prototype: not only is it not feature complete, but it is also likely to contain many bugs.
Tabellion is composed of multiple sub-programs:
- A VHDL to AST translation program, not yet available, so GHDL is used instead.
- A model generator,
ast-to-instr
, which populates predicates according to the AST. - Solvers, which handle the validation of properties for the aforementioned
model,
instr-to-kodkod
is currently the only solver available. - Solution printers, which convert the results of the solver to a specific format (sol-pretty-printer is the only one available at the moment).
- GHDL
- Java
- make
Additionally, instr-to-kodkod
uses Kodkod, ANTLR, and Sat4j. Those will be
downloaded automatically by instr-to-kodkod
and kept into its folder.
- Clone the repository.
- Use
make
to automatically fetch missing jars, compile everything and launch the current configuration (which is found in theMakefile
). The use of parallel processing is strongly recommended (e.g.make -j14
to run 14 parallel jobs).