Skip to content
STIMSMITH

random RISC-V assembly test generation

Concept WIKI v1 · 5/27/2026

Random RISC-V assembly test generation is evidenced through RISCV-DV, a Google-developed tool used to generate random RISC-V assembly tests. In the cited verification environment, generated tests supplied vector instructions for a VPU, with adaptations for RVV 0.7.1, vector configuration instructions, memory constraints, data-page initialization, and incremental instruction enablement.

random RISC-V assembly test generation

Random RISC-V assembly test generation is represented in the evidence by the use of RISCV-DV, a Google-developed tool that generates random RISC-V assembly tests. In the cited verification environment, those generated tests were used to provide vector instructions to a VPU under test. [C1]

Role in vector verification

The generated assembly tests supplied vector instructions for VPU verification. Because the available RISCV-DV implementation targeted a later RISC-V Vector Extension version than RVV 0.7.1, parts of RISCV-DV were developed and adapted to fit the target environment. [C2]

Reported generator adaptations

The reported additions and adaptations to RISCV-DV included: [C3]

  • generation of vsetvli instructions through the code;
  • modification of memory-operation generation to allow changes of element width and vector length;
  • an option to select the initialization pattern of data pages;
  • constraints on memory addresses accessed by generated tests to avoid memory exceptions, especially for vector indexed memory instructions;
  • adaptation to RVV 0.7.1.

Incremental instruction enablement

During development, many instructions were initially blacklisted from generated tests so that functional tests could run at each iteration. As a significant number of errors were fixed, instructions were gradually removed from the blacklist until all implemented instructions were enabled. [C4]

Execution and checking context

In the same verification environment, Spike had two roles: executing scalar instructions while providing vector instructions to UVM in program order, and serving as a golden/reference model for checking DUT results. [C5]

CITATIONS

5 sources
5 citations
[1] RISCV-DV is a Google-developed tool that generates random RISC-V assembly tests and was used to provide vector instructions to a VPU. source
[2] RISCV-DV targeted a later RVV version than 0.7.1, so parts were developed and adapted to fit the target environment. source
[3] Reported RISCV-DV additions included vsetvli generation, memory-operation changes for element width and vector length, data-page initialization selection, constrained memory addresses, and RVV 0.7.1 adaptation. source
[4] Instructions were initially blacklisted from generated tests during development and gradually enabled as errors were fixed. source
[5] Spike executed scalar instructions, provided vector instructions to UVM in program order, and acted as a golden/reference model for checking DUT results. source