VHDL ジェネリックおよび Verilog パラメーターの指定 - 2021.2 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2021-10-22
Version
2021.2 日本語

Model Composer でモデルを HDL にコンパイルする際に、モジュールに渡すジェネリックのリストを指定できます。ジェネリックに割り当てられている値は、マスク パラメーターおよび伝搬されたポート情報 (ポート幅、タイプ、レートなど) から抽出できます。ジェネリックは柔軟に割り当てることができるので、ブラック ボックス周辺の Simulink 環境に基づいて詳細にカスタマイズされるモジュールをサポートできます。

addGeneric メソッドを使用して、デザインがハードウェアにコンパイルされるときにモジュールに渡す必要のあるジェネリックを定義できます。次に、VHDL の整数ジェネリック dout_width を 12 に設定する例を示します。

addGeneric('dout_width','Integer','12'); 

伝搬された入力ポートの情報に基づいて出力ポートのジェネリック値を設定することも可能です (ダイナミック出力ポートの幅を指定するジェネリックなど)。

ブラック ボックスのコンフィギュレーション M 関数は、モデルがコンパイルされるときに何度か異なるタイミングで呼び出されるため、データ型 (またはレート) がブラック ボックスに伝搬される前に、コンフィギュレーション関数を呼び出すことが可能です。入力ポートのタイプまたはレートに基づいてジェネリック値を設定する場合、inputTypesKnown または inputRatesKnown 変数の値をチェックする条件文内に addGeneric 呼び出しを含める必要があります。たとえば、次のように dout ポートの幅を din の値に基づいて設定できます。

if (this_block.inputTypesKnown) 
  % set generics that depend on input port types 
  this_block.addGeneric('dout_width', ... 
  this_block.port('din').width); 
end 

ジェネリック値は、ブラック ボックスに関連付けられているマスク パラメーターに基づいて設定できます。SysgenBlockDescriptor には、Simulink でのブラック ボックス名を文字列で表した blockName というメンバー変数があります。この変数を使用して、特定のコンフィギュレーション M 関数に関連付けられているブラック ボックスにアクセスできます。たとえば、ブラック ボックスで init_value というパラメーターを定義するとします。init_value というジェネリックは、次のように設定できます。

simulink_block = this_block.blockName; 
init_value = get_param(simulink_block,'init_value'); 
this_block.addGeneric('init_value', 'String', init_value); 
注記: 次を実行すると、ユーザー指定のパラメーター (ジェネリック値を指定する値など) をブラック ボックスに追加できます。
  • ブラック ボックスを Simulink ライブラリまたはモデルにコピーします。
  • ブラック ボックスのリンクを解除します。
  • 必要なパラメーターをブラック ボックスのダイアログ ボックスに追加します。