FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

System Verilogで記述されたRISC-VコアArianeを試す (1. ビルドとシミュレーション)

Arianeは、System Verilogで記述されたインオーダの6ステージRISC-Vパイプラインプロセッサだ。

RISC-Vコアとしてはそこまで性能が高いわけではないが、多くのコンポーネントがSystem Verilogで記述されているということでハードウェア技術者にとっても解析しやすいし、RISC-VのOpenHW Groupでもサポートが行われる予定だということで、長らく標準的なRISC-Vコアとして使用される可能性があると思っている。

github.com

www.openhwgroup.org

https://github.com/msyksphinz/ariane/raw/master/docs/img/ariane_overview.png

まずは、Arianeを使ってどのようにハードウェアシミュレーションを行うのかチュートリアルを行ってみることにした。

まず、GitHubからArianeをダウンロードする。

git clone https://github.com/msyksphinz/ariane.git --recurse-submodules
cd ariane

RISCV環境変数を設定しておくこと。 - デザインのコンパイルを行う。Verilatorを使う。

make verilate
  • VCDを出力するときは、DEBUG=1を指定すること。
make verilate DEBUG=1

シミュレーションを行う際は、テストパタンを指定する。

./work-ver/Variane_testharness ${RISCV}/riscv64-unknown-elf/share/riscv-tests/isa/rv64um-v-divuw

また、VCDを生成する場合は-vオプションで出力VCDファイルを指定する。

./work-ver/Variane_testharness -v rv64um-v-divuw.vcd ${RISCV}riscv64-unknown-elf/share/riscv-tests/isa/rv64um-v-divuw

VCDをGTKWaveで確認した。このようにして波形を確認できる。

f:id:msyksphinz:20190804203845p:plain
GTKWaveで確認したシミュレーション結果