yosys/backends/smt2
Jannis Harder d03c5e2a00 smtbmc: Break dependency recursion during unrolling
Previously `unroll_stmt` would recurse over the smtlib expressions as
well as recursively follow not-yet-emitted definitions the current
expression depends on. While the depth of smtlib expressions generated
by yosys seems to be reasonably bounded, the dependency chain of
not-yet-emitted definitions can grow linearly with the size of the
design and linearly in the BMC depth.

This makes `unroll_stmt` use a `list` as stack, using python generators
and `recursion_helper` function to keep the overall code structure of
the previous recursive implementation.
2024-03-04 16:53:03 +01:00
..
.gitignore Various fixes and improvements in "write_smt2 -bv" 2014-12-25 20:28:34 +01:00
Makefile.inc smtbmc: Add native json based witness format + smt2 backend support 2022-08-16 13:37:30 +02:00
example.v Added smtbmc.py 2015-10-13 17:17:23 +02:00
example.ys Added smtbmc.py 2015-10-13 17:17:23 +02:00
smt2.cc rename -witness: Bug fix and rename formal cells 2024-03-04 16:53:03 +01:00
smtbmc.py smtbmc: Use fewer smt commands while writing .yw traces 2023-12-14 16:42:48 +01:00
smtbmc_incremental.py smtbmc: Allow raw SMT-LIBv2 comamnds and expressions for --incremental 2023-12-14 16:44:21 +01:00
smtio.py smtbmc: Break dependency recursion during unrolling 2024-03-04 16:53:03 +01:00
test_cells.sh tests: use /usr/bin/env for bash. 2023-08-12 11:59:39 +10:00
witness.py yosys-witness: Add aiw2yw --present-only to omit unused signals 2023-12-14 16:45:19 +01:00
ywio.py smtbmc: Add --incremental mode 2023-11-16 13:22:17 +01:00