FPGA開発日記

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

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

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

github.com

改良前:

Swimmer-RISCV
  Version 20150531 Revision 33da5fa
  developed by Masayuki Kimura <masayuki.kimura.1986@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 Masayuki Kimura <masayuki.kimura.1986@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++で書き直したいとか、やりたいことがいっぱいあって困る。