読者です 読者をやめる 読者になる 読者になる

FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

SiFiveの64bit RISC-VコアE51をArty FPGAで動作させる

SiFiveはフリーのRISC-Vコアデザインとして、32bitのE31、64bitのE51を提供している。

www.sifive.com

f:id:msyksphinz:20170510223409p:plain

これらのソースコードはリクエストしないとダウンロードすることは出来ないが、mcsファイルが配布されているためこれを使って手っ取り早くFPGAで動作させてみることができる。

mcsファイルのダウンロードは無料なので、さっそくダウンロードして実行させてみよう。

FPGA Bitstreamを入手する

E31およびE51のFPGAビットストリームは、以下で入手可能だ。ターゲットハードウェアとして、XilinxのArty FPGA Boardのものが用意されている。

https://dev.sifive.com/static/core/images/dev-boards/arty-artix-7.cf703ff39240.jpg

SiFiveのウェブサイトからダウンロード可能だ。

dev.sifive.com

f:id:msyksphinz:20170511010949p:plain

ダウンロードしたら、SiFive_E51_Coreplex_FPGA_Evaluation_v1p0_r0.tar.gzを展開する。SiFive_E51_Coreplex_FPGA_Evaluation_v1p0_r0.mcsがあるので、これを書き込む訳だ。

ダウンロードおよび動作確認にはUbuntuを利用するので、Vivado経由で書き込むときはドライバのインストールを忘れないこと。以下を参考にした。

github.com

 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メモリの指定は、自分の過去の記事を参考にした。

msyksphinz.hatenablog.com

これでシリアルポートを開いて、115200bpsに指定して受信していると、メッセージが表示される。

f:id:msyksphinz:20170510233518p:plain

一応ここまで。デバッグケーブルを持っていないのでここから先は進めないが、RISC-Vボードを活用するためにデバッグケーブルを購入するか否か。。。 5000円程度だから思い切って買ってしまえばよいのだけれど。

参考。E51(64bit版RISC-V)のベンチマークプログラムのコンパイル

E51用のサンプルプログラムやベンチマークプログラムは、以前紹介したfreedom-e-sdkリポジトリから入手可能だ。

github.com

詳細は省略するが、まずはツールのビルド(別リポジトリにツールがビルドされるので本当は嫌なのだが、オリジナルの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