FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

自作RISC-Vシミュレータを利用してriscv-tests の基本命令セットのテストをしてみた(基本命令全パス)

よっしゃー。基本命令が全パスしたぞ。

github.com

修正ポイントは、

  • AMO命令(アトミック操作命令)を実装
  • ストアのアドレスを生成するビットフィールドの修正(S-type)

あたりかな、機能的のところを実装したら、大体パスした。

まあこのパタン、ニッチな命令(アトミック操作とか)のテスト数はそんなに多くないし、これが通らないと門前払い、くらいの勢いなのかな。

パタン名 結果 パタン名 結果
rv32ui-p-add.hex Pass rv32ui-pt-add.hex Pass
rv32ui-p-addi.hex Pass rv32ui-pt-addi.hex Pass
rv32ui-p-amoadd_w.hex Pass rv32ui-pt-amoadd_w.hex Pass
rv32ui-p-amoand_w.hex Pass rv32ui-pt-amoand_w.hex Pass
rv32ui-p-amomaxu_w.hex Pass rv32ui-pt-amomaxu_w.hex Pass
rv32ui-p-amomax_w.hex Pass rv32ui-pt-amomax_w.hex Pass
rv32ui-p-amominu_w.hex Pass rv32ui-pt-amominu_w.hex Pass
rv32ui-p-amomin_w.hex Pass rv32ui-pt-amomin_w.hex Pass
rv32ui-p-amoor_w.hex Pass rv32ui-pt-amoor_w.hex Pass
rv32ui-p-amoswap_w.hex Pass rv32ui-pt-amoswap_w.hex Pass
rv32ui-p-and.hex Pass rv32ui-pt-and.hex Pass
rv32ui-p-andi.hex Pass rv32ui-pt-andi.hex Pass
rv32ui-p-auipc.hex Pass rv32ui-pt-auipc.hex Pass
rv32ui-p-beq.hex Pass rv32ui-pt-beq.hex Pass
rv32ui-p-bge.hex Pass rv32ui-pt-bge.hex Pass
rv32ui-p-bgeu.hex Pass rv32ui-pt-bgeu.hex Pass
rv32ui-p-blt.hex Pass rv32ui-pt-blt.hex Pass
rv32ui-p-bltu.hex Pass rv32ui-pt-bltu.hex Pass
rv32ui-p-bne.hex Pass rv32ui-pt-bne.hex Pass
rv32ui-p-div.hex Pass rv32ui-pt-div.hex Pass
rv32ui-p-divu.hex Pass rv32ui-pt-divu.hex Pass
rv32ui-p-fence_i.hex Pass rv32ui-pt-fence_i.hex Pass
rv32ui-p-jal.hex Pass rv32ui-pt-jal.hex Pass
rv32ui-p-jalr.hex Pass rv32ui-pt-jalr.hex Pass
rv32ui-p-j.hex Pass rv32ui-pt-j.hex Pass
rv32ui-p-lb.hex Pass rv32ui-pt-lb.hex Pass
rv32ui-p-lbu.hex Pass rv32ui-pt-lbu.hex Pass
rv32ui-p-lh.hex Pass rv32ui-pt-lh.hex Pass
rv32ui-p-lhu.hex Pass rv32ui-pt-lhu.hex Pass
rv32ui-p-lui.hex Pass rv32ui-pt-lui.hex Pass
rv32ui-p-lw.hex Pass rv32ui-pt-lw.hex Pass
rv32ui-p-mul.hex Pass rv32ui-pt-mul.hex Pass
rv32ui-p-mulh.hex Pass rv32ui-pt-mulh.hex Pass
rv32ui-p-mulhsu.hex Pass rv32ui-pt-mulhsu.hex Pass
rv32ui-p-mulhu.hex Pass rv32ui-pt-mulhu.hex Pass
rv32ui-p-or.hex Pass rv32ui-pt-or.hex Pass
rv32ui-p-ori.hex Pass rv32ui-pt-ori.hex Pass
rv32ui-p-rem.hex Pass rv32ui-pt-rem.hex Pass
rv32ui-p-remu.hex Pass rv32ui-pt-remu.hex Pass
rv32ui-p-sb.hex Pass rv32ui-pt-sb.hex Pass
rv32ui-p-sh.hex Pass rv32ui-pt-sh.hex Pass
rv32ui-p-simple.hex Pass rv32ui-pt-simple.hex Pass
rv32ui-p-sll.hex Pass rv32ui-pt-sll.hex Pass
rv32ui-p-slli.hex Pass rv32ui-pt-slli.hex Pass
rv32ui-p-slt.hex Pass rv32ui-pt-slt.hex Pass
rv32ui-p-slti.hex Pass rv32ui-pt-slti.hex Pass
rv32ui-p-sra.hex Pass rv32ui-pt-sra.hex Pass
rv32ui-p-srai.hex Pass rv32ui-pt-srai.hex Pass
rv32ui-p-srl.hex Pass rv32ui-pt-srl.hex Pass
rv32ui-p-srli.hex Pass rv32ui-pt-srli.hex Pass
rv32ui-p-sub.hex Pass rv32ui-pt-sub.hex Pass
rv32ui-p-sw.hex Pass rv32ui-pt-sw.hex Pass
rv32ui-p-xor.hex Pass rv32ui-pt-xor.hex Pass
rv32ui-p-xori.hex Pass rv32ui-pt-xori.hex Pass
PASS 54 54
FAIL 0 0