FC2カウンター FPGAの部屋 ISE12.3のISimの使い方のヒント(Project Navigatorから使用するとき)
fc2ブログ

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

FPGAの部屋

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

ISE12.3のISimの使い方のヒント(Project Navigatorから使用するとき)

大体、原稿も娘のイラストを除いて準備が済んだ。Makeの出展関係の準備も大体済んだ。もうちょっとパラメータをいじって良い気がするが、やはり会場がよくわかないので、このままにしよう。

AlteraのFPGAのお勉強が途中だが、とりあえず、ISimをどうやってProject Navigatorから使っているかを書いてみたい。大きいなプロジェクトはISim単体で動かしているが、お手軽にProject Navigatorから使うのも良いと思う。ISE12.3を使用する。
使うのはSpartan-6のSP605ボード用のキャラクタ・ディスプレイ・コントローラとする。このテストベンチは約20ms後にSTOPする。
DesignのViewからSimulationのラジオボタンをクリックして、Project Navigatorをシミュレーションモードにする。Hierarchyからテストベンチ・ファイルCharDispCtrlerTest_SP605_tb.vを選択すると、ProcessesウインドウにISim Simulatorが出てくるので、それを展開して、Simulate Behavioral Modelをダブルクリックする。
ISim_Hint_1_101117.png

このまま、ISimを起動するとテストベンチの信号をwaveウインドウに入れて、1000nsecシミュレーションする。
ISim_Hint_2_101117.png
(Radixを16進数にしてある)

Project NavigatorのSimulate Behavioral Modelを右クリックしたときの右クリック・メニューから選べるプロセス・プロパティがある。
ISim_Hint_3_101117.png

プロセス・プロパティのSimulatin Run Timeが1000 nsになっているので、これを21 msに修正する。そうすると21 msまで、シミュレーションすることができる。実際はその前にテストベンチの$STOPでストップする。
ISim_Hint_4_101117.png

更に、次には、21msecもシミュレーションするのだから、自分の見たい波形を入れたいと思う。その時は、ISimで見たい波形を構成する。(信号の追加の仕方は、”ISE11.1iのチュートリアル5(シミュレーション)”参照のこと)
自分の見たい信号をISimのWaveウインドウに入れたら、FileメニューからSave As...で自分の好きな名前でWaveウインドウの信号名をセーブする。ここでは、CharDispCtrlerTest_SP605.wcfgとしてセーブした。
ISim_Hint_5_101117.png

次に、Project NavigatorのSimulate Behavioral Modelを右クリックしたときの右クリック・メニューから選べるプロセス・プロパティをもう一度開く。
Use Custom Waveform Configuration Fileをチェックして、Custom Waveform Configuration Fileで、先ほどセーブしたCharDispCtrlerTest_SP605.wcfgを選択する。
ISim_Hint_6_101117.png

そして、ISimを落として、もう一度、Simulate Behavioral Modelをダブルクリックすると、今度は、デフォルトのテントベンチの信号ではなく、自分で定義したharDispCtrlerTest_SP605.wcfgがISimに表示される。シミュレーション時間も最後にSTOPするまでシミュレーションされる。
ISim_Hint_7_101117.png

Project Navigatorからお手軽にISimを使うときのヒントをブログに書いた。プロセス・プロパティでは、もっといろいろと設定できるが、プロジェクトによって書き換えて使用している。ISim単体で使うときもある。

なお、残念ながら、HDLソースを書き換えたときに、ISimを落としてもう一度起動する必要はあると思う。HDLソースをコンパイルして、実行形式を作り、それを起動しているからだ。

(追加)
この場合は、CharDispCtrlerTest_SP605.prj にISimのプロジェクトが出来ているので、一旦ISimのプロジェクトを作らせておいて、後はバッチコマンドをつくって、ISimを起動するのも良いかもしれない。その際にfuse コマンドに、 -incremental オプションをつけておくと、毎回コンパイルしなくて済むと思う。ただ、これはプロジェクトに書かれているHDLが変化したかどうかを見ているので、例えばCoreGenで生成したROMなどの初期化ファイル(COE)などを書き換えたときには、再コンパイルをしないので、注意が必要だ。いつも再コンパイルしたほうが安全かもしれない。
ISimプロジェクトを使ったバッチファイルでのシミュレーションは、”Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路のSCCB回路追加時のシミュレーション”を参照のこと。
最後に、CharDispCtrlerTest_SP605.prj の内容を下に示す。

verilog work "ipcore_dir/DCM_CLKGEN_S6.v"
verilog work "../frame_buffer.v"
verilog work "../disp_timing.v"
verilog work "../char_gen_rom.v"
verilog work "../CharDispCtrler.v"
verilog work "../CharDispCtrlerTest.v"
verilog work "../CharDispCtrlerTest_SP605.v"

  1. 2010年11月17日 06:15 |
  2. ISim
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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