前回RV32のF拡張限定のVerilogファイルを生成したので、これのテストを実行する方法を調査する。
Chipyardのドキュメントによると、以下のようにすることでriscv-tests
とriscv-benchmarks
を実行することができる。
make CONFIG=MediumBoom32Config run-asm-tests run-bmark-tests
一応テストは動き始めた。以下のテストはPASSしたようだ。しかしrv32uf-p-fadd
が落ちた。fclass
やfcmp
などはPASSしているのに不思議だなあ。
grep -e PASS -e FAIL *.out
rv32uc-p-rvc.out:*** PASSED *** Completed after 230133 cycles rv32uf-p-fadd.out:simulator-chipyard-MediumBoom32Config: ../fesvr/elfloader.cc:29: std::map<std::__cxx11::basic_string<char>, long unsigned int> load_elf(const char*, memif_t*, reg_t*): Assertion `buf != MAP_FAILED' failed. rv32uf-p-fclass.out:*** PASSED *** Completed after 17320 cycles rv32uf-p-fcmp.out:*** PASSED *** Completed after 109512 cycles rv32uf-p-fcvt.out:*** PASSED *** Completed after 93401 cycles rv32uf-p-fcvt_w.out:*** PASSED *** Completed after 115940 cycles rv32uf-p-ldst.out:*** PASSED *** Completed after 91097 cycles rv32uf-p-move.out:*** PASSED *** Completed after 26376 cycles rv32ui-p-add.out:*** PASSED *** Completed after 37690 cycles rv32ui-p-addi.out:*** PASSED *** Completed after 24963 cycles rv32ui-p-and.out:*** PASSED *** Completed after 36481 cycles rv32ui-p-andi.out:*** PASSED *** Completed after 21164 cycles rv32ui-p-auipc.out:*** PASSED *** Completed after 13395 cycles rv32ui-p-beq.out:*** PASSED *** Completed after 26516 cycles rv32ui-p-bge.out:*** PASSED *** Completed after 28937 cycles rv32ui-p-bgeu.out:*** PASSED *** Completed after 28936 cycles rv32ui-p-blt.out:*** PASSED *** Completed after 26516 cycles rv32ui-p-bltu.out:*** PASSED *** Completed after 27765 cycles rv32ui-p-bne.out:*** PASSED *** Completed after 26519 cycles rv32ui-p-fence_i.out:*** PASSED *** Completed after 94804 cycles rv32ui-p-jal.out:*** PASSED *** Completed after 13482 cycles rv32ui-p-jalr.out:*** PASSED *** Completed after 17284 cycles rv32ui-p-lb.out:*** PASSED *** Completed after 101284 cycles rv32ui-p-lbu.out:*** PASSED *** Completed after 101284 cycles rv32ui-p-lh.out:*** PASSED *** Completed after 102451 cycles rv32ui-p-lhu.out:*** PASSED *** Completed after 102511 cycles rv32ui-p-lui.out:*** PASSED *** Completed after 14738 cycles rv32ui-p-lw.out:*** PASSED *** Completed after 102510 cycles rv32ui-p-or.out:*** PASSED *** Completed after 36477 cycles rv32ui-p-ori.out:*** PASSED *** Completed after 22335 cycles rv32ui-p-sb.out:*** PASSED *** Completed after 110334 cycles rv32ui-p-sh.out:*** PASSED *** Completed after 113086 cycles rv32ui-p-simple.out:*** PASSED *** Completed after 12095 cycles rv32ui-p-sll.out:*** PASSED *** Completed after 39110 cycles rv32ui-p-slli.out:*** PASSED *** Completed after 24952 cycles rv32ui-p-slt.out:*** PASSED *** Completed after 36444 cycles rv32ui-p-slti.out:*** PASSED *** Completed after 24952 cycles rv32ui-p-sra.out:*** PASSED *** Completed after 41516 cycles rv32ui-p-srai.out:*** PASSED *** Completed after 26178 cycles rv32ui-p-srl.out:*** PASSED *** Completed after 40321 cycles rv32ui-p-srli.out:*** PASSED *** Completed after 26189 cycles rv32ui-p-sub.out:*** PASSED *** Completed after 36456 cycles rv32ui-p-sw.out:*** PASSED *** Completed after 113365 cycles rv32ui-p-xor.out:*** PASSED *** Completed after 36480 cycles rv32ui-p-xori.out:*** PASSED *** Completed after 22400 cycles