大体、原稿も娘のイラストを除いて準備が済んだ。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を起動するとテストベンチの信号をwaveウインドウに入れて、1000nsecシミュレーションする。

(Radixを16進数にしてある)
Project NavigatorのSimulate Behavioral Modelを右クリックしたときの右クリック・メニューから選べるプロセス・プロパティがある。

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

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

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

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

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"
- 2010年11月17日 06:15 |
- ISim
-
| トラックバック:0
-
| コメント:0