Verification

A processor is only worth what its tests can show. Each row below is a check that runs in continuous integration on every change, and each one can fail.

WhatHow muchAgainst
Official RISC-V instruction tests (rv32ui) 40 of 42, both cores The golden model. fence_i and ma_data are excluded: they need features this core does not have.
Hand-written programs5, both coresThe golden model for results; the timing model for pipeline cycles.
Random programs260, both forwarding modesThe golden model for results; the timing model for pipeline cycles.
Fault cases13The golden model: illegal instructions, bad accesses, misaligned jumps.
Mutation checks7 on the pipeline (Phase 3), 11 on hazards (Phase 4)Each check must fail on a deliberately broken core. A check that passes on a broken core is itself a bug.
WASM module534 checksGolden fixtures, on both cores, with forwarding on and off.
Web app67 unit tests and 9 browser testsThe assembler against GNU's bytes, and the presets on the WASM core.
Size budgetAbout 77 KB gzippedThe build fails above 400 KB.

What "cycle-exact" means

The pipeline's cycle count is checked against an independent timing model written in Python (sim/golden/pipemodel.py). The RTL and the model are two separate implementations of the same timing rules, so agreement between them is evidence about both.

What is not verified yet