HDL モデルおよびブロック パラメーターの設定と表示
実装や実装パラメーターなどの HDL に関連するブロック プロパティをモデル レベルおよび個別のブロック レベルで表示および設定できます。
HDL ブロック プロパティの設定
HDL ブロック パラメーターを UI から設定するには、[HDL ブロック プロパティ] ダイアログ ボックスを開き、ブロック プロパティを変更します。[HDL プロパティ] ダイアログ ボックスを開くには、次の手順のいずれかに従います。
[アプリ] タブで、[HDL Coder] を選択します。[HDL コード] タブが表示されます。HDL パラメーターを表示するブロックを選択し、[HDL プロパティ インスペクター]、[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 ブロック プロパティの設定
R2024b 以降
ブロックまたはサブシステムの HDL ブロック プロパティは、[HDL プロパティ インスペクター] ペインを使用して編集することもできます。[HDL プロパティ インスペクター] を開くには、Simulink® ツールストリップから以下を行います。
[アプリ] メニューから [HDL Coder] アプリを開きます。
[HDL コード] タブで [HDL プロパティ インスペクター] をクリックします。
現在の Simulink エディター ウィンドウ内に [HDL プロパティ インスペクター] がペインとして開きます。HDL プロパティを表示するブロックを選択すると、それぞれのブロックの HDL プロパティが [HDL プロパティ インスペクター] に表示されます。HDL プロパティ インスペクターでは、任意のモデル要素の HDL プロパティを単一のインターフェイスを使用して編集できます。
[HDL プロパティ インスペクター] は、既定の位置からドラッグしてエディター内の別の位置にドッキングできます。ペインのタイトルの右にある下矢印に、ペインをドッキング解除するオプション、最小化するオプション、ヘルプを開くオプションがあります。HDL プロパティ インスペクターでは、作業を進めながら迅速にプロパティを設定できます。
コマンド ライン関数 hdlset_param
、[HDL ブロック プロパティ]、または [HDL プロパティ インスペクター] の手法を使用して設定された HDL ブロック プロパティの値は直ちに有効になり、UI と CLI の両方のオプションに反映されます。
数値をとる HDL ブロック プロパティについては、MATLAB® ベース ワークスペース、マスク ワークスペース、またはモデル ワークスペースで宣言された変数を使用して値を割り当てることもできます。
複数のブロックの 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'