関数のインスタンス化可能なコードの生成
MATLAB Function ブロックでは、InstantiateFunctions パラメーターを使用して各関数用の VHDL® entity、Verilog® または SystemVerilog module を生成できます。HDL Coder™ は entity または module ごとにコードを別のファイルに生成します。
MATLAB Function ブロックの [InstantiateFunctions] オプションを次の表に示します。
| InstantiateFunctions の設定 | 説明 |
|---|---|
'off' (既定の設定) | 関数インラインのコードを生成します。 |
'on' | 関数ごとに VHDL |
関数のインスタンス化可能なコードの生成方法
[HDL ブロック プロパティ] ダイアログ ボックスを使用して [InstantiateFunctions] パラメーターを設定するには、以下のようにします。
MATLAB Function ブロックを右クリックします。
[HDL コード] 、 [HDL ブロック プロパティ] を選択します。
InstantiateFunctions には [on] を選択します。
コマンド ラインから [InstantiateFunctions] パラメーターを設定するには、hdlset_param を使用します。たとえば、DUT サブシステム myDUT 内の MATLAB Function ブロック myMatlabFcn で関数のインスタンス化可能なコードを生成するには、次のように入力します。
hdlset_param('my_DUT/my_MATLABFcnBlk', 'InstantiateFunctions', 'on')特定の関数にインライン コードを生成
特定の関数についてのみインスタンス化可能なコードを生成し、その他の関数については生成しない場合は、このオプションを有効にして関数に対してインスタンス化可能なコードを生成し、coder.inline を使用します。詳細については、coder.inline を参照してください。
関数についてのインスタンス化可能なコードの生成に関する制限
このソフトウェアでは、次の場合にインライン コードが生成されます。
関数呼び出しが条件付きコードまたは
forループの内部にある。いずれかの関数が、非定数の
struct入力で呼び出されている。関数に永続変数などのステートがあり、複数回呼び出されている。
設計関数のどこかに列挙がある。