Main Content

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

uvmfTestBenchConfiguration

DPIコンポーネント生成からのYAML生成とUVMFとの統合を構成する

R2024a 以降

アドオンが必要: この機能には ASIC Testbench for HDL Verifier アドオンが必要です。

説明

uvmfTestBenchConfiguration オブジェクトは、MATLAB® ベースの DPI コンポーネントからユニバーサル検証方法論フレームワーク (UVMF) 準拠の YAML ファイルの作成を制御します。

作成

説明

c = uvmfTestBenchConfiguration({svdpiConfiguration("uvmf-predictor"),svdpiConfiguration("uvmf-sequence")}) は、DPI 予測子とシーケンス コンポーネントを UVMF テスト ベンチに統合するための uvmfTestBenchConfiguration オブジェクトを作成します。セル配列内の svdpiConfiguration オブジェクトは任意の順序で指定できます。

c = uvmfTestBenchConfiguration(testBenchKind,{svdpiObj1,svdpiObj2,...,svdpiObjn}) は、指定された testBenchKind を持つ uvmfTestBenchConfiguration オブジェクトを作成します。指定されていない場合は、"default" テストベンチの種類を持つオブジェクトを作成します。カスタム UVMF テストベンチ YAML テンプレートに従って、任意の数の svdpiConfiguration オブジェクトを提供します。

プロパティ

すべて展開する

コード生成

SystemVerilog DPI 構成オブジェクトのコンテナ。svdpiConfiguration オブジェクトのセル配列として指定されます。このプロパティを使用して、DPI コンポーネントを生成し、UVMF テスト ベンチに統合します。

例: {pred, seq}

データ型: cell array

すべての DPI コンポーネントと YAML ファイルが生成されるビルド ディレクトリの名前 (文字列として指定)。

例: "C:/myDirectory"

データ型: string

テストベンチタイプ情報

生成する UVMF テストベンチ YAML の種類。"default" または "custom" として指定されます。

  • "default" — デフォルトのテストベンチ YAML テンプレートを使用して YAML ファイルを生成します。この種類では、引数として 1 つの予測コンポーネントと 1 つのシーケンス コンポーネントのみを指定できます。

  • "custom" — 提供されたカスタム テスト ベンチ YAML テンプレートを使用して YAML ファイルを生成します。この種類では、カスタム UVMF テスト ベンチの一部である複数の DPI コンポーネントを提供できます。

    カスタム UVMF テスト ベンチ YAML でこれらのカスタム DPI コンポーネントを区別するには、次の形式で入力エージェント ポート、出力エージェント ポート、およびトランザクション変数に固有のテンプレート タグを使用できます。

    %<MATLABFunctionName_INPUT_PORTS_DETAILS>,
    %<MATLABFunctionName_INPUT_TRANSACTION_VARS>,
    %<MATLABFunctionName_OUTPUT_PORTS_DETAILS>,
    %<MATLABFunctionName_OUTPUT_TRANSACTION_VARS>

    ここで、MATLABFunctionName は、DPI コンポーネントを生成する MATLAB 関数の名前です。

    カスタム DPI コンポーネントに対応する YAML コンテンツをコピーするには、テンプレート タグは次の形式である必要があります。

    %<MATLABFunctionName_DPI_YAML>

    例については、カスタムテンプレートを使用してMATLABからYAMLを生成するを参照してください。

例: "custom"

データ型: string

テンプレート ファイルで定義された名前と値のペアのリスト。名前と値のペアのセル配列として指定されます。

各テンプレート ファイルは、テンプレート固有の変数を宣言するテンプレート ディクショナリを定義します。これらの変数に、変数名の後に値が続くセル配列として値を割り当てます。

テンプレート ファイルは、%<Name> 形式のトークンを Value に拡張します。名前と値は文字列または文字配列である必要があります。

データ型: cell array

UVMF テストベンチ YAML を生成するためのテンプレート ファイル。文字ベクトル、文字列、またはセル配列として指定されます。

例: "C:/myDirectory/customyamltmplt.svt"

依存関係

このプロパティを書き込むには、UVMFTestBenchKind プロパティを "custom" に設定します。それ以外の場合、このプロパティは読み取り専用になります。

データ型: char | string | cell array

オブジェクト関数

generateYAMLforUVMFTestBenchテンプレート エンジンを使用して完全な UVMF テスト ベンチの YAML を生成する

すべて折りたたむ

この例では、uvmfTestBenchConfiguration オブジェクトを作成し、MATLAB 関数の 2 つの svdpiConfiguration オブジェクトを統合する方法を示します。

組み込みの UVMF テスト ベンチ YAML テンプレートを使用するために、"default" UVMFTestBenchKind 用の uvmfTestBenchConfiguration オブジェクトを作成します。componentKind="uvmf-predictor"svdpiConfiguration オブジェクトを MATLAB 関数 mode_set_controller に積分し、componentKind="uvmf-sequence" の別の svdpiConfiguration オブジェクトを MATLAB 関数 mode_set_controller_test に積分します。

pred = svdpiConfiguration("uvmf-predictor"); 
pred.MATLABFunctionName = "mode_set_controller";
seq = svdpiConfiguration("uvmf-sequence"); 
seq.MATLABFunctionName = "mode_set_controller_test"; 
uvmfObject = uvmfTestBenchConfiguration({pred, seq});
generateYAMLforUVMFTestBench(uvmfObject);

カスタム UVMF テスト ベンチ YAML テンプレート "custom_uvmf_test_bench.svt" を使用するために、"custom" UVMFTestBenchKinduvmfTestBenchConfiguration オブジェクトを作成します。単一の svdpiConfiguration オブジェクトを componentKind="uvmf-sequence" と統合します。

seq = svdpiConfiguration("uvmf-sequence"); 
seq.MATLABFunctionName = "chip_controller_test";
uvmfTestBenchKind = "custom";
uvmfObject = uvmfTestBenchConfiguration(uvmfTestBenchKind,{seq});
generateYAMLforUVMFTestBench(uvmfObject);

この例では、カスタム テンプレートを使用して MATLAB から YAML を生成する方法を示します。

テストベンチに含める UVMF テストベンチ コンポーネントを構成します。"uvmf-sequence" コンポーネントを作成して構成します。

seq = svdpiConfiguration("uvmf-sequence");
seq.MATLABFunctionName = "mode_set_controller_test";

"uvmf-custom" コンポーネントを作成して構成します。

custom1 = svdpiConfiguration("uvmf-custom");
custom1.MATLABFunctionName = "mode_custom1";

別の "uvmf-custom" コンポーネントを作成して構成します。

custom2 = svdpiConfiguration("uvmf-custom");
custom2.MATLABFunctionName = "mode_custom2"

以前に作成したテストベンチ コンポーネントを渡して、UVMF テストベンチを構成します。

uvmfTestBenchKind = "custom";
uvmfObject = uvmfTestBenchConfiguration(uvmfTestBenchKind, ...
{custom1,seq,custom2});

カスタム UVMF テストベンチ テンプレート ファイルを uvmfTestBenchConfiguration オブジェクトに割り当てます。

uvmfObject.UVMFTestBenchYAMLTemplate = 'myroot/custom_test_bench.svt';

UVMF テストベンチ YAML テンプレートとともに DPI コンポーネント ファイルを生成します。

generateYAMLforUVMFTestBench(uvmfObject);

この例では、カスタム UVMF テストベンチ YAML テンプレートで次のテンプレート タグを使用できます。

%<mode_custom1_INPUT_PORTS_DETAILS>, 
%<mode_custom2_INPUT_PORTS_DETAILS>,
%<mode_custom1_INPUT_TRANSACTION_VARS>, 
%<mode_custom2_INPUT_TRANSACTION_VARS>,
%<mode_custom1_OUTPUT_PORTS_DETAILS>, 
%<mode_custom2_OUTPUT_PORTS_DETAILS>,
%<mode_custom1_OUTPUT_TRANSACTION_VARS>, 
%<mode_custom2_OUTPUT_TRANSACTION_VARS>,
%<mode_custom1_DPI_YAML>,
%<mode_custom2_DPI_YAML>

ヒント

このオブジェクトを使用すると、DPI コンポーネントを UVMF テストベンチに統合できます。UVMF コード ジェネレーターでは、これらの DPI コンポーネントをコンパイルするために DPI コンパイル フラグを渡す必要があります。このオブジェクトを使用して生成した makefile の "info" ターゲットをビルドすることにより、DPI コンパイル フラグを抽出できます。

たとえば、AbsVal_Blk.mk makefile の "info" ターゲットをビルドするには、このコマンドを使用します。

make -f AbsVal_Blk.mk info

このログには、UVMF コード ジェネレーターに渡すコンパイル フラグが表示されます。

The figure highlights the compilation flags (CPPFLAGS).

バージョン履歴

R2024a で導入