Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

サブシステムのブラック ボックス インターフェイスの生成

ブラック ボックス インターフェイスとは

サブシステムの "ブラック ボックス" インターフェイスは、生成された VHDL® コンポーネントまたは Verilog® モジュールです。これらには、サブシステム用に HDL の入力および出力端子の定義のみが含まれています。このようなコンポーネントを生成することで、モデル内のサブシステムを使用して既存の手書きの HDL コード、サードパーティ製の IP または HDL Coder™ で生成された他のコードへのインターフェイスを生成できます。

必要条件

  • ブラック ボックスの実装は、DUT より低いレベルのサブシステム ブロックでのみ使用できます。また、DUT より低いレベルのカスタム ライブラリのバーチャルおよび Atomic Subsystem ブロックでも、ブラック ボックス実装を使用できます。

  • 1 つのブラック ボックス サブシステムに生成できるクロック端子とクロック イネーブル端子は、それぞれ最大 1 個です。そのため、マルチレートの DUT 内にある場合でも、ブラック ボックス サブシステムはシングルレートでなければなりません。

サブシステム用のブラック ボックス インターフェイスの生成

インターフェイスを生成するには、1 つ以上の Subsystem ブロックで BlackBox 実装を選択します。テスト対象デバイスとなる、次のサブシステム top を含むモデルがあるとします。

サブシステム top には次の 2 つの下位レベルのサブシステムが含まれています。

Interface サブシステムのブラック ボックス インターフェイスを使用して top から HDL コードを生成するとします。ブラック ボックス インターフェイスを指定するには、次の手順に従います。

  1. Interface サブシステムを右クリックして [HDL コード][HDL ブロック プロパティ] を選択します。

    [HDL プロパティ] ダイアログ ボックスが表示されます。

  2. [Architecture][BlackBox] に設定します。

    次のパラメーターがブラック ボックスの実装に使用できます。

    ブラック ボックスの実装に使用できる HDL ブロック パラメーターで、生成されるインターフェイスをカスタマイズできます。これらのパラメーターについては、ブラック ボックスまたは HDL コシミュレーション インターフェイスのカスタマイズを参照してください。

  3. 必要に応じてパラメーターを変更し、[Apply] をクリックします。

  4. [OK] をクリックして [HDL プロパティ] ダイアログ ボックスを閉じます。

ブラック ボックス サブシステム実装のためのコードの生成

ex_blackbox_subsys モデル内の DUT のコードを生成する場合、次のメッセージが表示されます。

>> makehdl('ex_blackbox_subsys/top')
### Generating HDL for 'ex_blackbox_subsys/top'
### Starting HDL Check.
### HDL Check Complete with 0 errors, 0 warnings and 0 messages.

### Begin VHDL Code Generation
### Working on ex_blackbox_subsys/top/gencode as hdlsrc\gencode.vhd
### Working on ex_blackbox_subsys/top as hdlsrc\top.vhd
### HDL Code Generation Complete.

この進行状況メッセージ内で、gencode サブシステムがその VHDL エンティティの定義用に別のファイル gencode.vhd を生成していることが確認できます。Interface サブシステムでは、このようなファイルは生成されません。このサブシステムのインターフェイス コードは、ex_blackbox_subsys/top から生成される top.vhd 内にあります。次のコード リストは、Interface サブシステム用に生成されたコンポーネントの定義とインスタンス化を説明しています。

  COMPONENT Interface
    PORT( clk            :   IN    std_logic;
          clk_enable     :   IN    std_logic;
          reset          :   IN    std_logic;
          In1            :   IN    std_logic_vector(7 DOWNTO 0);  -- uint8
          In2            :   IN    std_logic_vector(15 DOWNTO 0);  -- uint16
          In3            :   IN    std_logic_vector(31 DOWNTO 0);  -- uint32
          Out1           :   OUT   std_logic_vector(31 DOWNTO 0)  -- uint32
          );
  END COMPONENT;
...
  u_Interface : Interface
    PORT MAP( clk => clk,
              clk_enable => enb,
              reset => reset,
              In1 => gencode_out1,  -- uint8
              In2 => gencode_out2,  -- uint16
              In3 => gencode_out3,  -- uint32
              Out1 => Interface_out1  -- uint32
              );

  enb <= clk_enable;

  ce_out <= enb;

  Out1 <= Interface_out1;

既定の設定では、サブシステム用に生成されたブラック ボックス インターフェイスにはクロック、クロック イネーブルおよびリセット端子が含まれます。これらの信号の名前の変更方法や生成の抑制方法および生成されたインターフェイスの他の要素のカスタマイズ方法については、ブラック ボックスまたは HDL コシミュレーション インターフェイスのカスタマイズを参照してください。

関連するトピック