cross-level testing
Cross-level testing is a simulation-based processor-verification approach in which a Register-Transfer Level (RTL) processor implementation is checked against a higher-level reference model. In the RISC-V case study described by Herdt, Große, Jentzsch, and Drechsler, an Instruction Set Simulator (ISS) is used as the reference model for the RTL core under test in a tightly coupled cross-level co-simulation setting. The testbench feeds the generated instruction stream to both the ISS and the RTL core and compares the results after each executed instruction, so RTL errors can be detected immediately when they occur. [C1]
Workflow
A cross-level testing setup for processor verification can be summarized as follows:
- Generate an instruction stream. The cited RISC-V approach generates an endless instruction stream and evolves it on-the-fly during simulation, without restrictions on the generated instructions. [C2]
- Run both abstraction levels. The same instruction stream is executed by the ISS reference model and by the RTL core under test in a tightly coupled co-simulation. [C1]
- Compare after each instruction. The testbench compares the results after every executed instruction, enabling immediate detection of mismatches in the RTL implementation. [C1]
Role in processor RTL verification
Cross-level testing is motivated by the need for extensive RTL processor verification: the cited work notes that RTL verification is crucial to avoid bugs and that simulation-based methods remain prevalent because of their ease of use and scalability. However, simulation-based verification also requires efficient test-generation methods to achieve thorough verification. [C3]
RISC-V case-study evidence
The cited paper applies cross-level testing to processor verification targeting the RISC-V ISA. In its reported case study, the approach was used on the 32-bit pipelined RISC-V core of the MINRES The Good Folk (TGF) Series. The authors report that the approach found several serious bugs, and also report efficiency of more than 200 million processed instructions per hour on a standard laptop. [C4]
Relationship to on-the-fly instruction stream generation
The RISC-V approach explicitly uses on-the-fly instruction stream generation: it evolves the instruction stream during simulation and feeds that stream into both the ISS and the RTL core. [C2]