my-probes #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "comonoid/yosys-formal:my-probes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
make dolecfailed for both example designs with:Even past that error, the check could not have proven anything: the mapped
std cells were read only as Liberty blackboxes, so the SAT engine had no
logic models for them.
Root causes & fixes
Three independent issues in
lec/*.ys:always @(posedge clk or posedge reset), producing$adffcells on the gold side, which the SAT enginecannot model. → added
async2syncafterequiv_make.read_liberty -lib ... -setattr blackboxgivesports only, no functions — even a trivial
INVX1vs~Acheck fails.→ added
tech/osu035/osu035_stdcells_sim.vwith behavioral models(functions taken verbatim from the Liberty file) and read it together
with the netlist.
equiv_simplecloses combinationalcones only. → added
equiv_inductfor the sequential equivalences.Also fixed
syn/*.ys: dropped the hardcoded/opt/oss-cad-suite/bin/yosys-abcpath so
make dosynuses the abc bundled with yosys.Build-flow tidy-up
gen/*.vare now build artifacts: git-ignored, untracked, rebuilt ondemand (
gen/.gitkeep+mkdir -pkeep the flow working on a fresh clone)..PHONY, pattern rule sodolecre-synthesizes a stalenetlist automatically,
make test(runs LEC for all designs),make help.design=override and the new targets.
Verification
make test: Equivalence successfully proven! for both designs(counter 4/4, lfsr 31/31 $equiv cells), yosys 0.62.
(NAND→NOR), a swapped cell (XOR→XNOR), and swapped S/R pins on a DFFSR
each make LEC fail as expected; restoring the netlist makes it pass.
DFFSRmodel matches the Liberty corner case (clear_preset_var1: L— both set and reset active → Q=0).
git clone(clean → synth → LEC).Known limitation
osu035_stdcells_sim.vmodels the 15 cells the current examples map to,not all 39 in the library. This is documented in the file header along
with how to extend it.
1c79651a37toda6f90d2b2da6f90d2b2to693ef32757