乗算器と加算器とを備えたプロセシングエレメントをアレイ状に接続したシストリックFIRフィルタであって、最終段のプロセシングエレメントの出力を選択的に初段のプロセシングユニットの加算対象入力として帰還させるマルチプレクサ部と、各プロセシングエレメントにフィルタ係数を供給するフィルタ係数供給部と、フィルタ演算のタップ数と前記プロセシングエレメントの数とに応じて、動作単位毎に、前記フィルタ係数供給部がそれぞれのプロセシングエレメントに供給するフィルタ係数と、前記マルチプレクサ部の選択動作と、初段のプロセシングエレメントに前記フィルタ係数との乗算対象として入力する入力データとを制御するタイミングコントローラ部と、を備えたことを特徴とするシストリックFIRフィルタ。前記タイミングコントローラ部は、前記タップ数が前記プロセシングエレメントの個数分を上回る場合に、前記プロセシングエレメントの個数分のフィルタ演算をセットとして、タップ数分の演算が行なわれるまで、最終段のプロセシングエレメントの出力データを初段のプロセシングユニットの加算対象入力として帰還させるように前記マルチプレクサ部を制御することを特徴とする請求項1に記載のシストリックFIRフィルタ。前記タイミングコントローラ部は、前記セットとされたフィルタ演算に用いる入力データを動作単位毎に連続して初段のプロセシングエレメントに前記フィルタ係数との乗算対象として入力することを特徴とする請求項2に記載のシストリックFIRフィルタ。前記タイミングコントローラ部は、前記セットとされたフィルタ演算において、各プロセシングエレメントにおいて乗算すべきフィルタ係数がそれぞれのプロセシングエレメントに乗算動作時に供給されるように前記フィルタ係数供給部を制御することを特徴とする請求項3に記載のシストリックFIRフィルタ。前記タイミングコントローラ部は、前記セットとされたフィルタ演算において、最終段のプロセシングエレメントがタップ数分の演算が行なわれたデータを出力している間に、出力データが有効である旨の信号を出力することを特徴とする請求項2~4のいずれか1項に記載のシストリックFIRフィルタ。例えば、図5に示したFIRフィルタ20は、5個のPE100で構成されているため、5タップまでのフィルタ演算を行なうことができる。しかしながら、一般に、FIRフィルタで要求されるタップ数はもっと多い。例えば、1000タップのフィルタ演算を行なう場合、PE100を1000個並べる必要がある。この結果、回路規模が非常に大きくなってしまうという問題がある。そこで、本発明は回路規模を大きくすることなく、タップ数の多いフィルタ演算を行なうことができるシストリックFIRフィルタを提供することを目的とする。上記課題を解決するため、本発明のシストリックFIRフィルタは、乗算器と加算器とを備えたプロセシングエレメントをアレイ状に接続したシストリックFIRフィルタであって、最終段のプロセシングエレメントの出力を選択的に初段のプロセシングユニットの加算対象入力として帰還させるマルチプレクサ部と、各プロセシングエレメントにフィルタ係数を供給するフィルタ係数供給部と、フィルタ演算のタップ数と前記プロセシングエレメントの数とに応じて、動作単位毎に、前記フィルタ係数供給部がそれぞれのプロセシングエレメントに供給するフィルタ係数と、前記マルチプレクサ部の選択動作と、初段のプロセシングエレメントに前記フィルタ係数との乗算対象として入力する入力データとを制御するタイミングコントローラ部と、を備えたことを特徴とする。ここで。前記タイミングコントローラ部は、前記タップ数が前記プロセシングエレメントの個数分を上回る場合に、前記プロセシングエレメントの個数分のフィルタ演算をセットとして、タップ数分の演算が行なわれるまで、最終段のプロセシングエレメントの出力データを初段のプロセシングユニットの加算対象入力として帰還させるように前記マルチプレクサ部を制御することができる。また、前記タイミングコントローラ部は、前記セットとされたフィルタ演算に用いる入力データを動作単位毎に連続して初段のプロセシングエレメントに前記フィルタ係数との乗算対象として入力することができる。また、前記タイミングコントローラ部は、前記セットとされたフィルタ演算において、各プロセシングエレメントにおいて乗算すべきフィルタ係数がそれぞれのプロセシングエレメントに乗算動作時に供給されるように前記フィルタ係数供給部を制御することができる。また、前記タイミングコントローラ部は、前記セットとされたフィルタ演算において、最終段のプロセシングエレメントがタップ数分の演算が行なわれたデータを出力している間に、出力データが有効である旨の信号を出力することができる。本発明によれば、回路規模を大きくすることなく、タップ数の多いフィルタ演算を行なうことができるシストリックFIRフィルタが提供される。本発明の実施の形態について図面を参照して説明する。図1は、本実施形態に係るシストリックFIRフィルタ10の構成を示すブロック図である。本実施形態では、アレイ状に接続された5個のPE100を用いているが、シストリックFIRフィルタ10を構成するPE100の数は5個に限られない。シストリックFIRフィルタ10に用いるPE100は、図6に示した従来のPE100と同様とすることができる。このため、PE100については、図6に示した図を参照して、同じ符号を用いて説明する。本図に示すように、シストリックFIRフィルタ10は、5個のPE100に加えて、連続的に入力される入力データDATAINを一時的に格納して初段のPE1100aに出力するデータメモリ118と、PE100に対応して設けられ、対応するPE100に供給するフィルタ係数を格納する5個の係数メモリ120120a~120eと、タイミングコントローラ130と、マルチプレクサ140とを備えている。マルチプレクサ140は、最終段のPE5100eの第2出力端子104eからの出力データと、0とを入力し、タイミングコントローラ130からの制御に基づいて選択的に出力して、PE100aの第2入力端子102aに入力する。タイミングコントローラ130は、データメモリ118からのデータ読み出し順序およびタイミング、係数メモリ120が対応するPE100に出力するフィルタ係数の設定、マルチプレクサ140の切り替え、シストリックFIRフィルタ10が出力するデータDATAOUTが有効か無効かを示すOutputDataEnable信号の出力を制御する。すなわち、本実施形態において、データメモリ118は、入力データDATAINを必ずしも入力順に出力せず、後述する規則に従って初段のPE1100aに出力する。また、シストリックFIRフィルタ10は、有効なデータと無効なデータとを出力する。有効なデータは、PE100の個数分連続して出力することができる。また、無効なデータには、フィルタ演算の途中のテンポラルなデータが含まれる。係数メモリ120120a~120eには、それぞれ複数個のフィルタ係数が格納されている。ここでは、各係数メモリ120とも、アドレスA0、アドレスA1、アドレスA2...にフィルタ係数が格納されるものとする。N1タップのフィルタ演算に用いる係数をK0、K1、...、KNとすると、出力側のPE5100eに対応する係数メモリ5120eから入力側のPE1100aに対応する係数メモリ1120aに向かって、順番にK0、K1、K2、K3、K4をそれぞれのアドレスA0に格納する。フィルタ係数K5以降は、係数メモリ5120eに戻って、係数メモリ1120aに向かって、順番にK5、K6、K7、K8、K9をそれぞれのアドレスA1に格納する。フィルタ係数K10以降も同様の規則で各係数メモリ120に格納する。タップ数NがPE100の個数である5の倍数でない場合には、係数KN以降を0として係数メモリ120に格納すればよい。なお、フィルタ係数に対称性がある場合であっても、入力側の係数メモリ1120aから出力側の係数メモリ5120eに向かって、K0、K1、K2、K3、K4というように格納することは原則的にできない。具体例として、10タップのフィルタ演算を実行する場合のFIRフィルタ10の動作について説明する。この場合、フィルタ演算に必要なフィルタ係数はK0~K9であり、係数メモリ5120eにフィルタ係数K0とフィルタ係数K5を格納し、係数メモリ4120dにフィルタ係数K1とフィルタ係数K6を格納し、係数メモリ3120cにフィルタ係数K2とフィルタ係数K7を格納し、係数メモリ2120bにフィルタ係数K3とフィルタ係数K8を格納し、係数メモリ1120aにフィルタ係数K4とフィルタ係数K9を格納する。図2は、10タップのフィルタ演算を実行する場合のシストリックFIRフィルタ10の動作を説明するタイミング図である。また、図3は、時刻TとOutputDataEnabale信号とマルチプレクサ140の設定との関係を説明するタイミング図である。本実施形態のシストリックFIRフィルタ10において、フィルタ係数K0からK4を用いた時刻T0~時刻T12における演算は、従来のFIRフィルタ20の動作例と同様に行なわれる。時刻T13以降では、最終段のPE5100eの第2出力端子104eからの出力データを再度初段のPE1100aの第2入力端子102aにフィードバックして、フィルタ係数K5からK9を用いた演算を行なうようにする。このため、タイミングコントローラ130は、時刻T12~時刻T16の間、マルチプレクサ140を、PE5100eの第2出力端子104eからの出力データが出力されるように切り替える。例えば、図2に示すように、時刻T12で、PE5-dに出力されるD4×K4D3×K3D2×K2D1×K1D0×K0=Ft0とするは、マルチプレクサ140を介してPE1の第2入力端子102aに入力される。そして、PE1において、D9×K9の演算結果と加算されて、時刻T13にFt0D9×K9として、PE1の第2出力端子104aから出力される。このために、タイミングコントローラ130は、時刻T11以降、係数メモリ1120aからフィルタ係数K9がPE1100aに読み出されるように係数メモリ1120aを制御する。時刻T14においてPE2-dには、さらに係数K8とデータD8の乗算結果が加算されたFt0D9×K9D8×K8が到達する。このために、タイミングコントローラ130は、時刻T12以降、係数メモリ2120bからフィルタ係数K8がPE2100bに読み出されるように係数メモリ2120bを制御する。同様に、PE3100cを通過すると、フィルタ係数K7とデータD7との乗算結果が加算され、PE4100dを通過すると、フィルタ係数K6とデータD6との乗算結果が加算され、PE5100eを通過すると、フィルタ係数K5とデータD5との乗算結果が加算される。この結果、時刻T17で、Ft0D9×K9D8×K8D7×K7D6×K6D5×K5が、PE5の第2出力端子104eからDATAOUTとして出力される。すなわち、FIRフィルタ10で、y[0]=D0×K0D1×K1D2×K2D3×K3D4×K4D5×K5D6×K6D7×K7D8×K8D9×K9で表わされる10タップのフィルタ演算が行なわれたことになる。なお、タイミングコントローラ130は、時刻T13以降、係数メモリ3120cからフィルタ係数K7がPE3100cに読み出されるように係数メモリ3120cを制御し、時刻T14以降、係数メモリ4120dからフィルタ係数K6がPE4100dに読み出されるように係数メモリ4120dを制御し、時刻T15以降、係数メモリ5120eからフィルタ係数K5がPE5100eに読み出されるように係数メモリ5120eを制御する。また、時刻T17以降は、時刻T18で、フィルタ係数K0~K9とデータD1~D10のフィルタ演算結果y[1]が得られ、時刻T19で、フィルタ係数K0~K9とデータD2~D11のフィルタ演算結果y[2]が得られ、時刻T20で、フィルタ係数K0~K9とデータD3~D12のフィルタ演算結果y[3]が得られ、時刻T21で、フィルタ係数K0~K9とデータD4~D13のフィルタ演算結果y[4]が得られる。このため、タイミングコントローラ130は、図3に示すように、時刻T17~時刻T21の間、OutputDataEnable信号を有効にする。連続して得ることができるフィルタ演算結果は、用いるPE100の数に等しくなる。本実施形態では、5個のPE100を用いているため、5つのフィルタ演算結果y[0]~y[4]を連続して得ることができる。この連続するフィルタ演算を1セットとする。フィルタ演算結果y[5]以降が必要な場合は、y[5]以降を算出するために、次セットとして、データメモリ118からの読み出しデータをデータD5まで戻ってデータD19まで同じ動作を繰り返す。これにより、5つのフィルタ演算結果y[5]~y[9]を連続して得ることができる。このとき、時刻T21で、y[5]のための最初の乗算であるD9×K4が初段のPE1100aの乗算器111aで行なわれる。y[5]のためのテンポラルな演算結果Ft5は、時刻T27において最終段のPE5100eから出力される。以降同様にして、時刻T28にFt6が出力され、時刻T29にFt7が出力され、時刻T30にFt8が出力され、時刻T31にFt9が出力される。そして、時刻T32で、フィルタ係数K0~K9とデータD5~D14のフィルタ演算結果y[5]が得られ、時刻T33で、フィルタ係数K0~K9とデータD6~D15のフィルタ演算結果y[6]が得られ、時刻T34で、フィルタ係数K0~K9とデータD7~D16のフィルタ演算結果y[7]が得られ、時刻T35で、フィルタ係数K0~K9とデータD8~D17のフィルタ演算結果y[8]が得られ、時刻T36で、フィルタ係数K0~K9とデータD9~D18のフィルタ演算結果y[9]が得られる。このため、タイミングコントローラ130は、図3に示すように、時刻T32~時刻T36の間、OutputDataEnable信号を有効にする。PE1100aに対応する係数メモリ1120aでは、時刻T11以降、フィルタ係数K9を出力するようにしていたが、時刻T21には、フィルタ係数K4を出力するように切り替える必要がある。この切り替えタイミングは、時刻T16から時刻T21の間であればよく、タイミングコントローラ130によって制御される。同様に、PE2100bに対応する係数メモリ2120bでは、時刻T22までにフィルタ係数K3を出力するように切り替え、PE3100cに対応する係数メモリ3120cでは、時刻T23までにフィルタ係数K2を出力するように切り替え、PE4100dに対応する係数メモリ4120dでは、時刻T24までにフィルタ係数K1を出力するように切り替え、PE5100eに対応する係数メモリ5120eでは、時刻T25までにフィルタ係数K0を出力するように切り替える。タイミングコントローラ130のマルチプレクサ140に対する制御については、図3に示すように、データメモリ118から最初のデータD0が初段のPE1100aに入力されてから加算器112aで加算が行なわれる前の時刻T6までは、マルチプレクサ140の出力はDontcareとすることができる。時刻T7~時刻T11は、0を出力するようにマルチプレクサ140を制御し、時刻T12~時刻T16は、PE5100eの出力データを出力するようにマルチプレクサ140を制御する。同様に時刻T17~時刻T21は、Dontcareとすることができ、時刻T22~時刻T26は、0を出力するようにし、時刻T27~時刻T31は、PE5100eの出力データを出力するようにマルチプレクサ140を制御する。上述の例では、タップ数を10とし、1回ループするようにしたが、例えば、タップ数を15とした場合には、最終段のPE5100eからの出力をフィードバックする期間を延ばして2回ループするようにし、フィルタ係数K10~K14を用いた演算結果をさらに加算するように制御すればよい。すなわち、時刻T17以降も最終段のPE5100eからの出力が初段のPE1100aに入力され続けるようにマルチプレクサ140を制御することにより、フィルタ係数K0~K9によるフィルタ演算結果に対して、フィルタ係数K10~K14と入力データとの乗算結果を加算していくことができる。このとき必要となるフィルタ係数K10、K11、K12、K13、K14は、それぞれ係数メモリ5120e、係数メモリ4120d、係数メモリ3120c、係数メモリ2120b、係数メモリ1120aに保存しておく。そして、時刻T16で、係数メモリ1120aの出力をフィルタ係数K9からK14に切り替え、時刻T17で、係数メモリ2120bの出力をフィルタ係数K8からK13に切り替え、時刻T18で、係数メモリ3120cの出力をフィルタ係数K7からK12に切り替え、時刻T19で、係数メモリ4120dの出力をフィルタ係数K6からK11に切り替え、時刻T20で、係数メモリ5120eの出力をフィルタ係数K5からK10に切り替えるように制御する。その後も、最終段のPE5100eからの出力を、マルチプレクサ140を介してフィードバックし続け、適切なタイミングで係数フィルタを切り替えることで、もっと長いタップ数のフィルタ演算に対応することができる。次に、タイミングコントローラ130のデータメモリ118からの読み出し制御について説明する。FIRフィルタ10では、PE100の数に等しい1セットずつのフィルタ演算結果の出力となるため、PE100の数を超えるフィルタ演算結果を得るためには、1セット目のフィルタ演算で必要なデータ数をデータメモリ118から読み出した後、次セットのフィルタ演算のために、PE100の個数分ずらして読み出しを開始するように制御する。すなわち、タップ数が10の場合、タイミングコントローラ130は、1セット目のフィルタ演算でデータD0からデータD14まで連続的に読み出した後、2セット目のフィルタ演算のためにデータD5=D0PE数からデータD19まで読み出し、さらに3セット目のフィルタ演算のために、D10=D5PE数からD24まで読み出すようにデータメモリ118を制御すればよい。以上のタイミングコントローラ130の制御を一般化すると、以下のように示すことができる。すなわち、PE100の数をPEnとし、タップ数をNとすると、フィルタ演算結果を得るために必要なループ数Loopnは、Loopn=タップ数N-1÷PEnの商となる。例えば、PEnが5の場合、タップ数Nが1~5のとき、ループ数Loopnは0となりループの必要はない。タップ数Nが6~10のとき、ループ数Loopnは1となりループを1回行なえばよい。タップ数Nが11~15のとき、ループ数Loopnは2となりループを2回行なえばよい。ループ数Loopn≧1の場合、データメモリ118からの読み出し制御は、データD0からDn1まで読み出した後、データDn2~Dn3を読み出し、データDn4~Dn5...を読み出すようにする。ここで、n1=Loopn2×PEn-1であり、n2=PEnであり、n3=n2Loopn2×PEn-1であり、n4=PEn×2であり、n5=n4Loopn2×PEn-1である。すなわち、Loopn2×PEn個のデータを連続して読み出す毎に、PEn個ずれたところから読み出し直せばよい。また、ループ数Loopn≧1の場合、フィルタ係数の切り替え制御は、最も入力側の係数メモリ120について、まずPEn×21クロック目に切り替え、以降PEnクロック毎に切り替える制御を行なう。そして、出力側に隣接する係数メモリ120について、1クロックずつ遅れて切り替える制御を行なえばよい。以上説明したように、本実施形態のシストリックFIRフィルタ10によれば、最終段のPE5100eの出力を初段のPE1100aにフィードバックできる構成としているため、演算可能なタップ数がPE100の数に依存しない。このため、回路規模を大きくすることなく、タップ数の多いフィルタ演算を行なうことができる。このため、必要最小限度のPE100をLSI等に実装すればよく、コストと性能のバランスの取れたフィルタICを実現することが可能となる。なお、上述の実施形態では、各PE100に対応した係数メモリ120を設けるようにしていたが、図4に示すように共通の係数メモリ180を1つ設けるようにしてもよい。この場合、各PE100に対応させてラッチ190ラッチ1190a~ラッチ5190eを設けるようにする。各ラッチ190はタイミングコントローラ130によって制御される。図2に示したタイミング図からわかるように、フィルタ係数は、複数のPE100に対して同時に変化することはなく、1クロックずつずれて変化する。このため、共通の係数メモリ180からフィルタ係数を読み出して、最も入力側のラッチ190aから順にラッチするように制御すればよい。なお、係数メモリ180は、必ずしもメモリである必要はなく、フィルタ係数を生成するような演算装置であってもよい。また、本実施形態において、LSI等の実装上は、シストリックアレイの最終段のPE5100eと初段のPE1100aとが近接するように配置することが望ましい。最終段のPE5100eと初段のPE1100aとの距離が離れると、フィードバックラインの配線長が長くなり、動作スピード上のネックとなるおそれがあるからである。