テスト波形ファイルを使ったシミュレーション (Ver.9まで)
ModelSim によるシミュレーション 参照。
回路ブロックのテストは、回路ブロックの入力に対する
テスト用の信号(テスト・パターン)を作成し、それを入力して、
正しい出力値を出すかを確認する形で行います。
ここでは、波形エディタを用いて、
テスト・パターンの波形ファイルの作り方を説明します。
なお、テスト・パターンの作り方によって
テストの効率(バグの発見効率など)が変わりますので、
テスト・パターンは考えて作って下さい。
- "File→New→Other FIles→Vector Waveform File"で
新しいテスト波形ファイルを波形エディタで作成する。
- "Nameを右クリック→Insert Node or Bus"を選択。
- "Insert Node or Bus"ウィンドウでの操作
- "Radix"で表示に使う進数(2進数、16進数、等)を決定する。
- "Node Finderボタン"を押してNode Finderを立ち上げる。
- Node Finderの使い方
- Filterで波形を入力したり、波形を観測するピンを抽出する。
- "Pins: input"か"Pins: output"を選択する。
- インスタンスの出力等もノードとして選択できるが、
最適化の途中でノードが消えることがあるので、
QuartusIIでは入出力ピン以外の利用は勧めていない。
- インスタンスの出力等を観測したい場合、
テンポラリの出力ピンを追加して観測する方法を
QuartusIIでは勧めている。
- 抽出したピンのうち、
- >ボタンを押すとフォーカスされているピンがSeleted Nodesに移る。
- >>ボタンを押すと全てのピンをSeleted Nodesに移る。
- OKボタンを押すと"Insert Node or Bus"に戻ります。
- Nodes Foundに目的のピンが見付からない場合は?
- Filterは合っているか?
- もう一度コンパイルし直しても見つからないか?
- "Insert Node or Bus"に戻ってOKボタンを押す。
- 各入力ピンの信号レベルを定義する。
- 入力ピンを選択し、右クリックする。
- Valueの中から必要な定義を選択する。
- 直接値を定義したり、Clock等の生成機能を使う。
- 出力ピンの値はシミュレーションが行われるまで不定値になります。
- 名前をつけて保存する。
波形エディタや機能レベル・シミュレーションの詳細は、
オンライン資料: Quartus II開発ソフトウェアの
Quartus IIハンドブック(英語版)のVolume 3, Chapter 1, "Quartus II Simulator"に書かれています。
使うと便利な波形
波形エディタでは
- クロック
- 周期的に0/1を繰り返す信号を生成する。
- 通常はStart time, End time, Periodを設定して使う。
- カウント値
- 一定時間毎に値を増加(or減少)する信号を生成する。
- 通常はStart value, Increment by, Start time, End time, Count everyを設定して使う。
- ランダム値
- 一定時間毎にランダムな値を生成する信号を生成する。
- 生成タイミングは選べるので、適当に選択する。
作成した波形ファイルと回路の
シミュレーション用のRTLのネットリストを入力として、
回路に対するシミュレーションが行えます。
なお、シミュレーションはトップ・レベルの回路に対してしか行えません。
回路ブロックに対してシミュレーションを行うときには、
その回路図を表示後に"Project→Set as Top-Level Entity"を選択して、
一時的に、トップ・レベルの回路扱いにしてシミュレーションを行って下さい。
- "Processing→Simulator Tool"を選択する。
- Simulator Toolの使い方(機能シミュレーション)
- Simulation modeをFunctionalにする。
- Generate Functional Simulation Netlistボタンを押す。
- 最初だけで問題ないです。
ただし、回路が変わった時には押し直す必要があります。
- Simulation Insertボタンを押してシミュレーションに使うWaveform Fileを指定
- End simulationを適当な時間に設定する。
- Startボタンを押してシミュレーションを開始する。
- 正常にシミュレーションが終了したら、Reportボタンを押して
シミュレーション結果を確認する。
Last modified: 2010/4/7 11:00