SiFiveはフリーのRISC-Vコアデザインとして、32bitのE31、64bitのE51を提供している。
これらのソースコードはリクエストしないとダウンロードすることは出来ないが、mcsファイルが配布されているためこれを使って手っ取り早くFPGAで動作させてみることができる。
mcsファイルのダウンロードは無料なので、さっそくダウンロードして実行させてみよう。
FPGA Bitstreamを入手する
E31およびE51のFPGAビットストリームは、以下で入手可能だ。ターゲットハードウェアとして、XilinxのArty FPGA Boardのものが用意されている。
SiFiveのウェブサイトからダウンロード可能だ。
ダウンロードしたら、SiFive_E51_Coreplex_FPGA_Evaluation_v1p0_r0.tar.gz
を展開する。SiFive_E51_Coreplex_FPGA_Evaluation_v1p0_r0.mcs
があるので、これを書き込む訳だ。
ダウンロードおよび動作確認にはUbuntuを利用するので、Vivado経由で書き込むときはドライバのインストールを忘れないこと。以下を参考にした。
cd /opt/Xilinx/Vivado/2015.1/data/xicom/cable_drivers/lin64/install_script/install_drivers sudo ./install_digilent.sh cd /opt/Xilinx/Vivado/2015.1/data/xicom/cable_drivers/lin64/install_script/install_drivers sudo ./install_drivers
また、コンフィグ格納用のSPIメモリの指定は、自分の過去の記事を参考にした。
これでシリアルポートを開いて、115200bpsに指定して受信していると、メッセージが表示される。
一応ここまで。デバッグケーブルを持っていないのでここから先は進めないが、RISC-Vボードを活用するためにデバッグケーブルを購入するか否か。。。 5000円程度だから思い切って買ってしまえばよいのだけれど。
参考。E51(64bit版RISC-V)のベンチマークプログラムのコンパイル
E51用のサンプルプログラムやベンチマークプログラムは、以前紹介したfreedom-e-sdk
リポジトリから入手可能だ。
詳細は省略するが、まずはツールのビルド(別リポジトリにツールがビルドされるので本当は嫌なのだが、オリジナルのriscv64-unknown-elf-gccを使うとリンクでエラーが出たのでとりあえず回避…)
sudo aptitude install libtcl8.5 # openocdのビルドに必要 make tools BOARD=coreplexip-e51-arty -j4
Coremarkのコンパイルは以下で可能だ。
make software PROGRAM=coremark BOARD=coreplexip-e51-arty