FC2カウンター FPGAの部屋 ModelSimでタイミング・シミュレーション(Post-Routeシミュレーション)1
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ModelSimでタイミング・シミュレーション(Post-Routeシミュレーション)1

今までは、Post-Routeシミュレーション(タイミング・シミュレーション)をしたことがなかったが、ある目的でModelSim XE3 Starterでやってみることにした。シミュレーションは論理シミュレーションをしてTiming Analyzerで静的にタイミングを確認していたし、面倒で不定値になることがある遅延シミュレーションをしなくても動作していた。それにModelSim Starter で遅延シミュレーションをすると簡単に1万行の制限を越えて極端に遅くなってしまう。
とりあえずテストベンチがすでにあるDDR SDRAMコントローラのバーストテストでやってみることにする。
まずはISEからやる方法はというと、Project NavigaterのSourceウインドウのSource for : でPost-Route Simulationを選択する。
Post-Route_simulation_1_090130.png

Sourceウインドウにテストベンチ(DDRtest_tb) が表示されるので、これをクリックする。下のProcesses ウインドウにSimulate Post-Place & Route Model が表示されるのでそれをダブルクックする。これでタイミング・シミュレーションが出来るはず。
Post-Route_simulation_2_090130.png

これでよいのだが、今回はModelSim単体で遅延シミュレーションをすることにした。Implement Design -> Place & Route の下にあるGenerate Post-Route Simukation Model をダブルクリックして、Post-Route Simukation Model を生成する。
Post-Route_simulation_3_090130.png

そうするとISEのプロジェクトがあるフォルダのnetgen\par フォルダにDDRtest_timesim.v とddrtest_timesim.sdf が生成される。
Post-Route_simulation_4_090130.png

これをModelSimのプロジェクトを作成したフォルダにコピーする。
Post-Route_simulation_5_090130.png

DDRtest_timesim.v にddrtest_timesim.sdf へのパスを書いてある部分を修正する。

initial $sdf_annotate("netgen/par/ddrtest_timesim.sdf");


があるので、パスの部分を消去する。

initial $sdf_annotate("ddrtest_timesim.sdf");


DDRtest_timesim.v とglbl.v, DDRtest_tb.v, ddr.v をAdd to Project -> Existing File... でプロジェクトに加える。
Post-Route_simulation_6_090130.png

ちなみにglbl.v はXilinxのunisim_ver, simprims_verなどのライブラリに入っているプリミティブをシミュレーションするときに必要なファイルだ。glbl.v は、プリミティブのグローバル セット/リセット信号とグローバル トライステート信号を接続する。詳しくは”6537 - シミュレーション、UniSim、SimPrim - Verilog シミュレーションで glbl.v モジュールを使用する方法 ”を参照のこと。
DDRtest_tb.v はテストベンチ。ddr.v はマイクロン社のDDR SDRAMモデル。
これで役者がそろったのでタイミング・シミュレーションをすることが出来る。

”ModelSimでタイミング・シミュレーション(Post-Routeシミュレーション)2”に続く
  1. 2009年01月30日 20:53 |
  2. シミュレーション
  3. | トラックバック:0
  4. | コメント:2

コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
  1. 2010/05/12(水) 20:56:36 |
  2. |
  3. #
  4. [ 編集 ]

ありがとうございました。誤字を修正しました。
  1. 2010/05/12(水) 21:15:15 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/1024-4d00ca71
この記事にトラックバックする(FC2ブログユーザー)