forked from tampler/yosys-formal
Formal verification with yosys
- SystemVerilog 98.7%
- Verilog 0.9%
- Makefile 0.3%
| gen | ||
| lec | ||
| rtl | ||
| syn | ||
| .gitignore | ||
| Makefile | ||
| README.md | ||
Yosys formal verification guide
This project contains a cookbook for formal verification methods
App 1: Logic equivalence check
- Synthesize a simple design under test (DUT) down to Yosys' generic ($-)cells
- Run Yosys Logic Equivalence check (LEC) to prove functional equivalence of both circuits
Resources
Usage
The flow defaults to the counter design; override it with design=<name>
(available designs: counter, lfsr).
- Running synthesis:
make dosyn(writesgen/<design>_mapped.v) - Running LEC:
make dolec(re-synthesizes the netlist first if it is stale) - Running LEC for every design:
make test - Picking a design:
make dolec design=lfsr - Listing targets:
make help
The generated netlists in gen/ are build artifacts (git-ignored). Because the
netlist is built from Yosys' internal ($-)cells, the SAT engine already knows
their semantics -- no behavioral cell models are needed to prove equivalence.