-
Notifications
You must be signed in to change notification settings - Fork 221
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
Use of illegal_bins in the CV32E40P coverage model #2395
Comments
In current cv32e40p tb enviroment, the pass/fail test status is determined by using uvm report server to check on any fail/fatal count. This simple post sim check is only apply to vsim only. We can have similar post check in xrun and vcs log provided we know the pattern of runtime error reporting in these simulators log file. |
There are four issues here:
|
I'd like to copy @dd-baoshan's excellent summary of the situation from pull-request #2394 to here because it is directly applicable to this discussion (its been edited slightly): There are some points we need to think ahead how to address these runtime errors. These are the sources of SystemVerilog simulator run time errors in CORE-V-VERIF:
There are few things we need to take notes.
|
@dd-baoshan said:
Great points. My response:
Having said that, our guidelines are not explicit about the specific conditions @dd-baoshan mentions, so I propose we update the CORE-V-VERIF coding style guidelines to:
Having said all that, it is probably a good idea to retain the |
Hi @MikeOpenHWGroup
used in assertions included in RTL design files? |
Yes, I know that the RTL often does this. It is a bad practise. We already have a good example of how this can be done in cv32e40p_prefetch_controller_sva.sv. This is a clean approach as it keeps the assertions in its own file (which can use SV Another approach is to use assertion-macros similar to what the Ibex uses. These macros can optionally use UVM messaging (link). |
Yes I wanted to extract all assertions from different CV32E40P RTL files to put them in specific files like prefetch_controller. Maybe intermediate solution could be to use Ibex way? |
In pull-request #2394 I made a comment about using
illegal_bins
. An illegal bin is excluded from coverage, but if the goal is to exclude bins it is best to useignore_bins
. When an illegal bin is "hit" the simulator will exclude the coverage and also emit a run-time error. Unfortunately the run-time error is simulator dependent and is not visible to the UVM messaging service, so it is not possible for a hit on an illegal bin to invokeuvm_error()
.So if the illegal bins in the CV32E40P functional coverage models are real errors that should cause the simulation to fail, we need another method to catch these events in a simulator independent way.
Do we have a way to catch these in the CV32E40P environment?
The text was updated successfully, but these errors were encountered: