このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
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 モジュールを作成します。このコードは、
in1
foo
と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 の出力をからのログに記録された出力と比較する SystemVerilog テスト ベンチ モジュールを生成します。 MATLABシミュレーション。このオプションにより、生成された SystemVerilog モジュールが元のMATLAB関数と同等であることが保証されます。
次の組み込みテストベンチ テンプレートが利用可能です。
組み合わせテストベンチ
シーケンシャルテストベンチ
可変サイズの出力を備えたシーケンシャル テストベンチ
予測器テストベンチ
シーケンステストベンチ
スコアボードのテストベンチ