FPGA開発日記

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

独自RISC-V CPUコアの実装 (Vivado Simulatorによるシミュレーション環境構築)

自作RISC-V CPUを何となく趣味でやっているが、Verilatorによるシミュレーションがちょっときつくなってきた。Verilator自体が高性能高機能高速シミュレータであることは間違いないのだけれども、やはり2値しか扱っていないのがつらい。 Verilator以外のシミュレーションツールとして無償で使用できそうなのはVivado Simulatorしか存在しないので、一応環境を構築しておくことにする。

Vivado SimulatorはQuestaSimと似ているのかな?コンパイルしてもバイナリが生成されるわけではなく、Vivado用のシミュレーションコマンドで動作させる。 以下の3ステップで動作させる。詳細なtclの中身とかは省略。そうするとwdbという独自の波形フォーマットを出してくるらしい。

xvlog --sv -i ../src  -f filelist.f   | tee -a sim.log
xelab --timescale 1ns/1ps --mt off -debug all tb | tee -a sim.log
xsim -t sim_vivado.tcl "work.tb" | tee -a sim.log

波形を見るときは以下のようにしてGUIを立ち上げる。

xsim -g work.tb --wdb work.tb.wdb&

一応波形が見れるようになったぜ。

f:id:msyksphinz:20210209230621p:plain

しかし冷静に考えてみると、Vivado SimulatorはVCDも出せるわけだが、VCDで出してGTKWaveで見てもいいわけだ。

f:id:msyksphinz:20210209231502p:plain

なるほどね。これでもいいわけだ。まあGTKWaveの使いにくさは解決しないけど...