(57)【要約】      （修正有）【課題】クロックに同期して逐次入力されるデータを対象として任意係数の積和演算を実行する高速ディジタルフィルタの回路規模を削減し消費電力を低減する。【解決手段】Ｍタップの積和演算に対して１つまたは複数の積和演算にブロック分けし、予め乗数または被乗数の一方であるブロック内入力データから加算を行い、ブロック内の乗数または被乗数の他方を分離的な最小項で表すことで、乗算部分積に相当するａｎｄ項を作り、ブロック内を一括してｏｒして論理的に１つに集約し、ブロック内の部分積を１つの乗算器の部分積と同程度の数に削減し、またブロック内の積和演算の乗算後の加算を無くして、ブロック間の総和をとり、積和演算結果を出力する。またＴタップ数のデジタルフィルタを、２タップ単位で係数と入力データの関係をクロスした形で加算し、加算した結果を１つの乗算器で計算することで、乗算器の個数を半分にする。【選択図】図２
2009124306.tif 000002
【特許請求の範囲】
【請求項１】
Ｍタップの積和演算を１つまたは複数のブロックに分解し、各ブロック内の積和演算結果を加算して積和演算結果を求める積和演算器であって、各ブロック内の積和演算の乗数側（または被乗数側）を入力としたブロック加算回路と、被乗算側（または乗数側）の変数からブロック内最小項を作るブロック内最小項論理回路と、ブロック内加算回路の出力とブロック内最小項論理回路の出力から積和項（ａｎｄ−ｏｒ項）を作るブロック部分積生成回路と、ブロック部分積生成回路の出力を加算するブロック部分積加算回路と、各ブロック部分積加算回路の出力を入力とした全体総和回路とを、具備することを特徴とする積和演算器。
【請求項２】
クロックに同期して入力される入力データに対するＴタップのデジタルフィルタであって、入力データを取り込むシフトレジスタと、Ｔタップを２タップ単位にクロスして計算するクロス乗算器と、暫定積和演算結果を算出する暫定積和演算回路と、入力データから計算される逐次修正値計算回路と、係数入力部と、係数修正値入力部と、最終結果計算回路とを、具備したことを特徴とするデジタルフィルタ。
【請求項３】
クロス加算器と乗算器から構成されるクロス乗算器を、具備したことを特徴とする請求項２記載のデジタルフィルタ。
【請求項４】
係数入力部と、係数入力部から係数修正値を算出する係数修正値計算回路とを具備し、係数修正値計算回路の出力を係数修正値入力部に接続したことを特徴とする請求項２ないし請求項３記載のデジタルフィルタ。
【請求項５】
クロス加算器と、クロス加算器の出力の一方を入力とするブロック加算回路と、ブロック加算回路からの出力とクロス加算器の出力の他方とを入力とするブロック部分積生成回路とを、具備することを特徴とする請求項１記載の積和演算器により計算することを特徴とする請求項２記載のデジタルフィルタ。
【請求項６】
対称係数のＴタップのデジタルフィルタに関し、入力データ用シフトレジスタと、対称タップ加算部とを具備し、偶数タップではＴ／２個の係数、奇数タップでは（Ｔ−１）／１個の係数および対称タップ加算部を積和演算対象とし、請求項１の積和演算器により計算することを特徴とするデジタルフィルタ。
【請求項７】
対称係数のＴタップのデジタルフィルタに関し、入力データ用シフトレジスタと、対称タップ加算部と、ブロック係数加算結果入力部とを具備し、偶数タップではＴ／２個の係数、奇数タップでは（Ｔ−１）／１個の係数および対称タップ加算部を積和演算対象とし、請求項１の積和演算器により計算することを特徴とするデジタルフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、積和演算器およびデジタルフィルタに関し、特に高速の並列積和演算器およびサンプリングが高速であるＦＩＲ（ｆｉｎｉｔｅ  ｉｍｐｕｌｓｅ  ｒｅｓｐｏｎｓｅ：有限インパルス応答）フィルタのリアルタイム処理回路に関するものである。
【背景技術】
【０００２】
従来のＭタップ並列積和演算器は、Ｍ個の乗算器と乗算器出力の総和を加算する総和器とからなるのが一般的である。そのためＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）では処理ができないような高速リアルタイム処理では、図１に示すような積和演算器１４とシフトレジスタ１０とにより構成されるＦＩＲフィルタ１１が用いられる。図１は高速処理用トランスバーサルＦＩＲデジタルフィルタの一般的構成図である。シフトレジスタ１０に取り込まれた入力データＸｔ、・・・Ｘｔ−Ｔ＋１は、係数Ｃ０，・・・・，ＣＴ−１とともに積和演算器１４により計算される構成である。この積和演算器１４はタップ数分の乗算器１２により乗算され、総和器１３により、演算結果Ｙｔを計算する。
【０００３】
なお、従来のＦＩＲフィルタの例は例えば特許文献１に開示されている。
【特許文献１】特開２００１−２８５０３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
図１の従来型デジタルフィルタの場合、Ｔ個の乗算器１２が必要であり、また総和器１３もタップ数Ｔに応じ回路規模が大きくなるという問題があった。その結果として消費電力が大きい問題もあった。
【０００５】
本発明は、前述の問題点を解決するためになされたもので、回路規模、消費電力の削減を実現する積和演算器およびＦＩＲデジタルフィルタを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の請求項１に係わる積和演算器は、Ｍタップの積和演算に対して１つまたは複数のブロック分けを行い、予め乗数または被乗数の一方であるブロック内タップ数の入力データからブロック加算回路で加算を行い、ブロック内の乗数または被乗数の他方を分離的な最小項で表すことで、ブロック内の乗算部分積（ａｎｄ項）を作り、これらが同時に１にならない性質を利用しブロック内を一括してｏｒで論理的和をとるブロック部分積生成回路で１つの項に集約し、このことでブロック内のタップ分の部分積を１つの乗算器の部分積と同程度の数に削減し、ブロック部分積加算回路で部分積の総和を求め、各ブロック部分積加算回路の出力を全体総和回路で加算することで最終的な積和演算結果を出力することを可能にする。
【０００７】
本発明の請求項２に係わるデジタルフィルタは、Ｔタップ数のデジタルフィルタを、２タップ単位で係数と入力データの関係をクロス加算した形で乗算結果を算出するクロス乗算器と、クロス乗算器の出力の総和を算出する暫定積和演算回路と、本来の計算結果と一致させるための修正を行うため入力データから計算する逐次修正値計算回路と、係数修正入力部と、最終計算結果算出部を具備し、逐次計算部ではクロックに同期して入力データに依存した修正値を算出し、係数修正入力部の値とともに最終計算結果計算回路で暫定積和演算器の出力から減算し、最終計算結果を出力することを可能する。
【０００８】
本発明の請求項３に係わるデジタルフィルタは、先ずクロス加算器で計算し、その後乗算を行う構成でクロス乗算器を実現するデジタルフィルタである。
【０００９】
本発明の請求項４に係わるデジタルフィルタは、係数修正値計算部を内蔵することで、外部より従来型の係数を与えることを可能としたデジタルフィルタを実現する。
【００１０】
本発明の請求項５に係わるデジタルフィルタは、請求項１の積和演算器を請求項２のデジタルフィルタに適用する構成であり、クロス加算器と、クロス加算器の出力の一方を入力とするブロック加算回路と、クロス加算器の出力の他方を入力とする最小項論理回路とから構成するブロック内最小項論理回路と、ブロック加算回路の出力とブロック内最小項論理回路の出力から計算されるブロック部分積生成回路と、ブロック部分積加算回路と、全体総和回路とを具備し、請求項１記載の積和演算器により計算することを特徴とする請求項２記載のデジタルフィルタを実現する。
【００１１】
本発明の請求項６に係わるデジタルフィルタは、Ｔタップのフィルタ係数に対称性を有する場合の回路構成に関し、入力データ用シフトレジスタと、対称タップ加算部とを具備し、偶数タップではＴ／２個の係数、奇数タップでは（Ｔ−１）／１個の係数および対称点入力データ加算器を積和演算対象とし、請求項１の積和演算器により計算することで対称係数に対応したデジタルフィルタを実現する。
【００１２】
本発明の請求項７に係わるデジタルフィルタは、Ｔタップのフィルタ係数に対称性を有する場合の回路構成に関し、入力データ用シフトレジスタと、対称タップ加算部と、ブロック係数加算結果入力部とを具備し、偶数タップではＴ／２個の係数、奇数タップでは（Ｔ−１）／１個の係数および対称点入力データ加算器を積和演算対象とし、請求項１の積和演算器におけるブロック加算回路を無くした構成の積和演算器により計算することで対称係数に対応したデジタルフィルタを実現する。
【発明の効果】
【００１３】
本発明の積和演算器およびデジタルフィルタによれば、積和演算器およびデジタルフィルタを構成する回路規模が大幅に削減され、結果として消費電力の削減にも繋がる。
【発明を実施するための最良の形態】
【００１４】
本発明の実施形態に係る積和演算器およびデジタルフィルタについて図面を参照しながら説明する。
【００１５】
図２は、本発明の請求項１の実施形態１に係る積和演算器の構成を示す図である。
【００１６】
図２において、Ｘｔ，・・・・，Ｘｔ−Ｔ＋１はデータを受け取る入力データ線、ブロック加算回路２０はＬ個の入力データ、例えばＸｔ，・・・・，Ｘｔ−Ｌ＋１の組合せ分の加算を行う演算器でり、ブロック部分積生成回路２１はＬ個の係数Ｃ０、・・・ＣＬ−１の各桁のビット毎の最小項とブロック加算回路２０の出力の各桁のビット毎の積和項を算出する回路、ブロック部分積加算回路２２は、ブロック部分積生成回路２１の出力を部分積とみなし桁を考慮して計算する回路、全体総和回路２３は、Ｌ個毎にブロック部分積加算回路で計算された値を全て加算し、演算結果Ｙｔを計算する演算回路である。以上の構成全体が積和演算器２４になる。
【００１７】
図３は、本発明の請求項１の実施の形態２に係る積和演算器の構成を示す図である。図２においては本発明の請求項４記載のデジタルフィルタへの適用の場合の説明も含め、入力データ線の添え字に時間変数（クロック変数）ｔを含めたが、本発明の請求項１は必ずしも時間変数を含む必要はない。
【００１８】
図３においては、
Ｙ＝Ｃ０×Ｘ０＋Ｃ１×Ｘ１＋・・・＋ＣＭ−１×ＸＭ−１  （１）
なる請求項１のタップ数Ｍを偶数となる場合の積和演算器２４で説明する。またデータが２の補数の場合にも本質的差はないので、ここでは入力データおよび係数データをｎビットの非負整数としその他の条件も具体化した説明を行う。
【００１９】
図３ではタップ数Ｍの入力データＸ０，・・・・，ＸＭ―１を２タップ毎にブロック加算回路３０に入れる。
【００２０】
図３の左端のブロック加算回路３０には例えばＸ０，Ｘ１が入る。
【００２１】
以下では本発明の請求項１に基づく計算方法で２タップの積和演算Ｃ０×Ｘ０＋Ｃ１×Ｘ１の具体的な計算で説明する。ブロック加算回路３０には、２タップ単位では１つの加算器３２を含むが、３タップ以上を単位とする場合には組合せ分の個数の加算器３２が入る。
【００２２】
添え字の混乱を防ぐ為、Ｘ０，Ｘ１をＸ，Ｙに、係数３１のＣ０，Ｃ１をＣ，Ｄと置き換え説明する。
【００２３】
先ずブロック加算回路３０では１つの加算Ｘ＋Ｙ＝Ｚだけが加算器３２で計算され、Ｘ，Ｙ、Ｚが出力される。Ｘ，Ｙ，Ｃ，Ｄがそれぞれｎビットの非負整数であるので、Ｘ＝（ｘｎ−１，・・・，ｘ０），Ｙ＝（ｙｎ−１，・・・，ｙ０），Ｃ＝（ｃｎ−１，・・・，ｃ０），Ｄ＝（ｄｎ−１，・・・，ｄ０）とする。
【００２４】
Ｃ×Ｘ＋Ｄ×Ｙの２つの乗算の部分積は、乗算Ｃ×Ｘではｎ２個の部分積があり、例えば２２桁では、ｃ０ｘ１，ｃ１ｘ０の２つのａｎｄ項がある。乗算Ｄ×Ｙでも同様にｎ２個の部分積があり、例えばｄ０ｙ１，ｄ１ｙ０のａｎｄ項がある。この時、例えば
ｃ０ｘ１＋ｄ０ｙ１＝ｃ０（ｄ０＋ｄ’０）ｘ１＋ｄ０（ｃ０＋ｃ’０）ｙ１
＝ｃ０ｄ０（ｘ１＋ｙ１）＋ｃ０ｄ’０ｘ１＋ｄ０ｃ’０ｙ１        （２）
なる変形がなりたつ。（ここにｃ’０，ｄ’０は，ｃ０，ｄ０の否定を表すとした。）
【００２５】
ブロック内最小項論理回路３５で係数３１である２変数ｃ０，ｄ０の最小項ｃ０ｄ０，ｃ０ｄ’０，ｃ’０ｙ１を求め、またｘ１＋ｙ１がブロック加算回路３０でｚ１を計算し、ｃ０ｄ０，ｃ０ｄ’０，ｃ’０ｙ１は同時に１にならないブール値であることから、セレクタ３４により、ｃ０ｄ０ｚ１∪ｃ０ｄ’０ｘ１∪ｄ０ｃ’０ｙ１（３）なるブール値を求め（２）式の代わりの使うことができる。ここに∪はブール論理のＯＲを表す記号とした。
【００２６】
このようにＣ×Ｘ＋Ｄ×Ｙの計算は従来はｎ２個の部分積を加算することを行う乗算器が２個必要であり、また２つの乗算結果の加算が必要であるが、図３の構成では、Ｃ×Ｘ側の部分積とＤ×Ｙ側の部分積を（３）式で代表される形の１ビットに集約できる結果として部分積を約半分に減らすことができる。
【００２７】
図３では、ブロック部分積生成回路３３は、このようにブロック内最小項論理回路３５とセレクタ３４の構成により実現したが、等価な論理式による実現は多様である。
【００２８】
図３の１番目のブロック部分積加算回路３６は、Ｃ×Ｘ＋Ｄ×Ｙに関係する全ての（２）式で代表される積和項を計算する回路である。
【００２９】
ブロック部分積生成回路３３の出力である（３）で代表される部分積をブロック部分積加算回路３６で加算した結果は、Ｃ×Ｘ＋Ｄ×Ｙの計算結果と一致する。したがってブロック部分積加算回路３６の出力を全体総和回路３７で加算したものが、（１）式のＭタップの積和演算結果３９であるＹに一致する。
【００３０】
図４は本発明の請求項２の実施の形態１に係るデジタルフィルタの構成を示す図である。Ｙｔ＝Ｃ０×Ｘｔ＋Ｃ１×Ｘｔ−１＋・・・＋ＣＴ−１×Ｘｔ−Ｔ＋１  （４）で表されるＴタップのＦＩＲフィルタとして説明する。
【００３１】
図４のシフトレジスタ４０にはクロックに同期し入力データが逐次取り込まれる。例えば（４）の最初の２タップの積和演算Ｃ０×Ｘｔ＋Ｃ１×Ｘｔ−１は、
Ｃ０×Ｘｔ＋Ｃ１×Ｘｔ−１＝（Ｃ０＋Ｘｔ−１）×（Ｃ１＋Ｘｔ）−Ｃ０×Ｃ１−Ｘｔ−１×Ｘｔ（５）
と変形できる。このことを利用し本発明の請求項２のデジタルフィルタでは、（５）式の右辺の第１項に相当するものを、Ｔが偶数ならＴ／２個、Ｔが奇数なら（Ｔ−１）／２個
を次のように計算する。
【００３２】
図４の例えば左端のクロス乗算器４１では、入力データと係数入力部４７とから（Ｃ０＋Ｘｔ−１）×（Ｃ１＋Ｘｔ）計算する。その計算結果を用い暫定積和演算回路４２は、暫定計算結果４８を出力する。この暫定計算結果４８（４）式と異なり上付きの添え字のＹｔと置くと、Ｔが偶数の時は
Ｙｔ＝（Ｃ０＋Ｘｔ−１）×（Ｃ１＋Ｘｔ）＋・・・＋（ＣＴ−２＋Ｘｔ−Ｔ＋１）×（ＣＴ−１＋Ｘｔ―Ｔ＋２）（６）
と表される計算を行う。Ｔが奇数のときは最後の１タップだけは個別計算し、残りを（６）式で計算する。
【００３３】
図４の逐次修正値計算回路４３では、クロックに同期して次の式に相当する計算を行う。
Ｘｔ＝Ｘｔ×Ｘｔ−１＋・・・・＋Ｘｔ―Ｔ＋２×Ｘｔ−Ｔ＋１  （７）
（７）式の計算は計算量が大きいため、逐次修正値計算部４３では実際には
Ｓｅｖｅｎ  ｔ＝Ｓｅｖｅｎｔ−１＋Ｘｔ×Ｘｔ−１−Ｘｔ―Ｔ×Ｘｔ−Ｔ―１（８）
Ｓｏｄｄ  ｔ＝Ｓｏｄｄｔ−１＋Ｘｔ×Ｘｔ−１−Ｘｔ―Ｔ×Ｘｔ−Ｔ―１    （９）
のようにクロックに関して偶数と奇数を個別に（８）式、（９）式に基づき、累積加算器により計算し、クロック毎に切り替えてＸｔとして使う。
【００３４】
図４の係数修正値入力部４５は、係数修正値
Ｃ＝Ｃ０×Ｃ１＋Ｃ２×Ｃ３＋・・・・・＋ＣＴ−２×ＣＴ−１（１０）
の計算を外部ブロックで先に計算したものを入力するインターフェースである。
【００３５】
図４の最終結果計算回路４４は
Ｙｔ＝Ｙｔ−Ｃ−Ｘｔ  （１１）
をクロックに同期して計算する。
【００３６】
以上の構成により計算した（１１）式のＹｔは（４）式のＹｔと完全に一致する。
【００３７】
暫定積和演算回路４２の計算には（Ｃ０＋Ｘｔ−１）×（Ｃ１＋Ｘｔ）のように、本来の積和演算の計算対象とは異なり、クロスした関係の加算を行ったものを乗算する構造であることから、クロス乗算器と呼ぶことにした。
【００３８】
従ってクロス乗算器を具備することは、本発明の請求項２の必須用件になる。本発明の請求項３は、請求項２の１実施形態として、このクロス乗算器をクロス加算器の後に乗算器を置く形で実現する。
【００３９】
本発明の請求項４の実施形態１は（１０）式で表される係数修正値Ｃを、外で計算するのではなく、デジタルフィルタの内部に置く構成であり、デジタルフィルタ内部に係数修正値計算回路５０を具備し、係数修正値入力部５１に接続したものが図５である。
【００４０】
図５は、本発明の請求項４の実施の形態１に係るデジタルフィルタの構成を示す図である。
【００４１】
例えば係数入力を１クロックあたり２係数が入って来る構成の場合、乗算器１個により（１０）式中の例えばＣ０×Ｃ１を計算し、Ｔ／２サイクルでＣを計算する。計算された結果はレジスタに格納され、係数修正値として最終結果算出部で利用される。図５における図４と同一構成の回路５２は、図５が係数修正値計算回路５０以外は図４と同じ構成であることを示す。
【００４２】
図６は、本発明の請求項５の実施の形態１に係るデジタルフィルタの構成を示す図である。請求項３記載のクロス加算器６１を具備し、クロス加算器の出力の一方を入力とするブロック加算回路６２と、ブロック加算回路６２からの出力とクロス加算器６１の出力の他方とを入力とするブロック部分積生成回路６３とを、具備することを特徴とする請求項１記載の積和演算器により計算することを特徴とする請求項２記載のデジタルフィルタを実現した１つの構成である。総和回路（暫定積和演算回路）６５までのデータフローを記載しているが、最終結果計算回路や逐次修正値計算回路および係数修正に関係した処理フローは、図４または図５の場合と変わらないので省略してある。
【００４３】
図７は、本発明の請求項６の実施の形態１のデジタルフィルタの構成を示す図である。係数に対称性がある場合に、本発明の請求項１を適用した１つの構成を示すものである。タップ数をＴとして
Ｔ＝２Ｔ’  なる偶数の場合の実施例で、具体的には
Ｙｔ＝Ｃ０×（Ｘｔ＋Ｘｔ−Ｔ＋１）＋・・・＋ＣＴ’−１×（Ｘｔ−Ｔ＋２＋Ｘｔ−Ｔ＋１）  （１２）
なる式に従いシフトレジスタ７０の構成は従来型の対称型係数に対するデジタルフィルタのものと同様の構成である。
【００４４】
図７中の対称タップ加算部７１は従来型のものと同様にＸｔとＸｔ−Ｔ＋１のような対称タップ点の入力データを加算する部分で、この加算結果が請求項１の積和演算器のである図３と同一構成の回路７２の入力に入る構成である。
【００４５】
図８は、本発明の請求項７の実施の形態１のデジタルフィルタの構成を示す図である。請求項６と同じく係数に対称性がある場合に、本発明の請求項１を適用した１つの構成である点も同じである。
【００４６】
シフトレジスタ８０と対称タップ加算部８１を具備する点は、図７と同じであり、請求項６との違いは、図３と同一構成の回路からブロック加算回路を除く構成の回路８２と、ブロック係数加算回路８４を具備する点である。
【図面の簡単な説明】
【００４７】
【図１】従来型のデジタルフィルタの構成ブロック図である。
【図２】本発明の実施の形態１の積和演算器の構成を示す図である。
【図３】本発明の実施の形態２に係る積和演算器の構成を示す図である。
【図４】本発明の実施の形態１に係るデジタルフィルタの構成を示す図である。
【図５】本発明の実施の形態１に係るデジタルフィルタの構成を示す図である。
【図６】本発明の実施の形態１に係るデジタルフィルタの構成を示す図である。
【図７】本発明の実施の形態１のデジタルフィルタの構成を示す図である。
【図８】本発明の実施の形態１のデジタルフィルタの構成を示す図である。
【符号の説明】
【００４８】
１０，４０，６０，７０，  シフトレジスタ
１１  ＦＩＲフィルタ
１２  乗算器
１３  総和器
１４，２４  積和演算器
１５，２５  演算結果
２０，３０，６２  ブロック加算回路
２１，３３，６３  ブロック部分積生成回路
２２，３６，６４  ブロック部分積加算回路
２３，３７  全体総和回路
１２，３２  加算回路
３５  ブロック内最小項論理回路
３４  セレクタ
３１  係数
３８  ブロック入力データ
３９  積和演算結果
４１  クロス乗算器
４２  暫定積和演算回路
４３  逐次修正値計算回路
４４  最終結果計算回路
４５，５１  係数修正値入力部
４６，５３，７３，８３  最終結果
４７  係数入力部
５０  係数修正値計算回路
５２  図４と同一構成の回路
６１  クロス加算器
６５  総和回路（暫定積和演算回路）
７１，８１  対称タップ加算部
７２  図３と同一構成の回路
８２  図３と同一構成の回路からブロック加算回路を除く構成の回路
８４  ブロック係数加算結果入力部
【図１】
2009124306.tif 000003
【図２】
2009124306.tif 000004
【図３】
2009124306.tif 000005
【図４】
2009124306.tif 000006
【図５】
2009124306.tif 000007
【図６】
2009124306.tif 000008
【図７】
2009124306.tif 000009
【図８】
2009124306.tif 000010