FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Chipyardで32-bit版BOOMを生成するための調査 (4. RV32向けのF拡張限定BOOMのテスト実行)

f:id:msyksphinz:20220103010108p:plain

前回RV32のF拡張限定のVerilogファイルを生成したので、これのテストを実行する方法を調査する。

msyksphinz.hatenablog.com

Chipyardのドキュメントによると、以下のようにすることでriscv-testsriscv-benchmarksを実行することができる。

make CONFIG=MediumBoom32Config run-asm-tests run-bmark-tests

一応テストは動き始めた。以下のテストはPASSしたようだ。しかしrv32uf-p-faddが落ちた。fclassfcmpなどは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