Main Content

関数のインスタンス化可能なコードの生成

MATLAB Function ブロックでは、InstantiateFunctions パラメーターを使用して各関数用の VHDL® entity、Verilog® または SystemVerilog module を生成できます。HDL Coder™ は entity または module ごとにコードを別のファイルに生成します。

MATLAB Function ブロックの [InstantiateFunctions] オプションを次の表に示します。

InstantiateFunctions の設定説明
'off' (既定の設定)

関数インラインのコードを生成します。

'on'

関数ごとに VHDL entity、Verilog または SystemVerilog module を生成し、各 module または entity を別のファイルに保存します。

関数のインスタンス化可能なコードの生成方法

[HDL ブロック プロパティ] ダイアログ ボックスを使用して [InstantiateFunctions] パラメーターを設定するには、以下のようにします。

  1. MATLAB Function ブロックを右クリックします。

  2. [HDL コード][HDL ブロック プロパティ] を選択します。

  3. InstantiateFunctions には [on] を選択します。

コマンド ラインから [InstantiateFunctions] パラメーターを設定するには、hdlset_param を使用します。たとえば、DUT サブシステム myDUT 内の MATLAB Function ブロック myMatlabFcn で関数のインスタンス化可能なコードを生成するには、次のように入力します。

hdlset_param('my_DUT/my_MATLABFcnBlk', 'InstantiateFunctions', 'on')

特定の関数にインライン コードを生成

特定の関数についてのみインスタンス化可能なコードを生成し、その他の関数については生成しない場合は、このオプションを有効にして関数に対してインスタンス化可能なコードを生成し、coder.inline を使用します。詳細は、coder.inline を参照してください。

関数についてのインスタンス化可能なコードの生成に関する制限

このソフトウェアでは、次の場合にインライン コードが生成されます。

  • 関数呼び出しが条件付きコードまたは for ループの内部にある。

  • いずれかの関数が、非定数の struct 入力で呼び出されている。

  • 関数に永続変数などのステートがあり、複数回呼び出されている。

  • 設計関数のどこかに列挙がある。

参考

関連するトピック