FPGA開発日記

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

オープンソースRISC-VコアHummingBirdについて調査(6. すべてのテストケースで確認)

RISC-Vの実装であるHummingBirdを調査していくことにした。

https://camo.githubusercontent.com/f393ca23a6df9f640c1e4a43b78f2a503fdc47e8/68747470733a2f2f66647661643032316173666438712e6f73732d636e2d68616e677a686f752e616c6979756e63732e636f6d2f4c696368656554616e672f626f6f6b7069632e6a7067

前回何となくコードがPassできるようになったので、用意されているすべてのパタンを流してみることにした。

for bin in `ls -1 /home/msyksphinz/work/riscv/e200_opensource/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32?i-p-* | grep -v .dump | grep -v .verilog`
do
./run/obj_dir/Vtb_top +DUMPWAVE=1 +TESTCASE=${bin} 2>&1 | tee `basename ${bin}`.log
done

各テストケースでログファイルを出力するので、これを確認していく。

grep Finish *.log

すべてPassしたようだ。本当かなあ?

rv32mi-p-breakpoint.log:207:Finish. Result =          1
rv32mi-p-csr.log:208:Finish. Result =          1
rv32mi-p-i2c.log:208:Finish. Result =          1
rv32mi-p-illegal.log:208:Finish. Result =          1
rv32mi-p-ma_addr.log:212:Finish. Result =          1
rv32mi-p-ma_fetch.log:208:Finish. Result =          1
rv32mi-p-mcsr.log:208:Finish. Result =          1
rv32mi-p-sbreak.log:208:Finish. Result =          1
rv32mi-p-scall.log:207:Finish. Result =          1
rv32mi-p-shamt.log:208:Finish. Result =          1
rv32ui-p-add.log:212:Finish. Result =          1
rv32ui-p-addi.log:209:Finish. Result =          1
rv32ui-p-and.log:212:Finish. Result =          1
rv32ui-p-andi.log:209:Finish. Result =          1
rv32ui-p-auipc.log:208:Finish. Result =          1
rv32ui-p-beq.log:210:Finish. Result =          1
rv32ui-p-bge.log:211:Finish. Result =          1
rv32ui-p-bgeu.log:211:Finish. Result =          1
rv32ui-p-blt.log:210:Finish. Result =          1
rv32ui-p-bltu.log:210:Finish. Result =          1
rv32ui-p-bne.log:210:Finish. Result =          1
rv32ui-p-fence_i.log:210:Finish. Result =          1
rv32ui-p-jal.log:207:Finish. Result =          1
rv32ui-p-jalr.log:208:Finish. Result =          1
rv32ui-p-lb.log:210:Finish. Result =          1
rv32ui-p-lbu.log:210:Finish. Result =          1
rv32ui-p-lh.log:210:Finish. Result =          1
rv32ui-p-lhu.log:210:Finish. Result =          1
rv32ui-p-lui.log:208:Finish. Result =          1
rv32ui-p-lw.log:210:Finish. Result =          1
rv32ui-p-or.log:212:Finish. Result =          1
rv32ui-p-ori.log:209:Finish. Result =          1
rv32ui-p-sb.log:212:Finish. Result =          1
rv32ui-p-sh.log:213:Finish. Result =          1
rv32ui-p-simple.log:207:Finish. Result =          1
rv32ui-p-sll.log:212:Finish. Result =          1
rv32ui-p-slli.log:209:Finish. Result =          1
rv32ui-p-slt.log:212:Finish. Result =          1
rv32ui-p-slti.log:209:Finish. Result =          1
rv32ui-p-sltiu.log:209:Finish. Result =          1
rv32ui-p-sltu.log:212:Finish. Result =          1
rv32ui-p-sra.log:212:Finish. Result =          1
rv32ui-p-srai.log:210:Finish. Result =          1
rv32ui-p-srl.log:212:Finish. Result =          1
rv32ui-p-srli.log:210:Finish. Result =          1
rv32ui-p-sub.log:212:Finish. Result =          1
rv32ui-p-sw.log:213:Finish. Result =          1
rv32ui-p-xor.log:212:Finish. Result =          1
rv32ui-p-xori.log:209:Finish. Result =          1