(57)【要約】ＦＩＲデシメーション・フィルタは、ＲビットのＭ／Ｒ個の列（５２，５４，５６，５８）に配置されたＭ個のフリップフロップを有するシフト・レジスタ（５１）を含む。各列は左タップ及び右タップを有する。列は、上側半分と下側半分のセクションにグループ分けされる。シフト・レジスタは、下側のセクションの最上部の列の双方向シフト・レジスタを含む。制御回路（７０）は、Ｒビットの新しいグループを各列にロードするため、各シフト・オペレーションをＲビット毎に制御する。Ｍ／（２Ｒ）個の事前加算器（５７，５９）は、それぞれ、上側のセクションと下側のセクションの対称的に反対側の列の右タップ・ポイントに接続される第１及び第２の入力をそれぞれ有する。演算回路（６０，６２）は、事前加算器からの出力に係数を効率的に乗算する。アキュムレータ回路（７４）は、演算回路の出力を累算し、シリアル・ディジタル入力情報の、フィルタリングされ、デシメートされた表現を出力する。
2004516707.tif 000002
【特許請求の範囲】
【請求項１】
ＦＩＲデシメーション・フィルタであって、
それぞれＲビットのＭ／Ｒ個の列に配置されたＭ個のフリップフロップを含むシフト・レジスタであって、ここで、Ｍ／Ｒは整数であり、ＲはＦＩＲデシメーション・フィルタのデシメーション・レシオであり、シフト・レジスタは、シリアル・ディジタル入力情報を受取るための入力を有し、列の半分は上側のセクションに順に配置され、列の第２の半分は下側のセクションに順に配置されており、それぞれの列が左タップと右タップを有するシフト・レジスタと、
下側のセクションの最上部に配置された列の１つを含むシフト・レジスタに含まれる双方向シフト・レジスタと、
Ｒビットの新しいグループを各列にロードするため、入力データ及びシフト・レジスタに現れるデータを、各シフト・オペレーションに対してＲビット毎にシフトするようにシフト・オペレーションを制御する制御回路と、
それぞれ、上側のセクションと下側のセクションの対称的に反対側の列の右タップ・ポイントに接続される第１及び第２の入力をそれぞれ有するＭ／（２Ｒ）個の事前加算器と、
事前加算器から出力情報を受取り、係数情報を受取り、出力情報に係数情報を効率的に乗算するために、事前加算器の出力に接続される演算回路と、
演算回路の出力からの情報を累算し、累算された情報を、シリアル・ディジタル入力情報の、フィルタリングされ、デシメートされた表現として出力するように接続されるアキュムレータ回路
とを含むＦＩＲデシメーション・フィルタ。
【請求項２】
請求項１に記載のＦＩＲデシメーション・フィルタであって、フリップフロップがＤ型フリップフロップであるＦＩＲデシメーション・フィルタ。
【請求項３】
請求項１に記載のＦＩＲデシメーション・フィルタであって、シリアル・ディジタル情報が１ビット幅であり、演算回路が、１つの事前加算器の出力に従って、アキュムレータ回路の内容に係数情報を加算するため、又はアキュムレータ回路の内容から係数情報を減算するため、或るいはいずれも実行しないために第１の加算／減算／ヌル回路を含むＦＩＲデシメーション・フィルタ。
【請求項４】
請求項３に記載のＦＩＲデシメーション・フィルタであって、第１の加算／減算／ヌル回路が、第１の事前加算器の出力に接続される入力を有し、演算回路が、第２の事前加算器の出力に接続される入力と、アキュムレータ回路の第２の入力に接続される出力とを有する第２の加算／減算／ヌル回路を含むＦＩＲデシメーション・フィルタ。
【請求項５】
請求項１に記載のＦＩＲデシメーション・フィルタであって、演算回路が、事前加算器の少なくとも１つから出力情報を受取るように接続された少なくとも１つの乗算器回路と、アキュムレータに接続される出力とを含むＦＩＲデシメーション・フィルタ。
【請求項６】
請求項１に記載のＦＩＲデシメーション・フィルタであって、制御回路から係数情報アドレスを受取るように接続された読出し専用メモリであって、アドレス可能な係数情報をストアし、演算回路に接続された出力を有する読出し専用メモリを含むＦＩＲデシメーション・フィルタ。
【請求項７】
請求項４に記載のＦＩＲデシメーション・フィルタであって、アキュムレータ回路は、第１のアキュムレータと第２のアキュムレータとを含み、第１のアキュムレータは、第１の加算／減算／ヌル回路の出力に接続される入力を有し、第２のアキュムレータは、第２の加算／減算／ヌル回路の出力に接続される入力を有し、累算された情報が、シリアル・ディジタル入力情報のフィルタリングされ、デシメートされた表現を出力するように、第１及び第２の加算／減算／ヌル回路の出力が、加算器回路のそれぞれ第１及び第２の入力に接続されるＦＩＲデシメーション・フィルタ。
【請求項８】
請求項１に記載のＦＩＲデシメーション・フィルタであって、複数の事前加算器の出力に接続される第１及び第２の入力と、演算回路の入力に接続される出力とを有するマルチプレクサ回路を含み、マルチプレクサ回路は、周波数が増加されたチャンネル選択信号を制御回路から受信するため、制御回路の出力に接続されたチャンネル選択入力を含み、アキュムレータ回路が、周波数が増加された制御信号を制御回路から受信するように接続される制御入力を有するＦＩＲデシメーション・フィルタ。
【請求項９】
請求項１に記載のＦＩＲデシメーション・フィルタであって、双方向シフト・レジスタは、Ｒ個のフリップフロップと、制御回路に接続される方向制御入力を含み、出力と、制御回路から受信した方向制御信号に応答して出力に接続される選択可能な入力とを更に含むマルチプレクサ回路とを含み、マルチプレクサ回路の出力は、それぞれ、フリップフロップの入力に接続されており、マルチプレクサ回路の種々の入力は、Ｒ個のフリップフロップを介して上側のセクションの底部に配置される列の１つによって出力されたデータを、制御回路によって決定された方向にシフトするように、種々のＲ個のフリップフロップの出力に接続されているＦＩＲデシメーション・フィルタ。
【請求項１０】
ＦＩＲデシメーション・フィルタであって、
それぞれＲビットの列として概念付けることが可能なＭ／Ｒ個の列セクションに配置されたＭ個のフリップフロップを含むシフト・レジスタであって、ここで、Ｍ／Ｒは整数であり、ＲはＦＩＲデシメーション・フィルタのデシメーション・レシオであり、シフト・レジスタは、シリアル・ディジタル入力情報を受取るための入力を有し、列セクションの半分は上側のセクションとして概念付けることが可能な第１のメジャー・セクションに順に配置されており、列セクションの第２の半分は下側のセクションとして概念付けることが可能な第２のメジャー・セクションに順に配置されており、それぞれの列セクションが、左タップとして概念付けることが可能な第１の端部タップと、右タップとして概念付けることが可能な第２の端部タップとを有するシフト・レジスタと、
第２のメジャー・セクションの最上部として概念付けることが可能な位置で第２のメジャー・セクションに配置されたＭ／Ｒ個の列の１つの双方向シフト・レジスタと、
Ｒビットの新しいグループを各列セクションにロードするため、入力データ及びシフト・レジスタに現れるデータを、各シフト・オペレーションに対してＲビット毎にシフトするようにシフト・オペレーションを制御する制御回路と、
それぞれ、第１のメジャー・セクションと第２のメジャー・セクションの対称的に反対側の列セクションの右タップ・ポイントに接続される第１及び第２の入力をそれぞれ有するＭ／（２Ｒ）個の事前加算器と、
事前加算器から出力情報を受信し、係数情報を受信し、出力情報に係数情報を効率的に乗算するために、事前加算器の出力に接続される演算回路と、
演算回路の出力からの情報を累算し、累算された情報を、シリアル・ディジタル入力情報の、フィルタリングされ、デシメートされた表現として出力するように接続されるアキュムレータ回路
とを含むＦＩＲデシメーション・フィルタ。
【請求項１１】
ＦＩＲデシメーション・フィルタのオペレーション方法であって、
それぞれＲビットのＭ／Ｒ個の列に配置されたＭ個のフリップフロップを含むシフト・レジスタを提供し、ここで、Ｍ／Ｒは整数であり、ＲはＦＩＲデシメーション・フィルタのデシメーション・レシオであり、シフト・レジスタは、シリアル・ディジタル入力情報を受取るための入力を有し、列の半分は上側のセクションに順に配置されており、列の第２の半分は下側のセクションに順に配置されており、それぞれの列が左タップと右タップを有しており、
各シフト・オペレーションの結果として、それぞれ、各列にＲ個の新しいビットのグループが現れるように、入力情報のＲビットが、上側のセクションの最上部の第１の列にシフトされるシフト・オペレーションを実行し、
４つのシフト・オペレーション毎に上側のセクションの底部の列から底部のセクションの最上部の列を介する全てのＲビットのシフトの方向を反転させ、
それぞれ、上側のセクションと下側セクションの対称的に反対側の列の右タップ・ポイントに接続される第１及び第２の入力をそれぞれ有するＭ／（２Ｒ）個の事前加算器を用いて、列の右タップからの情報を事前加算し、
出力情報に所定のＦＩＲ係数情報を効率的に乗算するために、事前加算器からの出力情報を受取るため、事前加算器の出力に接続された演算回路を動作させ、
演算回路の出力からの情報を累算し、累算された情報を、所定のデシメートされた速度で出力する
ことを含む方法。
【発明の詳細な説明】
【０００１】
（発明の背景）
本発明は、デシメーション・フィルタとして用いるＦＩＲフィルタの使用に関し、更に特定していえば、必要とされる集積回路チップ領域の量を減らすことが可能であり、特に高性能用途において、電力消費も低減させるＦＩＲデシメーション・フィルタに関連する。
【０００２】
先行技術の図１は、従来の有限インパルス応答フィルタ２を示す。（有限インパルス応答フィルタは、以下、ＦＩＲフィルタと呼ぶ。）ＦＩＲフィルタ２は、入力信号ＩＮが遅延要素４の入力に供給され、その出力が遅延要素６の入力に接続されるように順に接続された、適切な数の遅延要素４，６，８‥‥１４を含む。遅延要素６の出力は、次の遅延要素８の入力に接続され、以下同様に接続される。遅延要素のそれぞれは、所望のフィルタリング・オペレーションを達成するように他の遅延要素に「対応」する。例えば、第１の遅延要素４は最後の遅延要素１４に対応し、第２の遅延要素６は最後から２番目の遅延要素１２に対応し、以下同様に対応する。通常用いられている種類のＦＩＲフィルタは、リニア・フェーズ・フィルタである。リニア・フェーズ・フィルタの係数は対称的な特性を有し、その対称的な特性のため、必要とされる乗算の数を減らすために、参照される対応データビットを前もってうまく対にすることができる。
【０００３】
具体的に言えば、対応する遅延要素の出力が共に加算され、その結果の和が係数で乗算される。例えば、対応する遅延要素４及び１４の出力が加算器１６で共に加算され、その結果が第１の乗算器１７によって第１の係数ａ１で乗算される。同様に、対応する遅延要素６及び１２の出力が加算器１８によって加算され、その結果の和が乗算器１９によって係数ａ２で乗算され、以下同様である。加算オペレーション及び係数乗算オペレーションの結果は、その後、加算器２２によって全て加算され、出力信号ＯＵＴを生成する。遅延要素は、典型的にＤ型フリップフロップを用いて実施され、上述のように接続されるとき、フリップフロップ出力がタップ・ポイントを構成するシフト・レジスタを構成する。入力データがシフト・レジスタにクロックされるスピードと同じ速度（ｒａｔｅ）で、加算器及び乗算器が動作する場合、加算器１６などの少なくとも１つの加算器、及び乗算器ａ１などの少なくとも１つの乗算器が、それぞれ対応するフリップフロップ対に対して必要とされる。
【０００４】
しかし、デシメーション・フィルタの出力速度がその入力速度よりずっと遅いということは、通常、あるハードウェア、特に加算器及び乗算器、が簡易化された設計において共有されることを可能にする。入力データがシフト・レジスタにクロックされる速度の倍数の速度で、乗算器及び関連するアキュムレータが動作することが可能となる場合、シフト・レジスタの複数のフリップフロップ対は、同じ乗算器及びアキュムレータ回路を共有することができる。
【０００５】
それにも関わらず、先行技術の図１の各Ｄ型フリップフロップは、必要とされる事前加算（ｐｒｅ−ａｄｄｉｎｇ）を行なうため、対応する制御回路に個別にアクセスされる必要があり、更に、その内容を次に続くＤ型フリップフロップに転送する必要がある。図１に示したＦＩＲフィルタの過剰な配線、複雑な配路（ｒｏｕｔｉｎｇ）、及び対応する制御ロジック回路は、集積回路チップの表面領域を過剰に使用することになる。
【０００６】
先行技術の図２は、幾つかのアナログ−ディジタル・コンバータに用いられ得る「デュアル・ループ・シフト・レジスタ」として実施され得る、別の１６タップＦＩＲフィルタ３０を示す。図２の部分（ａ）に示すように、デュアル・ループ・シフト・レジスタ３０は、データビットＺ１，２，‥‥８がストアされる第１のシフト・レジスタ・チェーン３８と、データビットＺ９，１０，‥‥１６がストアされる第２のシフト・レジスタ・チェーン３６を含む。フリップフロップＺ８の出力は、シフト・レジスタ・チェーン３８の端部３４に出力として提供され、フリップフロップＺ１６の入力にも接続される。ビットＺ９は、シフト・レジスタ・チェーン３６の端部３４に出力として提供される。
【０００７】
図２の部分（ａ）から（ｄ）に示した構成は、１６ビット・オーバーサンプリング・アナログ−ディジタル・コンバータ（ＡＤＣ）用である。ＦＩＲフィルタ３０をデュアル・ループ・シフト・レジスタとして用いると、指数ｉが０，１，２‥‥に等しいデータ信号Ｚｉは、シフト・レジスタ・チェーン３６及び３８の端部３２及び３４でのみアクセスされる。指数文字ｉの一層大きな値が、入ってくる入力データ信号のビットＺｉの最新の値に対応する。ＦＩＲフィルタ３０を通るデータの流れが、図２に示したシーケンスで説明されており、ＦＩＲフィルタ３０の初期状態が図２の部分（ａ）に示されている。１つのデータ・シフト又はクロック・サイクルの後、データビットは、図２の部分（ｂ）に示すように配置される。次の７つのデータ・シフト・オペレーションの後、１６ビット・シフト・レジスタは、図２の部分（ｃ）に示すように機能的に構成される。もう１つのクロック・サイクルの後、シフト・レジスタ・チェーン３８の出力は、新しいサイクルを開始するため、図２の部分（ｄ）に示すように、再び、シフト・レジスタ・チェーン３６の入力に接続される。このオペレーションは、対応するデータビットが、先行技術の図１のＦＩＲフィルタのものに類似の方法で加算され得るように、シフトされたデータをアラインする。
【０００８】
図２のシフト・レジスタ構成は、図１の先行技術のＦＩＲフィルタのように、各シフト・レジスタ・チェーンのそれぞれのフリップフロップの出力を種々の加算器に配路する必要がないため、必要とされる集積回路チップ表面領域が一層少ないかもしれないが、図２のＦＩＲフィルタは、データ入力速度よりも著しく速いスピードで、２つのシフト・レジスタ・チェーンをクロックすることによって、数学関数を計算する必要がある。この１６タップ・フィルタでは、シフト・レジスタ・チェーンは、入力データ速度よりも少なくとも約８倍速く動作しなければならない。この高速クロックは、電力消費を実質的に増大させる。更に、この数学関数を計算するために必要とされるクロック・スピードが、余りに速すぎて、現在用いることのできる技術では実用的ではない場合もある。
【０００９】
米国特許番号５，１７０，３６８は、入力データを取り込むためにシフト・レジスタが用いられるディジタル・デシメーション・フィルタを開示している。適切な制御回路と関連して、データ処理を行なうため種々のシフト・レジスタ・フリップフロップの内容への選択的アクセスを提供するため、シフト・レジスタとアキュムレータ出力との間に一連のスイッチが配置される。米国特許番号５，８３８，７２５は、入力データを取り込むためにシフト・レジスタが用いられる浮動小数点ディジタル・トランスバーサル・フィルタを開示している。フィルタ出力結果は、ＲＯＭルックアップ・テーブルを介して生成される。米国特許番号４，８１７，０２５は、入力データを取り込むためにシフト・レジスタが用いられるディジタル・フィルタを開示している。全てのレジスタ出力が、全てのクロック・サイクルを計算するために用いられる。ディジタル・フィルタは、補間フィルタに用いられる。米国特許番号５，１９３，０７０は、シリアル乗算のための双方向シフト・レジスタを含む回路を有するトランスバーサル・フィルタを開示している。これは、シリアル乗算のために係数を上へ又は下へシフトさせるために用いられる。米国特許番号５，２９７，０６９は、シフト・レジスタが再循環型アドレス可能メモリに置き換えられた有限インパルス応答フィルタ（ＦＩＲフィルタ）を開示している。このシフト構造は、これを再循環型の構造にするフィードバックを有している。
【００１０】
（発明の要約）
従って、本発明の目的は、上述の先行技術よりも、消費する電力が少なく、必要とされる集積回路チップ領域が小さいＦＩＲデシメーション・フィルタを提供することである。
【００１１】
本発明の別の目的は、ＦＩＲデシメーション・フィルタの包括的な設計方法を提供することである。
【００１２】
本発明の１つの実施例に関連して簡単に説明すると、本発明は、それぞれＲビットのＭ／Ｒ個の列（５２，５４，５６，５８）に配置されたＭ個のフリップフロップを含むシフト・レジスタ（５１）を含むＦＩＲデシメーション・フィルタを提供することであり、ここで、Ｍ／Ｒは整数であり、ＲはＦＩＲデシメーション・フィルタのデシメーション・レシオである。シフト・レジスタは、シリアル・ディジタル入力情報を受取るための入力を有する。列の半分は上側のセクションに順に配置され、列の第２の半分は下側のセクションに順に配置される。各列は左タップと右タップを有する。双方向シフト・レジスタ（５６）は、シフト・レジスタ（５１）に含まれている。双方向シフト・レジスタ（５６）は、下側のセクションの最上部の列を含む。Ｒビットの新しいグループを各列にロードするため、入力データ及びシフト・レジスタ（５１）に現れるデータを、各シフト・オペレーションに対してＲビット毎にシフトするように、制御回路（７０）がシフト・オペレーションを制御する。Ｍ／（２Ｒ）個の事前加算器（５７，５９）は、それぞれ、上側のセクションと下側セクションの対称的に反対側の列の右タップ・ポイントに接続される第１及び第２の入力をそれぞれ有する。演算回路（６０，６２）は事前加算器の出力に接続され、事前加算器から出力情報を受信し、係数情報を受信し、出力情報に係数情報を効率的に乗算する。アキュムレータ回路（７４）は、演算回路の出力からの情報を累算し、累算された情報を、シリアル・ディジタル入力情報の、フィルタリングされ、デシメートされた表現（ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）として出力するように接続される。上述の実施例では、フリップフロップはＤ型フリップフロップである。
【００１３】
（実施例の詳細な説明）
本発明は、先行技術の図１の構造が用いられる場合に必要とされる相互接続の複雑さを減らすため、先行技術の図２Ａ−Ｄの構造にあるような、シフト・レジスタの列の端部でのみデータ信号にアクセスする特徴を含む。本発明は更に、図３Ａの１６ビット・シフト・レジスタ５１が、入力データが１６ビット・シフト・レジスタにシフトされる速度と同じクロック・レートでシフトすることを可能にする利点も提供する。これは、電力消費において実質的な節約を提供し、更に、先行技術の図２のシステムで必要とされる非常に速いクロック信号スピードを提供しなければならないという問題も避ける。
【００１４】
図３Ａは、本発明に従ったＦＩＲデシメーション・フィルタ回路の全般的な図を示す。図３Ａに示したＦＩＲフィルタ回路は、デシメーション・レシオ４を有する１６タップＦＩＲデシメーション・フィルタの場合について説明する。１６タップ・シフト・レジスタ５１は、多数のシフト・レジスタ列又は「スライス」５２，５４，５６及び５８を含み、データ信号は、シフト・レジスタ列５２，５４，５６及び５８のそれぞれの端部でのみアクセスされる。
【００１５】
図３Ａにおいて、１６タップ・シフト・レジスタ５１は、１６ビット・シフト・レジスタを形成するため、図示したように順に接続される１６個のＤ型フリップフロップＦＦ１，２，３‥‥１６を含む。１６ビット・シフト・レジスタ５１は、４個の４ビット・シフト・レジスタ列又はセクション５２，５４，５６及び５８に分割される。つまり、シフト・レジスタ５１のタップの総数（即ち、１６）は、デシメーション・フィルタ５０のデシメーション・レシオ（即ち、４）で分割される。
【００１６】
シフト・レジスタ列又はセクション５２は、フリップフロップＦＦ１，ＦＦ２，ＦＦ３及びＦＦ４を含み、フリップフロップＦＦ１の入力は入力信号ＩＮを受信する。フリップフロップＦＦ４の出力は、導線４９にディジタル信号Ｓ１を生成し、これが加算器５７の１つの入力に接続される。１６ビット・シフト・レジスタ５１は、更に、３つの別の４ビット・シフト・レジスタ列又はセクション５４，５６及び５８も含む。セクション５４は、フリップフロップＦＦ５，ＦＦ６，ＦＦ７及びＦＦ８を含み、フリップフロップ５の入力はフリップフロップＦＦ４の出力に接続されている。フリップフロップＦＦ８の出力は、導線５１に出力信号Ｓ２を生成し、これが加算器５９の１つの入力に接続される。
【００１７】
セクション５６は、４ビット双方向シフト・レジスタとして、図３Ｂに示すように接続されるフリップフロップＦＦ９，ＦＦ１０，ＦＦ１１及びＦＦ１２を含む。双方向シフト・レジスタ５６の入力は導線５１に接続され、双方向シフト・レジスタ５６の出力は導線５３に信号Ｓ３を生成し、これが加算器５９の第２の入力に接続される。
【００１８】
セクション５８は、ＦＦ１３，ＦＦ１４，ＦＦ１５及びＦＦ１６を含み、フリップフロップ１３の入力は導線５３に接続され、フリップフロップ１６の出力は導線５５に信号Ｓ４を生成し、これが加算器５７の第２の入力に接続される。
【００１９】
制御回路７０は、１６タップ・シフト・レジスタ５１への信号ＣＬＫを導線７９に生成し、更に、後に説明するように、列５６のデータ・シフトの方向を制御するため、マルチコンダクタ・バス７７に制御信号を提供する。加算器５７の出力は、加算／減算／ヌル回路６０の入力に供給される。加算／減算／ヌル回路６０はマルチコンダクタ・バス６１によってＲＯＭ（読出し専用メモリ）６８の出力に接続される第２の入力を有し、ＲＯＭ６８は、制御回路７０によってバス７５を介して適切にアドレスされるとき、マルチコンダクタ・バス６１に第１の係数値を生成する。加算器５９の出力は、マルチコンダクタ・バス６３によってＲＯＭ６８の別の出力に接続される第２の入力を有する加算／減算／ヌル回路６２の１つの入力に接続され、ＲＯＭ６８は、マルチコンダクタ・バス６３に第２の係数値を生成する。本発明の現在説明している実施例のデータが１ビット幅のみであるため、上述のように対にされた２つの対応するビットの事前加算は、３つのみの異なる信号になる。従って、ある係数によって必要とされる乗算は、アキュムレータ・レジスタの内容に係数を加算する、又はアキュムレータ・レジスタの内容から係数を減算する、或いはヌル・オペレーションを行なうことによって、単純な方法で達成され得る。しかし、マルチ・ビット・データがシフト・レジスタを介してシフトされる場合は、加算／減算／ヌル回路ではなく真の乗算器が必要となる。
【００２０】
加算／減算／ヌル回路６０は、アキュムレータ６４のパラレル入力に接続されるマルチコンダクタ出力６５を有する。アキュムレータ６４は、加算器７２の１つの入力に接続される出力６９を有する。加算／減算／ヌル回路６２は、アキュムレータ６６のパラレル入力に接続されるマルチコンダクタ出力６７を有する。アキュムレータ６６は、加算器７２の別の入力に接続される出力７１を有する。加算器７２は、導線７３に、デシメートされた出力信号ＯＵＴを生成する。アキュムレータ６４及びアキュムレータ６６は、複合アキュムレータ回路７４を構成し、これが、制御回路７０から、導線７６を介した制御信号とクロック信号ＣＬＫとを受信する。出力データを生成する各数値シーケンスの始めに、制御回路７０は、複合アキュムレータ回路７４をクリアする又はリセットするため、導線７６に信号を生成する。その後、制御回路７０は、加算／減算／ヌル・オペレーションが、それぞれ、加算器５７及び５９の出力で加算／減算／ヌル回路６０及び６２によって実行されるようにし、それらの結果が、それぞれアキュムレータ６４及び６６で累算されるようにする。これらのオペレーションの終わりに、その結果がデータとして出力される。１クロック期間の後、複合アキュムレータ７４はリセットされ、このプロセスが繰り返される。加算／減算／ヌル回路６０の詳細なロジック・ダイアグラムは、後に説明する図３Ｃに示されている。
【００２１】
図３Ｂは、複数の２対１マルチプレクサと複数のフリップフロップを用いることによって実施される双方向シフト・レジスタ５６の実施例を示す。図３Ｂを参照すると、双方向シフト・レジスタ５６は、４つのＤ型フリップフロップ８５−１，８５−２，８５−３、及び８５−４を含み、それぞれが、導線８０によってシステム・クロック信号ＣＬＫに接続されるクロック入力を有する。フリップフロップ８５−１，８５−２，８５−３、及び８５−４のＤ入力は、それぞれ、４つの２対１マルチプレクサ（２−１マルチプレクサと呼ぶ）８３−１，８３−２，８３−３、及び８３−４の出力に接続される。マルチプレクサ８３−１，２，３，４のそれぞれは、導線８１によって左／右方向信号に接続される方向入力を有する。導線８１は更に、出力２−１マルチプレクサ８７の方向入力にも接続される。マルチプレクサ８３−１，２，３，４のそれぞれは、第１の入力ＩＮ１及び第２の入力ＩＮ２を有し、それらの一方が、導線８１の左／右方向信号のレベルに従って、対象のマルチプレクサの出力にスイッチングされる。マルチプレクサ８３−１の第１の入力は、導線５１によって信号Ｓ２に接続され、マルチプレクサ８３−４の第２の入力にも接続される。マルチプレクサ８３−１の第２の入力は、マルチプレクサ８５−２の出力Ｑに及びマルチプレクサ８３−３の第１の入力に接続される。マルチプレクサ８３−２の第１の入力は、フリップフロップ８５−１のＱ出力に及び出力マルチプレクサ８７の第２の入力ＩＮ２に接続される。マルチプレクサ８３−２の第２の入力は、マルチプレクサ８５−３のＱ出力に及びマルチプレクサ８３−４の第１の入力に接続される。マルチプレクサ８３−３の第２の入力は、マルチプレクサ８５−４のＱ出力に及び出力２−１マルチプレクサの第１の入力ＩＮ１に接続される。出力マルチプレクサ８７の出力は、信号Ｓ３を伝導するため、上述の導線５３に接続される。もちろん、当業者であれば、双方向シフト・レジスタ５６の種々の異なる実施例を容易に提供することが可能である。
【００２２】
図３Ｃを参照すると、回路５７，６０，６４は、事前加算器５７、加算／減算／ヌル回路６０、及びアキュムレータ６４を含み、導線４９及び５５は２入力ＡＮＤゲート９０の２つの入力に接続され、２入力ＡＮＤゲート９０の出力は、一連の２入力ＡＮＤゲート９１のそれぞれの第１の入力に接続される。２入力ＡＮＤゲート９１のそれぞれの第２の入力は、複数の導線６１のうち対応する１つに接続され、導線６１は、図３Ａの読出し専用メモリ６８の出力からの第１の係数を伝導する。本発明の１つの実際の実施例において、第１の係数を伝導する導線６１の数は２５に等しい。一連のＡＮＤゲート９１の出力は、それぞれ、一連のＯＲゲート９２の複数の入力に接続され、ＯＲゲート９２の出力６５は、アキュムレータ６４のパラレル入力に接続される。
【００２３】
導線４９及び５５は、それぞれ、２入力ＮＯＲゲート９３の２つの入力にも接続され、２入力ＮＯＲゲート９３の出力は、一連の２入力ＡＮＤゲート９５の第１の入力に接続され、２入力ＡＮＤゲート９５の出力は、それぞれ、ＮＯＲゲート９２のそれぞれの第２の入力に接続される。一連のＡＮＤゲート９５のそれぞれの第２の入力は、対応するインバータ９４の出力に接続される。一連のインバータ９４の入力は、それぞれ、第１の係数を伝導する導線６１に接続される。
【００２４】
アキュムレータ６４の入力のキャリーイン入力は、２入力ＮＯＲゲート９８の出力に接続され、２入力ＮＯＲゲート９８の入力は、それぞれＳ１及びＳ４を伝導する導線４９及び５５に接続される。
【００２５】
Ｓ１及びＳ４が両方とも論理“０”である場合、図３Ｃの回路は、アキュムレータ６４の内容から導線６１の第１の係数を減算する。Ｓ１及びＳ４が両方とも論理“１”である場合、図３Ｃの回路は、アキュムレータ６４の内容に導線６１の第１の係数を加算する。Ｓ１が“０”でＳ４が“１”である場合又はその逆である場合、一連のＮＯＲゲート９２の出力６５は全て“０”を出力し、これらがアキュムレータ６４の内容に加算される。
【００２６】
Ｓ１及びＳ４が両方とも論理“０”に等しいとき、図３Ｃの回路は第１の係数の逆数値を生成すると理解すれば分かりやすい。ＮＯＲゲート９８の出力は、アキュムレータ６４のキャリーイン入力に供給され、これは論理“１”である。これは、アキュムレータ６４の内容から第１の係数を減算することになる。Ｓ１及びＳ４の他の３つの考えられる値では、ＮＯＲゲート９８の出力で論理“０”となる。これは、（第１の係数及びアキュムレータの内容が２の補数の形式で表わされるとき）アキュムレータ６４の内容に導線６５の数を加算することになる。Ｓ１及びＳ４が両方とも論理“１”であるとき、第１の係数の値は、導線６５に複製され、この値がアキュムレータ６４の内容に加算される。（当業者であれば、種々の他の方法で図３Ｃの回路によって達成される機能を容易に提供できることに注意されたい。）
【００２７】
オペレーションにおいて、図３ＡのＦＩＲデシメーション・フィルタ５０は、必要とされる乗算の数を２分の１に減らすため、１６タップ・シフト・レジスタ５１のデータを対にする。データを適切に対にするため、シフト・レジスタ５１の下側半分５６，５８の最上部の列５６のデータの方向を４ビット・シフト・オペレーション毎に反転させる。ここで、４ビット・シフト・オペレーションは、シフト・レジスタ５１への入力ＩＮの複数の（デシメーション・レシオに等しい）連続する付加的なビットをシフトすることから成る。
【００２８】
この基本的なアルゴリズムと構造は、デシメーション・レシオＲが幾つであるかに関わらず、及び、シフト・レジスタ５１に幾つのビットが含まれるかに関わらず、適用されることに注意されたい。シフト・レジスタ（即ち、シフト・レジスタ５１）は、常に上側半分及び下側半分に分割され、入力データＩＮは、上側半分のフリップフロップの最上部の列の一端にシフトされ、下側半分のフリップフロップの最上部の列は常に、上述の双方向シフト・レジスタの部分である。これにより、常に所望のビット対が事前加算される。
【００２９】
シフト・レジスタのタップの数は、デシメーション・レシオで除算され、その結果は、シフト・レジスタ５１が分割される列又はスライスの数を決定するため、次に大きい整数に切り上げられる。それぞれの列又はスライスの幅（即ち、ビットの数）は、デシメーション・レシオに等しい。対にされたビットは、シフト・レジスタの上側半分及び下側半分の対称的に反対側の列端のビットである。最も最近のデータ（即ち、後に説明する図４Ａ−Ｄに示されるインデックスｉの最大値を有するデータビット）は、シフト・レジスタの「上側」半分のフリップフロップの列の「左」端に常に現れ、インデックスｉの最大値を有するデータビットは、シフト・レジスタの「下側」半分のフリップフロップの列の「右」端に常に現れる。これは、入力データＩＮをシフトする一つおきの４ビット・オペレーション毎に双方向シフト・レジスタ５６のデータ・シフトの方向を変えることによって成される。
【００３０】
１ビット幅データの場合、事前加算の結果は、係数を加算するか、係数を減算するか、或いは何もしないかを決定することだけである。この決定の結果は、係数で乗算することと等しく、加算／減算／ヌル回路６０及び６２は、このオペレーションのために提供される。制御回路７０は、４ビット・シフト・レジスタ列５２，５４，５６及び５８、ＲＯＭ６８、及びアキュムレータ６４及び６６に適切な制御信号を提供する。アキュムレータ６４及び６６は、加算／減算／ヌル回路６０及び６２の出力を累算し、オペレーションの最後に複数の累算された出力をクロックアウトするため、各オペレーションに対してパラレルに動作する。パラレル・アキュムレータ６４及び６６の出力は、フィルタリングされ、デシメートされた出力ＯＵＴを生成するため、加算器７２で加算される。
【００３１】
図４Ａ−Ｄは、オペレーションの一連の段階の間の列シフト・レジスタ５２，５４，５６及び５８のデータの流れを示すことによって上述のオペレーションを説明する。双方向シフト・レジスタ５６は、全ての事前加算機能に対して出力ストリームＳ１，Ｓ２，Ｓ３及びＳ４を適切にアラインするため、４ビット・シフト・オペレーション毎に方向を変える（４はデシメーション・レシオである）。
【００３２】
図４Ａ−Ｄにおいて、ＩＮで表わされる入力データのシリアル・ストリームｂｉ，ｂｉ−１，ｂｉ−２‥‥ｂ１が、１６ビット・シフト・レジスタ５１の入力に４ビット・グループでシフトされると仮定する。図４Ａにおいて、シリアル・ストリームのビットｂ１６，１５，１４，１３は、フリップフロップＦＦ１，２，３，４から成る列シフト・レジスタ５２にある。図示するように、ビットｂ１２，１１，１０，９は列シフト・レジスタ５４にストアされ、ビットｂ５，６，７，８は列シフト・レジスタ５６にストアされ、ビットｂ１，２，３，４は列シフト・レジスタ５８にストアされる。
【００３３】
図４Ｂは、ビットｂ２０，１９，１８，１７がフリップフロップ５２の左から右へシフトされた後のＩＮの種々のビットの位置を示す。これにより、ビットｂ１６，１５，１４，１３は、フリップフロップ５４の左から右へシフトされる。双方向シフト・レジスタ５６を介するデータ・フローの方向は、前の入力ビットの４ビット・グループから反転されるため、ビットｂ１２，１１，１０，９はフリップフロップ５６の右から左へシフトされる。ビットｂ５，６，７，８はフリップフロップ５８の左から右へシフトされる。
【００３４】
図４Ｃは、ビットｂ２４，２３，２２，２１がフリップフロップ５２の左から右へシフトされた後のＩＮの種々のビットの位置を示し、このシフトにより、ビットｂ１７，１８，１９，２０は、フリップフロップ５４の左から右へシフトされ、ビットｂ１３，１４，１５，１６はフリップフロップ５６にシフトされ、ビットｂ９，１０，１１，１２はフリップフロップ５８にシリアルにシフトされる。
【００３５】
図４Ｄは、ビットｂ２８，２７，２６，２５がフリップフロップ５２の左から右へシフトされた後のＩＮの種々のビットの位置を示し、ビットｂ２４，２３，２２，２１は、フリップフロップ５４の左から右へシフトされ、ビットｂ２０，１９，１８，１７はフリップフロップ５６の右から左へシフトされ、ビットｂ１６，１５，１４，１３はフリップフロップ５８の左から右へシフトされる。図４Ｄに示した構成は、ビットｂ１６と適切にアラインされ、このため加算器５７で事前加算され得るビットｂ２５を示し、更に、加算器５９で事前加算され得る、ビットｂ１７と適切にアラインされたビットｂ２１も示す。これは上述のアルゴリズムに合致しており、最も最近のビット、即ち、最大インデックスｉを有するビットは、シフト・レジスタ５１の上側半分の列５２及び５４の左端に、及びシフト・レジスタ５１の下側半分の列５６及び５８の右端に現れる。上述のような、列又はセクション５２，５４，５６及び５８が「上側」、「下側」、「右」、及び「左」であるという考え方は、純粋に概念上のものである。実際には、シフト・レジスタ５１が「上側」部分及び「下側」部分を有することが可能であること、及び、これが理論上、上述のように上側、下側、右、及び左の列又はセクションに分割され得ることのみが必要である。
【００３６】
図５は、図３Ａの構造の代替の構造を示す。図５を参照すると、ＦＩＲデシメーション・フィルタ５０Ａは、加算器５７及び５９の出力が、２つの加算／減算／ヌル回路６０及び６２の代わりにマルチプレクサ４７の入力に接続されており、図３Ａのアキュムレータ構造７４が図５に示したアキュムレータ回路７８で置き換えられていることを除けば、図３ＡのＦＩＲデシメーション・フィルタ５０と構造的に類似している。図５では、マルチプレクサ４７の選択入力は、制御回路７０からの導線８４の２倍（ｄｏｕｂｌｅ）周波数制御信号を受信するように接続される。マルチプレクサ４７の出力は、単一の加算／減算／ヌル回路（又は乗算器回路）６０Ａの１つの入力に接続され、他方の入力は、ＲＯＭ６８の出力からのマルチコンダクタ・バス６１Ａの係数信号を受信する。加算／減算／ヌル回路６０Ａの出力は、アキュムレータ回路７８のデータ入力に接続される。制御回路７０は、アキュムレータ回路７８の制御入力に供給される導線４８の２倍周波数アキュムレータ制御信号を生成する。アキュムレータ回路７８の出力は、デシメートされた出力信号ＯＵＴを導線７３に生成する。図５に示した回路構造は、加算／減算／ヌル回路６０Ａ及びアキュムレータ回路７８を含むハードウェアが共有されることを可能にすることによって、全体的な回路コストを低減する。
【００３７】
本発明に従って、双方向シフト・レジスタ列５６を提供し、そのデータ・ストリームの方向を変えることにより、先行技術で必要とされたようなフィードバック・ループを用いる必要性が回避される。双方向シフト・レジスタ列を提供し、データ・ストリームの方向を変える技術は更に、シフト・レジスタのクロック・スピードが、入力データがシフト・レジスタにクロックされるスピードとして見られるという利点を有する。
【００３８】
本発明は本発明の幾つかの特定の実施例を参照して説明されたが、当業者であれば、本発明の真の趣旨及び範囲から逸脱することなく、本発明の説明された実施例に種々の変形を加えることが可能であろう。特許請求の範囲に記載されたものと同じ結果を達成するために、実質的に異ならない、又は、実質的に同じ方法で同じ機能を実質的に実行する全ての要素又は工程は、本発明の範囲内にあることを意図している。
【図面の簡単な説明】
【図１】
従来の有限インパルス応答フィルタ（ＦＩＲ）のブロック図。
【図２】
先行技術の「デュアル・ループ・シフト・レジスタ」ＦＩＲフィルタのオペレーションを説明する際に有効な一連のデータ・フロー・ダイアグラム。
【図３Ａ】
本発明に従った一般的なＦＩＲデシメーション・フィルタのブロック図。
【図３Ｂ】
図３Ａの双方向シフト・レジスタ５６のブロック図。
【図３Ｃ】
図３Ａに用いられた事前加算器５７、加算／減算／ヌル回路６０、及びアキュムレータ６４の組み合わせのロジック・ダイアグラム。
【図４Ａ−Ｄ】
図３ＡのＦＩＲデシメーション・フィルタのオペレーションを説明するブロック図。
【図５】
本発明に従った代替例のＦＩＲデシメーション・フィルタのブロック図。
【図１】
2004516707.tif 000003
【図２】
2004516707.tif 000004
【図３Ａ】
2004516707.tif 000005
【図３Ｂ】
2004516707.tif 000006
【図３Ｃ】
2004516707.tif 000007
【図４Ａ】
2004516707.tif 000008
【図４Ｂ】
2004516707.tif 000009
【図４Ｃ】
2004516707.tif 000010
【図４Ｄ】
2004516707.tif 000011
【図５】
2004516707.tif 000012
【国際公開パンフレット】
2004516707.tif 000013
2004516707.tif 000014
2004516707.tif 000015
2004516707.tif 000016
2004516707.tif 000017
2004516707.tif 000018
2004516707.tif 000019
2004516707.tif 000020
2004516707.tif 000021
2004516707.tif 000022
2004516707.tif 000023
2004516707.tif 000024
2004516707.tif 000025
2004516707.tif 000026
2004516707.tif 000027
2004516707.tif 000028
2004516707.tif 000029
2004516707.tif 000030
2004516707.tif 000031
2004516707.tif 000032
2004516707.tif 000033
2004516707.tif 000034
2004516707.tif 000035
2004516707.tif 000036
2004516707.tif 000037
2004516707.tif 000038
2004516707.tif 000039
2004516707.tif 000040
2004516707.tif 000041
2004516707.tif 000042
【国際調査報告】
2004516707.tif 000043