P26 turns the ACT4 experiment into a repeatable project command. It does not add new CPU RTL; it makes the current upstream architecture-test flow reproducible against the P17/P25 core harness.
Status: RTL pass for all 39 ACT4-generated, Sail-backed
rv32i/Iself-checking ELFs. The ELFs are UART-loaded through the P17 external-memory simulator. This is not a full RISC-V compliance claim.
The Result
Run it:
make -C projects/26_rv32i_act4_probe/test
Result: PASS
Summary: PASS=39 FAIL=0 NOT RUN=0
The result table is written to:
projects/26_rv32i_act4_probe/results/RESULTS.mdprojects/26_rv32i_act4_probe/results/act4_rv32i_I.csv
What ACT4 Does
ACT4 is the current upstream riscv-arch-test flow. For this probe it:
- Compiles the official
rv32i/Isources. - Runs Sail to generate reference signatures.
- Builds final self-checking DUT ELFs.
- Leaves those ELFs under the ACT4 work directory.
P26 then converts each ELF to a Verilog memory image and runs the existing P17 UART-loader simulator.
The Local Adaptation
Sail and P17 do not use the same stop signal. Sail watches tohost; the P17
testbench watches x5 and a jal x0, 0 halt loop.
P26 uses a small DUT macro file that does both:
write tohost
set x5 to the local PASS or FAIL code
jal x0, 0
The linker script also places the image at 0x00000000, because P17 boots at
zero. During the run, the script patches the temporary Sail memory map so
low memory is executable and writable.
What This Proves
This is stronger than P25’s local reference path: the expected signatures come from ACT4 plus Sail.
The honest claim is still scoped:
P17/P25 can run all 39 ACT4-generated, Sail-backed, self-checking
rv32i/IELFs through the UART external-memory harness.
Not covered: traps, exceptions, CSRs, privilege modes, misalignment behavior,
FENCE.I, multiply/divide, atomics, compressed instructions, or a complete
official report package for a named RISC-V profile.