Overview
SystemVerilog Assertions (SVA) are presented in the evidence as an assertion mechanism used inside a hardware verification environment to check that an interface behaves as expected. In the cited RISC-V vector processor unit (VPU) verification work, the team added SVA specifically to improve observability when result mismatches alone did not identify the cause of an error. [C1]
Use in VPU interface verification
A critical verification target in the referenced project was the VPU interface. The team reviewed the Open Vector Interface (OVI) specifications and wrote more than 50 SystemVerilog Assertions to check that the VPU interface behaved as expected. [C2]
Most asserted properties targeted memory-related OVI sub-interfaces and were intended to ensure that the OVI specifications were strictly followed throughout the project. [C3]
Interaction with the UVM testbench
The assertions were used during early UVM testbench development. They helped identify both bugs in the VPU and problems in UVM stimulation. [C4]
The broader verification setup also used a UVM scoreboard that compared VPU results against a reference model, with Spike used for co-simulation. In that context, assertions complemented result checking by improving observability when an instruction-result mismatch was detected but did not directly reveal the cause. [C1]
Practical role
Within the cited verification flow, SVA served as an interface-level checking and debug aid:
- checking expected OVI behavior;
- enforcing OVI specification compliance on selected sub-interfaces;
- improving observability beyond scoreboard mismatches;
- finding both design-side VPU bugs and verification-side stimulation issues. [C1][C2][C3][C4]
Bibliographic context
The project bibliography cites SVA: The Power of Assertions by Eduard Cerny et al. as a reference for SystemVerilog Assertions. [C5]