Vector FIR ブロックは、ベクター型の入力に対して FIR フィルターをサポートします。
説明
- [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)