ISE11.1iのチュートリアル4(テストベンチの作成)の続き。
前回テストベンチを作ったので、今度はシミュレーションをしてみよう。シミュレーターとしてはISimを使用する。
Project NavigatorのDesignのHierarchyペインからdice_top_tb を選択しする。ProcessesペインのISim Simulatorを展開して、Simlate Behavioral Model をダブルクリックする。

ISimが起動して、シミュレーションを行った。

Zoom to Full Viewアイコンをクリックして、波形全体を表示する。

入力波形は予定した波形になっている。しかし、出力波形はb_nとc_n が0で、ほかのセグメントは1である。この7セグメントLEDは0で点灯するので、現在は1を表示している。リセットはちゃんとかかっているが、rollスイッチを押しているのに出力が変化しない。

これは、reject_chatter.vhdでスイッチのチャタリングを除去するために、クロックの25万回に1回サンプルことになっている。さらに、目で遷移しているのが見えるようにするために、その4倍の100万回クロックを数えないとステートマシンのステートが変わらないためだ。これを解消するには、少なくとも20万クロック以上シミュレーションしないとならないが時間もディスクも使用するため、シミュレーションするのは大変だ。そのようなときのために、50MHzはKHz単位にすると50,000である。これをconstantで定義してい置いて、シミュレーションのときには1に切り替える。(もっと良いと自分では思っている方法がある。それはpragmaとgenericを使う方法だ。詳しくは
”スパルタン3スタータキットでのISE8.1iのチュートリアル4(シミュレーション編)”を見てほしい)
--constant frequency_KHz : integer := 50000; -- KHz単位でのクロック周波数(インプリメント用)
constant frequency_KHz : integer := 1; -- KHz単位でのクロック周波数(シミュレーション用)
これで、もう一度シミュレーションを行う。とりあえずISimをクローズしよう。その際にDefault.wcfg をセーブするかと聞いてくるので、Noボタンをクリックしておく。
もう一度、Project NavigatorのDesignのHierarchyペインからdice_top_tb を選択しする。ProcessesペインのISim Simulatorを展開して、Simlate Behavioral Model をダブルクリックして、ISim を立ち上げる。そうすると、修正したconstant値が採用されて、セグメントの値が変化しているのが分かる。

下位モジュールの信号も見てみよう。
左のInstance and Process... ペインのdice_top_tb の左の三角をクリックして展開する。その後、uut の左の三角もクリックして展開する。その中のinst_reject_chatterをクリックする。そうすると、太字で表示される。Objectsペインを見るとinst_reject_chatterの信号を表示する。その中からsw_cntとroll_cnt を右の波形ウインドウのあいているところにドラック&ドロップする。そうすると波形ウインドウに追加される。

こうすると、下のように信号が追加されるが、波形はまだ表示されていない。

同様に、inst_dice_smのcurrent_stateを波形ウインドウに追加する。さて、この追加した信号もシミュレーションしてみよう。
SimulationメニューからRestartを選択する。

すべての波形が消える。SimulationメニューからRunを選択する。

そうすると、先ほど波形ウインドウに登録した信号も波形が表示される。

これでシミュレーションは一応完了。
私は、まだ、ISimの使い方が良く分かっていないので、チュートリアルなどをやってみようと思っている。感じとしては、なかなか使えそうな感じだ。たぶん下のConsoleにコマンドを入れても使えるのだろう。
#しかし、チュートリアルは前回もそうだったが、書いていると疲れる。。。皆さんのためになるのかな?
”ISE11.1iのチュートリアル6(デザインのインプリメント)”に続く。
- 2009年05月15日 04:53 |
- FPGAリテラシー及びチュートリアル
-
| トラックバック:0
-
| コメント:4
ISE11.1は初心者向けの情報が本家に少なかったのでとても助かります。
このチュートリアルを見ながら勉強をしてみます。
ありがとうございます。
- 2009/05/16(土) 02:36:04 |
- URL |
- sawa #-
- [ 編集 ]
ISE11.1の入門情報を探してここにたどり着きました.
このチュートリアルのおかげで自分の書いた回路のシミュレーションができるようになりました.
ためになってます.
- 2010/01/31(日) 22:06:02 |
- URL |
- Yoshi #-
- [ 編集 ]
Yoshiさん、こんにちは。
おめでとうございます。良かったですね。
X-festのセミナーを受講してISimが結構重要だと思いました。
- 2010/02/01(月) 04:06:37 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]