Main Content

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

シーケンスサブシステムの調整可能なパラメータ

Simulink® シーケンス サブシステムに調整可能なパラメーターが含まれている場合、uvmbuild 関数は、調整可能なパラメーターごとに SystemVerilog パラメーターを含むシーケンス オブジェクトを生成します。これらのパラメータはランダム化することができ、その最小値、最大値、およびデフォルト値は Simulink パラメータから導出されます。

メモ

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

調整可能なパラメータを使用して UVM 生成のシーケンスを準備する

調整可能なパラメータを使用してユニバーサル検証方法論 (UVM) 生成用のシーケンス サブシステムを準備するには、次の手順を実行します。

  1. DPI および UVM 生成用に Simulink モデルを設定します。Simulink の Modeling タブで、Model Settings をクリックします。[構成パラメータ] ダイアログ ボックスで、左側のペインから [Code Generation] を選択します。次に、System target filesystemverilog_dpi_grt.tlc に設定します。Embedded Coder® 製品をお持ちの場合は、代わりにこの値を systemverilog_dpi_ert.tlc に設定することもできます。

  2. Simulink.Parameter (Simulink) オブジェクトを使用して、パラメータのデータ オブジェクトを作成します。たとえば、dataValue という名前のパラメータを作成するには、MATLAB コマンド プロンプトでこのコードを入力します。

    dataValue = Simulink.Parameter
    open dataValue

    dataValue パラメータのプロパティを定義します。Simulink.Parameter ウィンドウで、次の値を設定します。

    • Value – 生成された UVM パラメータのデフォルト値を設定します。

    • Minimum – 生成される UVM パラメータの最小値を設定します。

    • Maximum – 生成される UVM パラメータの最大値を設定します。

    • Data type – 生成された UVM パラメータのデータ型を設定します。シーケンス サブシステムの場合、制約付きランダム パラメータに整数データ型と浮動小数点データ型を使用する違いに注意してください。

    • Storage classModel defaultSimulinkGlobal、または ExportedGlobal を選択します。

      パラメータがインスタンス固有の場合は、Model default を使用します。グローバル変数を生成するには、SimulinkGlobal または ExportedGlobal のいずれかを使用します。Storage classAuto に設定すると、コード生成中にパラメータが最適化されるため、推奨されません。

  3. Simulink モデルのシーケンス サブシステムで作成したパラメーターを使用します。たとえば、Constant (Simulink) ブロックをパラメーター化して、その Constant value (Simulink) パラメーターを以前に定義した Simulink パラメーターに設定することで、指定された範囲内でランダムな値を生成することができます。

UVMシーケンスを生成する

uvmbuild 関数を使用して UVM テストベンチを生成します。uvmbuild によって定期的に生成されるファイルに加えて、この関数はファイル top_model_name_uvmbuild/uvm_testbench/sequence/mw_DUT_sequence.sv にコンポーネントを追加します。

  • 整数データ型を使用する場合、シーケンスには 2 つの SystemVerilog ランダム制約コード ブロックが追加されます。

    • 既定値

    • 範囲

    これらの制約の値は、Simulink パラメータで設定した値から導出されます。

  • 浮動小数点データ型を使用する場合、シーケンスには次の 2 つの追加関数が含まれます。

    • pre_randomize – この関数は、調整可能なパラメータのデフォルト値を設定します。

    • post_randomize – この関数は、パラメータに設定された値が Simulink パラメータで定義された範囲内にあるかどうかを確認します。

      整数データ型を使用する場合、これらの関数は空になります。

uvmbuild 関数によって生成されるファイルの詳細については、生成されたファイルとフォルダ構造 を参照してください。

UVMシミュレーションにおける制御シーケンスパラメータ

システムの UVM コンポーネントを生成した後、次の 2 つの方法のいずれかで刺激生成を制御できます。

調整可能なパラメータが整数データ型の場合、デフォルト値と範囲の制約をオンまたはオフにすることができます。追加の SystemVerilog 制約を追加して設定することもできます。

調整可能なパラメータが浮動小数点データ型の場合、次のことが可能です。

  • pre_randomize 関数を使用して独自のランダム化関数を記述します。

  • pre_randomize 関数を拡張してパラメータのデフォルト値を変更します。

post_randomize 関数は、浮動小数点の調整可能なパラメータが Simulink モデルで定義された範囲内にあるかどうかをチェックします。Simulink パラメータの Minimum プロパティと Maximum プロパティが空の場合、この関数は空になります。

参考

関連するトピック