FPGA開発日記

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

自作RISC-Vシミュレータを拡張してシステムレジスタを実装する(単純なパタンがPASSするようになった)

だいぶ改造を加えて、自作RISC-VシミュレータがRISC-Vのパタンをパスできるようになってきた。

github.com

どうやら、旧世代に登場していたSCALL/SBREAK命令は取り下げられたらしい。出来立てホヤホヤのISAはこういう改変が思いっきりできるからいいなあ。

We have renamed SCALL in the user ISA to ECALL to make it more general. This renaming does not change the opcode encoding or the functionality fo the user-mode instruction, but will require a change to assembler/disassembler to support the new name.

そして、riscv-testsとriscv-gnu-toolchainは、riscv-toolsにぶら下がっているものではなく最新のものを引っ張ってくること。

github.com

github.com

これらの最新のコミットでは、システムレベル命令Ver.1.7に対応したテストパタンが公開されている。さすが、修正が早い。

というわけで、add命令とか、and命令とかなら、簡単なテストパタンをパスできるようになってきた。でもまだauipcとかでFailが出たので、テストパタンとしてある程度は機能しているようだし、自分のシミュレータもまだまだなってことが分かる。 とりあえず、現状のパタンはtohostに結果を書き込むとその場で無限ループするようにできている。これだとシミュレータがいつまで経って停止しないので、tohostに書き込みを行ったら自動的に停止するオプションを導入すべきかもな。