ダイナミック出力ポート - 2020.2 日本語

Vivado Design Suite ユーザー ガイド: System Generator を使用したモデル ベースの DSP デザイン (UG897)

Document ID
UG897
Release Date
2020-11-18
Version
2020.2 日本語

ブラック ボックスには、ダイナミック出力ポートのタイプとレートをサポートする便利な機能があります。たとえば、入力ポートの幅に基づいて出力ポート幅を設定しなければならないことがよくあります。SysgenPortDescriptor には、ポートの設定を決めることができるメンバー変数があります。ブロックの入力ポートでこれらのメンバー変数を確認して、出力ポートのタイプおよびレートを設定できます。

たとえば、次のようにポート (この場合は din) の幅およびレートを取得できます。

input_width = this_block.port('din').width; 
input_rate  = this_block.port('din').rate; 
注記: ブラック ボックスのコンフィギュレーション M 関数は、モデルをコンパイルするときに数回呼び出されます。このコンフィギュレーション関数は、データ型およびレートがブラック ボックスに渡される前に、呼び出すことができます。

SysgenBlockDescriptor オブジェクトには、inputTypesKnowninputRatesKnown というブール メンバー変数があり、ポート タイプおよびレートがブロックに渡されているかどうかを伝えます。入力ポート コンフィギュレーションに基づいてダイナミック出力ポート タイプまたはレートを設定している場合、inputTypesKnown および inputRatesKnown の値をチェックする条件文の中にコンフィギュレーション コールを入れ子にする必要があります。

次に、ダイナミック出力ポート dout の幅を、入力ポート din と同じ幅に設定するコード例を示します。

if (this_block.inputTypesKnown) 
  dout.setWidth(this_block.port('din').width); 
end 

ダイナミック レートの設定も同じようになります。次のコードは、出力ポート dout のサンプル レートを入力ポート din のサンプル レートより 2 倍低速に設定します。

if (this_block.inputRatesKnown) 
  dout.setRate(this_block.port('din').rate*2); 
end