”ModelSimでタイミング・シミュレーション(Post-Routeシミュレーション)1”の続き
以前は
Transcriptウインドウにコマンドでvsimコマンドを入れてシミュレーションしていたが、今回はGUIでやってみようと思う。
さて、シミュレーションをするためにSimulateメニューからStart Simulation...を選択。

ダイアログが開くので、テストベンチ(DDRtest_tb) を選択。さらにglbl.v をインスタンシエーションするために、Design Unit(s) のwork.DDRtest_tb の脇にwork.glbl を自分で入力する。

次にLibraries タブをクリックしてSearch Libraries (-L) にsimprims_ver が入っていることを確認。simprims はタイミング・シミュレーション用のライブラリだ。論理シミュレーションだとunisim (この場合はVerilogのシミュレーションなのでunisim_ver) を替わりに入れる必要がある。

次に遅延情報が書いてあるSDFファイルを設定しよう。SDFタブをクリックし、そこのAdd... ボタンをクリックする。

ADD SDF Entryダイアログが開くので、Brows... ボタンを選んで、SDFファイルを選択して、Apply to Reasion にはSDFファイルと組になっているVerilogファイルのモジュールのインスタンス階層及びインスタンス名を入れる。つまり下のリストだったら /DDRtest_inst を入力する。
DDRtest DDRtest_inst(
.clk(clk),
.reset(reset),
.led(led),
.sd_a(ddr_address),

これでOKボタンをクリックすると、Start Simulation ダイアログにSDFファイルがセットされる。

これでOKをクリックすると、シミュレーションの準備完了。デザインがロードされるので、viewメニューからwaveを選択して、wave ウインドウを出して、見たい信号をwaveウインドウに追加する。そして、SimulateメニューからRun -> Run -All すればシミュレーション波形を見ることが出来る。私のマシンで、DDR SDRAMコントローラを250us シミュレーションするのに、約60分くらいかかってしまった。
下の図でピンクの四角で囲ったIDDR2レジスタのセットアップエラーも出てしまった。エラーの部分にはwaveウインドウの一番上に下向き赤三角が付くようだ。これは、SDRAMにWRITEしている時に入力のDDR FFがセットアップエラーを起こしているようだ。それならば問題ない。
2番目のカーソルからはなぜか出力がXになってしまっている。これはこれからトラブルシュートする予定だ。
- 2009年01月31日 13:52 |
- シミュレーション
-
| トラックバック:0
-
| コメント:0