AR# 32344

LogiCORE FIR Compiler v4.0 - System Generator for DSP で FIR Compiler v4.0 を使用する際に再読み込み順情報にアクセスする方法

説明

キーワード : FIR, v4.0, crash, coregen, クラッシュ, CORE Generator

System Generator for DSP で FIR Compiler v4.0 を使用する際に再読み込み順情報にアクセスする方法を教えてください。

ソリューション

FIR フィルタの読み込み順は、FIR Compiler のコンフィギュレーションによって決定されます。この順序を判断するため、xlGetReloadOrder というユーティリティ関数が提供されています。

xlGetReloadOrder
xlGetReloadOrder は MATLAB ユーティリティ関数で、再読み込みされた係数の時間順と FIR フィルタでのタップ位置のマップを返します。xlGetReloadOrder 関数では、次の引数を使用できます。
- n_taps : FIR Compiler のフィルタ タップ数
- coef_struct : 係数ストラクチャを指定します。次の文字列値を指定できます。
--- 'Symmetric'
--- 'Negative-Symmetric'
--- 'Halfband'
--- 'Non-Symmetric'
- filter_type : 使用するフィルタのタイプを指定します。次の値を指定できます。
--- 'SingleRate'
--- 'Decimation'
--- 'Interpolation'
- rate_change : 補間またはデシメーション レートの変化 (1 ~ 16)
- overclock : オーバークロッキング係数 (1 ? n_taps)
- multiple_column_support : 複数列サポートをディスエーブルにするかカスタムに指定します。
--- 'Disabled'
--- 'Custom'
- first_column_length : 複数列がサポートされている場合に最初の列の長さを指定する整数。
- column_wrap_length : 複数列がサポートされている場合に列ラップ長を指定する整数


たとえば、2 でオーバークロックされる 2 フィルタの 16 タップ対称係数デシメーションとしてコンフィギュレーションされる FIR Compiler ブロックの係数再読み込み順は、次のよう取得できます。
>> xlGetReloadOrder( 16, 'Symmetric', 'Decimation', 2, 2, 'Disabled', 4, 32)
ans =
5
7
4
6
1
3
0
2

ユーティリティにより、再読み込み順を示すベクタが返されます。このベクタの最初の要素は 5 です。これは、FIR Compiler に渡された最初の係数が FIR フィルタの 5 番目のタップ (およびフィルタの係数構造は対称なので 10 番目のタップ) を形成することを示しています。同様に、2 番目の要素の値は 7 で、FIR Compiler に渡される 2 番目の係数が FIR フィルタの 7 番目と 8 番目のタップを形成します。

対称補間

対称補間の再読み込みでは、ほかの方法と異なり、係数が組み合わされて読み込まれます。このコンフィギュレーションでは、xlGetReloadOrder はこの組み合わせを示す文字列を返します。
>> xlGetReloadOrder(16, 'Symmetric', 'Interpolation', 2, 2, 'Disabled', 4, 32)
ans = {4 - 5} {6 - 7} {4 + 5} {6 + 7} {0 - 1} {2 - 3} {0 + 1} {2 + 3}

上記の文字列では、coef_din ポートに供給される最初のサンプルは係数 4 と係数 5 の差と解釈され、2 番目のサンプルは係数 6 と係数 7 の差と解釈されます。


LogiCORE FIR Compiler のリリース ノートと既知の問題は、(Xilinx Answer 29138) を参照してください。

AR# 32344
日付 03/31/2009
ステータス アクティブ
種類 一般