Skip to content

RV32I Compliance

Antti Lukats edited this page Nov 12, 2018 · 8 revisions

Requirement: must pass RV32I compliance tests

There are 55 tests total and 55 reference outputs from those tests. To pass the compliance 55 signatures should be generated and compared to the reference outputs. If we take rules very strict then we should use the signature verification both in verilator as also when testing on the real FPGA board.

It is not clear from the rules to what ISA specification documents the SoftCPU should comply - to be assumed that the latest ones, those being 2.2 for user level ISA a 1.10 for privileged spec.

The compliance tests do not test all compliance required by RV32I user level specification document, they test however some features described in the privileged architecture document.

List of CSR needed for the contest rules compliance

CSR Defined in Tested/used in
mscratch privileged RV32I tests
mcause privileged RV32I/Zephyr
mtvec priv (RO allowed) RV32I (RW!)/Zephyr
mtval privileged RV32I tests
mepc privileged RV32I tests/Zephyr
cycle user not used
cycleh user not used
instret user not used
instreth user not used
time user not used
timeh user not used
mcycle privileged Dhrystone
mcycleh privileged not used
mip privileged Zephyr
mie privileged Zephyr

Note it is recommended to return 0 for all unimplemented CSR's

Clone this wiki locally