[Libre-soc-bugs] [Bug 835] add support for smtlib2 floating-point to yosys and nmigen

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Mon May 23 11:05:00 BST 2022


https://bugs.libre-soc.org/show_bug.cgi?id=835

--- Comment #11 from Jacob Lifshay <programmerjake at gmail.com> ---
Added smtlib2 subexpression interning to avoid exponential blowup for things
like:
a = SmtBitVec.make(sig)
for i in range(100):
    # would create 2 ** 100 subexpressions without interning
    a *= a

https://gitlab.com/nmigen/nmigen/-/merge_requests/7/diffs?commit_id=4022161b8ad467d44c65c76b3a8faf37a791144e

Found an issue with nmigen's // operator in formal proofs (it maps to yosys's
$divfloor operator):
https://github.com/YosysHQ/yosys/issues/3330
so I had to use a workaround in the tests.

I'm realizing that this is getting a bit (but not a lot) bigger than
expected...
1340 lines of new tests
(all of SmtBool, nearly all of SmtReal, no other smtlib2 types yet)

2618 lines in nmigen/hdl/smtlib2.py (completed afaict)

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list