調整可能なパラメーターの DUT 端子を生成する
シミュレーション中にモデルの動作を調整するために使用する調整可能なパラメーターを、生成される HDL コードの最上位 DUT の端子にマップすることができます。HDL Coder™ は、調整可能なパラメーター 1 つにつき DUT の端子を 1 つ生成します。
調整可能なパラメーターの DUT 端子は、次のいずれかのブロックで使用することで生成できます。
Gain
Constant
MATLAB Function
MATLAB System
Chart
Truth Table
State Transition Table
調整可能なパラメーターをもつこれらのブロックは、モデル参照を含め、DUT 階層内のどのレベルに配置することも可能です。
これらのいずれかのブロックで、調整可能なパラメーターを使用する DUT と共に HDL コシミュレーションを使用することはできません。これら以外のブロック内で調整可能なパラメーターを使用する場合、コードはインラインで生成され、DUT の端子にはマッピングされません。Chart ブロックまたは Truth Table ブロックで調整可能なパラメーターの値を使用するには、その他のブロックでの調整可能なパラメーターの使用を参照してください。
ベース ワークスペースまたは Simulink® データ ディクショナリで調整可能なパラメーターを定義して格納することができます。ただし、Simulink データ ディクショナリにはさらに多くの機能があります。詳細については、データ ディクショナリとはを参照してください。
前提条件
調整可能なパラメーターのすべてのインスタンスについて Simulink のコンパイルされたデータ型は同一でなければなりません。
同じ名前をもつ調整可能なパラメーターを使用する Simulink ブロックは同じデータ転送速度で動作しなければなりません。
Simulink のコンパイルされたデータ型の詳細は、ブロック パラメーターのデータ型の制御を参照してください。
DUT 端子にマッピングする調整可能なパラメーターの作成と追加
調整可能なパラメーターの DUT 端子を生成するには、次の操作を行います。
StorageClass
をExportedGlobal
に設定して、調整可能なパラメーターを作成します。たとえば、
myParam
という調整可能なパラメーターを作成して 5 に初期化するには、コマンド ラインに以下を入力します。myParam = Simulink.Parameter; myParam.Value = 5; myParam.CoderInfo.StorageClass = 'ExportedGlobal';
モデル エクスプローラーを使用して、ベース ワークスペースで調整可能なパラメーターを作成します。
[追加] メニューから
[Simulink.Parameter]
を選択して、Simulink.Parameter をベース ワークスペースに追加します。[コンテンツ] ペインの [StorageClass] 列で、[StorageClass] を
[ExportedGlobal]
に設定します。あるいは、[Simulink.Parameter] ペインで [コード生成] タブをクリックし、[StorageClass] を
[ExportedGlobal]
に設定します。
もしくは、モデル エクスプローラーを使用して、モデル ワークスペースで調整可能なパラメーターを作成します。
[追加] メニューから
[Simulink.Parameter]
を選択して、Simulink.Parameter をモデル ワークスペースに追加します。[コンテンツ] ペインの [StorageClass] 列で、[構成] リンクをクリックします。
あるいは、[Simulink.Parameter] ペインで [コード生成] タブをクリックし、[Coder アプリでの構成] をクリックします。
[コード マッピング] ペインで、[パラメーター] タブをクリックします。[モデル パラメーター] で、[StorageClass] を
[ExportedGlobal]
に設定します。
Simulink 設計では、次のように調整可能なパラメーターを使用します。
Constant ブロックの [定数値]。
Gain ブロックの [ゲイン] パラメーター。
MATLAB Function ブロックの MATLAB® 関数の引数。
生成コード
次の VHDL® コードは、Gain ブロックの [ゲイン] フィールドを myParam
という調整可能なパラメーターに設定して、HDL Coder で生成されたコード例です。コード ジェネレーターによって DUT 端子が生成され、その端子が調整可能なパラメーターに対応することを示すコメントが追加されることが分かります。
ENTITY s IS PORT( In1 : IN std_logic_vector(15 DOWNTO 0); -- sfix16_En5 myParam : IN std_logic_vector(15 DOWNTO 0); -- sfix16_En5 Tunable port Out1 : OUT std_logic_vector(31 DOWNTO 0) -- sfix32_En10 ); END s; ARCHITECTURE rtl OF s IS -- Signals SIGNAL myParam_signed : signed(15 DOWNTO 0); -- sfix16_En5 SIGNAL In1_signed : signed(15 DOWNTO 0); -- sfix16_En5 SIGNAL Gain_out1 : signed(31 DOWNTO 0); -- sfix32_En10 BEGIN myParam_signed <= signed(myParam); In1_signed <= signed(In1); Gain_out1 <= myParam_signed * In1_signed; Out1 <= std_logic_vector(Gain_out1); END rtl;
制限
Use trigger signal as clockチェック ボックスが既定でオフのままであることを確認します。IP コア ワークフローでテスト ポイントまたは調整可能なパラメーターを使用する場合、DUT は、最上位モデルやモデル参照の DUT ではなく、サブシステム レベルの DUT でなければなりません。
調整可能なパラメーターはスカラー値タイプを使用します。複素数値、列挙値、および数式値のタイプは使用できません。
調整可能なパラメーターを含む式に変数の値を設定することはできません。
その他のブロックでの調整可能なパラメーターの使用
Chart ブロックまたは Truth Table ブロックで調整可能なパラメーターの値を使用するには、次の操作を行います。
調整可能なパラメーターを使用するブロックに、入力端子を追加します。
Constant ブロックの出力を新しい入力端子に接続します。