JP4307987B2 - 複数のフィルタ処理モードを有する再構成可能型デジタルフィルタ - Google Patents

複数のフィルタ処理モードを有する再構成可能型デジタルフィルタ Download PDF

Info

Publication number
JP4307987B2
JP4307987B2 JP2003501062A JP2003501062A JP4307987B2 JP 4307987 B2 JP4307987 B2 JP 4307987B2 JP 2003501062 A JP2003501062 A JP 2003501062A JP 2003501062 A JP2003501062 A JP 2003501062A JP 4307987 B2 JP4307987 B2 JP 4307987B2
Authority
JP
Japan
Prior art keywords
digital filter
filtering
circuit
filter
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003501062A
Other languages
English (en)
Other versions
JP2004534446A (ja
Inventor
サンタヌ ドゥッタ
ディヴィッド モルター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
NXP BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP BV filed Critical NXP BV
Publication of JP2004534446A publication Critical patent/JP2004534446A/ja
Application granted granted Critical
Publication of JP4307987B2 publication Critical patent/JP4307987B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0248Filters characterised by a particular frequency response or filtering method
    • H03H17/0264Filter sets with mutual related characteristics
    • H03H17/0273Polyphase filters
    • H03H17/0275Polyphase filters comprising non-recursive filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0294Variable filters; Programmable filters

Description

本発明は、異なるフィルタ処理モードのために再構成可能なハードウェアアーキテクチャ型デジタルフィルタに関する。
マイクロプロセッサ及びデジタル信号プロセッサを含むコンピュータ装置は、広い範囲のアプリケーションのために設計されており、事実上全ての工業において使用されている。種々の理由により、これらアプリケーションの多くはビデオデータの処理に関するもので、最小レベルの電力消費及び小型さを必要としている。幾つかのアプリケーションは、更に、実効的にリアルタイムで又は略リアルタイムで動作し得るような高速計算エンジンを必要としている。これらのビデオ処理アプリケーションの多くは、複数の機能を益々増加する速度で実行することができるようなデジタル信号処理回路を必要としている。
残念ながら、高いデータ処理速度を達成し、且つ、複数の機能を提供することは対立する方向である。例えば、典型的には有限インパルス応答(FIR)又は無限インパルス応答(IIR)フィルタ処理を含む汎用ビデオ信号処理は、ビデオデータをリアルタイムで圧縮及び伸張する等の専用のビデオデータフィルタ処理と比較した場合、相対的に遅い。専用のビデオデータフィルタ処理に関して使用される計算的アーキテクチャは、典型的には、ビデオデータのリアルタイム速度に追いつくように最適化されるので、専用のビデオデータフィルタ処理は、典型的には、汎用のビデオ信号処理に関連する種々のタスクを実行するには余り効率的ではない。
幾つかのアプリケーションにおいて有効なのは、“多相”フィルタとして知られている或るタイプの専用ビデオデータフィルタである。ビデオ処理アプリケーションにおいて、多相フィルタは、時には、表示をリフレッシュするために使用される水平及び垂直ラインを表すために記憶されたデータを操作することにより、ピクセルをサイズ変更(resize)するために使用される。斯様なアプリケーションにおいて、入力ピクセル数に対する出力ピクセル数の比はズーム係数として定義されるが、汎用フィルタ処理に関しては、出力ピクセル数は入力ピクセル数に等しい。ズーム係数が1より大きい場合、上記サイズ変更処理は伸張又はアップサンプリングとしても知られ、それ以外の場合、斯かるサイズ変更処理は典型的には圧縮又はダウンサンプリングとして知られている。通常、固定のズームを得るために画像をサイズ変更(拡大又は縮小)するためには、多相フィルタは、該フィルタの係数が、処理されているピクセルの位置又は位相の関数として定義されるようにして実施化される。高精度ビデオアプリケーションにおいてサイズ変更を行うには、多相フィルタは、当該精度を達成するために要する数学処理を調整するためのもっと固有なアーキテクチャで実施化される。典型的には、このタイプの多相フィルタ処理は、“多相転置(polyphase-transposed)”フィルタ処理と呼ばれる形態で実施化される。もっと典型的なビデオアプリケーションの場合、多相フィルタ処理は、FIRフィルタ処理のような汎用フィルタ処理と一層共通な計算的アーキテクチャを使用して多相直接フィルタとして実施化される。汎用フィルタ処理及び多相転置フィルタ処理におけるような特定の専用フィルタに各々関連する必要な数学処理のために、アーキテクチャ的な非互換性の結果、これら汎用フィルタは斯様な専用フィルタとは別個に設計されている。多相フィルタの更なる詳細及び例示的構成に関しては、本譲受人に譲渡されたVan Dalfsen他による“サンプルレート変換”なる名称の米国特許第5,892,695号を参照されたいが、該米国特許は参照により全体として本明細書に組み込まれるものとする。
上述したビデオ処理アプリケーションの各々においては、斯様な機能を提供するために使用される集積回路の設計、製造及び維持に関して大きなコストが掛かる。指定されたフィルタ処理モードがアーキテクチャ的に非互換的であるような各アプリケーションにおいては、追加的アーキテクチャに関連するコストも重大となる。従って、データ処理スループットの重大な損失無しに、これらの複数のフィルタ処理モードを許容するような比較的小型のビデオ処理フィルタのアーキテクチャを開発することに対する良く認識された需要が存在する。
本発明は、上述した挑戦に挑むと共に、異なるタイプのフィルタ処理モードに対して再構成可能であるハードウェア構造を提供するようなプログラマブルデジタルフィルタを指向するものである。本発明は複数の構成及びアプリケーションにおいて例示され、これらの幾つかが以下に要約される。
一実施例によれば、本発明は複数のフィルタ処理モードを有するハードウェアの再構成可能なデジタルフィルタを提供する。該デジタルフィルタは、論理回路、モード選択回路及び計算回路を有している。上記論理回路はXxYのアレイのレジスタ(ここで、X及びYの各々は少なくとも2である)を有し、入力データを処理するように構成されている。上記モード選択回路は当該プログラマブルデジタルフィルタを異なる複数のフィルタ処理モードの間で切り換える。上記計算回路は上記論理回路に計算を実行することにより応答するもので、少なくともY個の乗算論理回路と少なくともY個の加算論理回路とを含んでいる。もっと具体的な実施例においては、上記乗算及び加算論理回路の各々は、これら乗算及び加算論理回路の他のものにY方向に沿って選択的に結合される出力端子及び入力端子を有し、上記フィルタ処理モードは多相フィルタ処理アプリケーション及び汎用フィルタ処理アプリケーション(FIRフィルタ処理のような)を含んでいる。
他のもっと具体的な実施例においては、上記フィルタ処理モードは多相直接フィルタ処理、多相転置フィルタ処理及び少なくとも1つの汎用フィルタ処理を含み、上述したレジスタアレイは、選択された汎用フィルタ処理に対してはリニア(直線的)アレイとして構成可能であると共に、他の選択されたフィルタ処理に対しては二次元アレイとして配列される。
他のもっと具体的な実施例によれば、本発明は類似したハードウェアの再構成可能なデジタルフィルタを指向するもので、この場合、上記論理回路はフィルタ入力に対応するデータをビデオ画像セグメント内の選択された目標ノードに対応するデータ点に対して処理及び鏡映(ミラー処理)するように構成されている。該論理回路はXxYのレジスタアレイを含み、ここで、YはXより大きく、Xは少なくとも2である。前記モード選択回路は、当該プログラマブルデジタルフィルタを多相転置フィルタ処理モードと、前記複数のフィルタ処理モードのうちの少なくとも1つの他のモードとの間で切り換えるようになっている。前記計算回路は上記論理回路に応答して計算を実行するように構成されると共に、少なくともY個の乗算論理回路と少なくともY個の加算論理回路とを含んでいる。これら乗算及び加算論理回路の各々は互いに選択可能に結合される出力端子及び入力端子を有し、該選択性は前記モード選択回路に応答したものである。
他の態様及び利点は、本発明の特定の実施例に関連している。
上述した本発明の概要は解説された各実施例又は本発明の全ての実施構成を説明しようとするものではない。図面及び以下に続く詳細な説明は、これら実施例を一層具体的に例示するであろう。
本発明は、以下に添付図面を参照してなされる本発明の種々の実施例の詳細な説明を考察すると一層完全に理解されるであろう。
本発明は種々の変形例及び代替例の形態に順応するものであるが、これらのうちの特定のものが例示として図面に示され、以下に詳細に説明されるであろう。しかしながら、本発明は、記載される斯かる特定の実施例に限定されるものではないと理解されるべきである。逆に、本発明は、添付請求項により規定される本発明の趣旨及び範囲内に入る全ての変形例、均等物及び代替例を含もうとするものである。
本発明は、種々の異なるタイプのフィルタ処理アプリケーションに適用可能であると信じられるものであり、複数のフィルタ処理モードの何れにおいても動作するように容易に再構成することが可能なデジタルフィルタアーキテクチャの利益を享受するビデオ処理アプリケーションにとり特に有効であることが分かった。本発明の種々の態様は、これらのアプリケーションを使用する例の説明を介して理解されるであろう。
本発明の第1実施例が図1に示されている。図1は、選択可能なフィルタ処理モードを有するハードウェアの再構成可能なデジタルフィルタ100を提供する。該デジタルフィルタ100は、モード選択回路110と、論理回路112と、計算回路114とを含んでいる。論理回路112は、XxYのレジスタアレイを有し、メモリ120から入力データインターフェースロジック122に渡される入力データを処理するようになっている。計算回路114は、該計算回路114のCYブロックの各々内で、乗算論理回路及び加算論理回路を使用して計算を実行することにより、上記論理回路112に応答する。当業者であれば、上記XxYのレジスタアレイが解説目的のみのために2x4のアレイとして図示され、フィルタ処理アルゴリズムの特定の実施及び選択が該アレイの実際の大きさを支配することを理解するであろう。モード選択回路100は、プロセッサを含み、これにより、当該フィルタ100用の制御処理動作及びフィルタ処理モード選択動作の両方を提供するように図示されている。しかしながら、他の特定のアプリケーションは、モード選択回路110のプロセッサ部分及びモード選択ロジックが別個に構成されることを指示するかもしれない。
モード選択回路110が当該データフィルタ100を異なる複数のフィルタ処理モードの間で切り換える態様は、特定のアプリケーションに依存する。例えば、或る例示的アプリケーションは、多相転置フィルタ処理のような第1の高精度型のフィルタ処理を含む第1フィルタ処理モードと、インパルス応答フィルタ処理演算のような、もっと普通なタイプのフィルタ処理演算を含む第2のフィルタ処理モードとに関するものである。この場合、モード選択回路110はCYブロックの各々における乗算論理及び加算論理回路の配向が、これら2つのモードのうちの1つに対して当該デジタルフィルタを再構成するように指令する。1つの特定の実施例においては、上記乗算及び加算論理回路の各々は、計算がモード選択回路110から入力されたコマンド信号により指定されるように向けられるのを可能にするような出力端子及び入力端子を有している。このように、第1の高精度タイプのフィルタ処理に対しては、モード選択回路110は上記乗算及び加算論理回路に関して異なる向きを指令して該特定のタイプの高精度フィルタ処理により使用されるアルゴリズム用にスループットを最適化し、第2のもっと普通のフィルタ処理モードに対しては、上記向きは変更されず、設定が第2モード用に使用される。オプションとして、これら2つのモードのうちの一方をデフォルトモードとして使用することができる。
他の例示的なアプリケーションは、各々が異なるタイプの第2のより普通なフィルタ処理を含むような第1及び第2フィルタ処理モードに関するものである。斯様なフィルタ処理モードの例は、多相直接フィルタ処理、並びにMタップFIR及びNタップFIRフィルタ処理(M及びNは例えば2より大きな整数である)のような異なるタイプのインパルス応答フィルタ処理を含む。これらのタイプのより普通のフィルタ処理モードの多くの場合、モード選択回路110は、論理回路112の各セル内のレジスタ間のデータの向き及び伝達を制御することにより、計算回路114内の乗算及び加算回路の向きを変更すること無しに、当該フィルタ100を再構成することができる。計算回路114内の乗算ロジック及び加算回路の向きが変更されることが必要とされないような1つの斯様な特定の実施例は、多相直接フィルタ処理とFIRフィルタ処理のような少なくとも1つの汎用フィルタ処理との間での切り替えのために論理回路112を制御するようなモード選択回路110を使用する。
また、本発明によれば、特定のビデオ処理アプリケーションは、メモリブロック(例えば、図1の120)に記憶されたピクセルの水平ラインを“サイズ変更”するような多相フィルタを構成するために、上述したフィルタ100に類似した水平フィルタ処理ユニット(“HFL”)を使用する。この説明において、“サイズ変更”は前述したようにズーム係数が1より大きい場合に生じる伸張を伴う。通常、画像を拡縮尺するために(上記多相フィルタに対して)固定のズームが使用され、使用されるフィルタ係数は、処理されているピクセルの位置及び位相に依存して可変である。適切なプログラミングにより、当該フィルタは該フィルタに各出力ピクセルに対してズーム係数を変化させる(例えば、当該デジタルフィルタの機能を監視するように構成されたマイクロプログラム制御プロセッサにより実行される処理ステップにおいて)ような多相フィルタモードも有することができる。典型的なものは、当該フィルタの制御パラメータを、ズーム係数が出力ラインの中心に向かって1に近づくようにさせるが、該ラインの両端に向かって累進的に大きな又は小さなズーム係数にさせるように調整する。このフィーチャは、可変又はパノラマズームとして知られており、全体の物理的スクリーンに適合させるために入力ビデオのアスペクト比を調整するために有効である。
一例のアプリケーションにおいては、当該デジタルフィルタに対して上記制御並びにバックグラウンド及びオンチップビデオ処理演算を提供するために、マイクロプログラムマスタ制御プロセッサ(MCP)が使用される。該MCPは表示ピクセルを“処理ステップ”を使用して処理し、ここで、これらの処理ステップのうちの1つの処理ステップは、最大数の出力ピクセルを生成するための最大数の入力ピクセルに対応するデータを処理するのに要するMCP演算の数を参照する。特定の例においては、256が、最大の256なる出力ピクセルを生成するための入力ピクセルの最大数である。通常の動作モード下では、種々のオンチップビデオ処理ユニット(水平フィルタ、垂直フィルタ、混合器(blender)、カラーキー処理(color keying)等)、メモリ及びクロスバーを、各処理ステップ及び計算が正しく開始するように、プログラムすることができる(MCPにおけるマイクロコードを介して)。この処理ステップが進行中の間に、次の処理ステップ用の制御値が、次の処理ステップ用の保持レジスタ内にプログラムされる。次いで、次の処理ステップ用の該制御値は該次の処理ステップの開始時に上記保持レジスタから作業レジスタへと渡され、斯かる処理が繰り返される。
多くの典型的なアプリケーションに関して、図1の各HFLはピクセル成分の水平拡大又は縮小のために出力に用いられる。1つの特定の例示的アプリケーションにおいて、上記HFLは、該HFLの制御レジスタをプログラムすることにより処理ステップの間において以下のモードのうちの1つで動作するように構成することが可能な汎用FIRフィルタであり、これらモードは、多相直接モード、多相転置モード、FIR11又は奇数タップFIRモード(偶対称性を持つ11タップFIR)、及びFIR12又は偶数タップFIRモード(偶対称性を持つ12タップFIR)である。
HFLの多相モードを使用することの利点は、ピクセルの水平ライン(メモリブロックに記憶された)をサイズ変更する能力である。入力ピクセル数に対する出力ピクセル数の比はズーム係数として定義される。ズーム係数が1より大きい場合、サイズ変更演算は伸張又はアップサンプリングとしても知られ、それ以外の場合、この比は圧縮又はダウンサンプリングとして知られている。ズーム係数の許容される範囲は、如何なる値となるようにも選定することができ、本例の設計では、許容される範囲は0.25ないし8.00(両限界値を含む)である。適切なプログラミングによれば、HFLがズーム係数を処理ステップにおいて各出力ピクセル毎に変化させることも可能である。HFL制御パラメータは、ズーム係数を出力ラインの中心に向かって1に近付けさせるが、該ラインの両端に向かって累進的に大きく又は小さくなるようなズーム係数に近付けさせるように調整される。
このサイズ変更のフィーチャは可変又はパノラマズームと呼ばれ、全体の物理的スクリーンに合致するように入力ビデオのアスペクト比を調整するのに有効である(例えば、16:9の画像を4:3スクリーン上へ、及びその逆)。
一方、FIRモードは汎用フィルタ処理(斯かる処理では出力ピクセルの数は、入力ピクセルの数に等しい)に使用される。HFLにより各処理ステップにおいて消費されるべき入力ピクセルの数及び生成されるべき出力ピクセルの数は、ユーザにより両端の値を含み1と256との間となるようにプログラムされる(256はカウントを“0”に設定することによりプログラムされる)。処理ステップの終わりにおけるHFLの臨界的状態、又は“前後状況(コンテキスト)”は、ソフトウェア制御の下でメモリブロックに待避することができる。このコンテキストは次の処理ステップの開始時に初期状態として再ロードすることができるので、これら2つの処理ステップは単一の連続したステップと見なすことができる。このコンテキストを待避及びロードするメカニズムは、HFLが、各処理ステップを全入力ラインが全体として処理されるまでラウンドロビン態様で異なる入力ラインに適用することができるように、複数の入力ラインに同時に作用することを可能にする。HFLコンテキストの内容は、動作モード(特定のフィルタ処理モード)に依存する。入力ラインが、他の入力ラインに切り換える前に完全に処理されるならば、コンテキストの待避及びロードは必要とされない。何故なら、HFLは、デフォルトにより、最後の処理ステップからの終了時の状態を次の処理ステップにおける初期状態として持ち越すからである。
斯様な伸張又は圧縮のための多相フィルタの使用についての更なる情報に関しては、前述した米国特許第5,892,695号に図示及び記載された実施例を参照されたい。
各HFLは2つの独立したフィルタ係数のバンクを含み、各係数は符号付き二進数(例えば、[-0.5,0.5]なる範囲内の10ビットの数)に対応する。これらのフィルタ係数は、前記入力ピクセル及びコンテキストがロードされるのと同様の態様でメモリブロックからロードされる。ピクセルのフィルタ処理及び係数のロードは、各処理が異なる係数のバンクにアクセスするので、処理ステップの間において並列に生じることができる。
図1の再構成可能なHFLの構成は、有利にも、2つの多相フィルタモード、即ちアップサンプリング及びダウンサンプリング(画像のスケーリング)のための多相直接(伸張及び圧縮の両方の)及び多相転置(圧縮のみ)モード、並びに少なくとも2つの汎用FIRフィルタモード(デジタルフィルタ処理型信号処理用)をサポートする。更に、図1のHFLは、0.25ないし8.00のズーム係数をサポートし;可変ズーム係数をサポートし;符号付き10ビットフィルタ係数のみを使用するように構成することができ;8ビット及び10ビット入力ピクセルフォーマットをサポートすることができ;2つのバンクのフィルタ係数を保持すると共に、一方の係数のバンクからのピクセルのフィルタ処理及び他方のバンクへの係数のロードを並列に進行させるのを可能にし;多相モードにおいて32フェーズと64フェーズとの間での切り換えを可能にし、これによりフィルタ係数の選択性を可能にし;コンテキストを待避及びロードするためのメカニズムを提供し、かくして、各処理ステップにおいて複数の長い入力ライン間で前後に切り換えることをサポートする。更に、該HFLはピクセルのミラーリング(ラインの開始及び終了における)をサポートするように構成することができる。
1つの特別な例示的アプリケーションのために、図2は再構成可能なデジタルフィルタを実施化するために図1に示す方法を使用したトップレベルのマイクロアーキテクチャを図示している。図2のアーキテクチャ構成は、クロック発生モジュール210(図3に更に詳細に示す)と;フィルタ係数の読み取り及びフィルタ処理データのロードを指示するために使用される開始モジュール212(図4に詳細に示す)と;フィルタ係数がアクセスされるようにするような制御信号を発生するために使用されるCR(係数読取)モジュール214(図5に詳細に示す)と;CRAM(係数RAM)アクセスモジュール222(図7に詳細に示す)と;CRAM(係数RAM)メモリモジュール224(図7に詳細に示す)と;データ経路モジュール228及び制御モジュール230を含む中央フィルタマクロモジュール(図8に詳細に示す)とを含んでいる。
概略的に、図2のフィルタユニット又は装置は、常に活性状態である開始モジュール(又は“トップFSM”)212からの命令に応答してデータを処理する。該開始モジュール212は、低いレベルのフィルタモジュールに係数読み取り及びフィルタ処理演算を開始するように指令する。係数読取モジュール214は、係数アクセスモジュール222に対する制御信号を発生すると共に、データ経路モジュール228及び制御モジュール230並びに外部的に結合される装置に対して制御信号を発生する責任を持つ主モジュールである。このように、係数読取モジュール214は、入力データを読み込み、係数メモリから係数を読み取り、処理されたデータを書き出し、コンテキストを読み込み、及びコンテキストを書き出す責務を負う。
1つの例示的なシステム構成においては、上記フィルタユニットは、マイクロプログラムマスタ制御プロセッサ(MCP)により該フィルタユニットのメモリにマップされた制御レジスタ(図示略)のプログラミングを介してプログラムされた複数の機能ユニットのうちの1つである。また、各ユニットは一群の入力及び出力データポートを有し、これらポートは“クロスバーネットワーク”を介してメモリバンクの集合に接続される(従って、この集合におけるメモリは“クロスバーメモリ”とも呼ばれる)。各データポートに関連するものは、当該ユニットにより発生されるnext_location信号である。この信号のタスクは、メモリバンク(又は複数のメモリバンク)にアドレスカウンタを更新して次の読取又は書込動作に対して準備を整えるよう指示することである。このnext_location信号は、入力ポートに関してはnext_read信号に対応し、出力ポートに関してはnext_write信号に対応する。当該ユニットとMCPとの間の通信プロトコルは、各組が1対の信号を有するような2組の信号を使用する。MCPは、当該ユニットの作業用メモリマップ入力−出力(MMIO)レジスタに一群の値を書き込んだ後、機能ユニットに構成パラメータを上記作業用からシャドウMMIOレジスタにロードするよう要求するload_conf信号を送る。該ユニットはconf_loaded信号を送ることによって上記要求に肯定応答し、MCPに対して当該ユニットが次の動作シーケンスのために内部構成を更新し、開始する準備が整ったことを示す。この時点で、MCPは当該ユニットに対して開始信号を送出し(勿論、当該システムにおける全てのユニットが自身の構成をロードした場合に)、該ユニットは、現在の動作シーケンスの終了時に、MCPに対してend_operation信号を送ることにより現動作シーケンスが完了したことを通知する。作業用の及びシャドウのレジスタを使用する該方法は、現動作シーケンス(現処理ステップにおける)が依然として進行中の間に、MCPが次の動作シーケンス(次の処理ステップ用の)をプログラムすることを可能にする。この同時的動作はシステムのレイテンシを最小化する。
1つの例示的アプリケーションシステムの筋書きにおいては、当該フィルタユニットの基本動作は以下の処理ステップを含むと見ることができる。即ち、或る処理ステップにおいて、先ずフィルタ係数をクロスバーメモリから読み取ると共に(前処理ステップが、メモリインターフェースモジュールのMCPに基づくプログラミングを介して、クロスバーメモリを外部のSDRAMからの所要の値でロードし、該モジュールはHFLの一部ではないが、オフチップSDRAMからオンチップクロスバーメモリに係数及びピクセルデータを取り込む責務を負うことに注意)、内部係数メモリを充填するように当該フィルタをプログラムし(MCPに基づくMMIOレジスタプログラミングを介して)、次の処理ステップにおいて、当該ユニットを他のクロスバーメモリからもう一度、実際のビデオデータを読み取るようにプログラムし、フィルタ処理された出力を生成する(当該計算用のフィルタ係数を使用して)。該フィルタ処理された出力は、次いで、クロスバーメモリに書き込まれる(図2に示すように、データ書込ポートHFL_OUTpixel上のHFL_next_wr1信号を介して)。処理の状態に依存して、上記のフィルタ処理された値は、他のビデオ処理ユニットにより更に処理されるか、又は適切なフォーマット変換及び同期挿入の後にスクリーン上で表示されるようにチップから送出される。外部メモリからのフィルタ係数の読み込みは、係数読込ポートHFL_Incoeffに関連するHFL_next_read3信号を介して生じる(図2)。当該ユニットをメモリから実際のビデオデータを読み取るようにプログラムすることは、今度はデータ読込ポートHFL_IN pixel上であるようなHFL_next_read1信号を介して発生する。
他のシステム使用態様は、メモリ読取動作に対して3サイクルのレイテンシを有し(図5の状態マシン図に示す待ちサイクルから明らかなように)、メモリ書込動作に関しては2サイクルのレイテンシを有するものを含む。当該フィルタはアップ又はダウンサンプリングを実行することができるので、該フィルタは入力データに対する出力フローを本質的に変更する。圧縮の場合、当該フィルタは多くのピクセルを読み込むが、少ない出力しか生成せず、伸張の場合は逆となる。当該フィルタ処理ユニットは、MCPによりその様にプログラムされている場合は、コンテキスト切り換え(1つのビデオラインから他のものへの動作の切り換え)も可能にする。図2を参照すると、これは、コンテキストデータ用の一対の専用読取(HFL_INcontext)及び書込(HFL_OUTcontext)ポートに関連するコンテキスト読取(HFL_next_rd2)及びコンテキスト書込(HFL_next_wr2)信号を介して達成することができる。
図2のHFLが、該HFLの内部メモリマップ制御バス(CBUS)レジスタ(CREG)のプログラミングを介して、外部プロセッサ(例えば、MCP)により一旦プログラムされると、開始モジュール212はCBUSレジスタ240をチェックして、NOP(“演算”を要せず)であるかを判定し、その場合には該開始モジュール212は当該処理が動作終了モードであることを命令するコードを発生する。OPモードにおいては、開始モジュール212は再びCBUSレジスタ240を読み取って、係数読取演算かフィルタ処理演算かを判定する。係数読取演算の場合、開始モジュール212は係数読取モジュール214に制御係数を第3データ入力を介して読み取り、これら制御係数を係数アクセスモジュール222を介してCRAMメモリモジュール224に書き込むように指示する。フィルタ処理演算の場合、開始モジュール212は中央フィルタマクロモジュールにデータ及び/又はコンテキスト入力においてデータ及び/又はコンテキスト値を読み取るように指示する。これらの入力は機能ユニットデータ経路モジュール228において適切な係数(係数メモリからの)により乗算されて、外部HFLメモリ、“XBAR”又はクロスバーメモリに書き込まれる所要の出力を生成するが、これらメモリは開始モジュール212の制御の下でモジュール230によりHFLメモリと相互接続する。
図3は、図2のクロック発生モジュール210を拡大された形で示している。クロック発生モジュール210は幾つかのクロックツリーゲート(“CTG”)を含み、これらゲートは図2に示した他のモジュールにより使用されるゲート及び適切にバッファされた(正しいバランスのために)クロックを発生する責務を負う。オプションとしての電力節約モードの場合、第1CTG310はオプションのパワーダウンモードが肯定されていない場合はスキャンモードにおいて又は非スキャンモードにおいてイネーブルされる。第1CTG310は、CTG312、314、316、318及び320と共に、電源管理ロジック(図示略)により発生される信号HFL_top_hold(HFLがパワーダウンモードにおいて遮断されるべき場合)、HFL_cw_hold(係数が書き込まれていない場合に、係数書込ロジックを遮断するため)、HFL_cr _hold(外部メモリから係数を読み取るためにロジックを遮断するため)、HFL_f_hold(NOPのため、又は現処理ステップにおいて係数のみが読み取られているために、フィルタデータ経路が不活性状態である場合)によりイネーブルされる。CTG312は、トップレベル状態マシンが活性状態に留まり、3つのプログラミングモード(NOP、整数読み取り及びフィルタ処理)に応答するので、(パワーダウンを除き)イネーブルされる。CTG312は係数書込状態マシン(図5)及び関連する書込ロジックに供給する係数書込クロックを発生する。クロック枝線HFL_cr_holdに応答して、CTG314及び316も、HFLがOPモードで係数読み取りのためにプログラミングされる場合は、演算の終了までイネーブルされる。クロック枝線HFL_cr_holdに応答して、CTG318及び320も、HFLがOPモードでフィルタ処理演算ためにプログラミングされる場合は、演算の終了までイネーブルされる。最良の動的電源管理は、CTGを適切な時にのみ且つ必要な時のみにイネーブルすることにより変化される。
図3は、複数のクロック枝路(1つの主クロック枝路からの)を設けるためのクロック発生モジュールを示し、該モジュールにおいては、副枝路(もっと適切には枝線)が強いバッファにより駆動されて、別々のロジックブロック/部分へファンアウトする。この枝路方法は、1つのクロック枝路が許容可能なクロックスキュー限界内で駆動することができる限られた量のロジックの点で有効であると共に、この方法は不活性なロジックに供給する枝路上での選択的なクロック遮断を可能にし(フィルタ処理モードに依存して)、これにより電力を節約するためにも有効である。
図4は、図2の開始モード212の機能を図示している。開始モジュール212は、異なる処理ステップで発生する、フィルタ係数の読み取りとフィルタ処理データのロードとを指示するために使用される。開始モジュール212は、係数並びにデータ読み取り及び書き込みタスクに影響を与えるモジュール(222及び230)を制御すると共に、主外部(HFLに対してであるが、オンチップである)マイクロプログラムマスタ制御プロセッサ(例えば、MCP)と当該HFLユニットとの間の通信プロトコルも制御する。図2のモジュール210に関連するトップレベル有限状態マシン(FSM)の状態図が、フィルタ係数のロード並びにフィルタ処理データの読み取り及び書き込みに関連して使用されている。上記FMSは、或る処理ステップ(goCoeff=1)においてフィルタ係数が外部メモリから読み込まれるようにさせ、又は他の処理ステップ(goFilter=1)において入力値が読み込まれると共にフィルタ処理された出力が生成されるようにさせるような制御信号を発生する。当該処理が一旦終了すると(Cdone又はFdoneが1となることを介して)、当該状態マシンはアイドル状態に戻り、次の処理ステップを待つ。load_config信号は、構成(コンフィギュレーション)を前記レジスタにおけるプログラミングを介してロードするために使用される。
図4の状態図の部分に示されるように、当該開始モジュールは、load_configコマンドを受けることに応答して(MCPからフリップフロップ412において、且つ、フリップフロップ410においてstartコマンドによりイネーブルされた後のみ)状態418において活性化され、状態430又は状態432の何れかに移行する。上記フリップフロップはタイミングの理由でのみ設けられており、従って、MCPからのグローバル信号(load_config及びstart)はトップレベル状態マシン(チップ上の複数HFL様ビデオ処理ユニット)を直接は(これにより大きな負荷に合って、遅い応答に繋がる)駆動せず、登録(レジスタ記憶)されるのみで、斯かる各モジュール(例えばHFL)にローカルにレジスタ記憶されたものがFSMを駆動する。当該開始モジュールは、start.NOP(即ちNOPモードにプログラムされる場合の開始信号)コマンドを受けることに応答して状態430に移行し、次いで、待ち状態418に戻る前に遅延状態432に移行する。該開始モードは、終了条件又は動作終了信号を入力することに応答してアイドル状態430に移行し、ここでは、該開始モジュールは読取又は書込モジュールからCdone又はFdone信号を入力するまでアイドル状態となり、最終的にロードコンフィギュレーション動作終了信号を入力し、次いでアイドル状態432を介して待ち状態418に戻る。
図4の開始モジュール212に対する入力は、MCOから供給されると共にコンフィギュレーション(制御値)をシャドウから作業用CBUSレジスタ(図2の240)へロードし、且つ、ロードの1サイクル後にend_op(動作終了)を非活性化するために使用されるload_config;config_loaded出力信号を非活性化した後動作を開始させるためにMCPから供給されるstart;係数の読み取り(処理ステップ)の終了を通知するために係数読取モジュール(図2の222)から供給されるCdone;斯様なモードにプログラムされている場合はコンテキストの終了を知らせるフィルタ処理及びデータ書き込み(処理ステップ)の終了を通知するために、演算モジュール(図2の230)から供給されるFdone;メモリマップ入力−出力(“MIMO”)モード制御CBUSレジスタから供給されて、制御コマンドを通過させるために使用されるHSRC_CTRL[7:0];クロックモジュール(図2の210)によりトップレベルFSMに供給される入力クロックであるようなtfsm_clk;当該開始モジュールのみならず、当該HFLを全体としてリセットするために使用される非同期リセット信号(活性化状態はロー)であるようなresetBarを含む。
図4の開始モジュール212に対する出力は、図2の他のモジュールへも行く登録(レジスタ記憶)された開始信号であるようなstart_p;MCPに対する当該フィルタ用のコンフィギュレーションのロードの終了を活性化する信号であるようなconfig_loaded;当該処理が完了したことをMCPに示すend_op;主モジュール230のデータ読取/書込部にデータの読み取り、処理及び書き込みを開始するよう通知するgoFilter;及び係数アクセスモジュール222に対する係数の読み取りを開始させるための信号であるgoCoeffを含む。
図5は、上記開始モジュール(図2の212)からの命令に応答してフィルタ係数がメモリから読み取られるようにする(係数読取要求)制御信号を発生するために使用される係数アクセスモジュール222(図2の)状態テーブルを図示している。係数アクセスモジュール222は、正しいメモリバンクを選択すると共に上記係数を該バンクに書き込むための制御信号も発生する。該係数アクセスモジュール222は下記の入力を受ける。即ち、8ビットMMIOレジスタ(図示略)に対応するHSRC_MODE[7:0];係数読取動作の開始を通知する指示モジュールから信号であるようなgoCoeff;クロックモジュール(図2の210)からの入力クロックであるcfsm_clk;及び前述したような非同期の活性化状態がローのリセット信号であるようなresetBarである。1つの例示的な構成では、図5の状態テーブルは、プログラムされた数(crcounter内の)の係数を読み取るために使用される有限状態マシンの状態動作を示し、CWi(i=1〜3)は使用されるシステムにおける3サイクルの読取レイテンシを補償する3状態である。
係数アクセスモジュール222は以下の出力を発生する。即ち、係数を読み取るための読取要求信号であるHFL_next_rd3;係数読み取りの終了を意味するFSMを停止させる読取完了信号であるCdone;6個の係数が読み取られ係数メモリに書き込まれる32個のフェーズのうちの1つを指定するフェーズカウンタであるwphi[4:0];0から7までインクリメントすると共にHFL_coeff_ram_ block(係数メモリを収容する)に進んで、特定のフェーズに対して6個の10ビット係数を最終的に形成するような8x8=64ビットの読み取りを可能にする(4ビット(64−10x6)は未使用のまま)バイトカウント信号であるようなbcount[2:0];当該FSMが正しい係数ロード状態であることを特定するldstate(HFL_coeff_ramにおける実際のメモリブロックへの書き込み動作を可能にするのに有効)である。
図5の状態テーブルは、所要の数の係数値をクロスバーメモリから読み取ると共に、係数メモリ書込ロジック(図2におけるモジュール222)を介して係数メモリ(図2におけるモジュール224)に書き込む責務を担う係数読取FSM−HFL_cread_fsm又はCFSM(図2)−に関するものである。要求信号crreqは、HFL_next_rd3(図2の214から)と同一であって、係数を係数メモリに書き込み開始する3サイクル前に活性化される(状態510において)。かくして、crreqが状態520において一旦上昇されると、該状態マシンはメモリから係数データがストリーム入力開始される前に3つのアイドル状態540、560及び580を横切る。状態520は安定した状態であり、この状態では、この係数読取状態マシンは、動作を開始する前にトップレベル状態マシン(図2の212)からのgoCoeff信号を待つ。一旦開始すると、3クロックサイクルのレイテンシの後にデータが到来開始する際に、当該状態マシンは係数充填状態510に到達し、ここでは、正しいメモリバンクが係数により満たされる。係数読取カウンタ(crcounter)は255に初期化され(256係数が読み取られるべきである)、この状態において各クロックサイクルで計数をデクリメントするために使用される。所要の数の係数が一旦読み取られると(3サイクルのレイテンシを見込むために上記crcounterが3に到達すると)、Cdoneフラグが立てられ、当該状態マシンはアイドル状態にジャンプする。該Cdoneフラグは、トップレベル状態マシンにより、係数読取動作の終了をMCPに通知するために使用される。
32フェーズモードにおいては、各64フェーズメモリバンクの下側又は上側の32フェーズが書き込まれることに注意されたい。この信号wphi(書込フェーズを示す)は如何なる半バンクに対しても現在のフェーズ(係数群が読み取られ又は書き込まれている)を追跡し、“bcount”(バイトカウント)はHFL_coeff_ramにおけるバイトイネーブルである。更に、wphiは6個の新たな10ビット係数が読み取られる毎にインクリメントされ、係数メモリ(新たなフェーズに対応する)に書き込まれる。即ち、60ビットが8つの10b読取を用いて読み取られ(ここで、読み取られた10bワードの下位側2ビットはその都度破棄される)、その場合において、8x8=64の有効なビットは上記10個の係数の60ビットを形成し(4ビットは不使用)、読み取られた8バイトはバイトイネーブルの8つの値を用いて書き込まれる(bcount)。該信号crcounterは、何れの時点においても、発生された読取の数を追跡し、零へのカウントダウンが全ての256の(フェーズ当たり6係数の場合、=32フェーズx8読取)値を読み取るように255に初期化される。
図6A及び6Bは、図2の係数メモリモジュール224を図示している。図6Aは係数RAMモジュールの部分的ロジックを示し、図6Bはクロスバーメモリからの当該HFLユニットの内部の係数メモリ又は係数RAM(図2のモジュール224)への係数読み取りの一般的構成を示している。これらのメモリには2つがあり、一方のメモリが充填されることを許される間、以前に充填された他方は現処理ステップにおいてフィルタ処理のために使用されている。
このモジュールは、係数読取FSM(HFL_cread_fsm)から種々の制御信号を得て、係数を係数メモリバンクに実際に書き込む責務を負う。このモジュールにおけるロジックは、フィルタ処理ステップにおける各ステップにおいて必要とされる6個の係数を読み取る責務も負う。2つのメモリバンクが存在し、各バンクは64組の係数を記憶することができる。6個の10ビット係数からなる1つの組は64フェーズの各々に対するもので、一方のバンクがフィルタ処理動作のために係数を読み取るために使用される間、他方のバンクは異なる処理ステップにおいて使用されるべき別の組の係数でロードすることができる。
係数メモリモジュール224に対する入力は、MMIOレジスタHSRC_CTRL[7:0]及びHSRC_MODE[7:0];6個の係数が読み取られており係数メモリに書き込まれている32フェーズのうちの1つを指定するcreadモジュールからのフェーズカウンタ信号であるwphi[4:0];上記creadモジュールからのバイトカウント信号であり、0から7までインクリメントし、coeff_ramブロックに変化して特定のフェーズに対して6個の10ビット係数を最終的に形成する64(8x8=64)ビットの読み取りを可能にする(4ビット(64−10x6)は不使用のまま)ようなbcount[2:0];6ビット係数読取フェーズ又はHFL_dp_cntrlからの係数読取アドレスであるrphi[5:0]を含む。主状態マシン部(図7)は、係数読み取り、データ読み取り、データ処理、データ書き込み、ピクセルミラーリング、コンテキスト切り換え等を含む種々の動作に対してデータ経路を再構成することによりフィルタ動作を制御するのもで、現ピクセル位置を追跡するカウンタIFCの小数部の6個のMSB;バンク1用の読取クロックであるclk1;バンク2用の読取クロックであるclk2;バンク1出力におけるレジスタ用のクロックであるclk3;バンク2出力におけるレジスタ用のクロックであるclk4;非同期の活性状態がローのリセット信号であるresetBar;8MSBが正しい値を持つXBARメモリからの信号入力であるHFL_INcoeff[9:0];当該FSMが係数ロード状態(CFILL)であるかを通知するHFL_cread_fsmからのブール値信号であるldstateに等しい。OUTPUTSはフィルタ処理のために読み出された係数であり、C1、C2、C3、C4、C5、C6[9:0]と示される。
各メモリバンクに関して、HFL_coeff_ramはHFL_coeff_bankを例示し、これはメモリ発生器により発生される実際のメモリインスタンス“m64x64core_shell”を含むモジュールである。
図6A及び6Bを参照すると、当該ブロックの設計及び動作(係数メモリの読み取り/書き込みに関する)は以下のようになる。即ち、BANK2RDはMMIO制御信号(CREGからの)であり、該信号は、メモリバンクのre_en(読み取りイネーブル)入力におけるハイの値を保証することにより、フィルタ処理の間における係数を読み取るための2つのバンクのうちの一方を選択する(他方のものは、書き込みをすることができる方である)。係数を書き込むために上記の選択されたメモリバンクをイネーブルするのは、3つの条件の同時的(AND)存在に依存する。即ち、1)正しい係数ロード状態(係数読取FSMからの);2)MCPによりCREGにプログラムされたロード係数(LD_COEFF)コマンドが、現処理ステップが係数をロードすることを意図していることを示している;及び3)正しい書込イネーブル(=1)が、書き込むメモリバンクに接続されている(読み取られていないものであって、従って読み取られているものの相補形又は逆である)である。バンクに対する書込条件が一旦設定されると、係数読取状態マシンは、該マシンの状態を介してサイクル動作を開始し、crreq(=図2におけるHFL_next_rd3)が活性化されることに応答して、図2のHFL_Incoeffポートで係数データが流入開始する(各クロックサイクル当たり1つ)。
書き込み動作は以下のように進行する。即ち、1)バイトカウント(図5のbcount)が7なる初期値からクロックサイクル毎にインクリメントを開始する;2)bcountに応じて、バイトイネーブル(図6A及び6Bにおけるbend)が正しいサブバイトがメモリバンクに書き込まれるように設定される;3)6個の10ビット係数のための0から7までbcountをカウントする8バイトが、8個の連続するクロックサイクルにおいてメモリバンクのフェーズも示す各アドレスに書き込まれる;4)バイトカウントが7に到達して巡回する毎に(フェーズの6個の全てのアドレスが書き込まれたことを意味する)、0に初期化されると共にメモリ書込アドレスに関連されたwphiが1だけインクリメントされ、かくして、次のメモリロケーションが次のフェーズ値に対応する係数により充填され始める;及び5)これが、256の全ての係数がメモリバンクに書き込まれるまで継続する。上記書込アドレスの最上位ビットがCREGWR_HIにハード結線され(図6Aに示すように)、従って上側又は下側の32フェーズの何れかが何れの処理ステップにおいても書き込まれることに注意されたい。即ち、46の全てのフェーズに関する係数がメモリバンクに書き込まれるべきである場合、フィルタ動作が開始する前に2つの連続した係数読取処理ステップが存在するように、WR_HIの値を反転することにより(MCPによりなされる)全処理がもう一度繰り返されるべきである。
通常のフィルタ処理動作の間においては、係数は、読み取りがBANK2RD CBUSレジスタ(0はバンク1が読みとれることを意味する)のMCPプログラミングによりイネーブルされるメモリバンクから読み取られ、当該フィルタが32又は64フェーズモードで動作するかはPHASE32 CBUSレジスタの値に依存する。メモリ読取アドレス(図6A及び6Bにおけるc_rd_addr)の6ビットは、主データ経路制御状態マシンモジュール(HFL_dp_cntrl)におけるピクセル位置計算により決定される読取フェーズ(rphi)の関数である。しかしながら、フィルタ処理のために32フェーズのみが使用される場合は、上記6ビットのメモリ読取アドレスの最上位ビットは、RD_HI CBUSレジスタから得られる(図6Aに示すように)。このように、PHASE32=0なら、フィルタ処理の間に64の全てのフェーズが使用され、c_rd_addrは読取フェーズの全6ビットに本質的に等しい(図6Aのrphi[5]はtopbitに多重化される)が、PHASE32=1なら、c_rd_addrの最上位ビットはRD_HI制御レジスタから直接到来する(ここで、1なる値は選択されたメモリバンクの上側32アドレス即ちトップ側半部を意味し、零なる値は逆を意味する)。
図7は、図2の主フィルタ再構成可能データ経路モジュール228の例示的な構成を図示し、該モジュールは通常の演算フィルタ処理機能の責務を負っている。該モジュール700は図2のHFL_dp_cntrlブロック230により制御される。この例の構成に関連して、図2のブロック230は、再構成可能なデータ経路ブロック228を制御及び再構成する回路を合成及び発生させるためにRTLヴェリログ設計言語で書かれる。ブロック230は、XBARからの入力データ読み取り、XBARへの出力データ書き込み、係数メモリからの係数読み取り、XBARからのコンテキスト読み取り及びXBARへのコンテキスト書き込みを制御する。このモジュールは、フィルタ処理の型式(例えば、多相直接“PD”、多相転置“PT”、FIR11タップ、又はFIR12タップ)及び処理要件(左ミラーリング、非ミラーリング、右ミラーリング、FIRモードにおける丸め等)に依存してデータ経路を再構成するための種々の制御信号も供給する。“PD”及び“PT”を使用することに加えて、他の短縮形は、FIR(11/12)フィルタ処理に対するFIR(11/12)、左縁ミラーリングに対するMLE、右縁ミラーリングに対するMRE、コンテキストのロードに対するLDCXT、及びコンテキストの待避に対するSVXTを含む。
データ経路の再構成及び動作を制御するモジュール230は主に7つの状態を持つ有限状態マシン(“FSM”)であり、これらの状態で生じる主たるイベントは以下に示す通りである:
1.DPCIDLE:Fdone信号(異なる状態から到来し、フィルタ処理動作が完了したことを示す)がハイなら、非活性化され、以下の動作が生じる場合、当該FSMはトップFSMからgoFilterコマンドを受けるまで、この状態に留まる:
− incount及びoutcount(費やされた入力ピクセル数及び生成された出力ピクセル数)は初期化され、MRE=1(画像ラインの終わりで)なら、右ミラーカウンタ(MCR)はフィルタのタイプに応じてミラー処理されるべきピクセルの数(引く1、何故ならカウントダウンは0までであるからである)で初期化される。
− LDCXT=1なら、コンテキスト読取カウンタ(CC)は、フィルタの型式に依存して読み取られるべきコンテキスト的値の数でロードされ、コンテキストを読み取るために要求が送出され、FSMは状態DPCW1にジャンプする。
− MLE=1なら、フィルタの型式に応じて、左ミラーカウンタ(MCL)はミラーリングされるべきピクセルの数(引く1、何故ならカウントダウンは0までである故)により初期化され;その値が、書き込むこと無しにもっとピクセルをシフト入力すべきか又は今まで計算された結果を書き戻すべきかを決定するフィルタ処理イベントフラグ(RSVAL)が初期化され、位置及びフェーズカウンタ(IFC)が初期化され、ミラーリングピクセルがXBARから(HFL_next_rd1に接続されたreqmlを活性化することにより)要求される(入力値がミラーリング期間にわたり保持されるようなPT=1の場合を除いて)。PT=1に対しては、start_write信号が初期化される。何故なら、この信号はデータ経路が結果をXBARに書き込むのを可能にするために、ミラーリング期間の終わりで活性化されるからである。
− フィルタ処理が如何なるコンテキスト又はミラーリング処理なしで即座に開始しなければならない(即ち、LDCXT=MLE=0、及びハードウェアは前の処理ステップにおいて停止した箇所から継続しなければならない)場合、ピクセルをデータ経路レジスタに供給するマルチプレクサを制御する種々の制御信号CR,
S1U, S1D, S2U, S2D, S3U,S3DAB, S3DC(図7)はフィルタの型式に応じて再初期化され、当該FSMは状態DPCFPにジャンプする。
2.DPCW1:LDCXT=1なら、mux制御(図7)はコンテキスト値をロード入力するために適切に設定され、それ以外の場合、mux制御は左ミラーリングのためにフィルタの型式に応じて適切に設定される(設定が既に正しいPT=1の場合を除いて)。これは遅延状態である。当該FSMはDPCW2にジャンプする。
3.DPCW2:当該FSMはDPCW2にジャンプする。これは、正に通常の遅延状態である。
4.DPCW3:PD=1なら、左ミラーリングピクセルの要求(reqml)は非活性化される。何故なら、該要求は既に必要とされる3サイクル(3サイクルレイテンシの間)にわたりハイであり、所要の3ビットを得るからである。MLE=1なら、incountが既に費やされたミラーリングピクセルに関して調整され、当該フィルタがPTモードでないなら、ピクセルをデータ経路レジスタにシフト入力すべくデータ経路を準備するためにシフト信号が活性化される。次のFSM状態はDPCCMである。
5.DPCCM:LDCXT=1なら、フィルタの型式及びCC値に応じて、コンテキスト値、即ちIFC(更新された且つ現在のピクセル位置)、RSVAL(前と現在のピクセル位置の間の差)、ズームパラメータ及びデータ経路レジスタ内容、が順にロードされ、CCが各サイクルにおいて更新される。フィルタの型式に応じて、シフト信号(値をデータ経路レジスタの上側又は下側区域にシフトするために要するoshifthi及びoshiftlo)も、コンテキスト値をデータ経路レジスタの上部又は下部にロードすべく(上部が最初にロードされ、次いでロードへの途中において、下部へのシフト入力が開始する)適切に活性化及び非活性化される。コンテキスト値の要求信号(reqc)も適切な時点で活性化及び非活性化されるので、XBARメモリポインタは誤ってインクリメントされることはない。コンテキストをロードした後、当該FSMはDPCFPにジャンプする。LDCXT=0であり且つモードがPTでない場合は、MCLは0に到達する(この時点で、当該FSMはDPCFPにジャンプする)まで各サイクルにおいてデクリメントされる。ミラーカウンタの値に応じて、ミラーピクセルの要求(reqml)は、ミラーリングに要するピクセル数に等しい数のサイクルにわたり維持された後、非活性化され、データ経路mux制御(S3U)は非活性化され、データ経路レジスタシフト信号(oshifthi及びoshiftlo)は非活性化される。ミラーリングが完了し、ミラーピクセルが既にデータ経路レジスタ内となった後に、全てのデータ経路mux制御は、フィルタ処理動作のために設定される(フィルタの型式に応じて)。
6.DPCFP:これは、実際のフィルタ処理動作が生じている状態である。詳細に説明する前に、この状態において何が進行するかの基本概念は次の通りである。incount及びoutcountが零になるまで(同時の零の値は、処理ステップの終わりを意味する)、出力ピクセルの位置及びそのフェーズが継続的に計算される。
上記フェーズ情報は、係数メモリから係数をルックアップするために使用される。PDの場合は(FIRの場合は、一定のフェーズのPD及び1に等しいズームに類似している)、IFC及びRSVALは、IFC(t)= IFC(t-1) + 1/zoom; RSVAL = [IFC(t) - IFC(t-1)] の整数部のように更新され、ズームレジスタの小数部からの適切なキャリー出力により決定される(ズーム8に関連して説明するように)RSVAL>0の場合は何時でも、デクリメントされ、入力ピクセルはRSVAL=0となるまでシフト入力され、この時点でフィルタ出力がXBARに書き込まれる。PTの場合は、IFC(t)= IFC(t-1) + zoom; RSVAL = [IFC(t) - IFC(t-1)]の整数部となる。そして、RSVAL=0である限り、入力ピクセルは、RSVALが0より大きくなる(その際に、フィルタ出力はXBARに書き込まれる)まで、読み取られると共にシフト入力される。全てのフィルタの型式に対する右ミラーリングも、この状態においてミラーカウンタ及びデータ経路mux制御部を適切に制御することにより処理される。
PDモードにおいては、位置及びフェーズの事前計算を実行するために特別の注意が払われる(この記載(writeup)において使用されたように、RSVALcur又はRSVALから区別するために信号bflag及びRSVALnxtを使用して)。現位置及びフェーズがフィルタ処理された値のxbarへの書き込みを要求する場合にも停止することなく次の位置及びフェーズが計算されるような、事前計算なしでは、書き込みのために1サイクルが失われるであろう。xbarに対するフィルタの結果、従ってzoom= 0.5で処理されたnピクセルは、最悪の場合、許容不可能な2nサイクルが掛かる。
データ経路はパイプライン化されているので、フィルタ処理された結果をXBARに書き込む判定は、複数のフリップフロップを介して書込要求として伝達されるので、この信号はXBARに出力データが到達するのと同時に到達する。同様に、係数のアドレス(フェーズ)及び係数メモリからの実際の係数も、変化する数のフリップフロップを介して伝達されるので、乗算係数はデータ経路に正しい時間に到達する(XBARのメモリ読取レイテンシ及びパイプラインを見込んだ後に)。
SVCXT=1なら、データ経路mux制御部はコンテキスト値が書き出され得るように設定され、当該FSMはDPCCOにジャンプする。それ以外の場合、該FSMは、end_of_op信号を活性化した後、DPCIDLE状態に戻る。
7.DPCCO:この状態はSVCXT=1の場合のコンテキスト出力のためのものである。フィルタの型式とCC値とに依存して、CCは各サイクルにおいて更新され、データ経路出力mux制御部(CCS)は正しいコンテキスト値を書き込むために割り当てられる。コンテキストを書き出した後、当該FSMはDPCIDLE状態に戻る。
各構成要素の上記機能に鑑みると、データ経路モジュール700の詳細は、図8に示す水平フィルタ800を用いて最もよく理解される。即ち、図8は、上記データ経路の幾つかの特定のフィーチャ及び図7の6個の同様に構成されたスライス711〜716として概略的に図示された制御モジュール(図2の224、228及び230)を含むような中央フィルタマクロモジュールを示している。該水平フィルタ800に対する入力は、HFL_INピクセルライン810に沿うピクセル、及びHFL_IN係数ライン812に沿うフィルタ係数データである。上記ピクセルはデータ経路820により入力され、上記フィルタ係数データは係数メモリ回路824により入力され、係数メモリアドレス指定は回路831により供給され、回路832〜837は現フェーズ、従って使用する係数の特定の組、及び次のクロックサイクルにおける動作(新入力ピクセルのシフト入力し、又は如何なる新ピクセルも読み込むことなく次の出力を生成し続ける)を決定するためのメカニズムを提供する。
データ経路820は6個の並列な加算回路を含み、これら加算回路の1つが820aに示されると共に、乗算段820bに供給する。乗算段820bは6個の並列な乗算回路を有し、これら乗算回路の1つのみが図示されている。6個の並列な乗算回路820bの出力は、対応して配置された加算回路820aに入力として帰還される。最初の5つの並列な加算回路820aの各々からの出力は、これら並列な加算回路820aの次のものへ累積入力としてフィードフォワードされる。上記並列な加算回路820aの最後のものの出力は累積された値となり、該値は最後のスライスにおける乗算段を駆動し、出力はライン852にフィルタ処理された/スケーリングされた水平ピクセル値を供給する。メモリバンク856がフィルタ係数により一旦書き込まれる(満たされる)と、該バンクは次の処理ステップにおいて当該フィルタデータ経路により読み出される準備が整い(従って、当該フィルタ処理動作は潜在的に進行し得)、一方、バンク858はオプションとして新たな組の係数値により書き込まれることができる。回路832〜837は、ズーム値の更新、従って、次のクロックサイクルにおいて使用されるべき係数の組を読み出す係数メモリバンクアドレスを決定する現フェーズ(入力に対しての現出力位置に対する)の計算の責務を負い、このフェーズは次のクロックサイクルにおいてとられるべき動作(例えば、新入力ピクセルをシフト入力する、又は如何なる新ピクセルも読み込むこと無しに次の出力を生成し続ける)も決定する。ズーム値(使用される多相フィルタモードに応じて、又はその逆数)はクロック毎に更新され、インクリメントされた値の小数部が現フェーズとなる。計算された小数部(836)及び計算された整数部(833)は、レジスタ837及び834に各々記憶される。上述した動作を決定するのは、ズーム更新計算において得られる、小数部(837)から整数部(834)へのキャリー出力である。write_memoryバンク858は、HFL_nxt_rd3信号に応答して、HFL_Incoefficient信号からロードされる。
図9に示され、且つ、図8のデータ経路820と一貫して、フィルタ演算に使用された当該データ経路構成は3つの主要な部分、即ち直接入力パイプライン910、乗算器段920及び累算器930、を有するものと見ることができる。直接入力パイプライン910は、乗算器へ送られるべき値を準備する(この例では、“直接入力パイプライン”として知られている)。乗算器段920は、直接入力パイプライン910から到来する値を係数倍に乗算する乗算器回路の段である。累算器930は、乗算及び累算の6つの結果の和を実現する。
図9の直接入力パイプライン910は、12のピクセル値を処理するように構成され、対称FIRアプリケーションに対しては加算を実行する。該直接入力パイプラインのもっと詳細な例示的構成は、図10の入力パイプライン構造を介して示される。図10において、ピクセル値は12の異なるレジスタに記憶される。本質的に、6つの段の各々はフリップフロップ1010及び1012の各出力を加算するように構成されている。フリップフロップ1010及び1012の各入力は当該フィルタの構成に基づいて選択されたポートに接続される。当該加算器の各々は前段から供給されるcarry_in値を入力する。
図11は、図10の12のレジスタがどの様に加算器に繋がるように構成されるかを示し、後続の3つの図(図12〜14)は、新ピクセルが1/z整数レジスタ(図8の834)のインクリメントにより規定されるようにシフト入力される場合のデータの流れを表している。ピクセルがシフト入力されない場合は、各レジスタは最終値を維持する(図11には図示せず)。12タップの対称FIR構成の場合においては、各レジスタは図11に示すように単に前のものに接続される。11タップ対称FIR構成の場合は、A及びAA(図12では符号1230及び1232により示す)は同一の値を入力するので、12以上のピクセルのシフト入力のためのデータにより当該パイプラインが初期化された後、これらの両者には値in[pos+5]が記憶される。結果として、6個の加算器(図12の1207)の出力は依然としてin[pos+5]である。X + X + carry >> 1 = Xなる関係に鑑み、これは数学的に成り立つ。
図13は、図10の12のレジスタが6タップ多相フィルタの場合にどの様に構成されるかを示している。この構成において且つ上述したのと同一の特性を使用するために、各シフト入力値は2つのレジスタに記憶され、これら2つのレジスタが同一の加算器に接続される。
ここで図7に示したデータ経路を参照すると、該機能ユニットはデータ経路フィーチャHFL_dp_slice1 (1倍), HFL_dp_slice2 (2倍), HFL_dp_slice3 (3倍), and HFL_dp_slice4(1倍)を含み、ここで、4番目のスライスは6個のスライス711〜716の回路以外の図7に示す回路に対応する。再使用可能なコードを有するために、各スライスにおける回路の殆どは6個のスライス711〜716の各々に共通な設計である。この同一の回路(各スライスの内部で開始される“HFL_dp_common”)は、マルチプレクサ718を除きスライス713に示される全ての回路により例示されている。
図10〜13に関連して前述したように、図7のデータ経路は12のフリップフロップ(“FF”)の再構成可能な接続を有している。該再構成は、フィルタの型式及び現在の動作タイプ(コンテキスト読み取り、フィルタ、コンテキストの待避)に基づくものである。上記FFの再構成は、種々の戦略的マルチプレクサへの選択信号の選択を介して実行される。データ経路制御FSM(先に説明したように7つの状態を備える)は、正しい時間での正しい制御信号を発生する責務を負う。
図7に示した各FFは実際にトップFF部分及びボトムFF部分を持つFF型回路であり、これら部分の各々にshifti及びshifto信号を用いて別個にロードすることができるものであることが理解されるであろう。マルチプレクサ(図7においてS*、即ちS1U、S2D、S2U等に接続された)により入力が供給される斯かるトップ及びボトムFFは、実際にはマルチプレクサFFとして構成され、その場合に該マルチプレクサ(図示略)は実際に上記shifti及びshifto信号により制御される。図14及び15は、図7の再構成可能な回路構成に使用される同様に構成された“スライス”回路のトップ及びボトム用のマルチプレクサ(“mux”)構成を各々示している。
図7の追加のフィーチャ及び態様を説明する前に、12のフリップフロップ(2つの行における)に1から12まで時計方向に符号が付され、その場合に、上側の行における最左端のFFは1なる番号が付され、上側行の最右端のFFは6の番号が付され、行2の最右端のFFは7なる番号が付され、行2の最左端のFFは12の番号が付される。更に、以下の説明においては、i番目のFFはFFiとして参照され、ここで、iは1と12との間の整数である。
1.文字a、b、c、…、fにより印されたラインは、特定の状況に対してデータが流れるラインを示している。例えば、“ae”は、当該ラインが“a”(多相直接)及び“e”(ラインの始点でのミラーリング)の場合に対して活性化されることを意味している。これらの文字に関する説明は図7の右上角に示されている。
2.例えば多相直接の場合にラインの始めにおいてミラーリングを行うために、読み込まれた最初の3つのピクセルはFF1ないし3に供給されねばならないのみならず、FF4ないし6にも逆の順序で供給されねばならない。これによりp3 p2 p1 p1 p2 p3なるパターンが得られ、ここで、piはi番目の読み込まれたピクセルを示す。このパターンは、マルチプレクサ選択CR=0(LINE INが通過するように)、SU1=1、S2U=0及びS3U=1(FF1、FF2及びFF3がシフトレジスタの態様で接続されると共に、読み込まれた3つのピクセルが正にシフトして通過する(p3, p2 , p1のように)一方、FF1、FF2及びFF3にシフト入力されるものがミラーリングを達成すべくFF6、FF5及びFF4に各々シフト入力されるように)とプログラミングする(前記データ経路状態マシンから)ことにより達成される。
3.上記モードにおいて、下側のFF(7〜12)は上側FF(6〜1)と同一の値を有していなければならない。この目標は、マルチプレクサ選択をS1D = S2D = S3DAB = S3DC = 0とプログラミングすることにより達成される。理解されるように、この状態は下側FFのマルチプレクサされた入力を上側FFの入力に接続するので、トップ行及びボトム行のFFは同一の値をシフト入力する。
4.ラインの終わりでミラーリングを行うために、トップ行の最初の3つのFF(1〜3)は最後の3つのFF(4〜6)と同一の値を逆の順序で入力する。従って、最後の3つの値がFF4〜6にシフト入力されるクロックサイクルに対しては、S1U=0とプログラムされ、次いで帰還路がFF1〜3をFF6〜4のものと等しい値で充填されるように(クロック毎に)EMSを適切に変更する。
5.信号“RND”は、真の場合に、デジタルのもののキャリーを加算器に供給することにより丸めを可能にするようなマルチプレクサ二進選択信号である。
6.PT=1である多相転置モードにおいては、乗算器の前のマルチプレクサは乗算器入力がLINE INから直接到来するように選択し、乗算器出力(同一の入力掛ける異なる係数)は累算さてレジスタに記憶されるように加算器に送られる。各スライスにおいて対を形成するトップ及びボトムレジスタが、上記累算のための高精度値を記憶するために使用される。PT=0ではあるが、他の全てのモードにおいては、各スライスの上記トップ及びボトムレジスタは先ず加算されて右にシフトされ、次いで、係数により乗算される。従って、データ経路FSMからの適切な制御信号が、フィルタ処理モードに依存した演算処理の異なる順序を可能にする。PTにおいては、乗算が累算により後続され、それ以外では、加算に乗算が後続する。
このように、本発明の種々の実施例は、多相直接、多相転置、FIR11タップ及びFIR12タップの組(これに限定されるものではない)から選択される如何なる組み合わせも含むような複数フィルタ処理モードを有するハードウェア再構成可能型デジタルフィルタを提供するように実現することができる。上述した種々の実施例は解説としてのみ提供されたもので、本発明を限定するものと見なしてはならない。上述した説明及び図示に基づいて、当業者であれば、ここに図示及び記載された例示的な実施例及びアプリケーションに厳格に従うことなく本発明に対して種々の修正及び変更することができることは容易に認識するであろう。斯様な修正及び変更は、添付請求項に記載した本発明の真の趣旨及び範囲から逸脱するものではない。
図1は、例示的な再構成可能なデジタルフィルタの概略ブロック図を示す。 図2は、上記再構成可能なデジタルフィルタを使用するための特定の例示的な環境に適用された、全体の機能ユニットの特定の例示的なトップレベルのマイクロアーキテクチャを示す。 図3は、図2に示すモジュールの本発明による拡張構成を示すもので、クロック発生器モジュールを示す。 図4は、図2に示すモジュールの本発明による拡張構成を示すもので、フィルタ係数のロード並びにフィルタ処理データの読み取り及び書き込みに関して使用されるトップレベルの有限状態マシン(FSM)モジュールの状態図を示す。 図5は、図2のモジュールとの関連で使用される、プログラムされた数の係数を読み込むために使用される有限状態マシンの例示的構成を状態テーブルの形で示す。 図6Aは、図2の係数RAMモジュール用の部分的ロジックを示す。 図6Bは、図2の内部係数メモリへの係数の読み込みの概略構成を示す。 図7は、図7Aと図7Bとの関係を示す。 図7Aは、演算制御及び一般処理機能を提供する中心の構成可能なフィルタモジュールの一部を示す。 図7Bは、演算制御及び一般処理機能を提供する中央の構成可能なフィルタモジュールの残部を示す。 図8は、図2に示すデータ経路モジュール及び制御モジュールを含む、本発明による中央フィルタマクロモジュールを示すデータ回路/フロー図である。 図9は、図8のモジュールとの関連で使用するフィルタ演算用のデータ経路構成を示すデータ回路/フロー図である。 図10は、図8及び図9に示すデータ経路構成との関連で特定の多相直接フィルタ処理アプリケーションに使用される入力パイプライン構造を示すデータ回路/フロー図である。 図11は、図10の回路の本発明による特定のアプリケーション(FIR12)用の他の構成を示すデータ回路/フロー図である。 図12は、図10の回路の本発明による特定のアプリケーション(FIR11)用の他の構成を示すデータ回路/フロー図である。 図13は、図10の回路の本発明による特定の多相転置フィルタ処理アプリケーション用の他の構成を示すデータ回路/フロー図である。 図14は、図7の再構成可能な回路配置に使用される、本発明による同様に構成された“スライス”回路のトップフリップフロップのマルチプレクサ構成を示す回路図である。 図15は、図7の再構成可能な回路配置に使用される、本発明による同様に構成された“スライス”回路のボトムフリップフロップのマルチプレクサ構成を示す回路図である。

Claims (17)

  1. 複数のフィルタ処理モードを持つハードウェア再構成可能型デジタルフィルタにおいて、
    −入力データに対応するデータを処理するように構成された論理回路であって、該論理回路は、XxYのアレイのレジスタを含んで、Y軸方向に直線的に配列された前記レジスタを用いる少なくとも1つの第1フィルタ処理モードをサポートすると共に、X軸およびY軸方向に非直線的に配列された前記レジスタを用いる少なくとも1つの第2フィルタ処理モードをサポートし、前記X及びYの各々が少なくとも2であるような論理回路と、
    −前記論理回路に応答して計算を実行するように構成されると共に、少なくともY個の乗算論理回路及び少なくともY個の加算論理回路を含むような計算回路と、
    −当該デジタルフィルタを前記複数のフィルタ処理モードの間で切り換えるように構成されたモード選択回路と、
    を有していることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  2. 請求項1に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記論理回路及び前記計算回路は、前記モード選択回路に応答して、多相直接、多相転置、有限インパルス応答11タップ及び有限インパルス応答12タップなるフィルタ処理モードのうちの少なくとも2つにおいて動作するように再構成可能であることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  3. 請求項1に記載のハードウェア再構成可能型デジタルフィルタにおいて、Y軸方向に沿う前記乗算及び加算論理回路の各々は、これら乗算及び加算論理回路を前記モード選択回路に応答して前記Y軸方向に沿って再構成するように構成された再構成回路を有し、前記第1フィルタ処理モードはインパルス応答フィルタ処理モードをサポートし、前記第2フィルタ処理モードは少なくとも1つの多相フィルタ処理モードと他のインパルス応答フィルタ処理モードとをサポートすることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  4. 請求項1に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記論理回路及び前記計算回路は、多相直接フィルタ処理モード、多相転置フィルタ処理モード及びFIRフィルタ処理モードのうちの1つにおいて動作するように再構成可能であることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  5. 請求項4に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記モード選択回路は当該デジタルフィルタを前記多相転置フィルタ処理モードと前記モードのうちの他の1つとの間で切り換えるように構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  6. 請求項5に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記モード選択回路、当該デジタルフィルタを前記多相転置フィルタ処理モードに切り換えるように構成された第1選択機能と、当該デジタルフィルタを前記多相転置フィルタ処理モード以外のモードの間で切り換えるように構成された第2選択機能とを備えていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  7. 請求項6に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記第1選択機能は前記計算回路を再構成するものであり、前記第2選択機能は前記論理回路を再構成するものであることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  8. 請求項6に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記多相転置フィルタ処理モード以外の前記モードが、多相直接フィルタ処理モードと2つのFIRフィルタ処理モードとを含み、これらFIRフィルタ処理モードの一方は、前記2つのFIRフィルタ処理モードの他方よりも多いタップを含んでいることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  9. 請求項1に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記論理回路及び前記計算回路は、ビデオデータの待避及びロードをサポートするように再構成可能であり、同時に複数の長い入力ラインに対応するため、ビデオデータの各処理ステップを順に異なる入力ラインに適用することを特徴とするハードウェア再構成可能型デジタルフィルタ。
  10. 請求項1に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの複数のものは、Y軸方向に並ぶ回路モジュールとして構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  11. 請求項1に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの第1の複数のものの各々は、Y軸方向に並ぶ第1の回路モジュールとして構成され、前記アレイにおける前記レジスタの第2の複数のものの各々は、Y軸方向に並ぶ第2の回路モジュールとして構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  12. 複数のフィルタ処理モードを持つハードウェア再構成可能型デジタルフィルタにおいて、
    −フィルタ入力に対応するデータをビデオ画像セグメントにおける選択された目標ノードに対応するデータ点に対して処理及びミラーリングするように構成された論理回路であって、該論理回路はXxYのアレイのレジスタを含み、ここで前記Yは前記Xよりも大きく、前記Xが少なくとも2であるような論理回路と、
    −前記論理回路に応答して計算を実行するように構成されると共に、少なくともY個の乗算論理回路及び少なくともY個の加算論理回路を含むような計算回路と、
    −前記論理回路及び前記計算回路をY軸方向に直線的に配列された前記レジスタを用いてデータを処理するように構成することによって当該デジタルフィルタを多相転置フィルタ処理モードに移行させると共に、前記論理回路及び前記計算回路をX軸およびY軸方向に非直線的に配列された前記レジスタを用いてデータを処理するように構成することによって当該デジタルフィルタを他のフィルタ処理モードに移行させるように構成されたモード選択回路と、
    を有していることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  13. 請求項12に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの複数のものが、回路モジュールとして構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  14. 請求項12に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの複数のものが、Y軸方向に並ぶ回路モジュールとして構成されることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  15. 請求項12に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記アレイにおける前記レジスタの第1の複数のものの各々は、Y軸方向に並ぶ第1の回路モジュールとして構成され、前記アレイにおける前記レジスタの第2の複数のものの各々は、Y軸方向に並ぶ第2の回路モジュールとして構成されていることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  16. 請求項12に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記Xは2に等しく、前記Yは6以上であり、前記複数のフィルタ処理モードが多相転置フィルタ処理モード、多相直接フィルタ処理モード及び2つのFIRフィルタ処理モードを含み、前記2つのFIRフィルタ処理モードのうちの一方が前記2つのFIRフィルタ処理モードのうちの他方よりも多くのタップを含んでいることを特徴とするハードウェア再構成可能型デジタルフィルタ。
  17. 請求項16に記載のハードウェア再構成可能型デジタルフィルタにおいて、前記FIRフィルタモードのうちの一方が12個のタップを含むことを特徴とするハードウェア再構成可能型デジタルフィルタ。
JP2003501062A 2001-05-31 2002-05-28 複数のフィルタ処理モードを有する再構成可能型デジタルフィルタ Expired - Fee Related JP4307987B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/871,198 US6963890B2 (en) 2001-05-31 2001-05-31 Reconfigurable digital filter having multiple filtering modes
PCT/IB2002/001892 WO2002097986A2 (en) 2001-05-31 2002-05-28 Reconfigurable digital filter having multiple filtering modes

Publications (2)

Publication Number Publication Date
JP2004534446A JP2004534446A (ja) 2004-11-11
JP4307987B2 true JP4307987B2 (ja) 2009-08-05

Family

ID=25356924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003501062A Expired - Fee Related JP4307987B2 (ja) 2001-05-31 2002-05-28 複数のフィルタ処理モードを有する再構成可能型デジタルフィルタ

Country Status (8)

Country Link
US (1) US6963890B2 (ja)
EP (1) EP1400016B1 (ja)
JP (1) JP4307987B2 (ja)
KR (1) KR100901073B1 (ja)
CN (1) CN100559713C (ja)
AT (1) ATE517466T1 (ja)
TW (1) TWI228664B (ja)
WO (1) WO2002097986A2 (ja)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889383B1 (en) 2000-10-23 2005-05-03 Clearplay, Inc. Delivery of navigation data for playback of audio and video content
US7975021B2 (en) 2000-10-23 2011-07-05 Clearplay, Inc. Method and user interface for downloading audio and video content filters to a media player
US7433909B2 (en) * 2002-06-25 2008-10-07 Nvidia Corporation Processing architecture for a reconfigurable arithmetic node
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7624204B2 (en) * 2001-03-22 2009-11-24 Nvidia Corporation Input/output controller node in an adaptable computing environment
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US20030103166A1 (en) * 2001-11-21 2003-06-05 Macinnis Alexander G. Method and apparatus for vertical compression and de-compression of progressive video data
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US20030108012A1 (en) * 2001-12-12 2003-06-12 Quicksilver Technology, Inc. Method and system for detecting and identifying scrambling codes
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) * 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
JP3490078B2 (ja) * 2002-05-10 2004-01-26 沖電気工業株式会社 ベースバンド信号受信回路及びワード検出回路
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
KR100966912B1 (ko) * 2002-06-27 2010-06-30 톰슨 라이센싱 필터 계수 ram을 위한 자동 뱅크 스위칭을 검출 및수행하기 위한 방법 및 시스템
KR100970517B1 (ko) * 2002-07-31 2010-07-16 엔엑스피 비 브이 데이터 처리 회로, 이미지 처리 시스템, 수신기 디코더장치 및 통신 네트워크
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7353243B2 (en) * 2002-10-22 2008-04-01 Nvidia Corporation Reconfigurable filter node for an adaptive computing machine
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US8276135B2 (en) * 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
FR2849330A1 (fr) * 2002-12-18 2004-06-25 Koninkl Philips Electronics Nv Convertisseur numerique de frequence d'echantillonnage
ATE376281T1 (de) * 2003-04-29 2007-11-15 Nxp Bv Digitale filteranordnung
US7274403B2 (en) * 2004-01-30 2007-09-25 Broadcom Corporation Motion adaptive deinterlacer with integrated dynamic format change filter
US7002940B2 (en) * 2004-03-12 2006-02-21 Freescale Semiconductor, Inc. Multiple-stage filtering device and method
US7320064B2 (en) 2004-07-23 2008-01-15 Honeywell International Inc. Reconfigurable computing architecture for space applications
DE102004036546A1 (de) * 2004-07-28 2006-03-23 Infineon Technologies Ag Integrierter Halbleiterspeicher
AU2006236335A1 (en) * 2005-04-18 2006-10-26 Clearplay, Inc. Apparatus, system and method for associating one or more filter files with a particular multimedia presentation
US7606851B2 (en) * 2005-08-10 2009-10-20 Lattice Semiconductor Corporation Correlator having user-defined processing
US20070046781A1 (en) * 2005-08-29 2007-03-01 Honeywell International Inc. Systems and methods for processing digital video data
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US7590676B1 (en) * 2005-09-27 2009-09-15 Altera Corporation Programmable logic device with specialized multiplier blocks
US7477323B2 (en) * 2005-11-07 2009-01-13 Kolorific, Inc. Method and system for digital image magnification and reduction
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
JP4782591B2 (ja) * 2006-03-10 2011-09-28 富士通セミコンダクター株式会社 リコンフィグラブル回路
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
JP2008021119A (ja) * 2006-07-13 2008-01-31 Neuro Solution Corp デジタルフィルタおよびこれを用いた画像処理装置
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
JP4866194B2 (ja) * 2006-09-29 2012-02-01 富士通セミコンダクター株式会社 集積回路及びリコンフィギュラブル回路の入力データ制御方法
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US20080182021A1 (en) * 2007-01-31 2008-07-31 Simka Harsono S Continuous ultra-thin copper film formed using a low thermal budget
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
CN101072019B (zh) * 2007-04-19 2010-05-19 华为技术有限公司 一种滤波器及其滤波方法
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8280940B2 (en) * 2007-10-22 2012-10-02 Himax Technologies Limited Data processing apparatus with shadow register and method thereof
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
FR2935850B1 (fr) * 2008-09-05 2011-04-01 Commissariat Energie Atomique Dispositif de filtrage a structure hierarchique et dispositif de filtrage reconfigurable
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US20100251322A1 (en) * 2009-03-30 2010-09-30 Raymond Palinkas Upstream bandwidth conditioning device
US9330282B2 (en) * 2009-06-10 2016-05-03 Microsoft Technology Licensing, Llc Instruction cards for storage devices
US8321956B2 (en) 2009-06-17 2012-11-27 Microsoft Corporation Remote access control of storage devices
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
JP5882917B2 (ja) * 2010-02-26 2016-03-09 インダストリー−ユニバーシティーコオペレーション ファウンデーション ハンヤン ユニバーシティー 周波数再構成が可能なデジタルフィルタとフィルタリング方法及びこれを用いたイコライザとその設計方法
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8612503B2 (en) * 2010-03-16 2013-12-17 Integrated Device Technology, Inc. Methods and apparatuses for flexible and high performance digital signal processing
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
KR101920719B1 (ko) 2012-11-19 2019-02-13 삼성전자주식회사 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
CN103166598B (zh) * 2013-03-01 2016-06-08 华为技术有限公司 数字滤波器及其配置方法、电子设备及无线通信系统
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
JP2015173052A (ja) * 2014-03-12 2015-10-01 日新イオン機器株式会社 イオン注入装置及びイオン注入方法
KR102192991B1 (ko) 2014-04-23 2020-12-18 삼성전자주식회사 가변적인 디지털 필터를 포함하는 아날로그-디지털 컨버터 및 이를 포함하는 이미지 센서
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10083007B2 (en) * 2016-09-15 2018-09-25 Altera Corporation Fast filtering
US10572985B2 (en) * 2016-11-18 2020-02-25 Canon Kabushiki Kaisha Image processing circuit with multipliers allocated based on filter coefficients
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
CN107218988A (zh) * 2017-06-22 2017-09-29 中山天业智能装备科技有限公司 一种快速高精度的称重仪及其检测方法
CN108572266B (zh) * 2017-12-11 2020-09-15 深圳市鼎阳科技股份有限公司 一种波形发生装置
US10581407B2 (en) * 2018-05-08 2020-03-03 The Boeing Company Scalable fir filter
CN108683414B (zh) * 2018-07-23 2023-09-22 上海艾为电子技术股份有限公司 通用型滤波器
CN112532207B (zh) * 2020-11-19 2024-01-26 浙江集速合芯科技有限公司 一种片上可变滤波器快速调谐的方法
US11336367B1 (en) * 2021-03-12 2022-05-17 Iena Corporation Low-power pre-compensation of linear and nonlinear transmitter effects in narrow-spectrum optical signals
CN117112030B (zh) * 2023-09-12 2024-03-26 南京微盟电子有限公司 一种寄存器组地址自动累加电路及应用方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206821A (en) * 1991-07-01 1993-04-27 Harris Corporation Decimation circuit employing multiple memory data shifting section and multiple arithmetic logic unit section
US5339264A (en) * 1992-07-27 1994-08-16 Tektronix, Inc. Symmetric transposed FIR digital filter
KR100475201B1 (ko) 1996-10-31 2005-05-24 코닌클리케 필립스 일렉트로닉스 엔.브이. 샘플레이트를변경하는필터디바이스및영상디스플레이장치
FR2776093A1 (fr) * 1998-03-10 1999-09-17 Philips Electronics Nv Circuit processeur programmable muni d'une memoire reconfigurable, pour realiser un filtre numerique
US6260053B1 (en) * 1998-12-09 2001-07-10 Cirrus Logic, Inc. Efficient and scalable FIR filter architecture for decimation

Also Published As

Publication number Publication date
US20020184275A1 (en) 2002-12-05
JP2004534446A (ja) 2004-11-11
KR20030045017A (ko) 2003-06-09
EP1400016A2 (en) 2004-03-24
KR100901073B1 (ko) 2009-06-03
US6963890B2 (en) 2005-11-08
EP1400016B1 (en) 2011-07-20
CN1463490A (zh) 2003-12-24
CN100559713C (zh) 2009-11-11
WO2002097986A3 (en) 2003-04-10
WO2002097986A2 (en) 2002-12-05
ATE517466T1 (de) 2011-08-15
TWI228664B (en) 2005-03-01

Similar Documents

Publication Publication Date Title
JP4307987B2 (ja) 複数のフィルタ処理モードを有する再構成可能型デジタルフィルタ
JP4982080B2 (ja) デジタルフィルタ
US8126949B1 (en) Reconfigurable filter node for an adaptive computing machine
US5381357A (en) Complex adaptive fir filter
US7409417B2 (en) Polyphase filter with optimized silicon area
US6094726A (en) Digital signal processor using a reconfigurable array of macrocells
JP2001236496A (ja) 絶対差分の合計および対称濾波用の再構成可能simdコプロセッサ構造
JP2008537268A (ja) 可変精度相互接続を具えたデータ処理エレメントの配列
CN110737628A (zh) 一种可重构处理器和可重构处理器系统
US6704759B2 (en) Method and apparatus for compression/decompression and filtering of a signal
JP4201816B2 (ja) リコンフィギュラブル回路およびリコンフィギュラブル回路の制御方法
KR100435349B1 (ko) 병렬처리장치와이를포함하는디지털오디오신호처리장치및방법
US20170063346A1 (en) Configurable fir filter with segmented cells
EP0454050B1 (en) Integrated circuit device for processing signals and suitable for performing multiply-accumulation
US7865695B2 (en) Reading and writing a memory element within a programmable processing element in a plurality of modes
Ramachandran et al. Design and FPGA implementation of a video scalar with on-chip reduced memory utilization
Diab et al. FIR filter mapping and performance analysis on MorphoSys
JP7346235B2 (ja) 半導体装置
US7734846B2 (en) Datapipe CPU register array
JP2009043094A (ja) 情報処理システム、プログラマブル論理回路装置、配線方法、論理回路作成方法、及び、プログラム
JP4936223B2 (ja) アフィン変換装置および方法
KR100886730B1 (ko) 재구성 가능 회로 및 재구성 가능 회로의 제어 방법
Shan et al. Design and implementation of a data-driven dynamical reconfigurable cell array
JPS63245568A (ja) 画像変換装置
EP1272939A1 (en) Elementary cell of a linear filter for image processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050527

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070323

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080819

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081114

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090421

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090430

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees