FPGA開発日記

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

Vivado Simulatorで波形デバッグする環境を構築する

僕は波形デバッグはあまり好きではなく、基本的に波形を水にログファイルだけでデバッグできるようにしておきたいのだが、ベーシックな部分を観測するためには最後には波形デバッグが必要だ。 そこで、Vivado Simulatorを使った時の波形デバッグの環境を構築しよう。やりたいことは、GUI付きでのシミュレーション、波形の追加などの操作だ。

波形ダンプ付きのコンパイル

Vivado Simulatorにおいて、GUI付きでデバッグをするためには、xsimにおいて-guiを追加すると良い。

xsim run_tb_mag_top -gui

ただしこれだけでは波形のダンプは取得できず、コンパイル時にデバッグオプションを追加しておかないと怒られる。

xelab -debug wave -s run_tb_mag_top work.tb_mag_top --timescale 1ns/100ps

Vivado Simulator実行時のさまざまなコマンド

自分がはまったのは、-R と -onfinishの考え方だ。

-R : シミュレーションを最後まで実行し、終了します (「run -all; exit」を実行)。

これを最初つけていたのだが、これを付けたままGUIを起動すると、シミュレーションが終了するとすぐにウィンドウも閉じられてしまう。これではデバッグできない。 結論としては、-Rオプションを除くだけでよい。ついでに、シミュレーション終了時の挙動を変えるためには、onfinishオプションも使用できる。

-onfinish stop|quit : シミュレーションが終了したときの動作を指定します。有効な値はquit および stop で、デフォルトは stop です。

基本的にstopのままで良いと思われるが、-Rを使わずにウィンドウも閉じたいときは、-onfinish quitを指定しておけばよいのかな。