HDL モデルおよびブロック パラメーターの設定と表示
実装や実装パラメーターなどの HDL に関連するブロック プロパティをモデル レベルおよび個別のブロック レベルで表示および設定できます。
HDL ブロック パラメーターの設定
HDL ブロック パラメーターを UI から設定するには、[HDL ブロック プロパティ] ダイアログ ボックスを開き、ブロック プロパティを変更します。[HDL プロパティ] ダイアログ ボックスを開くには、次の手順のいずれかに従います。
[アプリ] タブで、[HDL Coder] を選択します。[HDL コード] タブが表示されます。HDL パラメーターを表示するブロックを選択し、[HDL ブロック プロパティ] を選択します。
ブロックを右クリックし、[HDL コード] 、 [HDL ブロック プロパティ] を選択します。
HDL に関連するパラメーターをコマンド ラインで設定するには、hdlset_param
を使用します。hdlset_param(
は、ブロックまたは path
,Name, Value
)path
によって参照されるモデルの HDL に関連するパラメーターを設定します。1 つ以上の Name,Value
のペア引数により、設定するパラメーターとそれらの値が指定されます。Name1,Value1,…,NameN,ValueN
のように、複数の名前と値のペア引数を任意の順番で指定できます。
たとえば、モデルのブロックの共有係数を 2 に、アーキテクチャを Tree
に設定するには次の手順に従います。
モデルを開いてブロックを選択します。
コマンド ラインで次のコマンドを入力します。
hdlset_param (gcb, 'SharingFactor', 2, 'Architecture', 'Tree')
ブロックに指定された HDL パラメーターを表示するには、hdlget_param
を使用します。たとえば、ブロックの HDL アーキテクチャを表示するには、コマンド ラインで次のように入力します。
hdlget_param(gcb, 'Architecture')
返された HDL ブロック パラメーターを cell 配列に代入することもできます。次の例では、hdlget_param
はすべての HDL ブロック パラメーターと値を cell 配列 p
に返します。
p = hdlget_param(gcb, 'all')
p = 'Architecture' 'Linear' 'InputPipeline' [0] 'OutputPipeline' [0]
複数のブロックの HDL ブロック パラメーターのプログラムによる設定
多数のブロックを含むモデルの場合、[HDL ブロック プロパティ] ダイアログ ボックスを使用し、個別のブロックに対してブロックの実装を選択したり実装パラメーターを設定したりすることは、実用的でないかもしれません。プログラミングを使用して HDL に関連するモデルやブロック パラメーターを複数のブロックに設定するほうが効果的です。関数find_system
を使用して目的のブロックを検索できます。次に、ループを使用して hdlset_param
を呼び出し、各ブロックに必要なパラメーターを設定します。
以下の例は、sfir_fixed
モデルを使用してサブシステム内のブロックのグループを検索する方法と、すべてのブロックに同じ出力パイプラインの深さを指定する方法を示しています。
open_system('sfir_fixed') % Find all Product blocks in the model prodblocks = find_system('sfir_fixed/symmetric_fir', ... 'BlockType', 'Product') % Set the output pipeline to 2 for the blocks for ii=1:length(prodblocks) hdlset_param(prodblocks{ii}, 'OutputPipeline', 2) end
prodblocks = 4×1 cell array {'sfir_fixed/symmetric_fir/m1'} {'sfir_fixed/symmetric_fir/m2'} {'sfir_fixed/symmetric_fir/m3'} {'sfir_fixed/symmetric_fir/m4'}
設定を検証するには、hdlget_param
を使用してブロックの OutputPipeline
パラメーターの値を表示します。
% Get the output pipeline to 2 for the blocks for ii=1:length(prodblocks) hdlget_param(prodblocks{ii}, 'OutputPipeline') end
ans = 2 ans = 2 ans = 2 ans = 2
すべての HDL ブロック パラメーターの表示
hdldispblkparams
は、指定されたブロックで使用可能な HDL ブロック パラメーターを表示します。
次の例は、現在選択されているブロックの HDL ブロック パラメーターとその値を表示します。
hdldispblkparams(gcb,'all')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% HDL Block Parameters ('simplevectorsum/vsum/Sum of Elements') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Implementation Architecture : Linear Implementation Parameters InputPipeline : 0 OutputPipeline : 0
hdldispblkparams
も参照してください。
既定以外の HDL ブロック パラメーターの表示
次の例では、現在選択されているブロックについて、既定以外の値をもつ HDL ブロック パラメーターのみを表示します。
hdldispblkparams(gcb)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% HDL Block Parameters ('simplevectorsum/vsum/Sum of Elements') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Implementation Architecture : Linear Implementation Parameters OutputPipeline : 3
HDL モデル パラメーターの表示
モデル内の HDL に関連するプロパティの名前と値を表示するには、関数 hdldispmdlparams
を使用します。
次の例は、現在のモデル内の HDL に関連するプロパティと値を、プロパティ名のアルファベット順で表示します。
hdldispmdlparams(bdroot,'all')
%%%%%%%%%%%%%%%%%%%%%%%%% HDL CodeGen Parameters %%%%%%%%%%%%%%%%%%%%%%%%% AddPipelineRegisters : 'off' Backannotation : 'on' BlockGenerateLabel : '_gen' CheckHDL : 'off' ClockEnableInputPort : 'clk_enable' . . . VerilogFileExtension : '.v'
次の例は、HDL に関連し、既定以外の値をもつプロパティのみを表示します。
hdldispmdlparams(bdroot)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% HDL CodeGen Parameters (non-default) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CodeGenerationOutput : 'GenerateHDLCodeAndDisplayGeneratedModel' HDLSubsystem : 'simplevectorsum/vsum' ResetAssertedLevel : 'Active-low' Traceability : 'on'