自作RISC-Vコアの実装がかなり安定してきたので、AAPGでさらなるテストを流している。
もともと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"