試しに、RISC-V on Parallela ボードのRISC-Vデザインをビルドしてみた。
リポジトリは以下に存在している。
https://github.com/eliaskousk/parallella-riscv
ここでは、Vivadoを用いて合成するので、LinuxマシンにVivadoがインストールされているのが前提だ。
まずはデザインをcloneしてくる。
git clone https://github.com/eliaskousk/parallella-riscv.git
以降で、必要なsubmodulesはビルドスクリプトが勝手にフェッチしてくるので問題ない。
コンフィグレーションの変更を行う。今回は、RISC-VをZedBoardで動かしたいのと、Vivadoを2016.4で動作させるので、以下のような変更を行う。
- scripts/settings.sh
diff --git a/scripts/settings.sh b/scripts/settings.sh index 7f7dca2..e651f48 100644 --- a/scripts/settings.sh +++ b/scripts/settings.sh @@ -1,10 +1,10 @@ #!/bin/bash -BOARD=parallella +BOARD=zedboard export BOARD echo "\$BOARD set to ${BOARD}" -JOBS=8 +JOBS=4 export JOBS echo "\$JOBS set to ${JOBS}" @@ -12,7 +12,7 @@ VIVADO_PATH=/opt/Xilinx/Vivado export VIVADO_PATH echo "Vivado path set to ${VIVADO_PATH}" -VIVADO_VERSION=2015.4 +VIVADO_VERSION=2016.4 export VIVADO_VERSION echo "Vivado version set to ${VIVADO_VERSION}"
次に、ホストのソフトウェアをビルドする。もしかしたらこれは必要ないかもしれない。
sudo apt install openssl-dev # 必要なファイルのインストール
./scripts/build.host.software.sh
RISC-Vデザインのビルドを行う。Vivadoが立ち上がり、合成が始まる。
./scripts/build.host.software.sh
しばらく待っているとビルドが終了するので、dcp(design check point)のファイルを読み込んで何がどうなっているのか確認してみよう。
vivado ./zedboard/fpga/zedboard_riscv/system.runs/impl_1/system_wrapper_opt.dcp
当たり前だがほとんどがRISC-Vのデザインとなり、いくつかAXIのインタフェースを備えている。