FPGA開発日記

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

Chiselの記述されたSweRV-EL2コアQuasarを試す

本日メーリスでアナウンスがあった、Chiselで記述されたSweRV-EL2コア実装Quasarを少し試してみることにした。

SweRV-EL2はWestern Digitalによって開発・管理されているコアなのだが、オープンソースで公開されている。これをLampro-MellonというチームがChiselに移植したらしい。 コアのソースコードを少し眺めてみると、なるほどSystemVerilogの実装をそのままChiselに一対一で置き換えたようで、まあChiselの勉強用といった感じだろうが。Chiselをフル活用するならばもう少しきれいな書き方がありそうな気がする。

github.com

使い方は割とそのままで、リポジトリをダウンロードしてMakeすればそのまま終わる。

$ git clone git@github.com:Lampro-Mellon/Quasar.git
$ cd Quasar
$ export RV_ROOT=$(pwd)

後になって分かったのだが、もう一つ以下の環境変数を設定しておく必要がある。これはおそらくリポジトリのミスでありそうな気がする。

export GCC_PREFIX_cpp=${RISCV}/bin/riscv64-unknown-elf

以下を実行すればRTLの生成とシミュレーションが動作した。ここまでは至極単純そうだ。

$ make GCC_PREFIX_cpp=/home/msyksphinz/riscv64/bin/riscv64-unknown-elf -f $RV_ROOT/tools/Makefile
./obj_dir/Vtb_top

VerilatorTB: Start of sim

----------------------------------
Hello World from Quasar @LM !!
----------------------------------
TEST_PASSED

Finished : minstret = 421, mcycle = 890
See "exec.log" for execution trace with register updates..

- /home/msyksphinz/work/riscv/Quasar/testbench/tb_top.sv:344: Verilog $finish