FPGA開発日記

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

自作RISC-Vシミュレータのシステムレジスタ表記拡張

自作RISC-Vシミュレータのシステムレジスタの表記を拡張した。これまではCSRはアドレス番号でしか表記されなくなっていたが、これをシステムレジスタの名前で表記できるようにした。

https://github.com/msyksphinz/swimmer_riscv/commit/3f2b62802d576d30e649a97f1bd806dd4e0010a0github.com

改良前:

Swimmer-RISCV
  Version 20150531 Revision 33da5fa
  developed by msyksphinz <msyksphinz_dev@gmail.com>
         0 : [00000200] f1002573 : csrrs      r10,0xf10,r00        r00=>00000000 CSR(f10)=>00000000 r10<=00000000
         1 : [00000204] 00051063 : bne        r10,r00,0x00         r10=>00000000 r00=>00000000

改良後:

Swimmer-RISCV
  Version 20150531 Revision 3f2b628
  developed by msyksphinz <msyksphinz_dev@gmail.com>
         0 : [00000200] f1002573 : csrrs      r10,0xf10,r00        r00=>00000000 mhartid=>00000000 r10<=00000000
         1 : [00000204] 00051063 : bne        r10,r00,0x00         r10=>00000000 r00=>00000000
...

これで多少はデバッグはしやすくなるかな。相変わらずCSRのテストパタンはうまく行かない。マシンモードをきちんと定義しないと最後まで流れてくれない気がするし、 それより前にデコーダの探索アルゴリズムとか、そもそもC++で書き直したいとか、やりたいことがいっぱいあって困る。