(57)【要約】ハードウェア再構成可能型デジタルフィルタが、複数のフィルタ処理モードを提供するように適応可能となっている。一実施例においては、該デジタルフィルタはレジスタ型アレイの論理回路と、計算回路と、モード選択回路とを含んでいる。上記論理回路及び計算回路内のデータの流れを再構成することにより、上記モード選択回路は当該デジタルフィルタを複数のフィルタモードのうちの異なるものの間で切り換える。乗算及び加算論理回路の各々は、Ｙ方向に沿って上記乗算及び加算論理回路の他のものと選択的に結合される出力及び入力を有し、該選択は上記モード選択回路に応答して上記レジスタを機能的に直線的となるように又は機能的に非直線的となるように配列する。もっと具体的な実施例においては、上記フィルタ処理モードは多相フィルタ処理及び汎用フィルタ処理アプリケーション（ＦＩＲフィルタ処理のような）を含み、他のもっと具体的な実施例においては、上記フィルタ処理モードは多相直接フィルタ処理、多相転置フィルタ処理、及び少なくとも１つの汎用フィルタ処理を含む。上述した型式のデジタルフィルタの特定例のアプリケーションは、ビデオピクセル成分のフィルタ処理、例えばピクセルの水平ラインのサイズ変更処理に関するものである。
2004534446.tif 000002
【特許請求の範囲】
【請求項１】
複数のフィルタ処理モードを持つハードウェア再構成可能型デジタルフィルタにおいて、
−  入力データに対応するデータを処理するように構成された論理回路であって、該論理回路は、ＸｘＹのアレイのレジスタを含んで、少なくとも１つの第１フィルタ処理モードを直線的に配列された前記レジスタを用いてサポートすると共に少なくとも１つの第２フィルタ処理モードを非直線的に配列された前記レジスタを用いてサポートし、前記Ｘ及びＹの各々が少なくとも２であるような論理回路と、
−  前記論理回路に応答して計算を実行するように構成されると共に、少なくともＹ個の乗算論理回路及び少なくともＹ個の加算論理回路を含むような計算回路と、
−  当該デジタルフィルタを前記複数のフィルタ処理モードの間で切り換えるように構成されたモード選択回路と、
を有していることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項２】
請求項１に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記論理回路及び前記計算回路は、前記モード選択回路に応答して、多相直接、多相転置、有限インパルス応答１１タップ及び有限インパルス応答１２タップなるフィルタ処理モードのうちの少なくとも２つにおいて動作するように再構成可能であることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項３】
請求項１に記載のハードウェア再構成可能型デジタルフィルタにおいて、Ｙ軸方向に沿う前記乗算及び加算論理回路の各々は、これら乗算及び加算論理回路を前記モード選択回路に応答して前記Ｙ軸方向に沿って再構成するように構成された再構成回路を有し、前記第１フィルタ処理モードはインパルス応答フィルタ処理モードをサポートし、前記第２フィルタ処理モードは少なくとも１つの多相フィルタ処理モードと他のインパルス応答フィルタ処理モードとをサポートすることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項４】
請求項１に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記論理回路及び前記計算回路は、多相直接フィルタ処理モード、多相転置フィルタ処理モード及びＦＩＲフィルタ処理モードのうちの１つにおいて動作するように再構成可能であることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項５】
請求項４に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記モード選択回路は当該デジタルフィルタを前記多相転置フィルタ処理モードと前記モードのうちの他の１つとの間で切り換えるように構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項６】
請求項５に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記モード選択回路が、当該デジタルフィルタを前記多相転置フィルタ処理モードに切り換えるように構成された第１選択回路と、当該デジタルフィルタを前記多相転置フィルタ処理モード以外のモードの間で切り換えるように構成された第２選択回路とを含んでいることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項７】
請求項６に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記第１選択回路は前記計算回路を再構成するように構成され、前記第２選択回路は前記論理回路を再構成するように構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項８】
請求項６に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記多相転置フィルタ処理モード以外の前記モードが、多相直接フィルタ処理モードと２つのＦＩＲフィルタ処理モードとを含み、これらＦＩＲフィルタ処理モードの一方は、前記２つのＦＩＲフィルタ処理モードの他方よりも多いタップを含んでいることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項９】
請求項１に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記論理回路及び前記計算回路は、コンテキスト切り換え及び複数の長い入力ラインの間での前後の切り換えのために、ビデオデータの待避及びロードをサポートするように再構成可能であることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項１０】
請求項１に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの複数のものは、Ｙレジスタの整列により規定される軸に沿ってスライスされた回路として構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項１１】
請求項１に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの第１の複数のものの各々は、前記Ｙ個のレジスタの整列により規定される軸に沿った第１のスライスされた回路として構成され、前記アレイにおける前記レジスタの第２の複数のものの各々は、前記Ｙ個のレジスタの整列により規定される軸に沿った第２のスライスされた回路として構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項１２】
複数のフィルタ処理モードを持つハードウェア再構成可能型デジタルフィルタにおいて、
−  フィルタ入力に対応するデータをビデオ画像セグメントにおける選択された目標ノードに対応するデータ点に対して処理及びミラーリングするように構成された論理回路であって、該論理回路はＸｘＹのアレイのレジスタを含み、ここで前記Ｙは前記Ｘよりも大きく、前記Ｘが少なくとも２であるような論理回路と、
−  前記論理回路に応答して計算を実行するように構成されると共に、少なくともＹ個の乗算論理回路及び少なくともＹ個の加算論理回路を含むような計算回路と、
−  前記論理回路及び前記計算回路をリニアアレイの前記レジスタを用いてデータを処理するように構成することによって当該デジタルフィルタを多相転置フィルタ処理モードに移行させると共に、前記論理回路及び前記計算回路を非リニアアレイの前記レジスタを用いてデータを処理するように構成することによって当該デジタルフィルタを他のフィルタ処理モードに移行させるように構成されたモード選択回路と、
を有していることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項１３】
請求項１２に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの複数のものが、スライスされた回路として構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項１４】
請求項１２に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの複数のものが、前記Ｙ個のレジスタの整列により規定される軸に沿ったスライスされた回路として構成されることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項１５】
請求項１２に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの第１の複数のものの各々は、前記Ｙ個のレジスタの整列により規定される軸に沿った第１のスライスされた回路として構成され、前記アレイにおける前記レジスタの第２の複数のものの各々は、前記Ｙ個のレジスタの整列により規定される軸に沿った第２のスライスされた回路として構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項１６】
請求項１２に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記Ｘは２に等しく、前記Ｙは６以上であり、前記複数のフィルタ処理モードが多相転置フィルタ処理モード、多相直接フィルタ処理モード及び２つのＦＩＲフィルタ処理モードを含み、前記２つのＦＩＲフィルタ処理モードのうちの一方が前記２つのＦＩＲフィルタ処理モードのうちの他方よりも多くのタップを含んでいることを特徴とするハードウェア再構成可能型デジタルフィルタ。
【請求項１７】
請求項１６に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記ＦＩＲフィルタモードのうちの一方が１２個のタップを含むことを特徴とするハードウェア再構成可能型デジタルフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるフィルタ処理モードのために再構成可能なハードウェアアーキテクチャ型デジタルフィルタに関する。
【背景技術】
【０００２】
マイクロプロセッサ及びデジタル信号プロセッサを含むコンピュータ装置は、広い範囲のアプリケーションのために設計されており、事実上全ての工業において使用されている。種々の理由により、これらアプリケーションの多くはビデオデータの処理に関するもので、最小レベルの電力消費及び小型さを必要としている。幾つかのアプリケーションは、更に、実効的にリアルタイムで又は略リアルタイムで動作し得るような高速計算エンジンを必要としている。これらのビデオ処理アプリケーションの多くは、複数の機能を益々増加する速度で実行することができるようなデジタル信号処理回路を必要としている。
【０００３】
残念ながら、高いデータ処理速度を達成し、且つ、複数の機能を提供することは対立する方向である。例えば、典型的には有限インパルス応答（ＦＩＲ）又は無限インパルス応答（ＩＩＲ）フィルタ処理を含む汎用ビデオ信号処理は、ビデオデータをリアルタイムで圧縮及び伸張する等の専用のビデオデータフィルタ処理と比較した場合、相対的に遅い。専用のビデオデータフィルタ処理に関して使用される計算的アーキテクチャは、典型的には、ビデオデータのリアルタイム速度に追いつくように最適化されるので、専用のビデオデータフィルタ処理は、典型的には、汎用のビデオ信号処理に関連する種々のタスクを実行するには余り効率的ではない。
【０００４】
幾つかのアプリケーションにおいて有効なのは、“多相”フィルタとして知られている或るタイプの専用ビデオデータフィルタである。ビデオ処理アプリケーションにおいて、多相フィルタは、時には、表示をリフレッシュするために使用される水平及び垂直ラインを表すために記憶されたデータを操作することにより、ピクセルをサイズ変更（resize）するために使用される。斯様なアプリケーションにおいて、入力ピクセル数に対する出力ピクセル数の比はズーム係数として定義されるが、汎用フィルタ処理に関しては、出力ピクセル数は入力ピクセル数に等しい。ズーム係数が１より大きい場合、上記サイズ変更処理は伸張又はアップサンプリングとしても知られ、それ以外の場合、斯かるサイズ変更処理は典型的には圧縮又はダウンサンプリングとして知られている。通常、固定のズームを得るために画像をサイズ変更（拡大又は縮小）するためには、多相フィルタは、該フィルタの係数が、処理されているピクセルの位置又は位相の関数として定義されるようにして実施化される。高精度ビデオアプリケーションにおいてサイズ変更を行うには、多相フィルタは、当該精度を達成するために要する数学処理を調整するためのもっと固有なアーキテクチャで実施化される。典型的には、このタイプの多相フィルタ処理は、“多相転置（polyphase-transposed）”フィルタ処理と呼ばれる形態で実施化される。もっと典型的なビデオアプリケーションの場合、多相フィルタ処理は、ＦＩＲフィルタ処理のような汎用フィルタ処理と一層共通な計算的アーキテクチャを使用して多相直接フィルタとして実施化される。汎用フィルタ処理及び多相転置フィルタ処理におけるような特定の専用フィルタに各々関連する必要な数学処理のために、アーキテクチャ的な非互換性の結果、これら汎用フィルタは斯様な専用フィルタとは別個に設計されている。多相フィルタの更なる詳細及び例示的構成に関しては、本譲受人に譲渡されたVan Dalfsen他による“サンプルレート変換”なる名称の米国特許第5,892,695号を参照されたいが、該米国特許は参照により全体として本明細書に組み込まれるものとする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したビデオ処理アプリケーションの各々においては、斯様な機能を提供するために使用される集積回路の設計、製造及び維持に関して大きなコストが掛かる。指定されたフィルタ処理モードがアーキテクチャ的に非互換的であるような各アプリケーションにおいては、追加的アーキテクチャに関連するコストも重大となる。従って、データ処理スループットの重大な損失無しに、これらの複数のフィルタ処理モードを許容するような比較的小型のビデオ処理フィルタのアーキテクチャを開発することに対する良く認識された需要が存在する。
【課題を解決するための手段】
【０００６】
本発明は、上述した挑戦に挑むと共に、異なるタイプのフィルタ処理モードに対して再構成可能であるハードウェア構造を提供するようなプログラマブルデジタルフィルタを指向するものである。本発明は複数の構成及びアプリケーションにおいて例示され、これらの幾つかが以下に要約される。
【０００７】
一実施例によれば、本発明は複数のフィルタ処理モードを有するハードウェアの再構成可能なデジタルフィルタを提供する。該デジタルフィルタは、論理回路、モード選択回路及び計算回路を有している。上記論理回路はＸｘＹのアレイのレジスタ（ここで、Ｘ及びＹの各々は少なくとも２である）を有し、入力データを処理するように構成されている。上記モード選択回路は当該プログラマブルデジタルフィルタを異なる複数のフィルタ処理モードの間で切り換える。上記計算回路は上記論理回路に計算を実行することにより応答するもので、少なくともＹ個の乗算論理回路と少なくともＹ個の加算論理回路とを含んでいる。もっと具体的な実施例においては、上記乗算及び加算論理回路の各々は、これら乗算及び加算論理回路の他のものにＹ方向に沿って選択的に結合される出力端子及び入力端子を有し、上記フィルタ処理モードは多相フィルタ処理アプリケーション及び汎用フィルタ処理アプリケーション（ＦＩＲフィルタ処理のような）を含んでいる。
【０００８】
他のもっと具体的な実施例においては、上記フィルタ処理モードは多相直接フィルタ処理、多相転置フィルタ処理及び少なくとも１つの汎用フィルタ処理を含み、上述したレジスタアレイは、選択された汎用フィルタ処理に対してはリニア（直線的）アレイとして構成可能であると共に、他の選択されたフィルタ処理に対しては二次元アレイとして配列される。
【０００９】
他のもっと具体的な実施例によれば、本発明は類似したハードウェアの再構成可能なデジタルフィルタを指向するもので、この場合、上記論理回路はフィルタ入力に対応するデータをビデオ画像セグメント内の選択された目標ノードに対応するデータ点に対して処理及び鏡映（ミラー処理）するように構成されている。該論理回路はＸｘＹのレジスタアレイを含み、ここで、ＹはＸより大きく、Ｘは少なくとも２である。前記モード選択回路は、当該プログラマブルデジタルフィルタを多相転置フィルタ処理モードと、前記複数のフィルタ処理モードのうちの少なくとも１つの他のモードとの間で切り換えるようになっている。前記計算回路は上記論理回路に応答して計算を実行するように構成されると共に、少なくともＹ個の乗算論理回路と少なくともＹ個の加算論理回路とを含んでいる。これら乗算及び加算論理回路の各々は互いに選択可能に結合される出力端子及び入力端子を有し、該選択性は前記モード選択回路に応答したものである。
【００１０】
他の態様及び利点は、本発明の特定の実施例に関連している。
【００１１】
上述した本発明の概要は解説された各実施例又は本発明の全ての実施構成を説明しようとするものではない。図面及び以下に続く詳細な説明は、これら実施例を一層具体的に例示するであろう。
【発明を実施するための最良の形態】
【００１２】
本発明は、以下に添付図面を参照してなされる本発明の種々の実施例の詳細な説明を考察すると一層完全に理解されるであろう。
【００１３】
本発明は種々の変形例及び代替例の形態に順応するものであるが、これらのうちの特定のものが例示として図面に示され、以下に詳細に説明されるであろう。しかしながら、本発明は、記載される斯かる特定の実施例に限定されるものではないと理解されるべきである。逆に、本発明は、添付請求項により規定される本発明の趣旨及び範囲内に入る全ての変形例、均等物及び代替例を含もうとするものである。
【００１４】
本発明は、種々の異なるタイプのフィルタ処理アプリケーションに適用可能であると信じられるものであり、複数のフィルタ処理モードの何れにおいても動作するように容易に再構成することが可能なデジタルフィルタアーキテクチャの利益を享受するビデオ処理アプリケーションにとり特に有効であることが分かった。本発明の種々の態様は、これらのアプリケーションを使用する例の説明を介して理解されるであろう。
【００１５】
本発明の第１実施例が図１に示されている。図１は、選択可能なフィルタ処理モードを有するハードウェアの再構成可能なデジタルフィルタ１００を提供する。該デジタルフィルタ１００は、モード選択回路１１０と、論理回路１１２と、計算回路１１４とを含んでいる。論理回路１１２は、ＸｘＹのレジスタアレイを有し、メモリ１２０から入力データインターフェースロジック１２２に渡される入力データを処理するようになっている。計算回路１１４は、該計算回路１１４のＣＹブロックの各々内で、乗算論理回路及び加算論理回路を使用して計算を実行することにより、上記論理回路１１２に応答する。当業者であれば、上記ＸｘＹのレジスタアレイが解説目的のみのために２ｘ４のアレイとして図示され、フィルタ処理アルゴリズムの特定の実施及び選択が該アレイの実際の大きさを支配することを理解するであろう。モード選択回路１００は、プロセッサを含み、これにより、当該フィルタ１００用の制御処理動作及びフィルタ処理モード選択動作の両方を提供するように図示されている。しかしながら、他の特定のアプリケーションは、モード選択回路１１０のプロセッサ部分及びモード選択ロジックが別個に構成されることを指示するかもしれない。
【００１６】
モード選択回路１１０が当該データフィルタ１００を異なる複数のフィルタ処理モードの間で切り換える態様は、特定のアプリケーションに依存する。例えば、或る例示的アプリケーションは、多相転置フィルタ処理のような第１の高精度型のフィルタ処理を含む第１フィルタ処理モードと、インパルス応答フィルタ処理演算のような、もっと普通なタイプのフィルタ処理演算を含む第２のフィルタ処理モードとに関するものである。この場合、モード選択回路１１０はＣＹブロックの各々における乗算論理及び加算論理回路の配向が、これら２つのモードのうちの１つに対して当該デジタルフィルタを再構成するように指令する。１つの特定の実施例においては、上記乗算及び加算論理回路の各々は、計算がモード選択回路１１０から入力されたコマンド信号により指定されるように向けられるのを可能にするような出力端子及び入力端子を有している。このように、第１の高精度タイプのフィルタ処理に対しては、モード選択回路１１０は上記乗算及び加算論理回路に関して異なる向きを指令して該特定のタイプの高精度フィルタ処理により使用されるアルゴリズム用にスループットを最適化し、第２のもっと普通のフィルタ処理モードに対しては、上記向きは変更されず、設定が第２モード用に使用される。オプションとして、これら２つのモードのうちの一方をデフォルトモードとして使用することができる。
【００１７】
他の例示的なアプリケーションは、各々が異なるタイプの第２のより普通なフィルタ処理を含むような第１及び第２フィルタ処理モードに関するものである。斯様なフィルタ処理モードの例は、多相直接フィルタ処理、並びにＭタップＦＩＲ及びＮタップＦＩＲフィルタ処理（Ｍ及びＮは例えば２より大きな整数である）のような異なるタイプのインパルス応答フィルタ処理を含む。これらのタイプのより普通のフィルタ処理モードの多くの場合、モード選択回路１１０は、論理回路１１２の各セル内のレジスタ間のデータの向き及び伝達を制御することにより、計算回路１１４内の乗算及び加算回路の向きを変更すること無しに、当該フィルタ１００を再構成することができる。計算回路１１４内の乗算ロジック及び加算回路の向きが変更されることが必要とされないような１つの斯様な特定の実施例は、多相直接フィルタ処理とＦＩＲフィルタ処理のような少なくとも１つの汎用フィルタ処理との間での切り替えのために論理回路１１２を制御するようなモード選択回路１１０を使用する。
【００１８】
また、本発明によれば、特定のビデオ処理アプリケーションは、メモリブロック（例えば、図１の１２０）に記憶されたピクセルの水平ラインを“サイズ変更”するような多相フィルタを構成するために、上述したフィルタ１００に類似した水平フィルタ処理ユニット（“ＨＦＬ”）を使用する。この説明において、“サイズ変更”は前述したようにズーム係数が１より大きい場合に生じる伸張を伴う。通常、画像を拡縮尺するために（上記多相フィルタに対して）固定のズームが使用され、使用されるフィルタ係数は、処理されているピクセルの位置及び位相に依存して可変である。適切なプログラミングにより、当該フィルタは該フィルタに各出力ピクセルに対してズーム係数を変化させる（例えば、当該デジタルフィルタの機能を監視するように構成されたマイクロプログラム制御プロセッサにより実行される処理ステップにおいて）ような多相フィルタモードも有することができる。典型的なものは、当該フィルタの制御パラメータを、ズーム係数が出力ラインの中心に向かって１に近づくようにさせるが、該ラインの両端に向かって累進的に大きな又は小さなズーム係数にさせるように調整する。このフィーチャは、可変又はパノラマズームとして知られており、全体の物理的スクリーンに適合させるために入力ビデオのアスペクト比を調整するために有効である。
【００１９】
一例のアプリケーションにおいては、当該デジタルフィルタに対して上記制御並びにバックグラウンド及びオンチップビデオ処理演算を提供するために、マイクロプログラムマスタ制御プロセッサ（ＭＣＰ）が使用される。該ＭＣＰは表示ピクセルを“処理ステップ”を使用して処理し、ここで、これらの処理ステップのうちの１つの処理ステップは、最大数の出力ピクセルを生成するための最大数の入力ピクセルに対応するデータを処理するのに要するＭＣＰ演算の数を参照する。特定の例においては、２５６が、最大の２５６なる出力ピクセルを生成するための入力ピクセルの最大数である。通常の動作モード下では、種々のオンチップビデオ処理ユニット（水平フィルタ、垂直フィルタ、混合器（blender）、カラーキー処理（color keying）等）、メモリ及びクロスバーを、各処理ステップ及び計算が正しく開始するように、プログラムすることができる（ＭＣＰにおけるマイクロコードを介して）。この処理ステップが進行中の間に、次の処理ステップ用の制御値が、次の処理ステップ用の保持レジスタ内にプログラムされる。次いで、次の処理ステップ用の該制御値は該次の処理ステップの開始時に上記保持レジスタから作業レジスタへと渡され、斯かる処理が繰り返される。
【００２０】
多くの典型的なアプリケーションに関して、図１の各ＨＦＬはピクセル成分の水平拡大又は縮小のために出力に用いられる。１つの特定の例示的アプリケーションにおいて、上記ＨＦＬは、該ＨＦＬの制御レジスタをプログラムすることにより処理ステップの間において以下のモードのうちの１つで動作するように構成することが可能な汎用ＦＩＲフィルタであり、これらモードは、多相直接モード、多相転置モード、ＦＩＲ１１又は奇数タップＦＩＲモード（偶対称性を持つ１１タップＦＩＲ）、及びＦＩＲ１２又は偶数タップＦＩＲモード（偶対称性を持つ１２タップＦＩＲ）である。
【００２１】
ＨＦＬの多相モードを使用することの利点は、ピクセルの水平ライン（メモリブロックに記憶された）をサイズ変更する能力である。入力ピクセル数に対する出力ピクセル数の比はズーム係数として定義される。ズーム係数が１より大きい場合、サイズ変更演算は伸張又はアップサンプリングとしても知られ、それ以外の場合、この比は圧縮又はダウンサンプリングとして知られている。ズーム係数の許容される範囲は、如何なる値となるようにも選定することができ、本例の設計では、許容される範囲は０．２５ないし８．００（両限界値を含む）である。適切なプログラミングによれば、ＨＦＬがズーム係数を処理ステップにおいて各出力ピクセル毎に変化させることも可能である。ＨＦＬ制御パラメータは、ズーム係数を出力ラインの中心に向かって１に近付けさせるが、該ラインの両端に向かって累進的に大きく又は小さくなるようなズーム係数に近付けさせるように調整される。
【００２２】
このサイズ変更のフィーチャは可変又はパノラマズームと呼ばれ、全体の物理的スクリーンに合致するように入力ビデオのアスペクト比を調整するのに有効である（例えば、１６：９の画像を４：３スクリーン上へ、及びその逆）。
【００２３】
一方、ＦＩＲモードは汎用フィルタ処理（斯かる処理では出力ピクセルの数は、入力ピクセルの数に等しい）に使用される。ＨＦＬにより各処理ステップにおいて消費されるべき入力ピクセルの数及び生成されるべき出力ピクセルの数は、ユーザにより両端の値を含み１と２５６との間となるようにプログラムされる（２５６はカウントを“０”に設定することによりプログラムされる）。処理ステップの終わりにおけるＨＦＬの臨界的状態、又は“前後状況（コンテキスト）”は、ソフトウェア制御の下でメモリブロックに待避することができる。このコンテキストは次の処理ステップの開始時に初期状態として再ロードすることができるので、これら２つの処理ステップは単一の連続したステップと見なすことができる。このコンテキストを待避及びロードするメカニズムは、ＨＦＬが、各処理ステップを全入力ラインが全体として処理されるまでラウンドロビン態様で異なる入力ラインに適用することができるように、複数の入力ラインに同時に作用することを可能にする。ＨＦＬコンテキストの内容は、動作モード（特定のフィルタ処理モード）に依存する。入力ラインが、他の入力ラインに切り換える前に完全に処理されるならば、コンテキストの待避及びロードは必要とされない。何故なら、ＨＦＬは、デフォルトにより、最後の処理ステップからの終了時の状態を次の処理ステップにおける初期状態として持ち越すからである。
【００２４】
斯様な伸張又は圧縮のための多相フィルタの使用についての更なる情報に関しては、前述した米国特許第5,892,695号に図示及び記載された実施例を参照されたい。
【００２５】
各ＨＦＬは２つの独立したフィルタ係数のバンクを含み、各係数は符号付き二進数（例えば、[-0.5,0.5]なる範囲内の１０ビットの数）に対応する。これらのフィルタ係数は、前記入力ピクセル及びコンテキストがロードされるのと同様の態様でメモリブロックからロードされる。ピクセルのフィルタ処理及び係数のロードは、各処理が異なる係数のバンクにアクセスするので、処理ステップの間において並列に生じることができる。
【００２６】
図１の再構成可能なＨＦＬの構成は、有利にも、２つの多相フィルタモード、即ちアップサンプリング及びダウンサンプリング（画像のスケーリング）のための多相直接（伸張及び圧縮の両方の）及び多相転置（圧縮のみ）モード、並びに少なくとも２つの汎用ＦＩＲフィルタモード（デジタルフィルタ処理型信号処理用）をサポートする。更に、図１のＨＦＬは、０．２５ないし８．００のズーム係数をサポートし；可変ズーム係数をサポートし；符号付き１０ビットフィルタ係数のみを使用するように構成することができ；８ビット及び１０ビット入力ピクセルフォーマットをサポートすることができ；２つのバンクのフィルタ係数を保持すると共に、一方の係数のバンクからのピクセルのフィルタ処理及び他方のバンクへの係数のロードを並列に進行させるのを可能にし；多相モードにおいて３２フェーズと６４フェーズとの間での切り換えを可能にし、これによりフィルタ係数の選択性を可能にし；コンテキストを待避及びロードするためのメカニズムを提供し、かくして、各処理ステップにおいて複数の長い入力ライン間で前後に切り換えることをサポートする。更に、該ＨＦＬはピクセルのミラーリング（ラインの開始及び終了における）をサポートするように構成することができる。
【００２７】
１つの特別な例示的アプリケーションのために、図２は再構成可能なデジタルフィルタを実施化するために図１に示す方法を使用したトップレベルのマイクロアーキテクチャを図示している。図２のアーキテクチャ構成は、クロック発生モジュール２１０（図３に更に詳細に示す）と；フィルタ係数の読み取り及びフィルタ処理データのロードを指示するために使用される開始モジュール２１２（図４に詳細に示す）と；フィルタ係数がアクセスされるようにするような制御信号を発生するために使用されるＣＲ（係数読取）モジュール２１４（図５に詳細に示す）と；ＣＲＡＭ（係数ＲＡＭ）アクセスモジュール２２２（図７に詳細に示す）と；ＣＲＡＭ（係数ＲＡＭ）メモリモジュール２２４（図７に詳細に示す）と；データ経路モジュール２２８及び制御モジュール２３０を含む中央フィルタマクロモジュール（図８に詳細に示す）とを含んでいる。
【００２８】
概略的に、図２のフィルタユニット又は装置は、常に活性状態である開始モジュール（又は“トップＦＳＭ”）２１２からの命令に応答してデータを処理する。該開始モジュール２１２は、低いレベルのフィルタモジュールに係数読み取り及びフィルタ処理演算を開始するように指令する。係数読取モジュール２１４は、係数アクセスモジュール２２２に対する制御信号を発生すると共に、データ経路モジュール２２８及び制御モジュール２３０並びに外部的に結合される装置に対して制御信号を発生する責任を持つ主モジュールである。このように、係数読取モジュール２１４は、入力データを読み込み、係数メモリから係数を読み取り、処理されたデータを書き出し、コンテキストを読み込み、及びコンテキストを書き出す責務を負う。
【００２９】
１つの例示的なシステム構成においては、上記フィルタユニットは、マイクロプログラムマスタ制御プロセッサ（ＭＣＰ）により該フィルタユニットのメモリにマップされた制御レジスタ（図示略）のプログラミングを介してプログラムされた複数の機能ユニットのうちの１つである。また、各ユニットは一群の入力及び出力データポートを有し、これらポートは“クロスバーネットワーク”を介してメモリバンクの集合に接続される（従って、この集合におけるメモリは“クロスバーメモリ”とも呼ばれる）。各データポートに関連するものは、当該ユニットにより発生されるnext_location信号である。この信号のタスクは、メモリバンク（又は複数のメモリバンク）にアドレスカウンタを更新して次の読取又は書込動作に対して準備を整えるよう指示することである。このnext_location信号は、入力ポートに関してはnext_read信号に対応し、出力ポートに関してはnext_write信号に対応する。当該ユニットとＭＣＰとの間の通信プロトコルは、各組が１対の信号を有するような２組の信号を使用する。ＭＣＰは、当該ユニットの作業用メモリマップ入力−出力（ＭＭＩＯ）レジスタに一群の値を書き込んだ後、機能ユニットに構成パラメータを上記作業用からシャドウＭＭＩＯレジスタにロードするよう要求するload_conf信号を送る。該ユニットはconf_loaded信号を送ることによって上記要求に肯定応答し、ＭＣＰに対して当該ユニットが次の動作シーケンスのために内部構成を更新し、開始する準備が整ったことを示す。この時点で、ＭＣＰは当該ユニットに対して開始信号を送出し（勿論、当該システムにおける全てのユニットが自身の構成をロードした場合に）、該ユニットは、現在の動作シーケンスの終了時に、ＭＣＰに対してend_operation信号を送ることにより現動作シーケンスが完了したことを通知する。作業用の及びシャドウのレジスタを使用する該方法は、現動作シーケンス（現処理ステップにおける）が依然として進行中の間に、ＭＣＰが次の動作シーケンス（次の処理ステップ用の）をプログラムすることを可能にする。この同時的動作はシステムのレイテンシを最小化する。
【００３０】
１つの例示的アプリケーションシステムの筋書きにおいては、当該フィルタユニットの基本動作は以下の処理ステップを含むと見ることができる。即ち、或る処理ステップにおいて、先ずフィルタ係数をクロスバーメモリから読み取ると共に（前処理ステップが、メモリインターフェースモジュールのＭＣＰに基づくプログラミングを介して、クロスバーメモリを外部のＳＤＲＡＭからの所要の値でロードし、該モジュールはＨＦＬの一部ではないが、オフチップＳＤＲＡＭからオンチップクロスバーメモリに係数及びピクセルデータを取り込む責務を負うことに注意）、内部係数メモリを充填するように当該フィルタをプログラムし（ＭＣＰに基づくＭＭＩＯレジスタプログラミングを介して）、次の処理ステップにおいて、当該ユニットを他のクロスバーメモリからもう一度、実際のビデオデータを読み取るようにプログラムし、フィルタ処理された出力を生成する（当該計算用のフィルタ係数を使用して）。該フィルタ処理された出力は、次いで、クロスバーメモリに書き込まれる（図２に示すように、データ書込ポートHFL_OUTpixel上のHFL_next_wr1信号を介して）。処理の状態に依存して、上記のフィルタ処理された値は、他のビデオ処理ユニットにより更に処理されるか、又は適切なフォーマット変換及び同期挿入の後にスクリーン上で表示されるようにチップから送出される。外部メモリからのフィルタ係数の読み込みは、係数読込ポートHFL_Incoeffに関連するHFL_next_read3信号を介して生じる（図２）。当該ユニットをメモリから実際のビデオデータを読み取るようにプログラムすることは、今度はデータ読込ポートHFL_IN pixel上であるようなHFL_next_read1信号を介して発生する。
【００３１】
他のシステム使用態様は、メモリ読取動作に対して３サイクルのレイテンシを有し（図５の状態マシン図に示す待ちサイクルから明らかなように）、メモリ書込動作に関しては２サイクルのレイテンシを有するものを含む。当該フィルタはアップ又はダウンサンプリングを実行することができるので、該フィルタは入力データに対する出力フローを本質的に変更する。圧縮の場合、当該フィルタは多くのピクセルを読み込むが、少ない出力しか生成せず、伸張の場合は逆となる。当該フィルタ処理ユニットは、ＭＣＰによりその様にプログラムされている場合は、コンテキスト切り換え（１つのビデオラインから他のものへの動作の切り換え）も可能にする。図２を参照すると、これは、コンテキストデータ用の一対の専用読取（HFL_INcontext）及び書込（HFL_OUTcontext）ポートに関連するコンテキスト読取（HFL_next_rd2）及びコンテキスト書込（HFL_next_wr2）信号を介して達成することができる。
【００３２】
図２のＨＦＬが、該ＨＦＬの内部メモリマップ制御バス（ＣＢＵＳ）レジスタ（ＣＲＥＧ）のプログラミングを介して、外部プロセッサ（例えば、ＭＣＰ）により一旦プログラムされると、開始モジュール２１２はＣＢＵＳレジスタ２４０をチェックして、ＮＯＰ（“演算”を要せず）であるかを判定し、その場合には該開始モジュール２１２は当該処理が動作終了モードであることを命令するコードを発生する。ＯＰモードにおいては、開始モジュール２１２は再びＣＢＵＳレジスタ２４０を読み取って、係数読取演算かフィルタ処理演算かを判定する。係数読取演算の場合、開始モジュール２１２は係数読取モジュール２１４に制御係数を第３データ入力を介して読み取り、これら制御係数を係数アクセスモジュール２２２を介してＣＲＡＭメモリモジュール２２４に書き込むように指示する。フィルタ処理演算の場合、開始モジュール２１２は中央フィルタマクロモジュールにデータ及び／又はコンテキスト入力においてデータ及び／又はコンテキスト値を読み取るように指示する。これらの入力は機能ユニットデータ経路モジュール２２８において適切な係数（係数メモリからの）により乗算されて、外部ＨＦＬメモリ、“ＸＢＡＲ”又はクロスバーメモリに書き込まれる所要の出力を生成するが、これらメモリは開始モジュール２１２の制御の下でモジュール２３０によりＨＦＬメモリと相互接続する。
【００３３】
図３は、図２のクロック発生モジュール２１０を拡大された形で示している。クロック発生モジュール２１０は幾つかのクロックツリーゲート（“ＣＴＧ”）を含み、これらゲートは図２に示した他のモジュールにより使用されるゲート及び適切にバッファされた（正しいバランスのために）クロックを発生する責務を負う。オプションとしての電力節約モードの場合、第１ＣＴＧ３１０はオプションのパワーダウンモードが肯定されていない場合はスキャンモードにおいて又は非スキャンモードにおいてイネーブルされる。第１ＣＴＧ３１０は、ＣＴＧ３１２、３１４、３１６、３１８及び３２０と共に、電源管理ロジック（図示略）により発生される信号HFL_top_hold（ＨＦＬがパワーダウンモードにおいて遮断されるべき場合）、HFL_cw_hold（係数が書き込まれていない場合に、係数書込ロジックを遮断するため）、HFL_cr _hold（外部メモリから係数を読み取るためにロジックを遮断するため）、HFL_f_hold（ＮＯＰのため、又は現処理ステップにおいて係数のみが読み取られているために、フィルタデータ経路が不活性状態である場合）によりイネーブルされる。ＣＴＧ３１２は、トップレベル状態マシンが活性状態に留まり、３つのプログラミングモード（ＮＯＰ、整数読み取り及びフィルタ処理）に応答するので、（パワーダウンを除き）イネーブルされる。ＣＴＧ３１２は係数書込状態マシン（図５）及び関連する書込ロジックに供給する係数書込クロックを発生する。クロック枝線HFL_cr_holdに応答して、ＣＴＧ３１４及び３１６も、ＨＦＬがＯＰモードで係数読み取りのためにプログラミングされる場合は、演算の終了までイネーブルされる。クロック枝線HFL_cr_holdに応答して、ＣＴＧ３１８及び３２０も、ＨＦＬがＯＰモードでフィルタ処理演算ためにプログラミングされる場合は、演算の終了までイネーブルされる。最良の動的電源管理は、ＣＴＧを適切な時にのみ且つ必要な時のみにイネーブルすることにより変化される。
【００３４】
図３は、複数のクロック枝路（１つの主クロック枝路からの）を設けるためのクロック発生モジュールを示し、該モジュールにおいては、副枝路（もっと適切には枝線）が強いバッファにより駆動されて、別々のロジックブロック／部分へファンアウトする。この枝路方法は、１つのクロック枝路が許容可能なクロックスキュー限界内で駆動することができる限られた量のロジックの点で有効であると共に、この方法は不活性なロジックに供給する枝路上での選択的なクロック遮断を可能にし（フィルタ処理モードに依存して）、これにより電力を節約するためにも有効である。
【００３５】
図４は、図２の開始モード２１２の機能を図示している。開始モジュール２１２は、異なる処理ステップで発生する、フィルタ係数の読み取りとフィルタ処理データのロードとを指示するために使用される。開始モジュール２１２は、係数並びにデータ読み取り及び書き込みタスクに影響を与えるモジュール（２２２及び２３０）を制御すると共に、主外部（ＨＦＬに対してであるが、オンチップである）マイクロプログラムマスタ制御プロセッサ（例えば、ＭＣＰ）と当該ＨＦＬユニットとの間の通信プロトコルも制御する。図２のモジュール２１０に関連するトップレベル有限状態マシン（ＦＳＭ）の状態図が、フィルタ係数のロード並びにフィルタ処理データの読み取り及び書き込みに関連して使用されている。上記ＦＭＳは、或る処理ステップ（goCoeff=1）においてフィルタ係数が外部メモリから読み込まれるようにさせ、又は他の処理ステップ（goFilter=1）において入力値が読み込まれると共にフィルタ処理された出力が生成されるようにさせるような制御信号を発生する。当該処理が一旦終了すると（Cdone又はFdoneが１となることを介して）、当該状態マシンはアイドル状態に戻り、次の処理ステップを待つ。load_config信号は、構成（コンフィギュレーション）を前記レジスタにおけるプログラミングを介してロードするために使用される。
【００３６】
図４の状態図の部分に示されるように、当該開始モジュールは、load_configコマンドを受けることに応答して（ＭＣＰからフリップフロップ４１２において、且つ、フリップフロップ４１０においてstartコマンドによりイネーブルされた後のみ）状態４１８において活性化され、状態４３０又は状態４３２の何れかに移行する。上記フリップフロップはタイミングの理由でのみ設けられており、従って、ＭＣＰからのグローバル信号（load_config及びstart）はトップレベル状態マシン（チップ上の複数ＨＦＬ様ビデオ処理ユニット）を直接は（これにより大きな負荷に合って、遅い応答に繋がる）駆動せず、登録（レジスタ記憶）されるのみで、斯かる各モジュール（例えばＨＦＬ）にローカルにレジスタ記憶されたものがＦＳＭを駆動する。当該開始モジュールは、start.NOP（即ちＮＯＰモードにプログラムされる場合の開始信号）コマンドを受けることに応答して状態４３０に移行し、次いで、待ち状態４１８に戻る前に遅延状態４３２に移行する。該開始モードは、終了条件又は動作終了信号を入力することに応答してアイドル状態４３０に移行し、ここでは、該開始モジュールは読取又は書込モジュールからCdone又はFdone信号を入力するまでアイドル状態となり、最終的にロードコンフィギュレーション動作終了信号を入力し、次いでアイドル状態４３２を介して待ち状態４１８に戻る。
【００３７】
図４の開始モジュール２１２に対する入力は、ＭＣＯから供給されると共にコンフィギュレーション（制御値）をシャドウから作業用ＣＢＵＳレジスタ（図２の２４０）へロードし、且つ、ロードの１サイクル後にend_op（動作終了）を非活性化するために使用されるload_config；config_loaded出力信号を非活性化した後動作を開始させるためにＭＣＰから供給されるstart；係数の読み取り（処理ステップ）の終了を通知するために係数読取モジュール（図２の２２２）から供給されるCdone；斯様なモードにプログラムされている場合はコンテキストの終了を知らせるフィルタ処理及びデータ書き込み（処理ステップ）の終了を通知するために、演算モジュール（図２の２３０）から供給されるFdone；メモリマップ入力−出力（“ＭＩＭＯ”）モード制御ＣＢＵＳレジスタから供給されて、制御コマンドを通過させるために使用されるHSRC_CTRL[7:0]；クロックモジュール（図２の２１０）によりトップレベルＦＳＭに供給される入力クロックであるようなtfsm_clk；当該開始モジュールのみならず、当該ＨＦＬを全体としてリセットするために使用される非同期リセット信号（活性化状態はロー）であるようなresetBarを含む。
【００３８】
図４の開始モジュール２１２に対する出力は、図２の他のモジュールへも行く登録（レジスタ記憶）された開始信号であるようなstart_p；ＭＣＰに対する当該フィルタ用のコンフィギュレーションのロードの終了を活性化する信号であるようなconfig_loaded；当該処理が完了したことをＭＣＰに示すend_op；主モジュール２３０のデータ読取／書込部にデータの読み取り、処理及び書き込みを開始するよう通知するgoFilter；及び係数アクセスモジュール２２２に対する係数の読み取りを開始させるための信号であるgoCoeffを含む。
【００３９】
図５は、上記開始モジュール（図２の２１２）からの命令に応答してフィルタ係数がメモリから読み取られるようにする（係数読取要求）制御信号を発生するために使用される係数アクセスモジュール２２２（図２の）状態テーブルを図示している。係数アクセスモジュール２２２は、正しいメモリバンクを選択すると共に上記係数を該バンクに書き込むための制御信号も発生する。該係数アクセスモジュール２２２は下記の入力を受ける。即ち、８ビットＭＭＩＯレジスタ（図示略）に対応するHSRC_MODE[7:0]；係数読取動作の開始を通知する指示モジュールから信号であるようなgoCoeff；クロックモジュール（図２の２１０）からの入力クロックであるcfsm_clk；及び前述したような非同期の活性化状態がローのリセット信号であるようなresetBarである。１つの例示的な構成では、図５の状態テーブルは、プログラムされた数（crcounter内の）の係数を読み取るために使用される有限状態マシンの状態動作を示し、ＣＷi（ｉ＝１〜３）は使用されるシステムにおける３サイクルの読取レイテンシを補償する３状態である。
【００４０】
係数アクセスモジュール２２２は以下の出力を発生する。即ち、係数を読み取るための読取要求信号であるHFL_next_rd3；係数読み取りの終了を意味するＦＳＭを停止させる読取完了信号であるCdone；６個の係数が読み取られ係数メモリに書き込まれる３２個のフェーズのうちの１つを指定するフェーズカウンタであるwphi[4:0]；０から７までインクリメントすると共にHFL_coeff_ram_ block（係数メモリを収容する）に進んで、特定のフェーズに対して６個の１０ビット係数を最終的に形成するような８ｘ８＝６４ビットの読み取りを可能にする（４ビット（６４−１０ｘ６）は未使用のまま）バイトカウント信号であるようなbcount[2:0]；当該ＦＳＭが正しい係数ロード状態であることを特定するldstate（HFL_coeff_ramにおける実際のメモリブロックへの書き込み動作を可能にするのに有効）である。
【００４１】
図５の状態テーブルは、所要の数の係数値をクロスバーメモリから読み取ると共に、係数メモリ書込ロジック（図２におけるモジュール２２２）を介して係数メモリ（図２におけるモジュール２２４）に書き込む責務を担う係数読取ＦＳＭ−HFL_cread_fsm又はＣＦＳＭ（図２）−に関するものである。要求信号crreqは、HFL_next_rd3（図２の２１４から）と同一であって、係数を係数メモリに書き込み開始する３サイクル前に活性化される（状態５１０において）。かくして、crreqが状態５２０において一旦上昇されると、該状態マシンはメモリから係数データがストリーム入力開始される前に３つのアイドル状態５４０、５６０及び５８０を横切る。状態５２０は安定した状態であり、この状態では、この係数読取状態マシンは、動作を開始する前にトップレベル状態マシン（図２の２１２）からのgoCoeff信号を待つ。一旦開始すると、３クロックサイクルのレイテンシの後にデータが到来開始する際に、当該状態マシンは係数充填状態５１０に到達し、ここでは、正しいメモリバンクが係数により満たされる。係数読取カウンタ（crcounter）は２５５に初期化され（２５６係数が読み取られるべきである）、この状態において各クロックサイクルで計数をデクリメントするために使用される。所要の数の係数が一旦読み取られると（３サイクルのレイテンシを見込むために上記crcounterが３に到達すると）、Cdoneフラグが立てられ、当該状態マシンはアイドル状態にジャンプする。該Cdoneフラグは、トップレベル状態マシンにより、係数読取動作の終了をＭＣＰに通知するために使用される。
【００４２】
３２フェーズモードにおいては、各６４フェーズメモリバンクの下側又は上側の３２フェーズが書き込まれることに注意されたい。この信号wphi（書込フェーズを示す）は如何なる半バンクに対しても現在のフェーズ（係数群が読み取られ又は書き込まれている）を追跡し、“bcount”（バイトカウント）はHFL_coeff_ramにおけるバイトイネーブルである。更に、wphiは６個の新たな１０ビット係数が読み取られる毎にインクリメントされ、係数メモリ（新たなフェーズに対応する）に書き込まれる。即ち、６０ビットが８つの１０ｂ読取を用いて読み取られ（ここで、読み取られた１０ｂワードの下位側２ビットはその都度破棄される）、その場合において、８ｘ８＝６４の有効なビットは上記１０個の係数の６０ビットを形成し（４ビットは不使用）、読み取られた８バイトはバイトイネーブルの８つの値を用いて書き込まれる（bcount）。該信号crcounterは、何れの時点においても、発生された読取の数を追跡し、零へのカウントダウンが全ての２５６の（フェーズ当たり６係数の場合、＝３２フェーズｘ８読取）値を読み取るように２５５に初期化される。
【００４３】
図６Ａ及び６Ｂは、図２の係数メモリモジュール２２４を図示している。図６Ａは係数ＲＡＭモジュールの部分的ロジックを示し、図６Ｂはクロスバーメモリからの当該ＨＦＬユニットの内部の係数メモリ又は係数ＲＡＭ（図２のモジュール２２４）への係数読み取りの一般的構成を示している。これらのメモリには２つがあり、一方のメモリが充填されることを許される間、以前に充填された他方は現処理ステップにおいてフィルタ処理のために使用されている。
【００４４】
このモジュールは、係数読取ＦＳＭ（HFL_cread_fsm）から種々の制御信号を得て、係数を係数メモリバンクに実際に書き込む責務を負う。このモジュールにおけるロジックは、フィルタ処理ステップにおける各ステップにおいて必要とされる６個の係数を読み取る責務も負う。２つのメモリバンクが存在し、各バンクは６４組の係数を記憶することができる。６個の１０ビット係数からなる１つの組は６４フェーズの各々に対するもので、一方のバンクがフィルタ処理動作のために係数を読み取るために使用される間、他方のバンクは異なる処理ステップにおいて使用されるべき別の組の係数でロードすることができる。
【００４５】
係数メモリモジュール２２４に対する入力は、ＭＭＩＯレジスタHSRC_CTRL[7:0]及びHSRC_MODE[7:0]；６個の係数が読み取られており係数メモリに書き込まれている３２フェーズのうちの１つを指定するcreadモジュールからのフェーズカウンタ信号であるwphi[4:0]；上記creadモジュールからのバイトカウント信号であり、０から７までインクリメントし、coeff_ramブロックに変化して特定のフェーズに対して６個の１０ビット係数を最終的に形成する６４（８ｘ８＝６４）ビットの読み取りを可能にする（４ビット（６４−１０ｘ６）は不使用のまま）ようなbcount[2:0]；６ビット係数読取フェーズ又はHFL_dp_cntrlからの係数読取アドレスであるrphi[5:0]を含む。主状態マシン部（図７）は、係数読み取り、データ読み取り、データ処理、データ書き込み、ピクセルミラーリング、コンテキスト切り換え等を含む種々の動作に対してデータ経路を再構成することによりフィルタ動作を制御するのもで、現ピクセル位置を追跡するカウンタＩＦＣの小数部の６個のＭＳＢ；バンク１用の読取クロックであるclk1；バンク２用の読取クロックであるclk2；バンク１出力におけるレジスタ用のクロックであるclk3；バンク２出力におけるレジスタ用のクロックであるclk4；非同期の活性状態がローのリセット信号であるresetBar；８ＭＳＢが正しい値を持つＸＢＡＲメモリからの信号入力であるHFL_INcoeff[9:0]；当該ＦＳＭが係数ロード状態（ＣＦＩＬＬ）であるかを通知するHFL_cread_fsmからのブール値信号であるldstateに等しい。OUTPUTSはフィルタ処理のために読み出された係数であり、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５、Ｃ６[9:0]と示される。
【００４６】
各メモリバンクに関して、HFL_coeff_ramはHFL_coeff_bankを例示し、これはメモリ発生器により発生される実際のメモリインスタンス“m64x64core_shell”を含むモジュールである。
【００４７】
図６Ａ及び６Ｂを参照すると、当該ブロックの設計及び動作（係数メモリの読み取り／書き込みに関する）は以下のようになる。即ち、BANK2RDはＭＭＩＯ制御信号（ＣＲＥＧからの）であり、該信号は、メモリバンクのre_en（読み取りイネーブル）入力におけるハイの値を保証することにより、フィルタ処理の間における係数を読み取るための２つのバンクのうちの一方を選択する（他方のものは、書き込みをすることができる方である）。係数を書き込むために上記の選択されたメモリバンクをイネーブルするのは、３つの条件の同時的（ＡＮＤ）存在に依存する。即ち、１）正しい係数ロード状態（係数読取ＦＳＭからの）；２）ＭＣＰによりＣＲＥＧにプログラムされたロード係数（LD_COEFF）コマンドが、現処理ステップが係数をロードすることを意図していることを示している；及び３）正しい書込イネーブル（＝１）が、書き込むメモリバンクに接続されている（読み取られていないものであって、従って読み取られているものの相補形又は逆である）である。バンクに対する書込条件が一旦設定されると、係数読取状態マシンは、該マシンの状態を介してサイクル動作を開始し、crreq（＝図２におけるHFL_next_rd3）が活性化されることに応答して、図２のHFL_Incoeffポートで係数データが流入開始する（各クロックサイクル当たり１つ）。
【００４８】
書き込み動作は以下のように進行する。即ち、１）バイトカウント（図５のbcount）が７なる初期値からクロックサイクル毎にインクリメントを開始する；２）bcountに応じて、バイトイネーブル（図６Ａ及び６Ｂにおけるbend）が正しいサブバイトがメモリバンクに書き込まれるように設定される；３）６個の１０ビット係数のための０から７までbcountをカウントする８バイトが、８個の連続するクロックサイクルにおいてメモリバンクのフェーズも示す各アドレスに書き込まれる；４）バイトカウントが７に到達して巡回する毎に（フェーズの６個の全てのアドレスが書き込まれたことを意味する）、０に初期化されると共にメモリ書込アドレスに関連されたwphiが１だけインクリメントされ、かくして、次のメモリロケーションが次のフェーズ値に対応する係数により充填され始める；及び５）これが、２５６の全ての係数がメモリバンクに書き込まれるまで継続する。上記書込アドレスの最上位ビットがCREGWR_HIにハード結線され（図６Ａに示すように）、従って上側又は下側の３２フェーズの何れかが何れの処理ステップにおいても書き込まれることに注意されたい。即ち、４６の全てのフェーズに関する係数がメモリバンクに書き込まれるべきである場合、フィルタ動作が開始する前に２つの連続した係数読取処理ステップが存在するように、WR_HIの値を反転することにより（ＭＣＰによりなされる）全処理がもう一度繰り返されるべきである。
【００４９】
通常のフィルタ処理動作の間においては、係数は、読み取りがBANK2RD CBUSレジスタ（０はバンク１が読みとれることを意味する）のＭＣＰプログラミングによりイネーブルされるメモリバンクから読み取られ、当該フィルタが３２又は６４フェーズモードで動作するかはPHASE32 CBUSレジスタの値に依存する。メモリ読取アドレス（図６Ａ及び６Ｂにおけるc_rd_addr）の６ビットは、主データ経路制御状態マシンモジュール（HFL_dp_cntrl）におけるピクセル位置計算により決定される読取フェーズ(rphi)の関数である。しかしながら、フィルタ処理のために３２フェーズのみが使用される場合は、上記６ビットのメモリ読取アドレスの最上位ビットは、RD_HI CBUSレジスタから得られる（図６Ａに示すように）。このように、PHASE32=0なら、フィルタ処理の間に６４の全てのフェーズが使用され、c_rd_addrは読取フェーズの全６ビットに本質的に等しい（図６Ａのrphi[5]はtopbitに多重化される）が、PHASE32=1なら、c_rd_addrの最上位ビットはRD_HI制御レジスタから直接到来する（ここで、１なる値は選択されたメモリバンクの上側３２アドレス即ちトップ側半部を意味し、零なる値は逆を意味する）。
【００５０】
図７は、図２の主フィルタ再構成可能データ経路モジュール２２８の例示的な構成を図示し、該モジュールは通常の演算フィルタ処理機能の責務を負っている。該モジュール７００は図２のHFL_dp_cntrlブロック２３０により制御される。この例の構成に関連して、図２のブロック２３０は、再構成可能なデータ経路ブロック２２８を制御及び再構成する回路を合成及び発生させるためにＲＴＬヴェリログ設計言語で書かれる。ブロック２３０は、ＸＢＡＲからの入力データ読み取り、ＸＢＡＲへの出力データ書き込み、係数メモリからの係数読み取り、ＸＢＡＲからのコンテキスト読み取り及びＸＢＡＲへのコンテキスト書き込みを制御する。このモジュールは、フィルタ処理の型式（例えば、多相直接“ＰＤ”、多相転置“ＰＴ”、ＦＩＲ１１タップ、又はＦＩＲ１２タップ）及び処理要件（左ミラーリング、非ミラーリング、右ミラーリング、ＦＩＲモードにおける丸め等）に依存してデータ経路を再構成するための種々の制御信号も供給する。“ＰＤ”及び“ＰＴ”を使用することに加えて、他の短縮形は、ＦＩＲ（１１／１２）フィルタ処理に対するＦＩＲ（１１／１２）、左縁ミラーリングに対するＭＬＥ、右縁ミラーリングに対するＭＲＥ、コンテキストのロードに対するＬＤＣＸＴ、及びコンテキストの待避に対するＳＶＸＴを含む。
【００５１】
データ経路の再構成及び動作を制御するモジュール２３０は主に７つの状態を持つ有限状態マシン（“ＦＳＭ”）であり、これらの状態で生じる主たるイベントは以下に示す通りである：
１．DPCIDLE：Fdone信号（異なる状態から到来し、フィルタ処理動作が完了したことを示す）がハイなら、非活性化され、以下の動作が生じる場合、当該ＦＳＭはトップＦＳＭからgoFilterコマンドを受けるまで、この状態に留まる：
−  incount及びoutcount（費やされた入力ピクセル数及び生成された出力ピクセル数）は初期化され、ＭＲＥ＝１（画像ラインの終わりで）なら、右ミラーカウンタ（ＭＣＲ）はフィルタのタイプに応じてミラー処理されるべきピクセルの数（引く１、何故ならカウントダウンは０までであるからである）で初期化される。
−  ＬＤＣＸＴ＝１なら、コンテキスト読取カウンタ（ＣＣ）は、フィルタの型式に依存して読み取られるべきコンテキスト的値の数でロードされ、コンテキストを読み取るために要求が送出され、ＦＳＭは状態ＤＰＣＷ１にジャンプする。
−  ＭＬＥ＝１なら、フィルタの型式に応じて、左ミラーカウンタ（ＭＣＬ）はミラーリングされるべきピクセルの数（引く１、何故ならカウントダウンは０までである故）により初期化され；その値が、書き込むこと無しにもっとピクセルをシフト入力すべきか又は今まで計算された結果を書き戻すべきかを決定するフィルタ処理イベントフラグ（ＲＳＶＡＬ）が初期化され、位置及びフェーズカウンタ（ＩＦＣ）が初期化され、ミラーリングピクセルがＸＢＡＲから（HFL_next_rd1に接続されたreqmlを活性化することにより）要求される（入力値がミラーリング期間にわたり保持されるようなＰＴ＝１の場合を除いて）。ＰＴ＝１に対しては、start_write信号が初期化される。何故なら、この信号はデータ経路が結果をＸＢＡＲに書き込むのを可能にするために、ミラーリング期間の終わりで活性化されるからである。
−  フィルタ処理が如何なるコンテキスト又はミラーリング処理なしで即座に開始しなければならない（即ち、ＬＤＣＸＴ＝ＭＬＥ＝０、及びハードウェアは前の処理ステップにおいて停止した箇所から継続しなければならない）場合、ピクセルをデータ経路レジスタに供給するマルチプレクサを制御する種々の制御信号CR,
S1U, S1D, S2U, S2D, S3U,S3DAB, S3DC（図７）はフィルタの型式に応じて再初期化され、当該ＦＳＭは状態ＤＰＣＦＰにジャンプする。
２．ＤＰＣＷ１：ＬＤＣＸＴ＝１なら、mux制御（図７）はコンテキスト値をロード入力するために適切に設定され、それ以外の場合、mux制御は左ミラーリングのためにフィルタの型式に応じて適切に設定される（設定が既に正しいＰＴ＝１の場合を除いて）。これは遅延状態である。当該ＦＳＭはＤＰＣＷ２にジャンプする。
３．ＤＰＣＷ２：当該ＦＳＭはＤＰＣＷ２にジャンプする。これは、正に通常の遅延状態である。
４．ＤＰＣＷ３：ＰＤ＝１なら、左ミラーリングピクセルの要求（reqml）は非活性化される。何故なら、該要求は既に必要とされる３サイクル（３サイクルレイテンシの間）にわたりハイであり、所要の３ビットを得るからである。ＭＬＥ＝１なら、incountが既に費やされたミラーリングピクセルに関して調整され、当該フィルタがＰＴモードでないなら、ピクセルをデータ経路レジスタにシフト入力すべくデータ経路を準備するためにシフト信号が活性化される。次のＦＳＭ状態はＤＰＣＣＭである。
５．ＤＰＣＣＭ：ＬＤＣＸＴ＝１なら、フィルタの型式及びＣＣ値に応じて、コンテキスト値、即ちＩＦＣ（更新された且つ現在のピクセル位置）、ＲＳＶＡＬ（前と現在のピクセル位置の間の差）、ズームパラメータ及びデータ経路レジスタ内容、が順にロードされ、ＣＣが各サイクルにおいて更新される。フィルタの型式に応じて、シフト信号（値をデータ経路レジスタの上側又は下側区域にシフトするために要するoshifthi及びoshiftlo）も、コンテキスト値をデータ経路レジスタの上部又は下部にロードすべく（上部が最初にロードされ、次いでロードへの途中において、下部へのシフト入力が開始する）適切に活性化及び非活性化される。コンテキスト値の要求信号（reqc）も適切な時点で活性化及び非活性化されるので、ＸＢＡＲメモリポインタは誤ってインクリメントされることはない。コンテキストをロードした後、当該ＦＳＭはＤＰＣＦＰにジャンプする。ＬＤＣＸＴ＝０であり且つモードがＰＴでない場合は、ＭＣＬは０に到達する（この時点で、当該ＦＳＭはＤＰＣＦＰにジャンプする）まで各サイクルにおいてデクリメントされる。ミラーカウンタの値に応じて、ミラーピクセルの要求（reqml）は、ミラーリングに要するピクセル数に等しい数のサイクルにわたり維持された後、非活性化され、データ経路mux制御（Ｓ３Ｕ）は非活性化され、データ経路レジスタシフト信号（oshifthi及びoshiftlo）は非活性化される。ミラーリングが完了し、ミラーピクセルが既にデータ経路レジスタ内となった後に、全てのデータ経路mux制御は、フィルタ処理動作のために設定される（フィルタの型式に応じて）。
６．ＤＰＣＦＰ：これは、実際のフィルタ処理動作が生じている状態である。詳細に説明する前に、この状態において何が進行するかの基本概念は次の通りである。incount及びoutcountが零になるまで（同時の零の値は、処理ステップの終わりを意味する）、出力ピクセルの位置及びそのフェーズが継続的に計算される。
【００５２】
上記フェーズ情報は、係数メモリから係数をルックアップするために使用される。ＰＤの場合は（ＦＩＲの場合は、一定のフェーズのＰＤ及び１に等しいズームに類似している）、ＩＦＣ及びＲＳＶＡＬは、IFC(t)= IFC(t-1) + 1/zoom; RSVAL = [IFC(t) - IFC(t-1)] の整数部のように更新され、ズームレジスタの小数部からの適切なキャリー出力により決定される（ズーム８に関連して説明するように）ＲＳＶＡＬ＞０の場合は何時でも、デクリメントされ、入力ピクセルはＲＳＶＡＬ＝０となるまでシフト入力され、この時点でフィルタ出力がＸＢＡＲに書き込まれる。ＰＴの場合は、IFC(t)= IFC(t-1) + zoom; RSVAL = [IFC(t) - IFC(t-1)]の整数部となる。そして、ＲＳＶＡＬ＝０である限り、入力ピクセルは、ＲＳＶＡＬが０より大きくなる（その際に、フィルタ出力はＸＢＡＲに書き込まれる）まで、読み取られると共にシフト入力される。全てのフィルタの型式に対する右ミラーリングも、この状態においてミラーカウンタ及びデータ経路ｍｕｘ制御部を適切に制御することにより処理される。
【００５３】
ＰＤモードにおいては、位置及びフェーズの事前計算を実行するために特別の注意が払われる（この記載（writeup）において使用されたように、RSVALcur又はＲＳＶＡＬから区別するために信号bflag及びRSVALnxtを使用して）。現位置及びフェーズがフィルタ処理された値のｘｂａｒへの書き込みを要求する場合にも停止することなく次の位置及びフェーズが計算されるような、事前計算なしでは、書き込みのために１サイクルが失われるであろう。ｘｂａｒに対するフィルタの結果、従ってzoom= 0.5で処理されたｎピクセルは、最悪の場合、許容不可能な２ｎサイクルが掛かる。
【００５４】
データ経路はパイプライン化されているので、フィルタ処理された結果をＸＢＡＲに書き込む判定は、複数のフリップフロップを介して書込要求として伝達されるので、この信号はＸＢＡＲに出力データが到達するのと同時に到達する。同様に、係数のアドレス（フェーズ）及び係数メモリからの実際の係数も、変化する数のフリップフロップを介して伝達されるので、乗算係数はデータ経路に正しい時間に到達する（ＸＢＡＲのメモリ読取レイテンシ及びパイプラインを見込んだ後に）。
【００５５】
ＳＶＣＸＴ＝１なら、データ経路ｍｕｘ制御部はコンテキスト値が書き出され得るように設定され、当該ＦＳＭはＤＰＣＣＯにジャンプする。それ以外の場合、該ＦＳＭは、end_of_op信号を活性化した後、DPCIDLE状態に戻る。
７．ＤＰＣＣＯ：この状態はＳＶＣＸＴ＝１の場合のコンテキスト出力のためのものである。フィルタの型式とＣＣ値とに依存して、ＣＣは各サイクルにおいて更新され、データ経路出力ｍｕｘ制御部（ＣＣＳ）は正しいコンテキスト値を書き込むために割り当てられる。コンテキストを書き出した後、当該ＦＳＭはDPCIDLE状態に戻る。
【００５６】
各構成要素の上記機能に鑑みると、データ経路モジュール７００の詳細は、図８に示す水平フィルタ８００を用いて最もよく理解される。即ち、図８は、上記データ経路の幾つかの特定のフィーチャ及び図７の６個の同様に構成されたスライス７１１〜７１６として概略的に図示された制御モジュール（図２の２２４、２２８及び２３０）を含むような中央フィルタマクロモジュールを示している。該水平フィルタ８００に対する入力は、HFL_INピクセルライン８１０に沿うピクセル、及びHFL_IN係数ライン８１２に沿うフィルタ係数データである。上記ピクセルはデータ経路８２０により入力され、上記フィルタ係数データは係数メモリ回路８２４により入力され、係数メモリアドレス指定は回路８３１により供給され、回路８３２〜８３７は現フェーズ、従って使用する係数の特定の組、及び次のクロックサイクルにおける動作（新入力ピクセルのシフト入力し、又は如何なる新ピクセルも読み込むことなく次の出力を生成し続ける）を決定するためのメカニズムを提供する。
【００５７】
データ経路８２０は６個の並列な加算回路を含み、これら加算回路の１つが８２０ａに示されると共に、乗算段８２０ｂに供給する。乗算段８２０ｂは６個の並列な乗算回路を有し、これら乗算回路の１つのみが図示されている。６個の並列な乗算回路８２０ｂの出力は、対応して配置された加算回路８２０ａに入力として帰還される。最初の５つの並列な加算回路８２０ａの各々からの出力は、これら並列な加算回路８２０ａの次のものへ累積入力としてフィードフォワードされる。上記並列な加算回路８２０ａの最後のものの出力は累積された値となり、該値は最後のスライスにおける乗算段を駆動し、出力はライン８５２にフィルタ処理された／スケーリングされた水平ピクセル値を供給する。メモリバンク８５６がフィルタ係数により一旦書き込まれる（満たされる）と、該バンクは次の処理ステップにおいて当該フィルタデータ経路により読み出される準備が整い（従って、当該フィルタ処理動作は潜在的に進行し得）、一方、バンク８５８はオプションとして新たな組の係数値により書き込まれることができる。回路８３２〜８３７は、ズーム値の更新、従って、次のクロックサイクルにおいて使用されるべき係数の組を読み出す係数メモリバンクアドレスを決定する現フェーズ（入力に対しての現出力位置に対する）の計算の責務を負い、このフェーズは次のクロックサイクルにおいてとられるべき動作（例えば、新入力ピクセルをシフト入力する、又は如何なる新ピクセルも読み込むこと無しに次の出力を生成し続ける）も決定する。ズーム値（使用される多相フィルタモードに応じて、又はその逆数）はクロック毎に更新され、インクリメントされた値の小数部が現フェーズとなる。計算された小数部（８３６）及び計算された整数部（８３３）は、レジスタ８３７及び８３４に各々記憶される。上述した動作を決定するのは、ズーム更新計算において得られる、小数部（８３７）から整数部（８３４）へのキャリー出力である。write_memoryバンク８５８は、HFL_nxt_rd3信号に応答して、HFL_Incoefficient信号からロードされる。
【００５８】
図９に示され、且つ、図８のデータ経路８２０と一貫して、フィルタ演算に使用された当該データ経路構成は３つの主要な部分、即ち直接入力パイプライン９１０、乗算器段９２０及び累算器９３０、を有するものと見ることができる。直接入力パイプライン９１０は、乗算器へ送られるべき値を準備する（この例では、“直接入力パイプライン”として知られている）。乗算器段９２０は、直接入力パイプライン９１０から到来する値を係数倍に乗算する乗算器回路の段である。累算器９３０は、乗算及び累算の６つの結果の和を実現する。
【００５９】
図９の直接入力パイプライン９１０は、１２のピクセル値を処理するように構成され、対称ＦＩＲアプリケーションに対しては加算を実行する。該直接入力パイプラインのもっと詳細な例示的構成は、図１０の入力パイプライン構造を介して示される。図１０において、ピクセル値は１２の異なるレジスタに記憶される。本質的に、６つの段の各々はフリップフロップ１０１０及び１０１２の各出力を加算するように構成されている。フリップフロップ１０１０及び１０１２の各入力は当該フィルタの構成に基づいて選択されたポートに接続される。当該加算器の各々は前段から供給されるcarry_in値を入力する。
【００６０】
図１１は、図１０の１２のレジスタがどの様に加算器に繋がるように構成されるかを示し、後続の３つの図（図１２〜１４）は、新ピクセルが1/z整数レジスタ（図８の８３４）のインクリメントにより規定されるようにシフト入力される場合のデータの流れを表している。ピクセルがシフト入力されない場合は、各レジスタは最終値を維持する（図１１には図示せず）。１２タップの対称ＦＩＲ構成の場合においては、各レジスタは図１１に示すように単に前のものに接続される。１１タップ対称ＦＩＲ構成の場合は、Ａ及びＡＡ（図１２では符号１２３０及び１２３２により示す）は同一の値を入力するので、１２以上のピクセルのシフト入力のためのデータにより当該パイプラインが初期化された後、これらの両者には値in[pos+5]が記憶される。結果として、６個の加算器（図１２の１２０７）の出力は依然としてin[pos+5]である。X + X + carry ＞＞ 1 = Xなる関係に鑑み、これは数学的に成り立つ。
【００６１】
図１３は、図１０の１２のレジスタが６タップ多相フィルタの場合にどの様に構成されるかを示している。この構成において且つ上述したのと同一の特性を使用するために、各シフト入力値は２つのレジスタに記憶され、これら２つのレジスタが同一の加算器に接続される。
【００６２】
ここで図７に示したデータ経路を参照すると、該機能ユニットはデータ経路フィーチャHFL_dp_slice1 (１倍), HFL_dp_slice2 (２倍), HFL_dp_slice3 (3倍), and HFL_dp_slice4（１倍）を含み、ここで、４番目のスライスは６個のスライス７１１〜７１６の回路以外の図７に示す回路に対応する。再使用可能なコードを有するために、各スライスにおける回路の殆どは６個のスライス７１１〜７１６の各々に共通な設計である。この同一の回路（各スライスの内部で開始される“HFL_dp_common”）は、マルチプレクサ７１８を除きスライス７１３に示される全ての回路により例示されている。
【００６３】
図１０〜１３に関連して前述したように、図７のデータ経路は１２のフリップフロップ（“ＦＦ”）の再構成可能な接続を有している。該再構成は、フィルタの型式及び現在の動作タイプ（コンテキスト読み取り、フィルタ、コンテキストの待避）に基づくものである。上記ＦＦの再構成は、種々の戦略的マルチプレクサへの選択信号の選択を介して実行される。データ経路制御ＦＳＭ（先に説明したように７つの状態を備える）は、正しい時間での正しい制御信号を発生する責務を負う。
【００６４】
図７に示した各ＦＦは実際にトップＦＦ部分及びボトムＦＦ部分を持つＦＦ型回路であり、これら部分の各々にshifti及びshifto信号を用いて別個にロードすることができるものであることが理解されるであろう。マルチプレクサ（図７においてＳ＊、即ちＳ１Ｕ、Ｓ２Ｄ、Ｓ２Ｕ等に接続された）により入力が供給される斯かるトップ及びボトムＦＦは、実際にはマルチプレクサＦＦとして構成され、その場合に該マルチプレクサ（図示略）は実際に上記shifti及びshifto信号により制御される。図１４及び１５は、図７の再構成可能な回路構成に使用される同様に構成された“スライス”回路のトップ及びボトム用のマルチプレクサ（“ｍｕｘ”）構成を各々示している。
【００６５】
図７の追加のフィーチャ及び態様を説明する前に、１２のフリップフロップ（２つの行における）に１から１２まで時計方向に符号が付され、その場合に、上側の行における最左端のＦＦは１なる番号が付され、上側行の最右端のＦＦは６の番号が付され、行２の最右端のＦＦは７なる番号が付され、行２の最左端のＦＦは１２の番号が付される。更に、以下の説明においては、ｉ番目のＦＦはＦＦｉとして参照され、ここで、ｉは１と１２との間の整数である。
１．文字ａ、ｂ、ｃ、…、ｆにより印されたラインは、特定の状況に対してデータが流れるラインを示している。例えば、“ａｅ”は、当該ラインが“ａ”（多相直接）及び“ｅ”（ラインの始点でのミラーリング）の場合に対して活性化されることを意味している。これらの文字に関する説明は図７の右上角に示されている。
２．例えば多相直接の場合にラインの始めにおいてミラーリングを行うために、読み込まれた最初の３つのピクセルはＦＦ１ないし３に供給されねばならないのみならず、ＦＦ４ないし６にも逆の順序で供給されねばならない。これによりp3 p2 p1 p1 p2 p3なるパターンが得られ、ここで、ｐiはｉ番目の読み込まれたピクセルを示す。このパターンは、マルチプレクサ選択ＣＲ＝０（LINE INが通過するように）、ＳＵ１＝１、Ｓ２Ｕ＝０及びＳ３Ｕ＝１（ＦＦ１、ＦＦ２及びＦＦ３がシフトレジスタの態様で接続されると共に、読み込まれた３つのピクセルが正にシフトして通過する（p3, p2 , p1のように）一方、ＦＦ１、ＦＦ２及びＦＦ３にシフト入力されるものがミラーリングを達成すべくＦＦ６、ＦＦ５及びＦＦ４に各々シフト入力されるように）とプログラミングする（前記データ経路状態マシンから）ことにより達成される。
３．上記モードにおいて、下側のＦＦ（７〜１２）は上側ＦＦ（６〜１）と同一の値を有していなければならない。この目標は、マルチプレクサ選択をS1D = S2D = S3DAB = S3DC = 0とプログラミングすることにより達成される。理解されるように、この状態は下側ＦＦのマルチプレクサされた入力を上側ＦＦの入力に接続するので、トップ行及びボトム行のＦＦは同一の値をシフト入力する。
４．ラインの終わりでミラーリングを行うために、トップ行の最初の３つのＦＦ（１〜３）は最後の３つのＦＦ（４〜６）と同一の値を逆の順序で入力する。従って、最後の３つの値がＦＦ４〜６にシフト入力されるクロックサイクルに対しては、Ｓ１Ｕ＝０とプログラムされ、次いで帰還路がＦＦ１〜３をＦＦ６〜４のものと等しい値で充填されるように（クロック毎に）ＥＭＳを適切に変更する。
５．信号“ＲＮＤ”は、真の場合に、デジタルのもののキャリーを加算器に供給することにより丸めを可能にするようなマルチプレクサ二進選択信号である。
６．ＰＴ＝１である多相転置モードにおいては、乗算器の前のマルチプレクサは乗算器入力がLINE INから直接到来するように選択し、乗算器出力（同一の入力掛ける異なる係数）は累算さてレジスタに記憶されるように加算器に送られる。各スライスにおいて対を形成するトップ及びボトムレジスタが、上記累算のための高精度値を記憶するために使用される。ＰＴ＝０ではあるが、他の全てのモードにおいては、各スライスの上記トップ及びボトムレジスタは先ず加算されて右にシフトされ、次いで、係数により乗算される。従って、データ経路ＦＳＭからの適切な制御信号が、フィルタ処理モードに依存した演算処理の異なる順序を可能にする。ＰＴにおいては、乗算が累算により後続され、それ以外では、加算に乗算が後続する。
【００６６】
このように、本発明の種々の実施例は、多相直接、多相転置、ＦＩＲ１１タップ及びＦＩＲ１２タップの組（これに限定されるものではない）から選択される如何なる組み合わせも含むような複数フィルタ処理モードを有するハードウェア再構成可能型デジタルフィルタを提供するように実現することができる。上述した種々の実施例は解説としてのみ提供されたもので、本発明を限定するものと見なしてはならない。上述した説明及び図示に基づいて、当業者であれば、ここに図示及び記載された例示的な実施例及びアプリケーションに厳格に従うことなく本発明に対して種々の修正及び変更することができることは容易に認識するであろう。斯様な修正及び変更は、添付請求項に記載した本発明の真の趣旨及び範囲から逸脱するものではない。
【図面の簡単な説明】
【００６７】
【図１】図１は、例示的な再構成可能なデジタルフィルタの概略ブロック図を示す。
【図２】図２は、上記再構成可能なデジタルフィルタを使用するための特定の例示的な環境に適用された、全体の機能ユニットの特定の例示的なトップレベルのマイクロアーキテクチャを示す。
【図３】図３は、図２に示すモジュールの本発明による拡張構成を示すもので、クロック発生器モジュールを示す。
【図４】図４は、図２に示すモジュールの本発明による拡張構成を示すもので、フィルタ係数のロード並びにフィルタ処理データの読み取り及び書き込みに関して使用されるトップレベルの有限状態マシン（ＦＳＭ）モジュールの状態図を示す。
【図５】図５は、図２のモジュールとの関連で使用される、プログラムされた数の係数を読み込むために使用される有限状態マシンの例示的構成を状態テーブルの形で示す。
【図６Ａ】図６Ａは、図２の係数ＲＡＭモジュール用の部分的ロジックを示す。
【図６Ｂ】図６Ｂは、図２の内部係数メモリへの係数の読み込みの概略構成を示す。
【図７】図７は、図７Ａと図７Ｂとの関係を示す。
【図７Ａ】図７Ａは、演算制御及び一般処理機能を提供する中心の構成可能なフィルタモジュールの一部を示す。
【図７Ｂ】図７Ｂは、演算制御及び一般処理機能を提供する中央の構成可能なフィルタモジュールの残部を示す。
【図８】図８は、図２に示すデータ経路モジュール及び制御モジュールを含む、本発明による中央フィルタマクロモジュールを示すデータ回路／フロー図である。
【図９】図９は、図８のモジュールとの関連で使用するフィルタ演算用のデータ経路構成を示すデータ回路／フロー図である。
【図１０】図１０は、図８及び図９に示すデータ経路構成との関連で特定の多相直接フィルタ処理アプリケーションに使用される入力パイプライン構造を示すデータ回路／フロー図である。
【図１１】図１１は、図１０の回路の本発明による特定のアプリケーション（ＦＩＲ１２）用の他の構成を示すデータ回路／フロー図である。
【図１２】図１２は、図１０の回路の本発明による特定のアプリケーション（ＦＩＲ１１）用の他の構成を示すデータ回路／フロー図である。
【図１３】図１３は、図１０の回路の本発明による特定の多相転置フィルタ処理アプリケーション用の他の構成を示すデータ回路／フロー図である。
【図１４】図１４は、図７の再構成可能な回路配置に使用される、本発明による同様に構成された“スライス”回路のトップフリップフロップのマルチプレクサ構成を示す回路図である。
【図１５】図１５は、図７の再構成可能な回路配置に使用される、本発明による同様に構成された“スライス”回路のボトムフリップフロップのマルチプレクサ構成を示す回路図である。
【図１】
2004534446.tif 000003
【図２】
2004534446.tif 000004
【図６Ａ】
2004534446.tif 000005
【図６Ｂ】
2004534446.tif 000006
【図７Ａ】
2004534446.tif 000007
【図７Ｂ】
2004534446.tif 000008
【図８】
2004534446.tif 000009
【図９】
2004534446.tif 000010
【図１０】
2004534446.tif 000011
【図１４】
2004534446.tif 000012
【図１５】
2004534446.tif 000013
【国際公開パンフレット】
2004534446.tif 000014
2004534446.tif 000015
2004534446.tif 000016
2004534446.tif 000017
2004534446.tif 000018
2004534446.tif 000019
2004534446.tif 000020
2004534446.tif 000021
2004534446.tif 000022
2004534446.tif 000023
2004534446.tif 000024
2004534446.tif 000025
2004534446.tif 000026
2004534446.tif 000027
2004534446.tif 000028
2004534446.tif 000029
2004534446.tif 000030
2004534446.tif 000031
2004534446.tif 000032
2004534446.tif 000033
2004534446.tif 000034
2004534446.tif 000035
2004534446.tif 000036
2004534446.tif 000037
2004534446.tif 000038
2004534446.tif 000039
2004534446.tif 000040
2004534446.tif 000041
2004534446.tif 000042
2004534446.tif 000043
2004534446.tif 000044
2004534446.tif 000045
2004534446.tif 000046
2004534446.tif 000047
2004534446.tif 000048
2004534446.tif 000049
2004534446.tif 000050
2004534446.tif 000051
2004534446.tif 000052
2004534446.tif 000053
2004534446.tif 000054
【国際公開パンフレット（コレクトバージョン）】
2004534446.tif 000055
【国際調査報告】
2004534446.tif 000056
2004534446.tif 000057
2004534446.tif 000058
2004534446.tif 000059