FPGA開発日記

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

RISC-Vのランダムテストジェネレータ AAPGを試す (7. ShaktiのデフォルトテストパタンがかなりPASSできるようになった)

自作RISC-Vコアの実装がかなり安定してきたので、AAPGでさらなるテストを流している。

gitlab.com

もともとshakti向けに提供されている例を使って検証を拡充してみることにした。

Shaktiで用意されているテストパタンが結構流れ始めた。それぞれのテストパタンは結構長い(30万命令から50万命令くらい)。 最初はほとんどのパタンが落ちていたが、いろいろ修正した結果かなりPASSが増え始めた。落ちているのをピックアップしてみる。

  • aapg_cclass_rv64imafdc_branches1_202310082010/result.json : 全PASS!
    "config_00003": "pass",
    "config_00002": "pass",
    "config_00004": "pass",
    "config_00000": "pass",
    "config_00001": "pass"
  • aapg_cclass_rv64imafdc_branches1_s_202310082016/result.json : 全PASS
    "config_00000": "pass",
    "config_00001": "pass",
    "config_00002": "pass",
    "config_00003": "pass",
    "config_00004": "pass"
  • aapg_cclass_rv64imafdc_branches1_s_202310082019/result.json : 2本PASS。アトミック命令のバグと、メモリアクセス領域の問題があるように思わえる。
    "config_00000": "error",
    "config_00001": "error",
    "config_00004": "error",
    "config_00003": "pass",
    "config_00002": "pass"
1714227 : 467402 : PC=[0000000080000298] (M,12,01) 00007129 c.addi16sp sp, -320
==========================================
Wrong PC: RTL = 0000000080000298, ISS = 00000000800002da
==========================================

MW8(0x000000008009c968)=>ffffffff7fc00000               
117625 : 403 : PC=[00000000800006ba] (M,24,01) 08e12daf amoswap.w s11, a4, (sp)
MR4(0x000000008009c898)=>fffffffff3754af7
MW4(0x000000008009c898)=>00000000ffffffff
==========================================
Wrong GPR[27](26): RTL = 2378717521409f68, ISS = fffffffff3754af7
==========================================          
  • aapg_cclass_rv64imafdc_branches1_u_202310082022/result.json : 3本PASSした。
    "config_00003": "error",
    "config_00001": "error",
    "config_00000": "pass",
    "config_00002": "pass",
    "config_00004": "pass"
1645529 : 470229 : PC=[00000000800002d6] (M,05,01) 30002573 csrr    a0, mstatus
==========================================
Wrong GPR[10](120): RTL = 8000000a00007800, ISS = 8000000a00006000
==========================================

1693461 : 471345 : PC=[00000000800002c6] (M,04,01) 0000e1e2 c.sdsp  s8, 192(sp)
MW8(0x0000000080092110)=>0000000000000001
==========================================
Wrong PC: RTL = 00000000800002c6, ISS = 00000000800002c4
==========================================
  • `aapg_cclass_rv64imafdc_bringup_202310082024/result.json : 全PASS
    "config_00000": "pass",
    "config_00004": "pass",
    "config_00002": "pass",
    "config_00003": "pass",
    "config_00001": "pass"

-` aapg_cclass_rv64imafdc_bringup_s_202310082026/result.json : 全PASS

    "config_00002": "pass",
    "config_00001": "pass",
    "config_00000": "pass",
    "config_00004": "pass",
    "config_00003": "pass"
  • `aapg_cclass_rv64imafdc_bringup_u_202310082027/result.json : 4本PASSした。
    "config_00002": "error",
    "config_00000": "pass",
    "config_00004": "pass",
    "config_00001": "pass",
    "config_00003": "pass"
499334 : 119549 : PC=[000000008001dbd8] (M,05,01) faf12623 sw      a5, -84(sp)
MW4(0x0000000080094dec)=>00000000d0963299
499334 : 119550 : PC=[000000008001dbdc] (M,05,02) 0000a032 c.fsdsp fa2, 0(sp)
MW8(0x0000000080094e40)=>0000000000000000
499334 : 119551 : PC=[000000008001dbde] (M,05,04) 5c950e1b addiw   t3, a0, 1481
GPR[28](104) <= 00000000000005c8
499334 : 119552 : PC=[000000008001dbe2] (M,05,08) 81a1352f amomin.d a0, s10, (sp)
MR8(0x0000000080094e40)=>0000000000000000
MW8(0x0000000080094e40)=>0000000000000000
==========================================
Wrong GPR[10](29): RTL = 000000000000000b, ISS = 0000000000000000
==========================================
  • aapg_cclass_rv64imafdc_exceptions_202310082029/result.json : 4本PASSした。
    "config_00002": "error",
    "config_00003": "pass",
    "config_00004": "pass",
    "config_00000": "pass",
    "config_00001": "pass"
80329 : 1331 : PC=[0000000080000298] (M,24,01) 00007129 c.addi16sp sp, -320
==========================================
Wrong PC: RTL = 0000000080000298, ISS = 00000000800002de
==========================================
  • aapg_cclass_rv64imafdc_exceptions_s_202310082030/result.json : 全PASSした。
    "config_00002": "pass",
    "config_00004": "pass",
    "config_00000": "pass",
    "config_00003": "pass",
    "config_00001": "pass"
Generated by DALL-E 3 from ChatGPT