Vreteno RISC-V conformance

The RISC-V architectural tests on the Vreteno RV32IMAC core, run on 2026-10-07. Read the full report (PDF).

155 / 156tests pass on the netlist
156 / 156pass their self-check on Sail
1known failures, each with an issue
28,308results checked against Sail
4.96cycles per instruction

Failures

SvSm_sv_mstatus_tvm_test-00 known failure

Tracked as https://git.hdlfactory.com/HDL/txhdl/issues/1347.

RVCP-SUMMARY: TEST FAILED - Test File "SvSm_sv_mstatus_tvm_test-00.S"

RVCP: DEBUG INFORMATION FOLLOWS
RVCP: Test Info: "test: 1; cg: SvSm_cg; cp: cp_satp_access; bin: tvm"
RVCP: Instruction: 0x30002773
RVCP: Approximate address (failure may be slightly after this): 0x40000048
RVCP: Register: x14
RVCP: Bad Value:      0x00001800
RVCP: Expected Value: 0x00101800
RVCP: END OF DEBUG INFORMATION

By suite

SuiteTestsSailNetlistChecksCycles per instruction
ExceptionsSv2221084.20
ExceptionsSvSm4449203.71
ExceptionsSvZaamo222444.22
ExceptionsSvZaamoSm3332623.66
ExceptionsSvZalrsc222764.18
ExceptionsSvZalrscSm3335183.62
I39393910,1765.54
M8883,1846.97
Sv2525251,0164.25
SvSm665883.96
Svbare222204.27
SvbareSm111144.28
Zaamo9994,8905.87
Zalrsc2226484.34
Zca2626263,6004.98
Zicntr222204.31
Zicsr6661,0685.17
Zifencei111105.58
Zihintntl444244.26
ZihintntlZca444244.24
Zihintpause11164.26
Zmmul4441,5926.09

Every test

TestSailNetlistChecksCyclesInstructions
ExceptionsSv_sv32_exceptions_Smode-00passpass5421,4405,048
ExceptionsSv_sv32_exceptions_Umode-00passpass5424,3315,840
ExceptionsSvSm_sv32_exceptions_mprv_S_Mmode-00passpass22245,00611,405
ExceptionsSvSm_sv32_exceptions_mprv_U_Mmode-00passpass22243,37711,149
ExceptionsSvSm_sv32_medeleg_Smode-00passpass23861,27317,326
ExceptionsSvSm_sv32_medeleg_Umode-00passpass23861,08516,974
ExceptionsSvZaamo_sv32_exceptions_Zaamo_Smode-00passpass2218,0074,215
ExceptionsSvZaamo_sv32_exceptions_Zaamo_Umode-00passpass2220,8715,007
ExceptionsSvZaamoSm_sv32_exceptions_Zaamo_mprv_S_Mmode-00passpass9831,2877,858
ExceptionsSvZaamoSm_sv32_medeleg_Zaamo_Smode-00passpass8246,71413,277
ExceptionsSvZaamoSm_sv32_medeleg_Zaamo_Umode-00passpass8246,52612,925
ExceptionsSvZalrsc_sv32_exceptions_Zalrsc_Smode-00passpass3819,8924,707
ExceptionsSvZalrsc_sv32_exceptions_Zalrsc_Umode-00passpass3822,7925,507
ExceptionsSvZalrscSm_sv32_exceptions_Zalrsc_mprv_S_Mmode-00passpass19440,96610,718
ExceptionsSvZalrscSm_sv32_medeleg_Zalrsc_Smode-00passpass16254,58315,512
ExceptionsSvZalrscSm_sv32_medeleg_Zalrsc_Umode-00passpass16254,39515,160
I-add-00passpass39838,8776,435
I-addi-00passpass37432,0125,492
I-and-00passpass39838,9446,451
I-andi-00passpass37432,0145,492
I-auipc-00passpass6216,1533,516
I-beq-00passpass27040,1506,781
I-bge-00passpass27040,5396,805
I-bgeu-00passpass27040,5936,814
I-blt-00passpass27041,0446,817
I-bltu-00passpass27040,8966,824
I-bne-00passpass27041,8226,845
I-fence-00passpass615,2963,548
I-jal-00passpass11484,99719,304
I-jalr-00passpass24232,6136,235
I-lb-00passpass13020,8254,149
I-lbu-00passpass13020,8474,158
I-lh-00passpass12620,3484,065
I-lhu-00passpass12620,3724,074
I-lui-00passpass6216,1053,498
I-lw-00passpass12620,1204,023
I-nop-00passpass614,0083,251
I-or-00passpass39838,8896,434
I-ori-00passpass37431,9895,483
I-sb-00passpass21021,9984,397
I-sh-00passpass20221,5884,349
I-sll-00passpass39838,8786,435
I-slli-00passpass20223,7544,474
I-slt-00passpass39438,6426,407
I-slti-00passpass37031,9235,482
I-sltiu-00passpass37031,9495,491
I-sltu-00passpass39438,6976,424
I-sra-00passpass39838,8786,435
I-srai-00passpass20223,7564,474
I-srl-00passpass39838,9096,443
I-srli-00passpass20223,7554,474
I-sub-00passpass39838,9136,443
I-sw-00passpass20021,4094,329
I-xor-00passpass39838,9066,443
I-xori-00passpass37432,0155,492
M-div-00passpass39850,4746,443
M-divu-00passpass39850,5336,452
M-mul-00passpass39839,4306,451
M-mulh-00passpass39839,4226,452
M-mulhsu-00passpass39839,5176,478
M-mulhu-00passpass39839,4556,461
M-rem-00passpass39850,5426,443
M-remu-00passpass39850,5126,444
Sv_sv32_VA_all_ones_Smode-00passpass615,0293,511
Sv_sv32_VA_all_zeros_Smode-00passpass615,0543,522
Sv_sv32_global_pte_Smode-00passpass1815,6613,574
Sv_sv32_global_pte_Umode-00passpass1818,6064,358
Sv_sv32_invalid_pte_Smode-00passpass3418,8654,395
Sv_sv32_invalid_pte_Umode-00passpass3420,4044,791
Sv_sv32_misaligned_page_Smode-00passpass1816,8563,909
Sv_sv32_misaligned_page_Umode-00passpass1817,7424,111
Sv_sv32_mstatus_mxr_Smode-00passpass4219,8414,583
Sv_sv32_mstatus_mxr_Umode-00passpass4222,7535,367
Sv_sv32_nleaf_pte_DAU_Smode-00passpass514,0783,296
Sv_sv32_nleaf_pte_DAU_Umode-00passpass514,0783,296
Sv_sv32_nleaf_pte_level0_Smode-00passpass1816,9793,934
Sv_sv32_nleaf_pte_level0_Umode-00passpass1817,8604,136
Sv_sv32_pte_reserved_rwx_Smode-00passpass614,1533,323
Sv_sv32_pte_reserved_rwx_Umode-00passpass614,1533,323
Sv_sv32_pte_rsw_Smode-00passpass3017,3763,861
Sv_sv32_pte_rsw_Umode-00passpass3021,6555,049
Sv_sv32_satp_access_Smode-00passpass3017,5494,037
Sv_sv32_spage_Smode-00passpass8225,4315,813
Sv_sv32_spage_access_Umode-00passpass15441,99310,496
Sv_sv32_spage_mstatus_sum_set_Smode-00passpass5421,9745,093
Sv_sv32_upage_Umode-00passpass8232,2547,793
Sv_sv32_upage_mstatus_sum_set_Smode-00passpass10628,8906,781
Sv_sv32_upage_mstatus_sum_unset_Smode-00passpass15435,4138,615
SvSm_sv32_mstatus_mprv_Smode-00passpass1014,8903,478
SvSm_sv32_mstatus_mprv_Umode-00passpass1014,8473,470
SvSm_sv32_satp_access_Mmode-00passpass613,6223,207
SvSm_sv32_upage_mprv_set_sum_set_Smode-00passpass1015,1753,576
SvSm_sv32_upage_mprv_set_sum_unset_Smode-00passpass2617,5324,246
SvSm_sv_mstatus_tvm_test-00passknown failure2621,4386,649
Svbare_Svbare_Smode-00passpass1013,8633,255
Svbare_Svbare_Umode-00passpass1014,6343,419
SvbareSm_Svbare_mstatus_mprv-00passpass1414,0493,284
Zaamo-amoadd.w-00passpass49058,91910,146
Zaamo-amoand.w-00passpass49058,90910,146
Zaamo-amomax.w-00passpass61069,46111,706
Zaamo-amomaxu.w-00passpass61069,48811,715
Zaamo-amomin.w-00passpass61069,46511,706
Zaamo-amominu.w-00passpass61069,48711,715
Zaamo-amoor.w-00passpass49058,88710,137
Zaamo-amoswap.w-00passpass49058,94010,155
Zaamo-amoxor.w-00passpass49058,91210,146
Zalrsc-lr.w-00passpass10619,1323,933
Zalrsc-sc.w-00passpass542125,74429,479
Zca-c.add-00passpass29831,7075,652
Zca-c.addi-00passpass22224,2834,616
Zca-c.addi16sp-00passpass6617,4463,711
Zca-c.addi4spn-00passpass26627,6464,911
Zca-c.and-00passpass19825,6274,823
Zca-c.andi-00passpass18222,2284,352
Zca-c.beqz-00passpass4216,3403,575
Zca-c.bnez-00passpass4216,3433,557
Zca-c.j-00passpass4630,4776,790
Zca-c.jal-00passpass4630,5276,808
Zca-c.jalr-00passpass7818,9314,007
Zca-c.jr-00passpass4618,5724,074
Zca-c.li-00passpass11420,2463,934
Zca-c.lui-00passpass11019,7983,924
Zca-c.lw-00passpass6616,9393,645
Zca-c.lwsp-00passpass10619,0354,009
Zca-c.mv-00passpass14222,3044,398
Zca-c.nop-00passpass614,3973,351
Zca-c.or-00passpass19825,6024,814
Zca-c.slli-00passpass21024,4914,537
Zca-c.srai-00passpass18622,5504,394
Zca-c.srli-00passpass18622,5504,394
Zca-c.sub-00passpass19825,6274,823
Zca-c.sw-00passpass12618,2963,939
Zca-c.swsp-00passpass22221,1614,279
Zca-c.xor-00passpass19825,6274,823
Zicntr-csrrc-00passpass1014,6253,392
Zicntr-csrrs-00passpass1014,6253,392
Zicsr-csrrc-00passpass22224,5694,584
Zicsr-csrrci-00passpass13419,1453,873
Zicsr-csrrs-00passpass22224,5324,576
Zicsr-csrrsi-00passpass13419,1453,873
Zicsr-csrrw-00passpass22224,5414,576
Zicsr-csrrwi-00passpass13419,1423,873
Zifencei-fence.i-00passpass1019,1803,439
Zihintntl-ntl.all-00passpass614,3083,359
Zihintntl-ntl.p1-00passpass614,2833,350
Zihintntl-ntl.pall-00passpass614,3333,368
Zihintntl-ntl.s1-00passpass614,2833,350
ZihintntlZca-c.ntl.all-00passpass614,4343,405
ZihintntlZca-c.ntl.p1-00passpass614,4093,396
ZihintntlZca-c.ntl.pall-00passpass614,4593,414
ZihintntlZca-c.ntl.s1-00passpass614,4093,396
Zihintpause-pause-00passpass614,3083,359
Zmmul-mul-00passpass39839,5306,487
Zmmul-mulh-00passpass39839,5226,488
Zmmul-mulhsu-00passpass39839,6176,514
Zmmul-mulhu-00passpass39839,5556,497

How this was run

Core
Vreteno, TxHDL 662c01333a16
Tests
riscv-arch-test (ACT4) a215271eab12; 156 of 1028 tests apply
Reference
Sail RISC-V model 0.15
Compiler
riscv-none-elf-gcc (xPack GNU RISC-V Embedded GCC x86_64) 15.2.0
Simulator
Verilator, on the netlist TxHDL writes
Extensions
I, M, Zmmul, A, Zaamo, Zalrsc, C, Zca, Zicsr, Zifencei, Zicntr, Zihintpause, Zihintntl, Sm, S, U, Sv32, Svbare, Svade
Left out
Svade: the suite writes menvcfgh, which a privileged 1.11 core does not have (https://git.hdlfactory.com/HDL/txhdl/issues/1348)
Harness
9c7dd19dd40c