Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

調整可能なパラメーターの 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 端子を生成するには、次の操作を行います。

  1. StorageClassExportedGlobal に設定して、調整可能なパラメーターを作成します。

    たとえば、myParam という調整可能なパラメーターを作成して 5 に初期化するには、コマンド ラインに以下を入力します。

    myParam = Simulink.Parameter;
    myParam.Value = 5;
    myParam.CoderInfo.StorageClass = 'ExportedGlobal';

    または、モデル エクスプローラーで調整可能なパラメーターを作成して、Storage ClassExportedGlobal に設定できます。組み込みのデータ クラス パッケージ Simulink からのデータ オブジェクトの作成を参照してください。

  2. 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;

制限

トリガー信号をクロックとして使用チェック ボックスが既定でオフのままであることを確認します。

その他のブロックでの調整可能なパラメーターの使用

Chart ブロックまたは Truth Table ブロックで調整可能なパラメーターの値を使用するには、次の操作を行います。

  1. 調整可能なパラメーターを作成して、Constant ブロックで使用します。

  2. 調整可能なパラメーターを使用するブロックに、入力端子を追加します。

  3. Constant ブロックの出力を新しい入力端子に接続します。

関連するトピック