(57)【特許請求の範囲】
【請求項１】
（ｎ＋１）ビットの入力データＡ（Ａｎ〜Ａ0 ）と（ｎ＋１）ビットの入力データＢ（Ｂｎ〜Ｂ0 ）が並列に入力し、第２の基本クロック信号ＣＫ２に同期して入力データＢ（Ｂｎ〜Ｂ0 ）の最下位桁Ｂ0 から最上位桁Ｂｎまでおよび入力データＡ（Ａｎ〜Ａ0 ）の最下位桁Ａ0 から最上位桁Ａｎまでを取り込み、（ｎ＋１）ビットの同期データＢａ（Ｂna〜Ｂ0a）および（ｎ＋１）ビットの同期データＡａ（Ａna〜Ａ0a）を出力する第１の同期回路群と、
上記第１の同期回路群から入力する（ｎ＋１）ビットの同期データＡａ（Ａna〜Ａ0a）および（ｎ＋１）ビットの同期データＢａ（Ｂna〜Ｂ0a）を受けて演算を行い、（ｘ＋１）ビットの和出力データＳ（Ｓｘ〜Ｓ0 ）およびキャリー出力データＣ（Ｃｘ〜Ｃ0 ）を生成する演算回路と、
上記演算回路の出力データのうちの下位Ｐ（０＜Ｐ＜ｘ）桁の和出力データＳｐ〜Ｓ0 およびキャリー出力データＣ(p-1) 〜Ｃ0 の対応する桁のデータを加算して和出力データＳpa〜Ｓ0aおよびキャリー出力データＣpaを生成する第１加算回路群と、
前記演算回路の出力データのうちの上位Ｑ（０＜Ｑ＜ｘ、Ｑ＝ｘ−Ｐ）桁の和出力データＳｘ〜Ｓ(p+1) 、キャリー出力データＣｘ〜Ｃｐおよび前記第１加算回路群から出力する下位桁の和出力データＳpa〜Ｓ0a、キャリー出力データＣpaが並列に入力し、第１の基本クロック信号ＣＫ１に同期して上記和出力データＳｘ〜Ｓ(p+1) 、キャリー出力データＣｘ〜Ｃｐの最上位桁Ｃｘから最下位桁Ｃｐまでおよび上記和出力データＳpa〜Ｓ0a、キャリー出力データＣpaの最上位桁Ｃpaから最下位桁Ｓ0aまでを取り込み、上位桁の和出力データＳxa〜Ｓ(p+1)a、キャリー出力データＣxa〜Ｃpaおよび下位桁の和出力データＳpb〜Ｓ0b、キャリー出力データＣpbを出力する第２の同期回路群と、
上記第２の同期回路群から入力する上位桁の和出力データＳxa〜Ｓ(p+1)a、キャリー出力データＣxa〜Ｃpaおよび下位桁のキャリー出力データＣpbを加算して和出力データＳxb〜Ｓ(p+1)bおよびキャリー出力データＣxbを出力する第２加算回路群とを具備し、
前記第１の基本クロック信号ＣＫ１が前記第２の同期回路群を経て遅延された信号が前記第２の基本クロック信号ＣＫ２として前記第１の同期回路群に入力することを特徴とする演算同期回路。
【請求項２】
請求項１記載の演算同期回路において、
前記第１の同期回路群は、入力データＢの各ビットに対応して設けられている複数のレジスタ回路および入力データＡの各ビットに対応して設けられている複数のレジスタ回路が全体として２（ｎ＋１）ビットのシフトレジスタ回路を形成してなり、上記シフトレジスタ回路の初段回路から最終段回路までに各対応して入力データＢの最下位ビットから最上位ビットまでのデータおよび入力データＡの最下位ビットから最上位ビットまでのデータが入力し、上記初段回路に前記第２の基本クロック信号ＣＫ２が入力することを特徴とする演算同期回路。
【請求項３】
請求項１記載の演算同期回路において、
前記演算回路は、（ｎ＋１）行×（ｎ＋１）列のアレイ状に全加算回路が配置されて乗・加算を行うように接続された部分積回路が用いられており、第１行目の全加算回路は、前記データＡａと前記データＢａの最下位ビットＢ0aとの加算を行い、第（ｎ＋１）行目の全加算回路は、第ｎ行目の全加算回路の出力のうちの最下位桁以外のデータと前記データＡａと前記データＢａの最上位ビットＢnaとの加算を行うことを特徴とする演算同期回路。
【請求項４】
請求項３記載の演算同期回路において、
前記第１加算回路群は、Ｐ個の全加算回路からなり、そのキャリーラインが直列に接続され、最下位桁の全加算回路のキャリー入力が"０"に固定されていることを特徴とする演算同期回路。
【請求項５】
請求項３記載の演算同期回路において、
前記第２の同期回路群は、前記演算回路から出力する上位桁の入力データＣｘ〜ＣｐおよびＳｘ〜Ｓ(p+1) の各ビットに対応して設けられている複数のレジスタ回路および前記第１加算回路群から出力する下位桁の入力データＣpaおよびＳpa〜Ｓ0aの各ビットに対応して設けられている複数のレジスタ回路が全体としてシフトレジスタ回路を形成してなり、上記シフトレジスタ回路の初段回路から最終段回路までに各対応して、上位桁の入力データＣｘ〜ＣｐおよびＳｘ〜Ｓ(p+1) の最上位ビットＣｘから最下位ビットＣｐまでのデータと下位桁の入力データＣpaおよびＳpa〜Ｓ0aの最上位ビットＣpaから最下位ビットＳ0aまでのデータが入力し、上記初段回路に第１の基本クロック信号ＣＫ１が入力することを特徴とする演算同期回路。
【請求項６】
請求項１乃至５のいずれか１項に記載の演算同期回路において、さらに、前記第２加算回路群から出力するキャリー出力データＣxb、和出力データＳpb〜Ｓ0bおよび前記第２の同期回路群から出力する下位桁の和出力データＳpb〜Ｓ0bを第３の基本クロック信号ＣＫ３に同期して取り出す第３の同期回路群を具備することを特徴とする演算同期回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演算同期回路に係り、特にキャリーデータの伝搬を伴う加算回路群と同期回路群とを有する演算同期回路に関するもので、例えばデジタルシグナルプロセッサ（ＤＳＰ）などの乗・加算回路などに使用されるものである。
【０００２】
【従来の技術】
ＬＳＩ（大規模集積回路）上で２進並列乗算器を実現する場合、全加算器を縦、横に配置したキャリーセーブ方式を用いる場合があり、この技術は、例えばＮＩＫＫＥＩ  ＥＬＥＣＴＲＯＮＩＣＳ  １９７８．５．２９  号，Ｐ．７６〜８９「ＬＳＩ化が進む並列演算方式による乗算器の回路方式を見る」に記載されている。
【０００３】
上記キャリーセーブ方式を用いることにより、ＬＳＩに適したパターンの規則性を高めることができる。しかし、演算速度を重要視した場合にはキャリーセーブ方式は問題がある。
【０００４】
図５は、キャリーセーブ方式を用いた従来の乗算回路の一例を示すブロック図である。
この乗算回路において、入力同期回路群５１は、基本クロック信号ＣＫ１に同期して、（ｎ＋１）ビットの加算入力データＡ（Ａｎ〜Ａ０  ）およびＢ（Ｂｎ〜Ｂ０  ）を取り込み、同期データＡａ（Ａｎａ〜Ａ０ａ）およびＢａ（Ｂｎａ〜Ｂ０ａ）を次段の加算回路群５２へ出力する。
【０００５】
演算回路（部分積・加算回路）５２は、上記入力同期回路群５１から出力する（ｎ＋１）ビットの同期データＡａおよびＢａを乗算し、（ｘ＋１）ビットの和出力データＳｘ〜Ｓ０  および１ビットのキャリー出力Ｃｘを出力する。
【０００６】
出力同期回路群５３は、上記演算回路５２から出力する（ｘ＋１）ビットの和出力データＳｘ〜Ｓ０  および１ビットのキャリー出力Ｃｘ前記基本クロック信号ＣＫ１に同期して取り込んで次段回路へ出力する。
【０００７】
なお、前記入力同期回路群５１は、加算入力データＢの各ビットＢｎ〜Ｂ０  に対応して設けられている複数のレジスタ回路に対して、そのＬＳＢ（最下位ビット）Ｂ０  側からＭＳＢ（最上位ビット）Ｂｎ側の順に基本クロック信号ＣＫ１が入力し、さらに、加算入力データＡの各ビットＡｎ〜Ａ０  に対応して設けられている複数のレジスタ回路に対して、そのＬＳＢ（Ａ０  ）側からＭＳＢ（Ａｎ）側の順に基本クロック信号ＣＫ１が入力する。
【０００８】
同様に、前記出力同期回路群５３は、演算回路５２から出力する複数ビットの加算出力データの各ビットＳｘ〜Ｓ０  、Ｃｘに対応して設けられている複数の同期回路に対して、その最下位ビットＳ０  側から最上位ビットＣｘ側の順に基本クロック信号ＣＫ１が入力する。
【０００９】
上記乗算回路において、演算回路５２は、基本クロック信号ＣＫ１に同期したデータＢａ、Ａａが入力した後に演算動作を行うようにタイミングを設定する必要があり、その設計段階において、入力データＢおよびＡのタイミングを予想した上で演算回路５２における多ビットの加算に伴うキャリー伝搬などによる計算遅延時間が問題になる。
【００１０】
なお、図６は、入力データＡ、Ｂと演算回路５２におけるキャリー伝搬による計算遅延時間との関係の一例を示しており、計算遅延時間は最大キャリー伝搬時間Ｔ１  に依存していることが分かる。
【００１１】
そこで、演算回路５２から出力する出力データＳ、Ｃｘとして正しい数値が得られるように、キャリー伝搬などによる計算遅延時間を見込んで基本クロック信号ＣＫ１のタイミングに余裕を持たせるようにしているが、これにより加算同期回路の演算時間が余分に必要となり、その動作速度が低下する。
【００１２】
また、図７に示すタイミング波形図のように、例えば信号遅延などにより、出力同期回路群５３に入力するクロック信号ＣＫ１−２のタイミングよりも入力同期回路群５１に入力するクロック信号ＣＫ１−１のタイミングが早くなった場合には、出力同期回路群５３から次段回路へ加算出力データが出力されない内に入力同期回路群５１の加算入力データが切り換わってしまうと、加算出力データの最下位ビットのデータが変化する（演算結果に誤りが発生する）などの誤動作が発生する。
【００１３】
【発明が解決しようとする課題】
上記したように従来の乗算回路は、演算回路におけるキャリー伝搬などによる計算遅延時間を見込んでクロック信号のタイミングに余裕を持たせる必要から動作速度が低下するという問題、同期回路群に入力するクロック信号の信号遅延などに起因して演算の誤動作が発生するという問題があった。
【００１４】
本発明は上記の問題点を解決すべくなされたもので、動作速度の低下を抑制し、クロック信号の信号遅延などに起因する演算の誤動作を防止し得る演算同期回路を提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明の演算同期回路は、（ｎ＋１）ビットの入力データＡ（Ａｎ〜Ａ0 ）と（ｎ＋１）ビットの入力データＢ（Ｂｎ〜Ｂ0 ）が並列に入力し、第２の基本クロック信号ＣＫ２に同期して入力データＢ（Ｂｎ〜Ｂ0 ）の最下位桁から最上位桁までおよび入力データＡ（Ａｎ〜Ａ0 ）の最下位桁から最上位桁までを取り込み、（ｎ＋１）ビットの同期データＢａ（Ｂna〜Ｂ0a）および（ｎ＋１）ビットの同期データＡａ（Ａna〜Ａ0a）を出力する第１の同期回路群と、上記第１の同期回路群から入力する（ｎ＋１）ビットの同期データＡａ（Ａna〜Ａ0a）および（ｎ＋１）ビットの同期データＢａ（Ｂna〜Ｂ0a）を受けて演算を行い、（ｘ＋１）ビットの和出力データＳ（Ｓｘ〜Ｓ0 ）およびキャリー出力データＣ（Ｃｘ〜Ｃ0 ）を生成する演算回路と、上記演算回路の出力データのうちの下位Ｐ（０＜Ｐ＜ｘ）桁の和出力データＳｐ〜Ｓ0 およびキャリー出力データＣ(p-1) 〜Ｃ0 の対応する桁のデータを加算して和出力データＳpa〜Ｓ0aおよびキャリー出力データＣpaを生成する第１加算回路群と、前記演算回路の出力データのうちの上位Ｑ（０＜Ｑ＜ｘ、Ｑ＝ｘ−Ｐ）桁の和出力データＳｘ〜Ｓ(p+1) 、キャリー出力データＣｘ〜Ｃｐおよび前記第１加算回路群から出力する下位桁の和出力データＳpa〜Ｓ0a、キャリー出力データＣpaが並列に入力し、第１の基本クロック信号ＣＫ１に同期して上記和出力データＳｘ〜Ｓ(p+1) 、キャリー出力データＣｘ〜Ｃｐの最上位桁から最下位桁までおよび上記和出力データＳpa〜Ｓ0a、キャリー出力データＣpaの最上位桁から最下位桁までを取り込み、上位桁の和出力データＳxa〜Ｓ(p+1)a、キャリー出力データＣxa〜Ｃpaおよび下位桁の和出力データＳpb〜Ｓ0b、キャリー出力データＣpbを出力する第２の同期回路群と、上記第２の同期回路群から入力する上位桁の和出力データＳxa〜Ｓ(p+1)a、キャリー出力データＣxa〜Ｃpaおよび下位桁のキャリー出力データＣpbを加算して和出力データＳxb〜Ｓ(p+1)bおよびキャリー出力データＣxbを出力する第２加算回路群とを具備し、前記第１の基本クロック信号ＣＫ１が前記第２の同期回路群を経て遅延された信号が前記第２の基本クロック信号ＣＫ２として前記第１の同期回路群に入力することを特徴とする。
【００１６】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
図１は、本発明の演算同期回路の第１の実施の形態として乗算回路の一例を示しており、その一具体例を図２に示している。ここでは、（ｎ＋１）ビットの入力データＡ（Ａｎ〜Ａ０  ）と（ｎ＋１）ビットの入力データＢ（Ｂｎ〜Ｂ０  ）との乗算を行う例を示しており、上記入力データは例えばメモリのアドレスを指定するためのアドレスデータである。
【００１７】
この乗算回路において、１１は第１の同期回路群（入力同期回路群）、１２は演算回路、１３は第１加算回路群、１４…第２の同期回路群（出力同期回路群）、１５…第２加算回路群、１６は第３の同期回路群である。
【００１８】
前記入力同期回路群１１は、入力データＡ（Ａｎ〜Ａ０  ）と入力データＢ（Ｂｎ〜Ｂ０  ）が並列に入力し、第２の基本クロック信号ＣＫ２に同期して入力データＢ（Ｂｎ〜Ｂ０  ）の最下位桁Ｂ０  から最上位桁Ｂｎまでおよび入力データＡ  （Ａｎ〜Ａ０  ）の最下位桁Ａ０  から最上位桁Ａｎまでを取り込み、（ｎ＋１）ビットの同期データＢａ（Ｂｎａ〜Ｂ０ａ）および（ｎ＋１）ビットの同期データＡａ（Ａｎａ〜Ａ０ａ）を出力する。
【００１９】
この場合、入力同期回路群１１は、入力データＢの各ビットに対応して設けられている複数のレジスタ回路および入力データＡの各ビットに対応して設けられている複数のレジスタ回路ＳＲが全体として２（ｎ＋１）ビットのシフトレジスタ回路を形成してなる。
【００２０】
そして、上記シフトレジスタ回路の初段回路から最終段回路までに各対応して、入力データＢのＬＳＢ（Ｂ０  ）からＭＳＢ（Ｂｎ）までのデータおよび入力データＡのＬＳＢ（Ａ０  ）からＭＳＢ（Ａｎ）までのデータが入力し、上記初段回路側から第２の基本クロック信号ＣＫ２が入力する。
【００２１】
演算回路１２は、本例では（ｎ＋１）行×（ｎ＋１）列のアレイ状に全加算回路ＦＡが配置されて乗・加算を行うように接続されたキャリーセーブ方式の部分積回路が用いられており、前記入力同期回路群１１から入力する（ｎ＋１）ビットの同期データＡａ（Ａｎａ〜Ａ０ａ）および（ｎ＋１）ビットの同期データＢａ  （Ｂｎａ〜Ｂ０ａ）を受けて加算を行い、（ｘ＋１）ビットの和出力データＳ（Ｓｘ〜Ｓ０  ）およびキャリー出力データＣ（Ｃｘ〜Ｃ０  ）を生成する。
【００２２】
この場合、第１行目の全加算回路ＦＡは、データＡａとデータＢａの最下位ビットＢ０ａとの加算を行い、第２行目の全加算回路ＦＡは、第１行目の全加算回路ＦＡの出力（最下位桁を除く）とデータＡａとデータＢａのビットＢ１ａとの加算を行い、第３行目の全加算回路ＦＡは、第２行目の全加算回路ＦＡの出力（最下位桁を除く）とデータＡａとデータＢａのビットＢ２ａとの加算を行い、第４行目の全加算回路ＦＡは、第３行目の全加算回路ＦＡの出力（最下位桁を除く）とデータＡａとデータＢａの最上位ビットＢ３ａとの加算を行う。
【００２３】
上記部分積回路１２の出力データは、下位Ｐ桁（０＜Ｐ＜ｘ）と上位Ｑ桁（０＜Ｑ＜ｘ、Ｑ＝ｘ−Ｐ）とに２分され、下位桁の和出力データＳｐ〜Ｓ０  およびキャリー出力データＣ（ｐ−１）  〜Ｃ０  は第１加算回路群１３へ出力され、上位桁の和出力データＳｘ〜Ｓ（ｐ＋１）  およびキャリー出力データＣｘ〜Ｃｐは出力同期回路群１４へ出力される。
【００２４】
上記第１加算回路群１３は、本例ではＰ個の全加算回路ＦＡからなり、そのキャリーラインが直列に接続され、最下位桁の全加算回路ＦＡのキャリー入力が  “０”に固定されている。そして、前記部分積回路１２から入力する下位Ｐ桁の和出力データＳｐ〜Ｓ０  およびキャリー出力データＣ（ｐ−１）  〜Ｃ０  の対応する桁のデータを加算して和出力データＳｐａ〜Ｓ０ａおよびキャリー出力データＣｐａを生成し、前記出力同期回路群１４へ出力する。
【００２５】
出力同期回路群１４は、前記部分積回路１２の出力データのうちの上位Ｑ桁の和出力データＳｘ〜Ｓ（ｐ＋１）  、キャリー出力データＣｘ〜Ｃｐおよび前記第１加算回路群１３から出力する下位Ｐ桁の和出力データＳｐａ〜Ｓ０ａ、キャリー出力データＣｐａが並列に入力する。
【００２６】
そして、第１の基本クロック信号ＣＫ１に同期して上記和出力データＳｘ〜Ｓ（ｐ＋１）  、キャリー出力データＣｘ〜Ｃｐの最上位桁Ｃｘから最下位桁Ｃｐまでおよび前記和出力データＳｐａ〜Ｓ０ａ、キャリー出力データＣｐａの最上位桁Ｃｐａから最下位桁Ｓ０ａまでを取り込み、上位桁の和出力データＳｘａ〜Ｓ（ｐ＋１）ａ、キャリー出力データＣｘａ〜Ｃｐａおよび下位桁の和出力データＳｐｂ〜Ｓ０ｂ、キャリー出力データＣｐｂを出力する
この場合、出力同期回路群１４は、上位桁の入力データＣｘ〜ＣｐおよびＳｘ〜Ｓ（ｐ＋１）  の各ビットに対応して設けられている複数のレジスタ回路および下位桁の入力データＣｐａおよびＳｐａ〜Ｓ０ａの各ビットに対応して設けられている複数のレジスタ回路ＳＲが全体としてシフトレジスタ回路を形成してなる。
【００２７】
そして、上記シフトレジスタ回路の初段回路から最終段回路までに各対応して、上位桁の入力データＣｘ〜ＣｐおよびＳｘ〜Ｓ（ｐ＋１）  の最上位ビットＣｘから最下位ビットＣｐまでのデータと、下位桁の入力データＣｐａおよびＳｐａ〜Ｓ０ａの最上位ビットＣｐａから最下位ビットＳ０ａまでのデータが入力し、上記初段回路側から第１の基本クロック信号ＣＫ１が入力する。
【００２８】
そして、上記第１の基本クロック信号ＣＫ１が出力同期回路群１４を経た信号が前記第２の基本クロック信号ＣＫ２として入力同期回路群１１に入力する。
第２加算回路群１５は、上記出力同期回路群１４から入力する上位桁の和出力データＳｘａ〜Ｓ（ｐ＋１）ａ、キャリー出力データＣｘａ〜Ｃｐａおよび下位桁のキャリー出力データＣｐｂを加算して和出力データＳｘｂ〜Ｓ（ｐ＋１）ｂおよびキャリー出力データＣｘｂを出力する。
【００２９】
上記第２加算回路群１５から出力するキャリー出力データＣｘｂ、和出力データＳｘｂ〜Ｓ（ｐ＋１）ｂおよび前記出力同期回路群１４から出力する下位桁の和出力データＳｐｂ〜Ｓ０ｂが乗算出力データとなる。
【００３０】
なお、上記実施の形態において、必要に応じて、乗算出力データを第３の同期回路群１６に入力し、第３の基本クロック信号ＣＫ３に同期してキャリー出力データＣｘｃ、和出力データＳｘｃ〜Ｓ（ｐ＋１）ｃを取り出したり、あるいは、乗算出力データを第３の加算回路群（図示せず）に入力し、第３の加算データ（図示せず）と加算することも可能である。
【００３１】
上記実施の形態の乗算回路においては、部分積回路１２の計算結果である（ｘ＋１）ビットの和出力データＳ（Ｓｘ〜Ｓ０  ）およびキャリー出力データＣ（Ｃｘ〜Ｃ０  ）をそれぞれ上位Ｑ桁と下位Ｐ桁とに２分し、下位桁の和出力データＳｐ〜Ｓ０  およびキャリー出力データＣ（ｐ−１）  〜Ｃ０  を第１加算回路群１３へ出力し、上位桁の和出力データＳｘ〜Ｓ（ｐ＋１）  およびキャリー出力データＣｘ〜Ｃｐを出力同期回路群１４へ出力する。
【００３２】
そして、第１加算回路群１３は、部分積回路１２から入力する下位桁の和出力データＳｐ〜Ｓ０  およびキャリー出力データＣ（ｐ−１）  〜Ｃ０  の対応する桁のデータを加算して和出力データＳｐａ〜Ｓ０ａおよびキャリー出力データＣｐａを生成し、出力同期回路群１４へ出力する。
【００３３】
そして、出力同期回路群１４は、部分積回路１２の計算結果のうちの上位桁の入力データＣｘ〜ＣｐおよびＳｘ〜Ｓ（ｐ＋１）  の最上位ビットから最下位ビットまでのデータと、第１加算回路群１３から入力する和出力データＳｐａ〜Ｓ０ａおよびキャリー出力データＣｐａの最上位ビットから最下位ビットまでのデータを第１の基本クロック信号ＣＫ１に同期して取り込み、上位桁の和出力データＳｘａ〜Ｓ（ｐ＋１）ａ、キャリー出力データＣｘａ〜Ｃｐａおよび下位桁の和出力データＳｐｂ〜Ｓ０ｂ、キャリー出力データＣｐｂを出力する。
【００３４】
そして、第２加算回路群１５は、出力同期回路群１４から入力する上位桁の和出力データＳｘａ〜Ｓ（ｐ＋１）ａ、キャリー出力データＣｘａ〜Ｃｐａおよび下位桁のキャリー出力データＣｐｂを加算して和出力データＳｘｂ〜Ｓ（ｐ＋１）ｂおよびキャリー出力データＣｘｂを出力する。
【００３５】
そして、第２加算回路群１５から出力するキャリー出力データＣｘｂ、和出力データＳｘｂ〜Ｓ（ｐ＋１）ｂおよび出力同期回路群１４から出力する下位桁の和出力データＳｐｂ〜Ｓ０ｂが乗算出力データとなる。
【００３６】
この場合、第１の基本クロック信号ＣＫ１が出力同期回路群１４を最上位ビット側から最下位ビット側まで順次通過した信号が第２の基本クロック信号ＣＫ２として入力同期回路群１１に入力し、その最下位ビット側から最上位ビット側まで順次入力する。
【００３７】
即ち、上記実施の形態の乗算回路においては、部分積回路１２の計算結果のうちの上位桁のデータと下位桁のデータとが２分され、上位桁のデータは第１の基本クロック信号ＣＫ１に同期して出力同期回路群１４を経た後に第２加算回路群１５で加算され、下位桁のデータは第１加算回路群１３で加算された後に第１の基本クロック信号ＣＫ１に同期して出力同期回路群１４を経て出力する。そして、次に部分積回路１２で計算すべき入力データが第１の基本クロック信号ＣＫ１より遅延した第２の基本クロック信号ＣＫ２に同期して入力同期回路群１１を経て部分積回路１２に入力する。
【００３８】
このように部分積回路１２の計算結果のうちの下位桁のデータの加算に伴うキャリーの伝搬と上位桁のデータの加算に伴うキャリーの伝搬とが出力同期回路群１４により分離されており、部分積回路１２の計算結果のうちの上位桁のデータと下位桁のデータとがそれぞれが異なるタイミングで加算される。
【００３９】
従って、キャリーの伝搬に伴う計算時間の遅延（つまり、キャリー伝搬経路の長さに依存して上位ビット側と下位ビット側とで算出時間のずれが生じる。）による影響が見掛け上小さくなり、加算入力データの演算時間を短縮できる。
【００４０】
なお、図３は、加算入力データＡ、Ｂと加算回路群１３、１５におけるキャリー伝搬による計算遅延時間との関係の一例を示しており、第１加算回路群１３におけるキャリー伝搬と第２加算回路群１５におけるキャリー伝搬とが分離されているので、計算遅延時間は第１加算回路群１３における最下位ビットから最上位ビットまでのキャリー伝搬時間Ｔ３  または第２加算回路群１５における最下位ビットから最上位ビットまでのキャリー伝搬時間Ｔ２  に依存していることが分かる。
【００４１】
また、出力同期回路群１４では第１の基本クロック信号ＣＫ１により部分積回路１２の計算結果のうちの上位桁データから下位桁データの順に取り出し、入力同期回路群１１では第１の基本クロック信号ＣＫ１より遅延した第２の基本クロック信号ＣＫ２により加算入力データのうちの下位桁データから上位桁データの順に取り込む。
【００４２】
これにより、出力同期用の第１の基本クロック信号ＣＫ１と入力同期用の第２の基本クロック信号ＣＫとの位相関係の設定が容易になり、タイミング回路の単純化が可能であり、部分積回路１２の計算結果が出力されない内に加算入力データが切り換わることにより出力データが変化する（演算結果に誤りが発生する）などの誤動作は発生しなくなる。換言すれば、加算回路群におけるキャリー伝搬による計算遅延時間の見積もりやシミュレーションを簡略化できる。
【００４３】
しかも、第１加算回路群１３での加算時間と第２加算回路群１５での加算時間とに余分の演算時間を持たせる必要がなくなり、その動作速度の低下を防止することが可能になる。
【００４４】
また、上記実施の形態では、部分積回路１２の出力側の加算回路群を２つの加算回路群（第１加算回路群１３、第２加算回路群１５）に分離してその中間に出力同期回路群１４を挿入したが、さらに、上記第１加算回路群１３、第２加算回路群１５を複数に分離してその中間に同期回路群を挿入するように変形実施することが可能である。
【００４５】
図４は、図１の演算同期回路の一変形例を示しており、図１と比べて、（１）第１加算回路群を２つの加算回路群１３１、１３２に分離してその中間に同期回路群１４１を挿入し、前記第２加算回路群を２つの加算回路群１５１、１５２に分離してその中間に同期回路群１４２を挿入している点、（２）第１の基本クロック信号ＣＫ１を最初に同期回路群１４２に入力し、これを通過した第１の基本クロック信号ＣＫ１を同期回路群１４１に入力し、これを通過した第１の基本クロック信号ＣＫ１を第２の基本クロック信号ＣＫ２として入力同期回路群１１に入力している点が異なり、その他は同じであるので図１中と同一符号を付している。
【００４６】
上記変形例においても、基本的には図１の回路と同様の効果が得られる。
なお、上記実施の形態は乗算回路を示したが、本発明は上記実施の形態に限らず、演算回路としてキャリー伝搬を伴う加算回路群を有する加算同期回路などにも一般的に適用することが可能である。
【００４７】
【発明の効果】
上述したように本発明によれば、動作速度の低下を抑制し、クロック信号の信号遅延などに起因する演算の誤動作を防止し得る演算同期回路を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る演算同期回路を示すブロック図。
【図２】図１の演算同期回路の一具体例を示す回路図。
【図３】図２の演算同期回路における加算入力データと加算回路群におけるキャリー伝搬による計算遅延時間との関係の一例を示す図。
【図４】図１の演算同期回路の一変形例を示すブロック図。
【図５】従来の加算同期回路の一例を示すブロック図。
【図６】図５の演算同期回路における加算入力データと加算回路群におけるキャリー伝搬による計算遅延時間との関係の一例を示す図。
【図７】図５の演算同期回路における出力同期回路群に入力するクロック信号ＣＫ１−２のタイミングよりも入力同期回路群に入力するクロック信号ＣＫ１−１のタイミングが早くなった場合に誤動作が発生する様子を示すタイミング波形図。
【符号の説明】
１１…第１の同期回路群（入力同期回路群）、１２…演算回路（部分積回路）、１３…第１加算回路群、１４…第２の同期回路群（出力同期回路群）、１５…第２加算回路群、１６…第３の同期回路群。
【図１】
0003561051.tif 000002
【図２】
0003561051.tif 000003
【図３】
0003561051.tif 000004
【図４】
0003561051.tif 000005
【図５】
0003561051.tif 000006
【図６】
0003561051.tif 000007
【図７】
0003561051.tif 000008