係数リロード・ポートはAvalon- STに準拠していないで、イネーブルとリセット信号
およびAvalon-STコントローラとは独立に動作します。フィルタがリセット条件で、
またはイネーブルではない場合でも、新しい係数をロードすることができます。
シリアル、マルチビット・シリアル、およびパラレルFIRフィルタでは、汎用ロ ジックを用いた演算アルゴリズムを使用して、メモリ・ブロックに保存された係数 を事前に計算します。係数を更新する場合、事前にリオーダされた係数がアルゴリ ズムに送られます。各メモリ・ブロックにリロードされる最初のデータは常に0で す。coef_we 信号の立ち上がりエッジで、リロードのために内部データのアドレス・
カウンタをリセットします。
係数を事前に計算する方法について詳しくは、4–4ページの「係数リロードおよびリ オーダリング」を参照してください。
シリアルおよびマルチビット・シリアル・フィルタでは、coef_we は、最初の coef_in データの2クロック・サイクル前に有効になり、最後のcoef_in データが送 信されるまで継続します。パラレル・フィルタでは、coef_we は、最初のcoef_in データの1クロック・サイクル前に有効にする必要があります。別の係数セットを リロードするには、coef_weは最低1クロック・サイクルでLowにする必要があり
ます。 リロード・クロックはFIR計算で使用されるものと同じクロックである必要は
ありません。
図 4–24に、 シリアルおよびマルチビット・シリアルの係数リロードのタイミング図
を示します。
図 4‒24. シリアルおよびマルチビット・シリアルの係数リロードのタイミング図
clk reset_n ast_sink_ready ast_sink_data coef_in_clk coef_we coef_in coef_set coef_set_in ast_source_valid ast_source_data
0 1 -1-1 0
0 0 7 5 12 0
0 0
coef_we should be two clock cycles ahead of coef_in (First data is always 0)
Clock to reload coefficients Precalculated coefficient values
図 4–25 に、パラレル係数リロードのタイミング図を示します。
1 シリアル、マルチビット・シリアル、およびパラレルFIRアーキテクチャでは、汎用 ロジックを使用した演算アルゴリズムを使用します。アルゴリズムでは、ルック アップ表は係数の部分積を格納して、部分積の最初のデータは常に0です。シリア ル、マルチビット・シリアル、およびパラレル・アーキテクチャで事前に計算され た係数をリロードする場合、最初にリロード係数は常に0です。
係数を前に計算する方法について詳しくは、 4–4ページの「係数リロードおよびリ オーダリング」を参照してください。
マルチサイクル構造での係数リロードは、(リロード機能を備えた)固定FIRよりも 高速です。係数は、係数ストレージのすべてのタイプの固定FIRフィルタと同じア ルゴリズムを使用して、シーケンスを調整する必要があります。リロード・クロッ クはFIRフィルタの計算クロックと同じで、coef_weはcoef_ld 信号によってトリ ガされるべきであります。
1 係数はロジック・セルに格納されている場合、リロード係数のセットは、リセット 操作後、元のセットに戻ります。
図 4–26 に、係数がロジック・セルに保存されるときのマルチサイクル係数リロード
のタイミング図を示します。
図 4‒25. パラレル係数リロードのタイミング図
clk reset_n ast_sink_data coef_in_clk coef_we coef_in coef_set coef_set_in
0
0 0 7 5 12 0 7
coef_we should be one clock cycle ahead of coef_in (First data is always 0)
図 4‒26. マルチサイクル(ロジック・セル用)係数リロードのタイミング図
clk reset_n coef_ld coef_we coef_in ast_sink_ready ast_sink_data ast_source_valid ast_source_data
0 -114 -12 -10 0 -16 -127 -16
0
0
Coef_we is valid one clock cycle after effective coef_ld
Input coefficients coef_in are sequence adjusted
マルチサイクルFIRフィルタでは、係数をメモリ・ブロックに保存する場合、
coef_we は、最初のcoef_inデータの2クロック・サイクル前に有効になり、最後の
coef_inデータが送信されるまで持続する必要があります。係数は、異なるクロック
によって c0からcn に送信することができます。
図 4–27に、係数はメモリ・ブロックに保存する マルチサイクル係数リロードのタイ ミング図を示します。
複数セットの係数を選択すると、1つの係数セットが演算に使用されている間に、別 の係数セットを更新することができます。coef_set_in およびcoef_we 信号はクロッ ク入力ではないで動機的にパイプラインされます。係数セットを更新するときに、
coef_weがアサートされる前におよびデアサートされる後に複数のサイクルのための
coef_set_in 信号は設定し、保持する必要があります。
計算するための係数セットの選択は、Avalon-STフロー・コントローラの理由で入力 データに同期していません。 coef_set 信号は一度に特定の値に設定すると、すぐに フィルタの動作を影響を与えます。これは、Avalon-STコントローラで受信した入力 データの一部が新しい係数セットを使用して計算されることを意味します。
(図 4–28)。
1 DSP Builderユーザーの場合、ラッパーでclkに coef_in_clkを結びつけるボタンが使
図 4‒27. マルチサイクル(メモリ・ブロックを使用する)係数リロードのタイミング図
clk
ast_sink_ready ast_sink_data coef_in_clk coef_we coef_in ast_source_valid ast_source_data
0
5 -114 -12 -10 0 -16 -127 -16-16 8
0
coef_we is effective two clock cycles before first coef_in data
Coefficients from c0 to cN
図 4‒28. 複数の係数セット選択のタイミング図
clk
ast_sink_ready ast_sink_data coef_in_clk coef_we coef_in coef_set coef_set_in ast_source_valid ast_source_data
0 113 -69 26 73 -56-56
0
0 -791 82
This data is calculated with coef_set1 Due to Avalon-ST buffering, this and some of the previous
data values can also be calculated with coef_set1.
複数の係数セットをロードするとき、ロードされている係数セットを特定するため に、 図 4–29に示すようにcoef_set_inのためのクロック・サイクルの持続時間は
coef_weの有効期間よりも長く1クロック・サイクルでなければなりません。
これらのタイミング要件は、複数の係数セットをロードするすべてのデザインに影 響を与えます。複数の係数セットをロードするときに指定したタイミング要件が満 たされていない場合、係数の特定セットが識別されません。