FPGA開発日記

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

Western DigitalのRISC-VコアSweRV-EH1 (4. テストベンチのコンパイル環境)

Western DigitalからオリジナルのRISC-VコアSweRVがリリースされ、テストベンチが動かせるようになった。

久しぶりに見てみると、アセンブリコンパイルしてシミュレーションに使用する環境がマージされている。

テストには

  • hello_world.s
  • hello_world2.s

が格納されていて、どちらもアセンブリ言語だ。C言語のシミュレーションはもう少し中身を解析しないといけないなあ。

使い方はこうだ。アセンブリファイルの場所を指定してmakeを実行すると、自動的にコンパイルされる。

make -f $RV_ROOT/tools/Makefile program.hex ASM_TEST=hello_world2 ASM_TEST_DIR=./testbench/asm/ verilator-run

最後に、以下のような結果が表示された。

Start of sim

------------------------------
Hello World from SweRV @WDC !!
------------------------------

Finished : minstret = 389, mcycle = 1658

うーん、アセンブリの中身を見てみても、単純にコンソールのメモリアドレスにデータをストアしているだけで、スタックポインタとかどこを使えば良いのかイマイチ謎なんだよね。

  • testbench/asm/hello_world.s
...
 addi  x0, x0, 0
 lui x11, 853376
 ori  x9, x0, 'H'
 sw x9, 0 (x11)
 ori  x9, x0, 'E'
 sw x9, 0 (x11)
 ori  x9, x0, 'L'
 sw x9, 0 (x11)
 sw x9, 0 (x11)
f:id:msyksphinz:20190205002042p:plain