Main Content

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

SystemVerilog DPI コンポーネント テスト ポイント アクセス

モデル内の内部信号をテスト ポイントとして指定し、SystemVerilog DPI ジェネレーターを構成して 1 つ以上のアクセス関数を作成できます。テスト ポイントでのログ記録を有効にすることもできます。次に、生成されたテストベンチを使用して、 Simulink®データを SystemVerilog コンポーネントの実行中に観察された値と比較できます。

このワークフローには、 ASIC Testbench for HDL Verifierアドオンのライセンスが必要です。

手順 1.内部信号の選択

次のガイドラインに従って、モデル内の内部信号を選択します。

  • 信号のソースでテスト ポイントを有効にします。テスト ポイントがサブシステム間などの接続信号上にある場合、生成されたコードから信号が最適化される可能性があります。

  • コンポーネントの入力または出力ではない信号を選択してください。I/O 信号を選択した場合、ジェネレーターはアクセス機能を提供しません。すでに I/O 信号を認識できるため、このようなアクセス機能は冗長です。

  • enumタイプの信号はサポートされていません。

  • 仮想信号と仮想バスはサポートされていません。

  • 連続、非同期、トリガーされたサンプル時間はサポートされていません。

  • マルチレート デザインは信号ログではサポートされていません。テスト ポイントを追加し、アクセス関数を生成できます。ただし、テストベンチは単一レートであり、異なるレートで記録されたデータとの比較を実行できません。

  • モデル参照はサポートされていません。モデル参照にテスト ポイントを追加する場合は、まずモデル参照から信号を配線する必要があります。モデル内で信号にアクセスできるようになると、それをテスト ポイントとして選択できます。

手順 2.テストポイントの追加

  1. モデルで信号を右クリックし、 Propertiesを選択します。

  2. [Test point]チェック ボックスをオンにします。

  3. [Signal name]ボックスでテスト ポイントに一意の名前を付けます。

  4. 必要に応じて、 Log signal dataを選択します。このチェック ボックスをオンにすると、生成されたテストベンチで、モデルからのログ データと、生成されたコンポーネントの実行中に観察された値とを比較できるようになります。テストベンチは、生成されたアクセス関数を使用して、シミュレーション中に信号値をフェッチします。

テスト ポイントとSimulinkへのログインの詳細については、 「 テスト ポイントとしての信号の設定 (Simulink) 」を参照してください。

手順 3.コンポーネントインターフェイスを有効にする

  1. モデルを開き、 [Apps]タブでHDL Verifierをクリックします。次に、 [HDL Verifier]タブで、 [C Code Settings]をクリックします。Configuration ParametersCode Generationダイアログが開きます。

  2. 左側のペインのCode Generationの下で、 Interfaceを選択します。

  3. Generate C API forで、 signalsチェック ボックスがオンになっていることを確認します。他のチェック ボックスは、DPI コンポーネントやテストベンチには影響しません。

手順 4.アクセス機能の設定

  1. [HDL Verifier]タブで、 [SystemVerilog Settings]をクリックします。

  2. Generate access function to test pointの場合、 One function per Test PointまたはOne function for all Test Pointsを選択します。

    One function for all Test Pointsを選択すると、単一の関数がすべてのテスト ポイントの値を返します。

    DPI_TestPointAccessFcn(input chandle objhandle,input real Name1,inout real Name2);

    One function per Test Pointを選択した場合、各信号には個別のアクセス関数があります。

    DPI_Name_TestPoint(input chandle objhandle,inout real Name);

    Noneを選択した場合、ツールはアクセス関数を生成しません。

関連するトピック