Arty+VivadoでMicroBlazeとRISC-Vを動かしてみた

春先に火を入れたきりになっていたFPGAボード「Digilent Arty」ですが、普段使っているノートPCのRAMを最近16GBに拡張したので、ようやく開発ツール「Vivado」を動かしてみました。

やはりというか起動するとPCのメモリ消費が12GBくらいになりました。
もしRAMが8GBだったら辛そうです。

ちなみにArtyはVivadoの初期インストール時にはボードのデータが入っておらず、ボード一覧からArtyを選択できません。
Digilentからボード設定ファイルをダウンロードして、Vivadoのフォルダにコピーする必要があります。

Vivadoプロジェクト作成時のボード選択 – 石丸技術士事務所 FPGAと論理設計

本命としてはRISC-Vを動かしてみたいのですが、XilinxのツールはWebpack ISEしか使ったことがなかったので、とりあえず以下のチュートリアルをやってみました。

Vivadoでmicroblaze – fpgafpga ページ!

GPIOプログラム – fpgafpga ページ!

今のVivadoよりもバージョンが古いので、最新のVivadoとは画面が細かいところで若干違いはありますが、STEP BY STEPで書かれているので、概ねこの通りにやれば大丈夫です。

ノートPCとはいえCore i7なのですが、MicroBlazeがビルドできるまで結構時間がかかりました。

これでMicroBlazeの上でHello worldとLチカができてVivadoの雰囲気が分かってきたので、次はRISC-Vを動かしてみました。

RISC-Vはソースからビルドするのは大変そうですが、Artyの場合はSiFive製の評価用ビットストリームがあるので、これを書き込めば済みます。

SiFive Developers — Evaluate FPGA Bitstreams

32bitコアのE20、E21、E31と、64bitコアのE51がありますが、今回は64bitコアの「SiFive E51 Standard Core FPGA Eval Kit」をダウンロードして書き込んでみました。
ダウンロードするにはSiFiveにユーザ登録(無料)する必要があります。

Artyへの導入手順はこちらに解説があります。

RISC-Vプラットフォーム Freedom E300 ArtyFPGA ボードの実験 – FPGA開発日記

SiFiveの64bit RISC-VコアE51をArty FPGAで動作させる – FPGA開発日記

Vivado上でボードのメモリ設定を追加するという作業が必要ですが、この設定はボード上のメモリの種別に合わせる必要があります。
(2種類のうち、一方では「その種類のメモリはボード上に見つからない」というエラーが出ました)
追加できた設定は以下です。

書き込んだら、シリアルポートに起動メッセージが出せました。

この先へ進むには、RISC-VプロセッサをプログラムするためにJTAGインタフェースを接続する必要があります。
サンプルはARM-Tiny-USB-Hを使っていますが、手持ちのJ-Linkでも使えるっぽいです。

SiFive Arty FPGA Dev Kit – SEGGER – Support Wiki

そのためにはRISC-V用コンパイラとかも必要になりそうなので、とりあえず今日はここまでです。

コメント