Added RVA23 coverage and test generators#1305
Conversation
jordancarlin
left a comment
There was a problem hiding this comment.
I haven't reviewed it in detail yet, but here are a few initial comments. Also, if we are adding Ss1p13 tests, it might make sense to add Sm1p13 tests at the same time.
Yes, I have worked on Sm1p13 too, I just have not pushed it here yet. |
There was a problem hiding this comment.
Pull request overview
Adds new privileged-extension test generators and corresponding functional coverage plumbing for RVA23-related extensions, plus extends existing Sm/S coverage for 1.13-specific behaviors.
Changes:
- Added new priv test generators for
Zic64bzicboz,Za64rs, andSsu64xl. - Added new SystemVerilog covergroups + init/sample/config wiring for those extensions.
- Extended existing
SmandSgenerators/coverpoints with SS1P13/SM1P13-related scenarios.
Reviewed changes
Copilot reviewed 16 out of 19 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| generators/testgen/src/testgen/priv/extensions/Zic64bzicboz.py | New test generator for cbo.zero offsets + signature checks. |
| generators/testgen/src/testgen/priv/extensions/Za64rs.py | New test generator for LR/SC reservation-set sizing behavior. |
| generators/testgen/src/testgen/priv/extensions/Ssu64xl.py | New test generator for sstatus.UXL=2 / U-mode 64-bit behavior. |
| generators/testgen/src/testgen/priv/extensions/Sm.py | Adds SM1P13-gated tests for misa.B/V, msip, and medelegh. |
| generators/testgen/src/testgen/priv/extensions/S.py | Adds SS1P13-gated tests for attempted sstatus.UXL writes. |
| coverpoints/priv/Zic64bzicboz_coverage_init.svh | Initializes the Zic64bzicboz covergroup instance. |
| coverpoints/priv/Zic64bzicboz_coverage.svh | New covergroup for cbo.zero and address-bit offset bins. |
| coverpoints/priv/Za64rs_coverage_init.svh | Initializes the Za64rs covergroup instance. |
| coverpoints/priv/Za64rs_coverage.svh | New covergroup for LR/SC + offset/alignment cross coverage. |
| coverpoints/priv/Ssu64xl_coverage_init.svh | Initializes the Ssu64xl covergroup instance. |
| coverpoints/priv/Ssu64xl_coverage.svh | New covergroup for U-mode + UXL=2 + GPR[63] cross. |
| coverpoints/priv/Sm_coverage.svh | Adds SM1P13 coverpoints/crosses for misa bits, msip→mip propagation, medelegh. |
| coverpoints/priv/S_coverage.svh | Adds SS1P13 coverpoints/crosses for attempted UXL writes. |
| coverpoints/coverage/RISCV_coverage_config.svh | Adds conditional includes for new covergroups. |
| coverpoints/coverage/RISCV_coverage_base_sample.svh | Adds sampling calls for new covergroups. |
| coverpoints/coverage/RISCV_coverage_base_init.svh | Adds init includes for new covergroups. |
| config/spike/ci.yaml | Adds Za64rs to excluded extensions list for CI. |
| config/qemu/ci.yaml | Adds Za64rs to excluded extensions list for CI. |
| config/cores/cvw/ci.yaml | Adds Za64rs to excluded extensions list for CI. |
|
@Ammarahwakeel : @jordancarlin pointed out that the sail.json has a "reservation_set_size_exp" item. We just need to change that to match the DUT so we can pass the Za64rs tests. We don't need the clever exploration of the size - no need to change your tests, just the config file. |
yes, This is the same item, i was referring to earlier in my message. So, it has value of 3, making reservation set size=2^3=8, and that is why sail is saying to expect a success for sc.w when we have base address+ 4 (offset), while other metrices have reservation set size=4, as they are only passing for offset+0. But based on this comment (riscv-software-src/riscv-isa-sim#2256 (review)), SC can fail regardless of reservation set size. So would changing the "reservation_set_size_exp" =2 be good to go? |
|
Prof. @davidharrishmc , just added RVMODEL_MSIP_ADDRESS macro across all config files, could you please review and let me know if the implementation is correct or if any changes are needed? |
No description provided.