-
Notifications
You must be signed in to change notification settings - Fork 917
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chformal: Add -coverenable option #2995
Conversation
4426777
to
7d223eb
Compare
This seems like a very useful addition. While this is similar to I added a test and changed it so it keeps the As you merged the yosys master back into your PR branch, I'm not sure if things go well if I merge this back again. I decided to cherry pick your commit, which also keeps my changes on top next to your commit. If you force push my https://github.com/jix/yosys/tree/chformal_coverprecond to your branch I can merge this PR (GitHub might also allow me to push to your PR branch, but I saw you're actively using this branch outside of this PR). |
Sure, I can force push your branch. I had a thought about this feature the other day. Although I originally said I thought this might work with SVA implications from the verific frontend, I think it won't actually because you can have sequences on the right hand side of the implication (and I'm not certain the precondition is used as the enable for an assertion anyway). Thus I think it might be worth renaming this feature to something like The final remarks section in the yosyshq precondition cover app note also mentions potentially being able to automatically cover SVA preconditions in the future so it would be best not to confuse this feature with that one. |
ffd8bc8
to
6c98eb4
Compare
This inserts $cover cells to cover the enable signal (precondition) for the selected formal cells.
6c98eb4
to
5dfad51
Compare
Yeah, I just needed a reminder 😅️ For this one I still want to review any differences in generated enable signals between the open source and the verific frontend, just so we can document any differences in the resulting behavior when using this. I should be able to do that before the next release. |
This inserts $cover cells to cover the enable signal (precondition/antecedent) for the selected formal cells. This allows you to check that your properties are not vacuous.
This will not cover preconditions that you write as part of the statement (e.g. this will cover
a
forif (a) assert(b)
, but not forassert(!a || b)
).This should also work with preconditions arising from SVA in the verific front end (if the preconditions are converted to the enable signal as I believe they are?) but I do not have a copy to check(it does not as sequential properties are more complex).