Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

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

    Combinational template interface

  • Sequential module — このテンプレートは、 MATLAB関数の入力と出力をキャプチャします。また、クロック、クロックイネーブル、リセット信号用のポートも追加されます。関数 (永続変数など) に状態がある場合にこれを使用して、順次登録された SystemVerilog モジュールを作成します。永続変数の詳細については、 「 永続変数 」を参照してください。

    シーケンシャル モジュール テンプレートには次の変数が含まれます。

    svdpiConfigurationオブジェクトのプロパティを設定してオーバーライドします。

    • ComponentTypeName

    • TestBenchTypeName

    TemplateDictionaryプロパティを設定してオーバーライドします。

    • ComponentPackageTypeName

    Sequential template interface

  • Sequential module with variable-size outputs — このテンプレートは機能的にはシーケンシャル モジュール テンプレートと同じですが、可変サイズのポートに対応する機能があります。関数への 1 つ以上の入力または出力が可変サイズのベクトルとして定義されている場合は、このテンプレートを使用します。このテンプレートは、それぞれのポートを SystemVerilog オープン配列 ([ ]) として持つ SystemVerilog モジュールを作成します。このコードは、 in1fooyという名前の関数用に生成されたインターフェイスを示しています。

    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 テンプレートを使用して生成できます。

UVM test bench structure with predictor, sequence, scoreboard, scoreboard configuration object, sequence transaction, predictor transaction, and scoreboard transaction highlighted in green.

  • Predictor component — このテンプレートは UVM 予測モジュールを生成します。このモジュールには、予測トランザクションを入力するエクスポートと、スコアボード トランザクションを出力する分析ポートがあります。

    予測子テンプレートには次の変数が含まれます。

    svdpiConfigurationオブジェクトのプロパティを設定してオーバーライドします。

    • ComponentTypeName

    • TestBenchTypeName

    TemplateDictionaryプロパティを設定してオーバーライドします。

    • ComponentPackageTypeName

    • InputTransTypeName

    • OutputTransTypeName

    オプションで、 addPortGroupオブジェクト関数を使用して、ポートをポート グループにマップできます。

    • PREDICTOR_INPUTS

    • CONFIG_OBJECT_INPUTS

    UVM Predictor template interface

  • Sequence component — このテンプレートは UVM シーケンス モジュールを生成します。このモジュールには、予測トランザクションを入力するエクスポートと、スコアボード トランザクションを出力する分析ポートがあります。

    シーケンス テンプレートには次の変数が含まれます。

    svdpiConfigurationオブジェクトのプロパティを設定してオーバーライドします。

    • ComponentTypeName

    • TestBenchTypeName

    TemplateDictionaryプロパティを設定してオーバーライドします。

    • ComponentPackageTypeName

    • SequenceTransTypeName

    • SequencerTypeName

    • SequenceCount

    • SequenceFlushCount

    オプションで、 addPortGroupオブジェクト関数を使用して、ポートをポート グループにマップできます。

    • SEQUENCE_INPUTS

    • CONFIG_OBJECT_INPUTS

    UVM Sequence template interface

  • Scoreboard component — このテンプレートは、UVM スコアボード モジュールとスコアボード構成オブジェクトを生成します。このモジュールには、スコアボード トランザクションを入力する 2 つのエクスポートがあります。

    スコアボード テンプレートには次の変数が含まれます。

    svdpiConfigurationオブジェクトのプロパティを設定してオーバーライドします。

    • ComponentTypeName

    • TestBenchTypeName

    TemplateDictionaryプロパティを設定してオーバーライドします。

    • ComponentPackageTypeName

    • InputTransTypeName

    • OutputTransTypeName

    • ConfigObjTypeName

    addPortGroupオブジェクト関数を使用して、ポートをポート グループにマップします。

    • PREDICTOR_INPUTS

    • MONITOR_INPUTS

    • CONFIG_OBJECT_INPUTS

    UVM Scoreboard template interface

テストベンチのテンプレート

dpigen関数は、-testbench引数を指定して呼び出された場合にテストベンチ テンプレートを使用します。dpigen関数は、MATLAB関数をシミュレートし、入力と出力をログに記録します。次に、dpigen関数は、生成された SystemVerilog コンポーネント (DUT) をインスタンス化し、ログに記録された入力を DUT に駆動し、DUT の出力をからのログに記録された出力と比較する SystemVerilog テスト ベンチ モジュールを生成します。 MATLABシミュレーション。このオプションにより、生成された SystemVerilog モジュールが元のMATLAB関数と同等であることが保証されます。

次の組み込みテストベンチ テンプレートが利用可能です。

  • 組み合わせテストベンチ

  • シーケンシャルテストベンチ

  • 可変サイズの出力を備えたシーケンシャル テストベンチ

  • 予測器テストベンチ

  • シーケンステストベンチ

  • スコアボードのテストベンチ

参考

|

関連するトピック