Overview
sailcov is a tool used to evaluate architectural coverage for RISC-V testing. In the referenced coverage study, the authors state that they evaluated RISC-V architectural coverage using sailcov, which measured how many branches of the RISC-V Sail model were explored during a run.[1]
Role in RISC-V coverage evaluation
The study used sailcov as the measurement mechanism for comparing multiple RISC-V testing frameworks: TestRIG QCVEngine, the RISC-V test suite (riscv-tests), and the RISCV-DV generator.[2]
For the RV32IMC configuration, the study measured Sail RISC-V model coverage of the I, M, and C extension instructions, along with coverage of the general-purpose registers.[3]
For the RV64IMAFDCZicsr configuration, the study measured coverage of I, M, A, F, D, C, and CSR instructions, as well as general-purpose and floating-point registers.[4]
Use with different test sources
The study describes several ways sailcov was used to measure coverage of the Sail RISC-V model:
- For
riscv-tests, coverage was measured while the Sail RISC-V model ran the test binaries.[5] - For RISCV-DV, TestRIG traces were produced from the Spike simulator executing the tests and then replayed through RVFI-DII while Sail RISC-V model coverage was measured.[6]
- For QCVEngine, the study configured two architecture strings and ran 500 sequences of each generator.[7]
The paper also lists the sailcov source location as https://github.com/rems-project/sail/tree/sail2/sailcov.[8]
Related concepts and models
sailcov is directly associated with Architectural Coverage, because it was used as the mechanism for evaluating coverage of the RISC-V architecture in the study. It is also associated with the Sail RISC-V Model, because the reported metric was the number of branches of that model explored during a run.[1]
[1]: See citation “sailcov purpose and metric”. [2]: See citation “framework comparison”. [3]: See citation “RV32IMC measured coverage”. [4]: See citation “RV64IMAFDCZicsr measured coverage”. [5]: See citation “riscv-tests measurement method”. [6]: See citation “RISCV-DV measurement method”. [7]: See citation “QCVEngine coverage-study configuration”. [8]: See citation “sailcov source location”.