関数のインスタンス化可能なコードの生成
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
入力で呼び出されている。関数に永続変数などのステートがあり、複数回呼び出されている。
設計関数のどこかに列挙がある。