本日メーリスでアナウンスがあった、Chiselで記述されたSweRV-EL2コア実装Quasarを少し試してみることにした。
SweRV-EL2はWestern Digitalによって開発・管理されているコアなのだが、オープンソースで公開されている。これをLampro-MellonというチームがChiselに移植したらしい。 コアのソースコードを少し眺めてみると、なるほどSystemVerilogの実装をそのままChiselに一対一で置き換えたようで、まあChiselの勉強用といった感じだろうが。Chiselをフル活用するならばもう少しきれいな書き方がありそうな気がする。
使い方は割とそのままで、リポジトリをダウンロードして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