このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
SystemVerilog と UVM テンプレート エンジン
MATLAB® 関数から統合検証方法論 (UVM) コンポーネントまたは SystemVerilog DPI コンポーネントを生成します。新しい svdpiConfiguration
オブジェクトを使用して、コード生成に使用するテンプレートを指定します。オブジェクトのプロパティを設定して、テンプレート変数のデフォルト値を上書きすることもできます。次に、dpigen
関数を使用してコンポーネントを生成します。
一般的なコンポーネントの種類用の組み込みテンプレートを選択するか、独自のカスタム テンプレートを作成します。このテンプレート エンジンを使用する例については、テンプレートを使用して SystemVerilog DPI および UVM コンポーネントを作成する を参照してください。
メモ
この機能には ASIC Testbench for HDL Verifier アドオンが必要です。
汎用テンプレート
HDL Verifier™ は次の組み込みテンプレートを提供します。
Combinational module — このテンプレートは、MATLAB 関数の入力と出力をキャプチャします。これを使用して、クロック ポートやリセット ポートのない組み合わせ SystemVerilog モジュールを作成します。
これには次の変数が含まれます。
svdpiConfiguration
オブジェクトのプロパティを設定して上書きします。ComponentTypeName
TestBenchTypeName
TemplateDictionary
プロパティを設定して上書きします。ComponentPackageTypeName
Sequential module — このテンプレートは、MATLAB 関数の入力と出力をキャプチャします。また、クロック、クロックイネーブル、リセット信号用のポートも追加されます。関数内に状態 (永続変数など) がある場合に、順次登録された SystemVerilog モジュールを作成するために使用します。永続変数の詳細については、永続変数 を参照してください。
シーケンシャル モジュール テンプレートには次の変数が含まれます。
svdpiConfiguration
オブジェクトのプロパティを設定して上書きします。ComponentTypeName
TestBenchTypeName
TemplateDictionary
プロパティを設定して上書きします。ComponentPackageTypeName
Sequential module with variable-size outputs — このテンプレートは機能的にはシーケンシャル モジュール テンプレートと同じですが、可変サイズのポートに対応しています。関数への入力または出力の 1 つ以上が可変サイズのベクトルとして定義されている場合は、このテンプレートを使用します。このテンプレートは、それぞれのポートを SystemVerilog オープン配列 ([ ]) として持つ SystemVerilog モジュールを作成します。このコードは、
foo
という名前の関数に対して生成されたインターフェースを示しており、in1
とy
を可変サイズのポートとして宣言しています。module foo_dpi( input bit clk, input bit clk_enable, input bit reset, input real in1 [], output shortint y [] );
このテンプレートには次の変数が含まれています。
svdpiConfiguration
オブジェクトのプロパティを設定して上書きします。ComponentTypeName
TestBenchTypeName
TemplateDictionary
プロパティを設定して上書きします。ComponentPackageTypeName
UVM テンプレート
これらのテンプレートは、MATLAB 関数から UVM コンポーネントを生成し、完全な UVM テスト ベンチに統合できます。この画像は UVM テストベンチの構造を示しています。UVM テンプレートを使用すると、緑色で強調表示された部分を生成できます。
Predictor component — このテンプレートは UVM 予測モジュールを生成します。このモジュールには、予測トランザクションを入力するエクスポートと、スコアボード トランザクションを出力する分析ポートがあります。
予測テンプレートには次の変数が含まれます。
svdpiConfiguration
オブジェクトのプロパティを設定して上書きします。ComponentTypeName
TestBenchTypeName
TemplateDictionary
プロパティを設定して上書きします。ComponentPackageTypeName
InputTransTypeName
OutputTransTypeName
オプションで、
addPortGroup
オブジェクト関数を使用してポートをポート グループにマップできます。PREDICTOR_INPUTS
CONFIG_OBJECT_INPUTS
Sequence component — このテンプレートは UVM シーケンス モジュールを生成します。このモジュールには、予測トランザクションを入力するエクスポートと、スコアボード トランザクションを出力する分析ポートがあります。
シーケンス テンプレートには次の変数が含まれます。
svdpiConfiguration
オブジェクトのプロパティを設定して上書きします。ComponentTypeName
TestBenchTypeName
TemplateDictionary
プロパティを設定して上書きします。ComponentPackageTypeName
SequenceTransTypeName
SequencerTypeName
SequenceCount
SequenceFlushCount
オプションで、
addPortGroup
オブジェクト関数を使用してポートをポート グループにマップできます。SEQUENCE_INPUTS
CONFIG_OBJECT_INPUTS
Scoreboard component — このテンプレートは、UVM スコアボード モジュールとスコアボード構成オブジェクトを生成します。モジュールには、スコアボード トランザクションを入力する 2 つのエクスポートがあります。
スコアボード テンプレートには次の変数が含まれます。
svdpiConfiguration
オブジェクトのプロパティを設定して上書きします。ComponentTypeName
TestBenchTypeName
TemplateDictionary
プロパティを設定して上書きします。ComponentPackageTypeName
InputTransTypeName
OutputTransTypeName
ConfigObjTypeName
addPortGroup
オブジェクト関数を使用して、ポートをポート グループにマップします。PREDICTOR_INPUTS
MONITOR_INPUTS
CONFIG_OBJECT_INPUTS
テストベンチテンプレート
dpigen
関数は、-testbench
引数を指定して呼び出されると、テストベンチ テンプレートを使用します。dpigen
関数は MATLAB 関数をシミュレートし、入力と出力を記録します。次に、dpigen
関数は、生成された SystemVerilog コンポーネント (DUT) をインスタンス化し、ログに記録された入力を DUT に駆動し、DUT 出力を MATLAB シミュレーションからのログに記録された出力と比較する SystemVerilog テスト ベンチ モジュールを生成します。このオプションは、生成された SystemVerilog モジュールが元の MATLAB 関数と同等であることを保証します。
次の組み込みテストベンチ テンプレートが利用可能です。
組み合わせテストベンチ
シーケンシャルテストベンチ
可変サイズ出力を備えたシーケンシャルテストベンチ
予測テストベンチ
シーケンステストベンチ
スコアボードテストベンチ