-
Notifications
You must be signed in to change notification settings - Fork 815
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
[hmac, dv] Update coverage exclusion file #25696
[hmac, dv] Update coverage exclusion file #25696
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think everything mentioned here #24692 has been taken over. Thanks Andrea ! What does the code coverage report say ?
These are the percentages with the new exclusions and the padding cancellation fix, there is definitely an improvement but I don't have the exact numbers for the Master branch. I'll run a regression for the Master branch over night to have a full comparison. |
According to the V3 signoff doc, we should reach 100% for:
Can you check if this is the case in your report? |
There are only 3 lines which appear uncovered but the branches that cause them are in the exclusion file because they are unreachable.
|
This is the only branch not covered: opentitan/hw/ip/prim/rtl/prim_sha2.sv Line 362 in 162a845
|
Which is alright as that's the default case. But I wonder why the UNR is not excluding it. |
It might be because the UNR file is out of date. I'm looking at the coverage report log and there are many warnings of the form:
|
Yes, we definitely need an updated version of the UNR ! |
Thanks for doing this @andrea-caforio . I see the PR is inline with the recommendations in #24692 . But to be honest, I believe we should modify the RTL instead of adding coverage waivers for quite a few of these exclusions. Let's discuss in the issue first. |
Hi @andrea-caforio and @vogelpi, |
Thank you for investigating this. One possibility could be to disallow the transition What is the reason this transition was covered before you fixed the DV issues? |
Unfortunately, I don't have the answer why the transition was seen before and why it's not anymore, it looks very odd. |
This is strange @martin-velay . I think we should not change the RTL here nor should we exclude this. It's obviously reachable and we have covered this before. Being in he StIdleSt for less than one clock cycle doesn't really make sense unless it's done via the reset. But the fact that this transition was covered before suggests that we can cover this not by playing with the reset. What is needed is the I really wouldn't modify the RTL here because there is a risk of leaving |
I don't know why this signal is never longer than 1 clock cycle. Here was the the assertion I added into the RTL file to try to find it out, which never failed during a full regression:
I am not sure I understand how your proposal may help, but let's talk about it on Monday in the office. Otherwise maybe I can also perform backdoor register write in a directed test to cover this transition. But I agree with you changing the RTL is not something I'd go for neither. |
I ran a full regression based on Master. Two more @martin-velay I remember these transitions were covered by #25568. Maybe the latest changes in DV have nullified it. |
3b276e8
to
afcaab2
Compare
This commit removes exclusions which were made obsolete in lowRISC#25766 through minor RTL restructures. Two new exclusion pertaining to missing else branches in `prim_sha2_pad` that cannot be covered have been added (see lowRISC#24692 for a discussion of these two exclusions). Signed-off-by: Andrea Caforio <[email protected]>
afcaab2
to
91d4b75
Compare
I updated the coverage exclusion file with the two missing else statements that were discussed in #24692. |
Excellent! I feel that D3/V3 are getting close 😍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks @andrea-caforio !
- the PR lowRISC#26163 was adding 4 assertions to the exclusion list which have been removed by the PR lowRISC#25696. This commit adds them back. Signed-off-by: Martin Velay <[email protected]>
- the PR #26163 was adding 4 assertions to the exclusion list which have been removed by the PR #25696. This commit adds them back. Signed-off-by: Martin Velay <[email protected]>
This commit removes the coverage exclusions that were introduced as part of the padding cancellation bug #23936 that was fixed in the previous commit. New exclusions are added that cover some impossible conditions and branches as identified in #24692.