FIR Compiler 7.2 - 2022.1 日本語

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

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

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

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

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

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

config_tdata_fsel コンフィギュレーション チャネル ベクターの fsel フィールドを表すサブフィールド ポートです。fsel は、アクティブ フィルター セットを選択します。このポートは、係数セットが複数の場合に使用可能です。このフィールドのビットの説明は、『FIR Compiler v7.2LogiCORE IP 製品ガイド』 (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] で指定した値倍だけ入力より低速になります。
Hilbert
フィルターでヒルベルト変換を使用します。
Interpolated
補間 FIR フィルターは、従来の FIR フィルターと同様のアーキテクチャですが、ユニット遅延演算子が k-1 単位の遅延に置き換えられています。k はゼロ パッキング係数と呼ばれます。補間 FIR を補間フィルターと混同しないようにしてください。補間フィルターは、狭帯域フィルターを効率的に実現するために採用されたシングル レート システムで、多少の改良を加えることで広帯域フィルターにも対応できます。入力と出力のデータ レートは同じです。
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] が [Interpolation] に設定されている場合にのみ有効になります。
Channel Specification タブ
Channel Specification タブには、次のパラメーターがあります。
Interleaved Channel Specification
Channel Sequence
Basic または Advanced を選択します。アドバンス チャネル仕様機能の詳細は、 『FIR Compiler LogiCORE IP 製品ガイド』 (PG149) を参照してください。
Number of Channels
FIR Compiler ブロックで処理されるデータ チャネル数。複数チャンネルのデータは、時分割多重化されてコアに渡されます。最大 64 チャネルがサポートされます。
Sequence ID List
インプリメントするチャネル シーケンスを指定するカンマ区切りリスト。
Parallel Channel Specification
Number of Paths
フィルターで処理する並列データパスの数を指定します。次の図に示すように、複数のパスを指定すると、data_tdata 入力ポートが各並列パスを表すサブポートに分割されます。
図 1. 複数のパスを指定

Hardware Oversampling Specification
Select format
Maximum_Possible
オーバーサンプリングが din サンプル レートに基づいて自動的に決定されるよう指定します。
Input_Sample_Period/Output_Sample_Period
[Sample Period] が有効になります。サンプル周期仕様を入力します。このオプションを選択すると、s_axis_data_tvalid ポート (以前のバージョンのコアでは ND ポート) が使用可能になります。このポートが使用可能になると、入力ハンドシェイクの抽象化もレート伝搬も実行されません。
Hardware Oversampling Rate
[Hardware Oversampling Rate] が有効になります。ハードウェア オーバーサンプリング レートを入力します。
Hardware Oversampling Rate
ハードウェア オーバーサンプリング レートは、並列処理の程度を決定します。レートが 1 の場合、完全なパラレル フィルターが生成されます。n ビットの入力信号に対してレートを n (または n+1) に設定すると、非対称 (または対称) インパルス応答の完全シリアル インプリメンテーションが生成されます。中間の値では、中程度の並列処理が実行されたインプリメンテーションが生成されます。
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
  • Negative_Symmetric
  • Half_Band
  • Hilbert

指定した係数のベクターは、指定した構造に一致している必要があります。ただし、[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
出力幅を指定します。編集ボックスは、[Output Rounding Mode] を 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] (最初の列と後続の列の長さをユーザーが選択) を指定できます。
Column Configuration
各列の長さをカンマ区切りリストで指定します。詳細は、データシートを参照してください。
Inter-Column Pipe Length
列間の接続には、パイプライン段が必要です。必要なパイプライン処理のレベルは、必要なシステム クロック レート、選択したデバイス、およびその他のシステム レベルのパラメーターによります。このパラメーターは、常にユーザーが指定する必要があります。
Interface タブ
Data Channel Options
TLAST
TLAST は、Not_Required (ブロックにポートなし)、Vector_Framing (TLAST がデータ チャネルのインターリーブされたサイクルの最後のサンプル)、または Packet_Framing (ブロックで TLAST は解釈されず、信号はデータパスと同じレイテンシで出力データ チャネルに渡される) のいずれかに設定できます。
Output TREADY
data_tready ポートを有効にします。このポートを有効にすると、ブロックでバック プレッシャーがサポートされます。このポートが有効でない場合、バック プレッシャーはサポートされませんが、リソースは節約され、パフォーマンスが向上する可能性が高くなります。
Input FIFO
S_AXIS_DATA チャネルの FIFO インターフェイスを選択します。FIFO を選択すると、データは FIFO のサイズ (デフォルトでは 16) までの連続バースト、またはそれ以上の場合はインターリーブされたデータ チャンネルの数で転送できます。FIFO には、追加の FPGA ロジック リソースが必要となります。
TUSER
入力および出力に、次のいずれかのオプションを選択します。
Not_Required
どちらにも必要なく、当該するチャンネルには TUSER フィールドは含まれません。
User_Field
このモードでは、ブロックは TUSER フィールドの内容を無視し、内容を入力チャネルから出力チャネルにそのまま渡します。
Chan_ID_Field
このモードでは、TUSER フィールドにより転送用の時分割多重化チャンネルが特定されます。
User and Chan_ID_Field
このモードでは、TUSER フィールドにユーザー フィールドと chan_id フィールドの両方が含まれます (chan_id フィールドは最下位ビット)。チャンネルの記述に必要な最小限のビット数により、chan_id フィールドの幅が決定されます (例: 7 チャンネルには 3 ビット必要)。
Configuration Channel Options
Synchronization Mode
On_Vector
コンフィギュレーション パケットがある場合、インターリーブされたデータ チャネル シーケンスの最初のサンプルがブロックで処理されるときに消費され、その内容が適用されます。ブロックが 1 つのデータ チャネルを処理するように設定されている場合、コンフィギュレーション パケットはブロックの処理サイクルごとに消費されます。
On_Packet
コンフィギュレーション パケットの消費をさらに限定します。パケットは、s_axis_data_tlast がアサートされた s_axis_data チャネルでブロックがトランザクションを受信した後にのみ消費されます。
Configuration Method
Single
インターリーブされたすべてのデータ チャネルの処理に、1 つの係数セットを使用します。
By_Channel
インターリーブされた各データ チャネル用に固有の係数セットを指定します。
Reload Channel Options
Reload Slots
事前に読み込むことができる係数セットの数を指定します。再読み込みされた係数は、コンフィギュレーション パケットが消費された後にのみブロックに適用されます (範囲 1 ~ 256)。
Control Options
ACLKEN
アクティブ High のクロック イネーブル。MAC ベースの FIR インプリメンテーションに使用できます。
ARESETn (active low)
アクティブ Low の同期クリア入力。ACLKEN よりも優先されます。この信号にはパフォーマンスのため内部でレジスタが付けられているので、2 サイクル以上の ARESETn アクティブ パルスが必要です。1 サイクルのパルスでコアの制御およびデータパスがリセットされますが、パルスに対する応答はその直後のサイクルには現れません。
Advanced タブ
Block Icon Display
Display shortened port names

デフォルトでオンになっています。オフにすると、たとえば data_tvalidm_axis_data_tvalid になります。

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

LogiCORE 資料

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