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 モジュールを作成します。このコードは、foo という名前の関数に対して生成されたインターフェースを示しており、in1y を可変サイズのポートとして宣言しています。

    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 出力を MATLAB シミュレーションからのログに記録された出力と比較する SystemVerilog テスト ベンチ モジュールを生成します。このオプションは、生成された SystemVerilog モジュールが元の MATLAB 関数と同等であることを保証します。

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

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

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

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

  • 予測テストベンチ

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

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

参考

|

関連するトピック