Vector FIR - 2022.1 日本語

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

Document ID
UG1483
Release Date
2022-05-26
Version
2022.1 日本語

Vector FIR ブロックは、ベクター型の入力に対して FIR フィルターをサポートします。

説明

[Super Sample Rate (SSR)]: 各サンプル周期における複数のデータ サンプルの処理を制御します。このブロックは、プライマリ ブロックの演算用に 1-D ベクターのサポートをイネーブルにします。
  • [Filter Type] が [Interpolation] の場合、出力ベクター サイズ (出力側の SSR 値) は、入力側の SSR 値に [Interpolation Rate Value] を掛けたものになります。
  • [Filter Type] が [Decimation] の場合、出力ベクター サイズは、入力側の SSR 値を [Interpolation Rate Value] で割ったものになります。

Vector FIR Compiler ブロックは、AXI4-Stream 準拠のインターフェイスを使用して、パラメーターを柔軟に指定してエリアを効率的に使用する高パフォーマンスの FIR フィルターを生成します。

このブロック特有の AXI ポート

このブロックは、AXI CONFIG チャネルをサブフィールド名に基づく個別のポートのグループとして使用できるようにします。サブフィールド ポートの説明は次のとおりです。

コンフィギュレーション チャネル入力信号:

config_tdata_fsel コンフィギュレーション チャネル ベクターの fsel フィールドを表すサブフィールド ポートです。fsel は、アクティブ フィルター セットを選択します。このポートは、係数セットが複数の場合に使用可能です。このフィールドのビットの説明は、『FIR Compiler v7.2 製品ガイド』 (PG149) を参照してください。

ブロック パラメーター

Simulink® モデルでブロックのアイコンをダブルクリックすると、[Block Parameters] ダイアログ ボックスが開きます。

Filter Specification タブ

Filter Specification タブには、次のパラメーターがあります。

Filter Coefficients
Coefficient Vector
係数ベクターを 1 つの MATLAB 行ベクターとして指定します。タップ数は、MATLAB 行ベクターの長さから推論されます。複数の係数セットを指定した場合、各セットはベクター内の前のセットに追加されます。これらの係数は、FDATool ブロックを使用して入力することもできます。
Number of Coefficients Sets
インプリメントするフィルター係数セットの数。係数の数に剰余なく除算できる値を指定する必要があります。
Use Reloadable Coefficients
ブロックに係数再読み込みポートを追加します。RELOAD チャネルに読み込まれたデータ セットは、リコンフィギュレーション同期イベントによってトリガーされるまで使用されません。RELOAD チャネルのインターフェイス タイミングの詳細な説明は、『FIR Compiler v7.2LogiCORE IP 製品ガイド』 (PG149) を参照してください。このブロックでは、xlGetReloadOrder 関数がサポートされています。詳細は、Model Composer ユーティリティ関数 xlGetReloadOrder を参照してください。
Filter Specification
Filter Type
Single_Rate
入力と出力のデータ レートは同じです。
Interpolation
出力のデータ レートは、[Interpolation Rate Value] で指定した値倍だけ入力より高速になります。
Decimation
出力のデータ レートは、[Decimation Rate Value] で指定した値倍だけ入力より低速になります。
Rate Change Type
このフィールドは、[Filter Type] が [Interpolation] および [Decimation] に設定されている場合に適用されます。レート変更のタイプを Integer または Fixed_Fractional に指定します。
Interpolation Rate Value
このフィールドは、[Fractional Rate Change] インプリメンテーションで [Filter Type] が [Interpolation] および [Decimation] に設定されている場合に適用されます。このフィールドで指定した値は、アップサンプリング係数、または固定分数レート (P/Q) 再サンプリング フィルター インプリメンテーションの P を定義します。
Decimation Rate Value
このフィールドは、[Fractional Rate Change] インプリメンテーションで [Filter Type] が [Decimation] および [Interpolation] に設定されている場合に適用されます。このフィールドで指定した値は、ダウンサンプリング係数、または固定分数レート (P/Q) 再サンプリング フィルター インプリメンテーションの Q を定義します。
Zero pack factor
係数ベクターで指定された係数間に挿入する 0 の数を指定します。ゼロ パッキング係数を k とすると、指定した係数値の間に k-1 個の 0 が挿入されます。このパラメーターは、[Filter type] が [Interpolated] に設定されているときのみ有効です。
SSR
SSR の値です。
Implementation タブ

Implementation タブには、次のパラメーターがあります。

Coefficient Options
Coefficient Type
[Signed] または [Unsigned] を指定します。
Quantization
係数の量子化方法を指定します。次のいずれかに設定できます。
  • [Integer_Coefficients]
  • [Quantize_Only]
  • [Maximize_Dynamic_Range]
  • [Normalize_to_Centre_Coefficient]
Coefficient Width
係数を表現するビット数を指定します。
Best Precision Fractional Bits
係数の小数幅を、指定されたフィルター係数の精度が最大になるように自動的に設定します。
Coefficient Fractional Bits
係数データパス オプションの 2 進小数点の位置を指定します。
Coefficients Structure
  • 係数構造を指定します。係数構造に応じて、特定のフィルター構成をインプリメントするために必要なハードウェアの量を削減する最適化がコアで実行されます。次のいずれかの構造を選択できます。
    • [Inferred]
    • [Non-Symmetric]
    • [Symmetric]

指定した係数のベクターは、指定した構造に一致している必要があります。ただし、[Inferred] (係数から推論) を選択した場合は、構造はこれらの係数から自動的に決定されます。

Datapath Options
Output Rounding Mode
  • 次のいずれかを選択します。
    • [Full_Precision]
    • [Truncate_LSBs]
    • [Non_Symmetric_Rounding_Down]
    • [Non_Symmetric_Rounding_Up]
    • [Symmetric_Rounding_to_Zero]
    • [Symmetric_Rounding_to_Infinity]
    • [Convergent_Rounding_to_Even]
    • [Convergent_Rounding_to_Odd]
Output Width
出力ビット幅を指定します。編集ボックスは、[Rounding] を [Full_Precision] 以外に設定すると有効になります。
Detailed Implementation タブ

Detailed Implementation タブには、次のパラメーターがあります。

Filter Architecture
次の 2 つのフィルター アーキテクチャがサポートされています。
  • [Systolic_Multiply_Accumulate]
  • [Transpose_Multiply_Accumulate]
    注記: [Transpose_Multiply_Accumulate] を選択した場合、次の制限が適用されます。
    • 対称は利用されません。Filter Specification タブで指定された Coefficient Vector が対称と検出された場合、FIR Compiler ブロックの [Block Parameters] ダイアログ ボックスでは [Transpose Multiply Accumulate] は選択できません。
    • 複数のインターリーブされたチャネルはサポートされません。
Optimization Options
コアを可能な最大速度で動作させる必要があるか (Speed) またはエリアを最小にする必要があるか (Area) を指定します。Area が推奨されるデフォルトであり、通常デザインに最適な速度とエリアを達成できますが、特定の構成では、全体のリソース使用量を多くしてもパフォーマンスを向上させるために Speed に設定することが必要となる場合があります。この設定では通常、クリティカル パスにパイプライン レジスタが追加されます。
Goal
  • Area
  • Speed
  • Custom
List
ブロックでインプリメントする最適化を指定するカンマ区切りリスト。次の最適化を指定できます。
Data_Path_Fanout
データ メモリ出力にパイプライン レジスタを追加して、ファンアウトを最小限にします。乗算/加算ユニットごとに複数の DSP スライスを必要とするデータ幅の広いフィルターをインプリメントする場合に有益です。
Pre-Adder_Pipeline
ファブリック リソースを使用してインプリメントする際に前置加算器をパイプライン処理します。これは、広い係数幅を指定した場合に発生することがあります。
Coefficient_Fanout
係数メモリ出力にパイプライン レジスタを追加して、ファンアウトを最小限にします。乗算/加算ユニットごとに複数の DSP スライスを必要とする係数幅の広いフィルターをインプリメントする場合に有益です。
Control_Path_Fanout
並列チャネルを指定した場合に、制御ロジックにパイプライン レジスタを追加します。
Control_Column_Fanout
フィルターをインプリメントするのに複数の DSP 列が必要な場合に、パイプライン レジスタを追加します。
Control_Broadcast_Fanout
完全パラレル (入力サンプルごとに各チャネルに 1 クロック サイクル) 対称フィルターのインプリメンテーションの制御ロジックに、パイプライン レジスタを追加します。
Control_LUT_Pipeline
アドバンス チャネル シーケンスの制御ロジックをインプリメントするのに必要なルックアップテーブルをパイプライン処理します。
No_BRAM_Read_First_Mode
ブロック RAM に Read-First モードを使用できないことを指定します。
Increased speed
非対称フィルターのインプリメンテーションに複数の DSP スライス列が必要です。
Other
その他の最適化。
注記: すべての最適化を指定できますが、コアのコンフィギュレーションに関係する場合にのみインプリメントされます。
Memory Options

MAC インプリメンテーションのメモリ タイプは、ユーザーが選択するか、最適なインプリメンテーション オプションに合わせて自動的に選択するかを指定します。[Distributed] を選択すると、フィルター構造で適切な場合に、シフト レジスタがインプリメントされることがあります。RAM を [Block] または [Distributed] に強制すると、不適切な使用によりリソースが非効率的に使用されることがあるので、注意が必要です。ほとんどのアプリケーションでは、デフォルトの [Automatic] モードが推奨されます。

Data Buffer Type
データ サンプルを格納するメモリのタイプを指定します。
Coefficient Buffer Type
係数を格納するメモリのタイプを指定します。
Input Buffer Type
データ入力バッファーをインプリメントするのに使用するメモリのタイプを指定します。
Output Buffer type
データ出力バッファーをインプリメントするのに使用するメモリのタイプを指定します。
Preference for other storage
データパスに汎用ストレージをインプリメントするのに使用するメモリのタイプを指定します。
DSP Slice Column Options
Multi-Column Support
DSP スライスを含むデバイス ファミリでは、大規模な高速フィルターをインプリメントする際に、複数の列の DSP スライス エレメントを連結する必要がある場合があります。該当する場合 (この機能は複数列デバイスでのみ有効)、フィルター構造を複数列にまたがって折りたたむ方法を選択できます。[Automatic] (プロジェクトに選択したデバイスに基づく) または [Custom] (最初の列と後続の列の長さをユーザーが選択) を指定できます。
Inter-Column Pipe Length
列間の接続には、パイプライン段が必要です。必要なパイプライン処理のレベルは、必要なシステム クロック レート、選択したデバイス、およびその他のシステム レベルのパラメーターによります。このパラメーターは、常にユーザーが指定する必要があります。
Interface タブ
Data Channel Options
Output TREADY
data_tready ポートを有効にします。このポートを有効にすると、ブロックでバック プレッシャーがサポートされます。このポートが有効でない場合、バック プレッシャーはサポートされませんが、リソースは節約され、パフォーマンスが向上する可能性が高くなります。
Control Options
ACLKEN
アクティブ High のクロック イネーブル。MAC ベースの FIR インプリメンテーションに使用できます。
ARESETn (active low)
アクティブ Low の同期クリア入力。ACLKEN よりも優先されます。この信号にはパフォーマンスのため内部でレジスタが付けられているので、2 サイクル以上の ARESETn アクティブ パルスが必要です。1 サイクルのパルスでコアの制御およびデータパスがリセットされますが、パルスに対する応答はその直後のサイクルには現れません。

このブロックで使用されるその他のパラメーターについては、[Block Parameters] ダイアログ ボックスの共通オプション を参照してください。

LogiCORE™ 資料

『FIR Compiler LogiCORE IP 製品ガイド』 (PG149)