Skip to content

Update - #260

Open
nanocoh wants to merge 4 commits into
mainfrom
update
Open

Update#260
nanocoh wants to merge 4 commits into
mainfrom
update

Conversation

@nanocoh

@nanocoh nanocoh commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

No description provided.

Accept VHDL for both designs through -vhdl or format: vhdl, using
Naja's VHDL constructor. Top entities are selected per design with
vhdl_design1_top and vhdl_design2_top.

Naja loads one VHDL file per call and keeps earlier sources in the
library, so files are loaded in the order given and must be in compile
order. The requested top is elaborated after the last file.

VHDL requires SEC verification, as the SystemVerilog formats do.
A truth table was converted to one term per row whose output is 1.
That form is right for 0/1 inputs but pessimistic for unknown ones: a
term never evaluates to 1 while it tests an unknown input, even when
the known inputs already decide the output.

In dual-rail SEC this kept a register unknown forever when it resets
to 1 through a mux and only depends on itself, so its outputs were
never compared and different designs were reported equivalent.

Use the prime implicants of the table instead. They agree with the
rows on 0/1 inputs and are exact for unknown inputs. Tables with more
than 10 relevant inputs keep one term per row.
With a reset bootstrap, binary SEC assumes that the outputs agree on
the first frame after reset unless the post-reset state is known. That
state is no longer computed, so the assumption always applies. When
the reset values of the two designs differ, no trace satisfies it and
every engine then proves an empty problem.

Check before dispatching to an engine whether any reset trace lets the
outputs agree on that frame. If none does, report the mismatch with a
counterexample.
Each evaluation memo was sized when its root was registered. Roots
compiled afterwards add parents to nodes they share with earlier
roots, and propagation visits those parents in every memo, reading
past the end of the older ones.

Add VHDL regression tests for this and for the reset frontier
mismatch.
@codecov

codecov Bot commented Sep 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.43590% with 3 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/clauses/Tree2BoolExpr.cpp 95.45% 2 Missing ⚠️
src/sec/kinduction/BaseCaseSolver.cpp 93.33% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant