RISC-Vの実装であるHummingBirdを調査していくことにした。
前回何となくコードが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