Skip to content
This repository has been archived by the owner on Nov 20, 2023. It is now read-only.

Contains a prototype implementation of a transactional verification algorithm that uses protocols to connect functional model and implementation.

License

Notifications You must be signed in to change notification settings

ekiwi/transactional-verification-with-protocols

Repository files navigation

serv-formal

Transactional verification prototype repo.

TODO: rename to something more generic since we might be verifying more than just the serv processor

Dependencies

The python scripts assume a number of programs top be installed.

Yosys

Used to read Verilog designs and convert them to SMT2, BTOR2, ILANG and single-file Verilog. Use a recent version from: https://github.com/YosysHQ/yosys

Verilator

Used to sanitiy check witnesses returned by the model checker. I.e. we create a simulation and apply initial state + inputs to generate a more reliable VCD file.

On Fedora Linux, just install the verilator package.

https://www.veripool.org/wiki/verilator

Yices2

We currently use yices as an SMT solver (smt2.py).

On Fedora Linux, just install the yices package.

https://github.com/SRI-CSL/yices2

Boolector Model Checker

As an alternative to using an SMT2 solver we also make use of a word level model checker (mc.py). Currently this checker is the btormc binary supplied with boolector.

https://github.com/Boolector/boolector

GTKWave

Not strictly needed by the tool. However this open-source program is useful for looking at VCD traces generated as witnesses to failing checks.

About

Contains a prototype implementation of a transactional verification algorithm that uses protocols to connect functional model and implementation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published