FPGA開発日記

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

自作RISC-Vシミュレータを拡張してシステムレジスタを実装する(テストパタンを試す)

RISC-Vのシミュレータの実装を続けて、取り敢えずCSRレジスタを参照できるようにした。

github.com

ところが、riscv-testsで単純な命令を実行してみると、どうやらtohost/fromhostの仕様でまた公開になっていない部分があるようで、うまく最後で停止してくれない。

       423 : [000024dc] 00208033 : add        r00,r01,r02          r01=>00000010 r02=>0000001e r00<=0000002e
       424 : [000024e0] 00000e93 : addi       r29,r00,0x000        r00=>00000000 r29<=00000000
       425 : [000024e4] 02600e13 : addi       r28,r00,0x026        r00=>00000000 r28<=00000026
       426 : [000024e8] 01d01463 : bne        r00,r29,0x00         r00=>00000000 r29=>00000000
       427 : [000024ec] 01c01e63 : bne        r00,r28,0x00         r00=>00000000 r28=>00000026 pc<=00002508
       428 : [00002508] 0ff0000f : fence
<Error: CSR Address 01e is invalid.>
<Error: CSR Address 01e is invalid.>
       429 : [0000250c] 51e0d073 : csrrwi     r00,0x51e,0x01       CSR(01e)=>ffffffff CSR(01e)<=00000001 r00<=ffffffff
       430 : [00002510] 0000006f : jal        r00,0x00000          r00<=00002514 pc<=00002510
       431 : [00002510] 0000006f : jal        r00,0x00000          r00<=00002514 pc<=00002510

うーん、確かに現状のriscv-testsの中にはtohost/fromhostが0x51eというように定義されているけど、Ver.1.7の仕様書には0x780/0x781として定義されている。 もしかしたら新しいriscv-testsのコミットだとアップデートされているかもしれない。試してみる。