Arianeは、System Verilogで記述されたインオーダの6ステージRISC-Vパイプラインプロセッサだ。
RISC-Vコアとしてはそこまで性能が高いわけではないが、多くのコンポーネントがSystem Verilogで記述されているということでハードウェア技術者にとっても解析しやすいし、RISC-VのOpenHW Groupでもサポートが行われる予定だということで、長らく標準的なRISC-Vコアとして使用される可能性があると思っている。
まずは、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で確認した。このようにして波形を確認できる。