Definition
Vector instruction blacklisting is the temporary exclusion of selected vector instructions from generated verification tests. In the available evidence, it is described in the context of functional verification of a RISC-V vector processing unit, where many vector instructions were initially blacklisted because some design modules were still under development.
Use in RISC-V vector accelerator verification
In the cited verification flow, the team used RISCV-DV to generate random RISC-V assembly tests that supplied vector instructions to the vector processing unit under test. Because the design was evolving, the generated tests initially excluded many instructions through a blacklist. This made it possible to obtain functional tests at each verification iteration rather than having tests dominated by instructions or modules that were not yet ready.
As more errors were fixed, instructions were gradually removed from the blacklist. The process continued until all implemented instructions were enabled in the generated tests.
Role in an iterative verification workflow
The evidence supports the following workflow:
- Generate random RISC-V assembly tests for the vector unit.
- Temporarily blacklist vector instructions associated with incomplete or error-prone design areas.
- Run functional tests at each design iteration.
- Fix design or verification errors.
- Gradually remove instructions from the blacklist.
- Eventually enable all implemented vector instructions.
Relationship to RISCV-DV adaptation
The same verification effort also modified RISCV-DV for its vector verification needs. Reported additions included generation of vsetvli instructions, support for changing element width and vector length, data-page initialization pattern selection, memory-address constraints to avoid exceptions, and adaptation to RVV 0.7.1. The blacklisting practice was used alongside these adaptations to keep generated tests practical while the vector design matured.