FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。今回はシミュレーションの準備のためにテストベンチを作る。ISE10.1までは、テストベンチを生成するツールがついていて、それによって簡易的にテストベンチを作れたが、今回はテンプレートを見ながら自分で作れということなので、1回り面倒になってしまった。以前のツールをそのままにしたもらったほうが下位モジュールを簡易にシミュレーションしたいときには便利だったのだが。それでは、シミュレーション用のテストベンチを作るところから始めよう。Simulationを選択する。Source...を選択する。Typeダイアログが開く。ボタンをクリックする。Sourceダイアログが開く。どのVHDLファイルのテストベンチかを指定する。ボタンをクリックする。Summaryダイアログが開く。Finishボタンをクリックする。すると、左のDesign、Hierarchyペインにはdice_top_tb.vhdが階層の一番上に作られる。前のコメント分を除いて、生成されたコードを下に示す。process;END;かなりのコードがテンプレートとして用意される。これだと出力の検証を入れなければ、入力のスティミュラスを生成すればよいことになる。そこで、以前このブログで紹介したタイミングチャートお絵かきツールTimingAnalyzerのVHDLテストベンチ生成スクリプトを使おうと思ってやってみたのだが、うまくスクリプトが動作しなかった。トラブル解析は後ですることにして、自分で入力波形を書いてみることにする。下の図のタイミングチャート通りに波形を入力することにした。スティミュラスを書きこんで、上のタイミングチャート通りの波形を作る。下が書き換えた部分のスティミュラスプロセスだ。クロックは0から始まっているので、1クロック期間waitしても0から0までのwaitなので、レースが起こる心配はない。process;最後に75行目のclk_periodが1usになっているので、これを動作周波数50MHzの周期20nsに変更する。20ns;テストベンチを作ってみて、かなりの部分をツールが書いてくれるので、だいぶ楽だった。惜しいのは、今回はだいぶ簡単なスティミュラスだったので良いのだが、複雑になってくると、waitを入れるのが大変なのでTimingAnalyzerでテストベンチを生成できると良いと思った。それともあきらめてprocedureを使って書くとかしたほうが良いかも?”ISE11.1iのチュートリアル5(シミュレーション)”続く。コメント:0プロフィールAuthor:marseeFPGAの部屋へようこそ!FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。WEBブログデザイナ。