テストベンチ生成
設計デザインの大規模化、複雑化と開発期間の短縮に伴い、設計の検証作業はますます大きな課題となってきています。
この課題に対応するために、Active-HDL はテストベンチ作成機能とランダムパターンや設定に応じたスティミュラスを発生
するパターンジェネレータを装備しています。このページでは、直感的に使用できる機能と C ベースメソドロジについてご紹介します。
波形エディタによるテストベンチ生成
テストベンチにスティミュラスを手書きでコーディングする作業は、時間がかかり、忍耐をようする作業です。Active-HDL
の波形エディタとテストベンチウィザードの組み合わせにより、検証対象ブロックに対するスティミュラスを波形として描くことができます。
波形を1から作成したりや既存の波形ファイルを編集することができます。波形エディタによって、波形内の値の変更、エッジの
生成・移動等を行うことができます。

波形ファイルが用意できたら、テストベンチ・ウィザードによって VHDL または Verilog-HDL
テストベンチに変換することができます。テストベンチによって与えられる値は、波形で作成したものと同じになります。
検証対象デザインに対するスティミュラス信号は、テストベンチからだけでなく、ホットキーの割り当てやパターンジェネレータによって
ユーザがインタラクティブに与えることもできます。パターンジェネレータでは複雑なスティミュラスを作成するために式による設定、ラン
ダムパターン生成機能、カウンターバリューの設定などが行えます。
外部のスティミュラスから強制的に値を適用することはデバッグプロセスには非常に有効ですが、繰り返し作業や自動化という点
ではあまり実用的ではありません。テストベンチウィザードによってこの課題に対応しています。シミュレーションが完了したら、
そのシミュレーションで保存された波形ファイルをベースとして新しいテストベンチを作成することができます。
マニュアルで与えていた信号値の代わりに、そのテストベンチから信号値をフォースすることができます。
期待値照合テストベンチ
テストベンチの数が、多くなるにつれて、シミュレーション結果を波形ファイルでマニュアルによるチェックを行うことは難しくなってきています。
テストベンチウィザードによってこの問題を解決します。期待値照合を自動で行うテストベンチを生成します。
期待値照合テストベンチは、検証対象デザインのアウトプットをモニタします。期待値と実際のアウトプットに違いがあった場合、
シミュレーション実行中にエラーレポートを出力します。
ステートマシン用テストベンチの自動生成
Active-HDL のデザインエントリ機能の一つであるステートマシンエディタには、自動テストベンチジェネレータが含まれています。
ジェネレータは、新しく作成されたステートマシンの検証がすぐにできるようにテストベンチを生成します。生成されたテストベンチによって、
ステート遷移条件グラフの頂点実行、全ての遷移条件の実行、個々のステート実行後のリセットをテストすることができます。
トランザクタ、制約、ランダムスティミュラス
C++ や SystemC をテストベンチ生成に使用することがあります。そのハイレベル言語によって VHDL や
Verilog では記述しにくい機能などを記述することができ検証に有利です。
例えば、個々の信号をドライブするのではなく、reset()、send_frame()、fill_buffer()
といったハイレベルなファンクションをコールすることができます。ファンクションコールは、検証対象デザインの
ポートをドライブするスティミュラスに変換される必要があります。その変換を行うのが、トランザクタです。Active-HDL
にはそのトランザクタを自動的に生成する機能が搭載されています。トランザクタウィザードによって、デザインライブラリから選択された
HDL ユニットへのインターフェース部分のコードテンプレートが作成されます。
Active-HDL にはコンパイル済みの SCV が提供されています。SCV によって、制約にあった、またはランダムなスティミュラスを生成できます。
SCV とトランザクタの組み合わせによって、スティミュラスを自動的に生成するテストベンチの作成できる環境を提供しています。
|