diff --git a/wally-pipelined/regression/regression-wally.py b/wally-pipelined/regression/regression-wally.py index ec06956b..79532c5c 100755 --- a/wally-pipelined/regression/regression-wally.py +++ b/wally-pipelined/regression/regression-wally.py @@ -48,6 +48,7 @@ for test in tests64: cmd="vsim > {} -c <<!\ndo wally-pipelined-batch.do rv64g "+test+"\n!", grepstr="All tests ran without failures") configs.append(tc) +#tests32 = ["arch32i", "arch32priv", "arch32c", "arch32m", "arch32f", "imperas32i", "imperas32p", "imperas32mmu", "imperas32f", "imperas32m", "imperas32a", "imperas32c"] tests32 = ["arch32i", "arch32priv", "arch32c", "arch32m", "imperas32i", "imperas32p", "imperas32mmu", "imperas32f", "imperas32m", "imperas32a", "imperas32c"] for test in tests32: tc = TestCase( diff --git a/wally-pipelined/regression/sim-wally b/wally-pipelined/regression/sim-wally index 9985a008..1479d007 100755 --- a/wally-pipelined/regression/sim-wally +++ b/wally-pipelined/regression/sim-wally @@ -1,2 +1,2 @@ -vsim -do "do wally-pipelined.do rv32g arch32m" +vsim -do "do wally-pipelined.do rv32g arch32f" diff --git a/wally-pipelined/regression/sim-wally-batch b/wally-pipelined/regression/sim-wally-batch index 06a66a10..4b627b76 100755 --- a/wally-pipelined/regression/sim-wally-batch +++ b/wally-pipelined/regression/sim-wally-batch @@ -1,3 +1,3 @@ vsim -c <<! -do wally-pipelined-batch.do rv64g arch64m +do wally-pipelined-batch.do rv32g arch32f ! diff --git a/wally-pipelined/regression/wave-dos/peripheral-waves.do b/wally-pipelined/regression/wave-dos/peripheral-waves.do index 6eec4995..f5382c3b 100644 --- a/wally-pipelined/regression/wave-dos/peripheral-waves.do +++ b/wally-pipelined/regression/wave-dos/peripheral-waves.do @@ -53,7 +53,7 @@ add wave -hex /testbench/dut/hart/lsu/dcache/ReadDataM add wave -divider add wave -hex /testbench/PCW #add wave -hex /testbench/InstrW -add wave -hex /testbench/dut/hart/ieu/c/InstrValidW +#add wave -hex /testbench/dut/hart/ieu/c/InstrValidW #add wave /testbench/InstrWName add wave -hex /testbench/dut/hart/ReadDataW add wave -hex /testbench/dut/hart/ieu/dp/ResultW diff --git a/wally-pipelined/testbench/testbench.sv b/wally-pipelined/testbench/testbench.sv index d2c83a4c..e7f7e1f5 100644 --- a/wally-pipelined/testbench/testbench.sv +++ b/wally-pipelined/testbench/testbench.sv @@ -101,6 +101,7 @@ logic [3:0] dummy; "arch32priv": tests = arch32priv; "arch32c": if (`C_SUPPORTED) tests = arch32c; "arch32m": if (`M_SUPPORTED) tests = arch32m; + "arch32f": if (`F_SUPPORTED) tests = arch32f; "imperas32i": tests = imperas32i; "imperas32p": tests = imperas32p; "imperas32mmu": if (`MEM_VIRTMEM) tests = imperas32mmu; diff --git a/wally-pipelined/testbench/tests.vh b/wally-pipelined/testbench/tests.vh index 5a8878f3..fbe0d916 100644 --- a/wally-pipelined/testbench/tests.vh +++ b/wally-pipelined/testbench/tests.vh @@ -668,158 +668,162 @@ string imperas32f[] = '{ "rv32i_m/M/remu-01", "5010" }; -/* string arch32f[] = '{ `RISCVARCHTEST, - "rv32i_m/M/div-01", "5010", - "fadd_b1-01", "", - "fadd_b10-01", "", - "fadd_b11-01", "", - "fadd_b12-01", "", - "fadd_b13-01", "", - "fadd_b2-01", "", - "fadd_b3-01", "", - "fadd_b4-01", "", - "fadd_b5-01", "", - "fadd_b7-01", "", - "fadd_b8-01", "", - "fclass_b1-01", "", - "fcvt.s.w_b25-01", "", - "fcvt.s.w_b26-01", "", - "fcvt.s.wu_b25-01", "", - "fcvt.s.wu_b26-01", "", - "fcvt.w.s_b1-01", "", - "fcvt.w.s_b22-01", "", - "fcvt.w.s_b23-01", "", - "fcvt.w.s_b24-01", "", - "fcvt.w.s_b27-01", "", - "fcvt.w.s_b28-01", "", - "fcvt.w.s_b29-01", "", - "fcvt.wu.s_b1-01", "", - "fcvt.wu.s_b22-01", "", - "fcvt.wu.s_b23-01", "", - "fcvt.wu.s_b24-01", "", - "fcvt.wu.s_b27-01", "", - "fcvt.wu.s_b28-01", "", - "fcvt.wu.s_b29-01", "", - "fdiv_b1-01", "", - "fdiv_b2-01", "", - "fdiv_b20-01", "", - "fdiv_b21-01", "", - "fdiv_b3-01", "", - "fdiv_b4-01", "", - "fdiv_b5-01", "", - "fdiv_b6-01", "", - "fdiv_b7-01", "", - "fdiv_b8-01", "", - "fdiv_b9-01", "", - "feq_b1-01", "", - "feq_b19-01", "", - "fle_b1-01", "", - "fle_b19-01", "", - "flt_b1-01", "", - "flt_b19-01", "", - "flw-align-01", "", - "fmadd_b1-01", "", - "fmadd_b14-01", "", - "fmadd_b15-01", "", - "fmadd_b16-01", "", - "fmadd_b17-01", "", - "fmadd_b18-01", "", - "fmadd_b2-01", "", - "fmadd_b3-01", "", - "fmadd_b4-01", "", - "fmadd_b5-01", "", - "fmadd_b6-01", "", - "fmadd_b7-01", "", - "fmadd_b8-01", "", - "fmax_b1-01", "", - "fmax_b19-01", "", - "fmin_b1-01", "", - "fmin_b19-01", "", - "fmsub_b1-01", "", - "fmsub_b14-01", "", - "fmsub_b15-01", "", - "fmsub_b16-01", "", - "fmsub_b17-01", "", - "fmsub_b18-01", "", - "fmsub_b2-01", "", - "fmsub_b3-01", "", - "fmsub_b4-01", "", - "fmsub_b5-01", "", - "fmsub_b6-01", "", - "fmsub_b7-01", "", - "fmsub_b8-01", "", - "fmul_b1-01", "", - "fmul_b2-01", "", - "fmul_b3-01", "", - "fmul_b4-01", "", - "fmul_b5-01", "", - "fmul_b6-01", "", - "fmul_b7-01", "", - "fmul_b8-01", "", - "fmul_b9-01", "", - "fmv.w.x_b25-01", "", - "fmv.w.x_b26-01", "", - "fmv.x.w_b1-01", "", - "fmv.x.w_b22-01", "", - "fmv.x.w_b23-01", "", - "fmv.x.w_b24-01", "", - "fmv.x.w_b27-01", "", - "fmv.x.w_b28-01", "", - "fmv.x.w_b29-01", "", - "fnmadd_b1-01", "", - "fnmadd_b14-01", "", - "fnmadd_b15-01", "", - "fnmadd_b16-01", "", - "fnmadd_b17-01", "", - "fnmadd_b18-01", "", - "fnmadd_b2-01", "", - "fnmadd_b3-01", "", - "fnmadd_b4-01", "", - "fnmadd_b5-01", "", - "fnmadd_b6-01", "", - "fnmadd_b7-01", "", - "fnmadd_b8-01", "", - "fnmsub_b1-01", "", - "fnmsub_b14-01", "", - "fnmsub_b15-01", "", - "fnmsub_b16-01", "", - "fnmsub_b17-01", "", - "fnmsub_b18-01", "", - "fnmsub_b2-01", "", - "fnmsub_b3-01", "", - "fnmsub_b4-01", "", - "fnmsub_b5-01", "", - "fnmsub_b6-01", "", - "fnmsub_b7-01", "", - "fnmsub_b8-01", "", - "fsgnj_b1-01", "", - "fsgnjn_b1-01", "", - "fsgnjx_b1-01", "", - "fsqrt_b1-01", "", - "fsqrt_b2-01", "", - "fsqrt_b20-01", "", - "fsqrt_b3-01", "", - "fsqrt_b4-01", "", - "fsqrt_b5-01", "", - "fsqrt_b7-01", "", - "fsqrt_b8-01", "", - "fsqrt_b9-01", "", - "fsub_b1-01", "", - "fsub_b10-01", "", - "fsub_b11-01", "", - "fsub_b12-01", "", - "fsub_b13-01", "", - "fsub_b2-01", "", - "fsub_b3-01", "", - "fsub_b4-01", "", - "fsub_b5-01", "", - "fsub_b7-01", "", - "fsub_b8-01", "", - "fsw-align-01, "" + // tests repeated up here for basic sanity + //"rv32i_m/F/flw-align-01", "2010", // passes + //"rv32i_m/F/fmv.w.x_b25-01", "2090", // passes + "rv32i_m/F/fmadd_b14-01", "23d0", // fails test 1 + "rv32i_m/F/fcvt.s.w_b25-01", "20a0", // fails test 3 + // main tests + "rv32i_m/F/fadd_b1-01", "7220", + "rv32i_m/F/fadd_b10-01", "2270", + "rv32i_m/F/fadd_b11-01", "3fb40", + "rv32i_m/F/fadd_b12-01", "21b0", + "rv32i_m/F/fadd_b13-01", "3660", + "rv32i_m/F/fadd_b2-01", "38b0", + "rv32i_m/F/fadd_b3-01", "b320", + "rv32i_m/F/fadd_b4-01", "3480", + "rv32i_m/F/fadd_b5-01", "3700", + "rv32i_m/F/fadd_b7-01", "3520", + "rv32i_m/F/fadd_b8-01", "104a0", + "rv32i_m/F/fclass_b1-01", "2090", + "rv32i_m/F/fcvt.s.w_b25-01", "20a0", + "rv32i_m/F/fcvt.s.w_b26-01", "3290", + "rv32i_m/F/fcvt.s.wu_b25-01", "20a0", + "rv32i_m/F/fcvt.s.wu_b26-01", "3290", + "rv32i_m/F/fcvt.w.s_b1-01", "2090", + "rv32i_m/F/fcvt.w.s_b22-01", "20b0", + "rv32i_m/F/fcvt.w.s_b23-01", "20c0", + "rv32i_m/F/fcvt.w.s_b24-01", "21b0", + "rv32i_m/F/fcvt.w.s_b27-01", "2090", + "rv32i_m/F/fcvt.w.s_b28-01", "2090", + "rv32i_m/F/fcvt.w.s_b29-01", "2150", + "rv32i_m/F/fcvt.wu.s_b1-01", "2090", + "rv32i_m/F/fcvt.wu.s_b22-01", "20b0", + "rv32i_m/F/fcvt.wu.s_b23-01", "20c0", + "rv32i_m/F/fcvt.wu.s_b24-01", "21b0", + "rv32i_m/F/fcvt.wu.s_b27-01", "2090", + "rv32i_m/F/fcvt.wu.s_b28-01", "2090", + "rv32i_m/F/fcvt.wu.s_b29-01", "2150", + "rv32i_m/F/fdiv_b1-01", "7220", + "rv32i_m/F/fdiv_b2-01", "2350", + "rv32i_m/F/fdiv_b20-01", "38c0", + "rv32i_m/F/fdiv_b21-01", "7540", + "rv32i_m/F/fdiv_b3-01", "b320", + "rv32i_m/F/fdiv_b4-01", "3480", + "rv32i_m/F/fdiv_b5-01", "3700", + "rv32i_m/F/fdiv_b6-01", "3480", + "rv32i_m/F/fdiv_b7-01", "3520", + "rv32i_m/F/fdiv_b8-01", "104a0", + "rv32i_m/F/fdiv_b9-01", "d960", + "rv32i_m/F/feq_b1-01", "6220", + "rv32i_m/F/feq_b19-01", "a190", + "rv32i_m/F/fle_b1-01", "6220", + "rv32i_m/F/fle_b19-01", "a190", + "rv32i_m/F/flt_b1-01", "6220", + "rv32i_m/F/flt_b19-01", "8ee0", + "rv32i_m/F/flw-align-01", "2010", + "rv32i_m/F/fmadd_b1-01", "96860", + "rv32i_m/F/fmadd_b14-01", "23d0", + "rv32i_m/F/fmadd_b15-01", "19bb30", + "rv32i_m/F/fmadd_b16-01", "39d0", + "rv32i_m/F/fmadd_b17-01", "39d0", + "rv32i_m/F/fmadd_b18-01", "4d10", + "rv32i_m/F/fmadd_b2-01", "4d60", + "rv32i_m/F/fmadd_b3-01", "d4f0", + "rv32i_m/F/fmadd_b4-01", "3700", + "rv32i_m/F/fmadd_b5-01", "3ac0", + "rv32i_m/F/fmadd_b6-01", "3700", + "rv32i_m/F/fmadd_b7-01", "d7f0", + "rv32i_m/F/fmadd_b8-01", "13f30", + "rv32i_m/F/fmax_b1-01", "7220", + "rv32i_m/F/fmax_b19-01", "9e00", + "rv32i_m/F/fmin_b1-01", "7220", + "rv32i_m/F/fmin_b19-01", "9f20", + "rv32i_m/F/fmsub_b1-01", "96860", + "rv32i_m/F/fmsub_b14-01", "23d0", + "rv32i_m/F/fmsub_b15-01", "19bb30", + "rv32i_m/F/fmsub_b16-01", "39d0", + "rv32i_m/F/fmsub_b17-01", "39d0", + "rv32i_m/F/fmsub_b18-01", "42d0", + "rv32i_m/F/fmsub_b2-01", "4d60", + "rv32i_m/F/fmsub_b3-01", "d4f0", + "rv32i_m/F/fmsub_b4-01", "3700", + "rv32i_m/F/fmsub_b5-01", "3ac0", + "rv32i_m/F/fmsub_b6-01", "3700", + "rv32i_m/F/fmsub_b7-01", "37f0", + "rv32i_m/F/fmsub_b8-01", "13f30", + "rv32i_m/F/fmul_b1-01", "7220", + "rv32i_m/F/fmul_b2-01", "38c0", + "rv32i_m/F/fmul_b3-01", "b320", + "rv32i_m/F/fmul_b4-01", "3480", + "rv32i_m/F/fmul_b5-01", "3700", + "rv32i_m/F/fmul_b6-01", "3480", + "rv32i_m/F/fmul_b7-01", "3520", + "rv32i_m/F/fmul_b8-01", "104a0", + "rv32i_m/F/fmul_b9-01", "d960", + "rv32i_m/F/fmv.w.x_b25-01", "2090", + "rv32i_m/F/fmv.w.x_b26-01", "2090", + "rv32i_m/F/fmv.x.w_b1-01", "2090", + "rv32i_m/F/fmv.x.w_b22-01", "2090", + "rv32i_m/F/fmv.x.w_b23-01", "2090", + "rv32i_m/F/fmv.x.w_b24-01", "2090", + "rv32i_m/F/fmv.x.w_b27-01", "2090", + "rv32i_m/F/fmv.x.w_b28-01", "2090", + "rv32i_m/F/fmv.x.w_b29-01", "2090", + "rv32i_m/F/fnmadd_b1-01", "96870", + "rv32i_m/F/fnmadd_b14-01", "23d0", + "rv32i_m/F/fnmadd_b15-01", "19bb40", + "rv32i_m/F/fnmadd_b16-01", "39d0", + "rv32i_m/F/fnmadd_b17-01", "39d0", + "rv32i_m/F/fnmadd_b18-01", "4d10", + "rv32i_m/F/fnmadd_b2-01", "4d60", + "rv32i_m/F/fnmadd_b3-01", "d4f0", + "rv32i_m/F/fnmadd_b4-01", "3700", + "rv32i_m/F/fnmadd_b5-01", "3ac0", + "rv32i_m/F/fnmadd_b6-01", "3700", + "rv32i_m/F/fnmadd_b7-01", "37f0", + "rv32i_m/F/fnmadd_b8-01", "13f30", + "rv32i_m/F/fnmsub_b1-01", "96870", + "rv32i_m/F/fnmsub_b14-01", "23d0", + "rv32i_m/F/fnmsub_b15-01", "19bb30", + "rv32i_m/F/fnmsub_b16-01", "39d0", + "rv32i_m/F/fnmsub_b17-01", "39d0", + "rv32i_m/F/fnmsub_b18-01", "4d10", + "rv32i_m/F/fnmsub_b2-01", "4d60", + "rv32i_m/F/fnmsub_b3-01", "4df0", + "rv32i_m/F/fnmsub_b4-01", "3700", + "rv32i_m/F/fnmsub_b5-01", "3ac0", + "rv32i_m/F/fnmsub_b6-01", "3700", + "rv32i_m/F/fnmsub_b7-01", "37f0", + "rv32i_m/F/fnmsub_b8-01", "13f30", + "rv32i_m/F/fsgnj_b1-01", "7220", + "rv32i_m/F/fsgnjn_b1-01", "7220", + "rv32i_m/F/fsgnjx_b1-01", "7220", + "rv32i_m/F/fsqrt_b1-01", "2090", + "rv32i_m/F/fsqrt_b2-01", "2090", + "rv32i_m/F/fsqrt_b20-01", "2090", + "rv32i_m/F/fsqrt_b3-01", "2090", + "rv32i_m/F/fsqrt_b4-01", "2090", + "rv32i_m/F/fsqrt_b5-01", "2090", + "rv32i_m/F/fsqrt_b7-01", "2090", + "rv32i_m/F/fsqrt_b8-01", "2090", + "rv32i_m/F/fsqrt_b9-01", "3310", + "rv32i_m/F/fsub_b1-01", "7220", + "rv32i_m/F/fsub_b10-01", "2250", + "rv32i_m/F/fsub_b11-01", "3fb40", + "rv32i_m/F/fsub_b12-01", "21b0", + "rv32i_m/F/fsub_b13-01", "3660", + "rv32i_m/F/fsub_b2-01", "38b0", + "rv32i_m/F/fsub_b3-01", "b320", + "rv32i_m/F/fsub_b4-01", "3480", + "rv32i_m/F/fsub_b5-01", "3700", + "rv32i_m/F/fsub_b7-01", "3520", + "rv32i_m/F/fsub_b8-01", "104a0", + "rv32i_m/F/fsw-align-01", "2010" }; -*/ + string arch32c[] = '{ `RISCVARCHTEST,