(57)【要約】【課題】直列に入力されるデータに対して、並列データに変換せずに、加算や乗算を施すことができる積和演算回路を提供する。【解決手段】各ビット積和演算回路１０-0〜１０-3では、ＡＮＤ１０によってシリアル入力信号ＳＤＩと対応する桁の係数Ｃ０〜Ｃ3との乗算が行われ、これにデータ入力端子ＤＩから与えられる前段での演算結果が加算される。そして、ＦＦ１３で１クロック分だけ遅延され、これが桁上げ（２倍）動作となって、データ出力端子ＤＯから後段に出力される。縦続接続された積和演算回路１０-0〜１０-3で順次各桁の加算が行われ、その結果をクロック信号ＣＬＫに同期してシフトして後段へ出力することにより乗算が行われる。これにより、最終段のビット積和演算回路１０-0のデータ出力端子ＤＯから、ワード単位での積和演算結果である出力データＯＵＴが直列に出力される。【選択図】図１
2008033473.tif 000002
【特許請求の範囲】
【請求項１】
最下位ビットから順番に直列に入力されるデータ入力信号に設定された係数を乗算し、この乗算結果に設定されたデータを加算した積和演算結果を直列に出力するために、クロック信号に従ってビット単位に積和演算を行う複数のビット積和演算回路を縦続接続して構成したことを特徴とする積和演算回路。
【請求項２】
前記各ビット積和演算回路は、
前記データ入力信号が共通に与えられるシリアル入力ノード、前記係数が与えられる係数入力ノード、前記データまたは前段の演算結果が与えられるデータ入力ノード、前記クロック信号が共通に与えられるクロック入力ノード、動作開始のタイミング信号が与えられるタイミングノード、及び演算結果を出力するデータ出力ノードの各ゲートと、
前記シリアル入力ノードと前記係数入力ノードに与えられる信号の論理積を出力する第１の論理ゲートと、
前記第１の論理ゲートの出力信号と前記データ入力ノードの信号と桁上げ入力信号を加算して加算結果信号と桁上げ出力信号を出力する加算器と、
前記加算結果信号を前記クロック信号に従って保持して前記データ出力ノードに出力する第１のフリップ・フロップと、
前記桁上げ出力信号を前記クロック信号に従って保持する第２のフリップ・フロップと、
前記タイミング信号が与えられたときには前記加算器に対する桁上げ入力信号の出力を停止し、該タイミング信号が与えられていないときは前記第２のフリップ・フロップに保持された信号を該桁上げ入力信号として該加算器に与える第２の論理ゲートとを備え、
前記縦続接続されたビット積和演算回路の初段のビット積和演算回路のデータ入力ノードに前記データを与え、終段のビット積和演算回路のデータ出力ノードから前記積和演算結果を出力するように構成したことを特徴とする請求項１記載の積和演算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック信号に同期して直列に入力される信号のフィルタ処理に用いられる積和演算回路、特にその簡素化に関するものである。
【背景技術】
【０００２】
従来、音データなどのシリアルデータ通信では、クロック信号、チャネル信号及びデータ信号を、３本の信号線を使用して伝送するようになっている。一方、クロック信号に同期して伝送されてきたデータ信号をフィルタ処理する場合、下記特許文献１に記載されているように、シリアルデータをパラレルデータに変換した後、積和等の演算を行う。更に、フィルタ処理後のデータをシリアルに伝送する場合には、パラレルデータを再びシリアルデータに変換して送信する必要があった。
【０００３】
【特許文献１】特開平５−３２７４０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記特許文献１に記載されたような、従来のシリアルデータのフィルタ処理では、シリアル・パラレル変換回路とパラレル・シリアル変換回路が必要になり、回路規模が大きくなると共に処理効率が悪くなるという問題があった。
【０００５】
本発明は、直列に入力されるデータに対して、並列データに変換せずに、加算や乗算を施すことができる積和演算回路を提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の積和演算回路は、最下位ビットから順番に直列に入力されるデータ入力信号に設定された係数を乗算し、この乗算結果に設定されたデータを加算した積和演算結果を直列に出力するために、クロック信号に従ってビット単位に積和演算を行う複数のビット積和演算回路を縦続接続して構成したことを特徴としている。
【発明の効果】
【０００７】
本発明では、ビット単位に積和演算を行う複数のビット積和演算回路を縦続接続することのよって積和演算回路を構成している。これにより、直列に入力されるデータに対して、並列データに変換せずに、加算や乗算を施すことができるので、回路規模を縮小することができるという効果がある。
【発明を実施するための最良の形態】
【０００８】
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
【実施例１】
【０００９】
図１は、本発明の実施例を示すワード積和演算回路の構成図である。
このワード積和演算回路は、縦続接続された複数（ここでは４個の場合を示しているが、数は任意である）のビット積和演算回路１０-3，１０-2，…，１０-1，１０-0と、チャネルタイミング生成回路２０と、縦続接続されたフリップ・フロップ(以下、「ＦＦ」という)３０-2，…，３０-1，３０-0で構成されている。
【００１０】
ビット積和演算回路１０-3〜１０-0は、いずれも同様の構成で、例えば先頭のビット積和演算回路１０-3に示すように、直列に伝送されて来るシリアルデータ入力信号ＳＤＩが与えられるシリアル入力端子ＳＩと、予め設定された乗算用の係数Ｃ（Ｃ３）が与えられる係数端子ＤＥを備え、これらのシリアル入力端子ＳＩと係数端子ＤＥの信号の論理積をとる論理積ゲート(以下、「ＡＮＤ」という)１１を有している。ＡＮＤ１１の出力側は、全加算器１２の入力端子Ａに接続されている。全加算器１２は、入力端子Ａ，Ｂと桁上げ入力端子ＣＩに与えられる信号を加算して、和の信号を出力端子Ｓに、桁上げ信号を桁上げ出力端子ＣＯに、それぞれ出力するものである。
【００１１】
全加算器１２の入力端子Ｂは、ビット積和演算回路１０のデータ入力端子ＤＩに接続され、出力端子Ｓと桁上げ出力端子ＣＯは、それぞれＦＦ１３，１４のデータ端子Ｄに接続されている。ＦＦ１３，１４は、いずれもビット積和演算回路１０のクロック端子ＣＫに与えられるクロック信号ＣＬＫに同期して、それぞれ出力端子Ｓと桁上げ出力端子ＣＯの信号を保持するものである。ＦＦ１３の出力端子Ｑは、ビット積和演算回路１０のデータ出力端子ＤＯに接続され、ＦＦ１４の出力端子Ｑは、ＡＮＤ１５の第１の入力側に接続されている。
【００１２】
ＡＮＤ１５の第２の入力側には、ビット積和演算回路１０のタイミング端子ＴＭに与えられるチャネルタイミング信号ＣＨＴが、インバータ１６で反転されて与えられるようになっている。そして、ＡＮＤ１５の出力側が、全加算器１２の桁上げ入力端子ＣＩに接続されている。
【００１３】
初段のビット積和演算回路１０-3のデータ入力端子ＤＩには、予め設定された加算データＤＩＮが直列に与えられるようになっている。また、ビット積和演算回路１０-3のデータ出力端子ＤＯは、次段のビット積和演算回路１０-2のデータ入力端子ＤＩに接続され、このビット積和演算回路１０-2のデータ出力端子ＤＯが、その後段のビット積和演算回路１０-1のデータ入力端子ＤＩに接続され、最終段のビット積和演算回路１０-0のデータ出力端子ＤＯから積和演算が施された出力データＯＵＴが直列に出力されるようになっている。
【００１４】
一方、チャネルタイミング生成回路２０は、データ信号線上のシリアルデータ入力信号ＳＤＩが有効であることを示すチャネル信号ＣＨＡとクロック信号ＣＬＫに基づいて、動作開始のタイミングを示すチャネルタイミング信号ＣＨＴを生成するものである。チャネルタイミング信号ＣＨＴは、初段のビット積和演算回路１０-3のタイミング端子ＴＭに与えられると共に、ＦＦ３０-2によって１クロックの時間だけ遅延されて、次段のビット積和演算回路１０-2のタイミング端子ＴＭに与えられている。更に、ＦＦ３０-2の出力信号は、ＦＦ３０-1，３０-0によって、順次１クロックずつ遅延されて、後段のビット積和演算回路１０-1，1０-0のタイミング端子ＴＭに与えられるようになっている。
【００１５】
図２は、図１中のビット積和演算回路の動作を示す信号波形図であり、図３は、図１の動作を示す信号波形図である。以下、これらの図２及び図３を参照しつつ、図１の動作を説明する。
【００１６】
先ず、図２に従って、演算の最小単位である図１中のビット積和演算回路１０の加算動作を説明する。この図２では、予め設定された加算データＤＩＮ（＝３、２進数表示の００１１）と、シリアルデータ入力信号ＳＤＩ（＝６、２進数表示の０１１０）の加算例を示している。加算動作であるので、乗算用の係数Ｃは１である。
【００１７】
クロック信号ＣＬＫに同期して、チャネル信号ＣＨＡが１(有効)になると共に、シリアルデータ入力信号ＳＤＩに２進数０１１０の最下位ビットが入力される。一方、チャネルタイミング生成回路２０では、最初の有効データである最下位ビットの入力時にのみ１となるチャネルタイミング信号ＣＨＴが生成され、ビット積和演算回路１０のタイミング端子ＴＭに与えられる。更に、このチャネルタイミング信号ＣＨＴと同じタイミングで、加算データＤＩＮの最下位ビットがビット積和演算回路１０のデータ入力端子ＤＩに与えられる。
【００１８】
チャネルタイミング信号ＣＨＴは、インバータ１６で反転されてＡＮＤ１５に与えられるので、ＦＦ１４の保持内容に拘らず、全加算器１２の桁上げ入力端子ＣＩは０となる。これにより、全加算器１２では、シリアルデータ入力信号ＳＤＩと加算データＤＩＮの最下位ビット同士が加算され、加算結果が出力端子Ｓと桁上げ出力端子ＣＯに出力される。これらの加算結果は、次のクロック信号ＣＬＫのタイミングでＦＦ１３，１４に保持される。ＦＦ１３に保持された出力端子Ｓの信号は、データ出力端子ＤＯに出力され、ＦＦ１４に保持された桁上げ出力端子ＣＯの信号は、ＡＮＤ１５を介して全加算器１２の桁上げ入力端子ＣＩに与えられる。
【００１９】
次のクロック信号ＣＬＫにより、チャネルタイミング信号ＣＨＴは０となる。これにより、シリアルデータ入力信号ＳＤＩと加算データＤＩＮのそれぞれの２ビット目と、ＦＦ１４に保持された最下位ビットの加算結果の桁上げ出力が、全加算器１２で加算される。そして、２ビット目の加算結果が、ＦＦ１３，１４に保持される。このような演算がクロック信号ＣＬＫに同期してビットの桁数分だけ繰り返して行われる。これにより、シリアルデータ入力信号ＳＤＩと加算データＤＩＮの加算結果が、クロック信号ＣＬＫに同期して、データ出力端子ＤＯから直列に出力される。
【００２０】
次に、図３に従って、図１のワード積和演算回路の加算と乗算の動作を説明する。
ここでは、シリアル入力信号ＳＤＩＹを変数Ｘとして、Ｙ＝ａＸ＋ｂの演算が行われる。乗算する数ａは、ビット積和演算回路１０-0〜１０-3の係数Ｃ０〜Ｃ3として設定され、例えば、ａ＝５（２進数表示の０１０１）とすると、Ｃ０＝１，Ｃ１＝０，Ｃ２＝１，Ｃ３＝０である。加算する数ｂ（例えば、３）は、初段のビット積差演算回路１０-3のデータ入力端子ＤＩに、加算データＤＩＮとして最下位ビットから順に直列に与えられる。また、変数Ｘは、シリアル入力信号ＳＤＩとして、各ビット積和演算回路１０-0〜１０-3のシリアル入力端子ＳＩに共通に入力される。そして、最終段のビット積和演算回路１０-0のデータ出力端子ＤＯから、演算結果の値Ｙが出力データＯＵＴとして、最下位ビットから順に出力されるようになっている。
【００２１】
図３の時刻Ｔ１において、チャネル信号ＣＨＡが１になることにより、チャネルタイミング信号ＣＨＴが１になり、これと共に加算データＤＩＮの最下位ビットがビット積差演算回路１０-3のデータ入力端子ＤＩに与えられる。この時点では、シリアル入力信号ＳＤＩは与えられていない。そして、クロック信号ＣＬＫに同期して加算データＤＩＮが、下位ビットから上位ビットの順に順次与えられる。
【００２２】
一方、シリアル入力信号ＳＤＩは、演算の有効桁数から算出されたタイミングで入力される。この場合、シリアル入力信号ＳＤＩは６（即ち、２進数表示の０１１０で有効数字が３桁）であるので、チャネルタイミング信号ＣＨＴの出力から３クロック目の時刻Ｔ２から入力が開始され、クロック信号ＣＬＫに同期して最下位ビットから上位ビットの順に、順次入力される。
【００２３】
これにより、各ビット積和演算回路１０-0〜１０-3では、シリアル入力信号ＳＤＩと対応する桁の係数Ｃ０〜Ｃ3との乗算が行われ、これにデータ入力端子ＤＩから与えられる前段での演算結果が加算される。そして、ＦＦ１３で１クロック分だけ遅延され、桁上げ（２倍）動作となって、データ出力端子ＤＯから後段に出力される。縦続接続された積和演算回路１０-0〜１０-3で順次各桁の加算が行われ、その結果をクロック信号ＣＬＫに同期してシフトして後段へ出力することにより乗算が行われる。
【００２４】
従って、最終段のビット積和演算回路１０-0のデータ出力端子ＤＯから、ワード単位での積和演算結果である出力データＯＵＴ＝３３（＝５×６＋３）が、２進数０１００００１として、最下位ビットから上位ビットの順に出力される。なお、出力データＯＵＴの出力開始タイミングは、チャネルタイミング信号ＣＨＴから、ビット積和演算回路１０-0〜１０-3の段数である４クロック後のタイミングとなる。
【００２５】
図４は、図１のワード積和演算回路を使用したＦＩＲ（有限インパルス応答）演算回路の構成例である。
【００２６】
このＦＩＲ演算回路は、図１のワード積和演算回路１００-1〜１００-nを縦続接続し、共通のシリアル入力信号ＳＤＩを与えて、共通のクロック信号ＣＬＫで駆動するように構成したものである。そして、各ワード積和演算回路１００-1〜１００-nには、それぞれワード単位のフィルタ係数ＣＥ１〜ＣＥｎを与えると共に、初段のワード積和演算回路１００-1には、加算データＤＩＮとして丸めの値ＩＮを与えるようにしている。これにより、終段のワード積和演算回路１００-nの出力データＯＵＴとして、ＦＩＲ演算結果の信号が直列に出力される。
【００２７】
以上のように、本実施例のワード積和演算回路は、全加算回路１２とＦＦ１３，１４を組み合わせたビット積和演算回路１０を縦続接続して構成しているので、シリアル・パラレル変換回路やパラレル・シリアル変換回路及び乗算回路を用いることなく、ＦＩＲ演算回路等の信号処理回路を構成することができ、回路規模を縮小することができるという利点がある。
【００２８】
なお、本発明は、上記実施例１に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
（１）  図１中のビット積和演算回路１０では、任意の係数Ｃに対応するために、ＡＮＤ１１を用いてシリアル入力信号ＳＤＩと係数Ｃの論理積を取って全加算器１２の入力端子Ａに与えるようにしている。しかし、例えばＦＩＲフィルタ等に適用する場合、係数Ｃは各段毎に固定的に設定されるので、係数Ｃが１の回路と０の回路を区分することにより、回路構成を簡素化することができる。
【００２９】
図５（ａ），（ｂ）は、第１の変形例を示すビット積和演算回路の構成図で、同図（ａ）は係数Ｃ＝１の場合、及び同図（ｂ）は係数Ｃ＝０の場合の回路図である。
【００３０】
係数Ｃ＝１の場合は、図５(ａ)に示すように、ＡＮＤ１１は不要となりシリアル入力端子ＳＩが全加算器１２の入力端子Ａに直接接続される。また、係数Ｃ＝０の場合は、図５(ｂ)に示すように、全加算器１２も不要になってＦＦ１３だけの構成となる。
【００３１】
（２）  図５の回路では、係数Ｃが１の場合と０の場合で回路規模が大きく異なり、特にＣ＝１の場合の回路規模は図１中のビット積和演算回路１０とあまり変わらない。このため、ワード積和演算回路として使用するときの係数が、例えば−１の場合、２進数では補数表示で１１・・・１１となるため、回路規模の削減が困難である。
【００３２】
図６（ａ），（ｂ）は、このような場合に適用するための第２の変形例を示すビット積和演算回路の構成図である。図６（ａ）は、シリアルデータ入力ＳＩを反転させる場合で、データ入力端子ＤＩの信号を反転させて半加算器１８の入力端子Ａに与えるインバータ１７と、ＦＦ１４でクロック信号ＣＬＫに同期して保持した半加算器１８の桁上げ信号出力ＣＯとタイミング端子ＴＭから与えられるチャネルタイミング信号ＣＨＴの論理和を取ってこの半加算器１８の入力端子Ｂに与える論理和ゲート(以下、「ＯＲ」という)１９で構成されている。なお、この図６（ａ）は、Ｓ＝Ｓ＋Ａ×Ｃ＝Ｓ＋（−Ａ）×（−Ｃ）の式変換に該当するものである。
【００３３】
一方、図６（ｂ）は、加算データ入力ＤＩを反転させる場合で、図１中のビット積和演算回路１０におけるＡＮＤ１５とインバータ１６に代えてＯＲ１９を設けると共に、データ入力端子ＤＩの信号を反転させて全加算器１２の入力端子Ｂに与えるインバータ１７を追加したものである。なお、この図６（ｂ）は、Ｓ＝Ｓ＋Ａ×Ｃ＝−（Ｓ＋Ａ×（−Ｃ））の式変換に該当するものである。
【００３４】
（３）  係数Ｃや加算データＤＩＮは、予め設定された固定の値として説明したが、演算毎に任意に設定を変更することが出来る。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施例を示すワード積和演算回路の構成図である。
【図２】図１中のビット積和演算回路の動作を示す信号波形図である。
【図３】図１の動作を示す信号波形図である。
【図４】図１のワード積和演算回路を使用したＦＩＲ算回路の構成例である。
【図５】第１の変形例を示すビット積和演算回路の構成図である。
【図６】第２の変形例を示すビット積和演算回路の構成図である。
【符号の説明】
【００３６】
１０    ビット積和演算回路
１１，１５    ＡＮＤ
１２    全加算器
１３，１４，３０    ＦＦ
１６    インバータ
２０    チャネルタイミング生成回路
１００    ワード積和演算回路
【図１】
2008033473.tif 000003
【図２】
2008033473.tif 000004
【図３】
2008033473.tif 000005
【図４】
2008033473.tif 000006
【図５】
2008033473.tif 000007
【図６】
2008033473.tif 000008