(57)【特許請求の範囲】
【請求項１】
４つの入力信号と下位桁のキャリーアウト入力を受け、加算ビットと、キャリービットと、前記キャリーアウトビットを演算するＣＳＡ用５−３圧縮回路において、
前記４つの入力信号とその相補信号を受け、各々２つの入力信号のＥＯＲ演算を行い、２つのＥＯＲ出力とその相補信号を出力する４つの１段目ＥＯＲ回路と、
前記４つの１段目ＥＯＲ回路の出力を受け、前記２つのＥＯＲ出力のＥＯＲ演算を行い、１つのＥＯＲ出力とその相補信号を出力する２つの２段目ＥＯＲ回路と、
前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットを受け、前記ＥＯＲ出力と前記キャリーアウトビットのＥＯＲ演算を行い、加算ビットを出力する３段目ＥＯＲ回路と、
前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットと前記４つの入力信号の１つを受け、前記ＥＯＲ出力と前記キャリーアウトビットと前記１つの入力信号のＥＯＲ演算を行い、キャリービットを出力するキャリー出力用ＥＯＲ回路と、
２つの前記１段目ＥＯＲ回路の出力と前記入力信号の相補信号の２つを受け、前記２つのＥＯＲ出力と前記２つの相補信号のＥＯＲ演算を行い、前記キャリーアウトビットとその相補信号を出力する２つのキャリーアウト用ＥＯＲ回路とを有する
ことを特徴とするＣＳＡ用５−３圧縮回路。
【請求項２】
前記３段目ＥＯＲ回路は、
前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットを受け、前記ＥＯＲ出力と前記キャリーアウトビットのＥＯＲ演算を行い、加算ビットとその相補信号を出力する一対のＥＯＲ回路で構成され、
前記キャリー出力用ＥＯＲ回路は、
前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットと前記４つの入力信号の１つを受け、前記ＥＯＲ出力と前記キャリーアウトビットと前記１つの入力信号のＥＯＲ演算を行い、キャリービットとその相補信号を出力する一対のＥＯＲ回路で構成された
ことを特徴とする請求項１のＣＳＡ用５−３圧縮回路。
【請求項３】
前記４つの入力信号の相補信号を生成する４つのインバータを更に有する
ことを特徴とする請求項１のＣＳＡ用５−３圧縮回路。
【請求項４】
前記４つの１段目ＥＯＲ回路は、データバスから前記４つの入力信号とその相補信号を受ける
ことを特徴とする請求項２のＣＳＡ用５−３圧縮回路。
【請求項５】
前記４つの１段目ＥＯＲ回路と前記４つのインバータは、データバスから前記４つの入力信号を受ける
ことを特徴とする請求項３のＣＳＡ用５−３圧縮回路。
【請求項６】
４つの入力信号と下位桁のキャリーアウト入力を受け、加算ビットと、キャリービットと、前記キャリーアウトビットを演算する複数のＣＳＡ用５−３圧縮回路を、前記キャリーアウト入力で連結したキャリーセーブ加算回路において、
各前記ＣＳＡ用５−３圧縮回路は、
各４つの入力信号とその相補信号を受け、各々２つの入力信号のＥＯＲ演算を行い、２つのＥＯＲ出力とその相補信号を出力する４つの１段目ＥＯＲ回路と、
前記４つの１段目ＥＯＲ回路の出力を受け、前記２つのＥＯＲ出力のＥＯＲ演算を行い、１つのＥＯＲ出力とその相補信号を出力する２つの２段目ＥＯＲ回路と、
前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットを受け、前記ＥＯＲ出力と前記キャリーアウトビットのＥＯＲ演算を行い、加算ビットを出力する３段目ＥＯＲ回路と、
前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットと前記４つの入力信号の１つを受け、前記ＥＯＲ出力と前記キャリーアウトビットと前記１つの入力信号のＥＯＲ演算を行い、キャリービットを出力するキャリー出力用ＥＯＲ回路と、
２つの前記１段目ＥＯＲ回路の出力と前記入力信号の相補信号の２つを受け、前記２つのＥＯＲ出力と前記２つの相補信号のＥＯＲ演算を行い、前記キャリーアウトビットとその相補信号を出力する２つのキャリーアウト用ＥＯＲ回路とを有する
ことを特徴とするキャリーセーブ加算回路。
【請求項７】
前記３段目ＥＯＲ回路は、
前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットを受け、前記ＥＯＲ出力と前記キャリーアウトビットのＥＯＲ演算を行い、加算ビットとその相補信号を出力する一対のＥＯＲ回路で構成され、
前記キャリー出力用ＥＯＲ回路は、
前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットと前記４つの入力信号の１つを受け、前記ＥＯＲ出力と前記キャリーアウトビットと前記１つの入力信号のＥＯＲ演算を行い、キャリービットとその相補信号を出力する一対のＥＯＲ回路で構成された
ことを特徴とする請求項６のキャリーセーブ加算回路。
【請求項８】
前記４つの入力信号の相補信号を生成する４つのインバータを更に有する
ことを特徴とする請求項６のキャリーセーブ加算回路。
【請求項９】
各前記５−３圧縮回路の前記４つの１段目ＥＯＲ回路は、データバスから前記４つの入力信号とその相補信号を受ける
ことを特徴とする請求項７のキャリーセーブ加算回路。
【請求項１０】
各前記５−３圧縮回路の前記４つの１段目ＥＯＲ回路と前記４つのインバータは、データバスから前記４つの入力信号を受ける
ことを特徴とする請求項８のキャリーセーブ加算回路。
【請求項１１】
前記複数の５−３圧縮回路を、複数設け、
初段の前記複数の５−３圧縮回路の加算ビットと前記キャリービットとを、次段の前記複数の５−３圧縮回路に入力する
ことを特徴とする請求項６のキャリーセーブ加算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乗算を行う際の部分積を加算するキャリアセーブ加算回路用５−３圧縮回路及びキャリアセーブ加算回路に関し、特に、高速に加算動作するキャリアセーブ加算回路用５−３圧縮回路及びキャリアセーブ加算回路に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processor Unit）の処理速度の向上に伴い、ＣＰＵの構成が複雑となっている。例えば、ＣＰＵは、演算ユニット、命令ユニット、キャッシュメモリ、キャッシュコントロールユニット、各種レジスタを備える。近年の集積化技術の発達により、このＣＰＵも１チップ化の傾向にあり、ＣＰＵ内の各ユニットの高速化が要請されている。【０００３】
このような演算ユニットには、加算／減算器、論理演算回路、シフト回路等が存在する。この内、加算器として、キャリアセーブ加算回路は、乗算を行う際の部分積を加算する回路として、利用されている。図７は、乗算動作の説明図である、例えば、Ｅｍ〜Ｅ０からなるＥと、Ｆｍ〜Ｆ０からなるＦを乗算するには、Ｅ，即ち、（Ｅｍ〜Ｅ０）とＦの各桁の乗算を行い、乗算結果（これを部分積という）の加算を行う。ここで、乗算結果をＧとすると、以下の式で、乗算結果を得る。【０００４】
Ｇ＝（Ｅｍ〜Ｅ０）×Ｆ０＋（Ｅｍ〜Ｅ０）×Ｆ１＋……＋（Ｅｍ〜Ｅ０）×Ｆｍ
図７では、部分積Ｘ１（Ｘ１ｍ〜Ｘ１０）が、（Ｅｍ〜Ｅ０）×Ｆ０であり、部分積Ｘ２（Ｘ２ｍ〜Ｘ２０）が、（Ｅｍ〜Ｅ０）×Ｆ１であり、以下、同様に、部分積Ｘｎ（Ｘｎｍ〜Ｘｎ０）が、（Ｅｍ〜Ｅ０）×Ｆｍである。これら部分積を加算して、最終的な乗算結果Ｇを得る。【０００５】
この部分積を加算するキャリアセーブ加算器の動作を、図８で説明する。図８では、８個の部分積Ｘ１〜Ｘ８を加算する例を示す。キャリアセーブ加算回路（ＣＳＡという）は、１段目で、各部分積Ｘ１〜Ｘ４の各桁の加算結果Ｓ１ｍ〜Ｓ１０と、各桁のキャリーＣ１ｍ〜Ｃ１０と、各部分積Ｘ５〜Ｘ８の各桁の加算結果Ｓ２ｍ〜Ｓ２０と、各桁のキャリーＣ２ｍ〜Ｃ２０とを計算する。２段目では、加算結果Ｓ１ｍ〜Ｓ１０と、各桁のキャリーＣ１ｍ〜Ｃ１０と、加算結果Ｓ２ｍ〜Ｓ２０と、各桁のキャリーＣ２ｍ〜Ｃ２０とを桁毎に、加算して、加算結果Ｓ３ｍ〜Ｓ３０と、キャリーＣ３ｍ〜Ｃ３０を得る（例えば、特許文献１参照）。【０００６】
このＣＳＡは、各桁の５−３圧縮回路を連結して、構成される。図９は、従来の５−３圧縮回路を用いたＣＳＡの構成図である。図９において、５−３圧縮回路１００−１，１００−２，１００−３，１００−４は、直列に接続される。ＣＳＡで使用される５−３圧縮回路１００−２（１００−１，１００−３，１００−４）は、主に排他的論理和回路（ＥＯＲ）で構成される。即ち、ある２つの信号から排他的論理和を生成し、それを利用している。
即ち、入力（Ａ１、Ａ２，Ａ３，Ａ４）の相補信号を生成するため、反転ゲート１１０，１１２，１１４，１１６を挿入し、一対のパストランジスタ１２０、１２２、１２４，１２６で、ＥＯＲを演算する。即ち、Ａ１とＡ２のＥＯＲ出力は、図１０のように、Ａ１と反転Ａ２の乗算に、Ａ１の反転とＡ１の乗算との和で示される。【０００７】
従って、ＥＯＲ回路１２０は、Ａ１とＡ２のＥＯＲを、ＥＯＲ回路１２２は、Ａ１とＡ２のＥＯＲの反転を、ＥＯＲ回路１２４は、Ａ３とＡ４のＥＯＲを、ＥＯＲ回路１２６は、Ａ３とＡ４のＥＯＲの反転を、出力する。【０００８】
同様に、ＥＯＲ回路１４０は、Ａ１とＡ２とＡ３とＡ４のＥＯＲを、ＥＯＲ回路１４２は、Ａ１とＡ２とＡ３とＡ４のＥＯＲの反転を、出力し、その出力を受けるＥＯＲ回路１４４は、Ａ１とＡ２とＡ３とＡ４とＣＩのＥＯＲを、Ｓ（ＳＵＭ）として、出力する。同様に、反転ゲート１３４，１５２を介しＡ１と、ＥＯＲ回路１４０，１４２の出力と、反転ゲートを介しＣＩを受けるＥＯＲ回路１４６は、図１０に示すキャリーＣを出力する。【０００９】
更に、ＥＯＲ回路１２４の出力と、ＥＯＲ回路１２６の出力と、反転ゲート１２４を介しＡ２の反転と、反転ゲート１１６を介しＡ４の反転を受けるＥＯＲ回路１４８は、反転ゲート１５４を介し、図１０のキャリーアウトＣＯを出力する。このキャリーアウトＣＯが、上位桁の５−３圧縮回路１００−３のキャリーインＣＩとして、出力される。【００１０】
このように、キャリーアウトＣＯが、上位桁へのキャリーであり、キャリーＣが、次段（図８参照）への桁上げ出力である。即ち、この加算回路は、５入力、３出力の加算回路である。
【特許文献１】特開平２−５０１２４２号公報（図３）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来技術では、ＥＯＲ演算のためには、図１０で示したように、入力の相補信号が必要であり、このため、反転ゲートを挿入しているため、遅延時間が長くなり、高速な加算動作が困難である。特に、図８のように、複数桁の部分積を乗算するＣＳＡでは、１つの加算回路の遅延時間が、累積し、部分積の加算時間が長くなる。【００１２】
従って、本発明の目的は、ＥＯＲ演算を行う加算回路の高速化を実現するためのＣＳＡ用５−３圧縮回路及びこれを使用したキャリアセーブ加算回路を提供することにある。【００１３】
又、本発明の他の目的は、ＥＯＲ演算のための相補信号の作成に必要な遅延時間の増加を防止するためのＣＳＡ用５−３圧縮回路及びこれを使用したキャリアセーブ加算回路を提供することにある。【００１４】
更に、本発明の別の目的は、ＥＯＲ演算のための反転ゲートによる遅延時間の増加を防止するためのＣＳＡ用５−３圧縮回路及びこれを使用したキャリアセーブ加算回路を提供することにある。
【課題を解決するための手段】
【００１５】
この目的の達成のため、本発明のＣＳＡ用５−３圧縮回路は、４つの入力信号と下位桁のキャリーアウト入力を受け、加算ビットと、キャリービットと、前記キャリーアウトビットを演算するＣＳＡ用５−３圧縮回路である。そして、その圧縮回路は、前記４つの入力信号とその相補信号を受け、各々２つの入力信号のＥＯＲ演算を行い、２つのＥＯＲ出力とその相補信号を出力する４つの１段目ＥＯＲ回路と、
前記４つの１段目ＥＯＲ回路の出力を受け、前記２つのＥＯＲ出力のＥＯＲ演算を行い、１つのＥＯＲ出力とその相補信号を出力する２つの２段目ＥＯＲ回路と、前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットを受け、前記ＥＯＲ出力と前記キャリーアウトビットのＥＯＲ演算を行い、加算ビットを出力する３段目ＥＯＲ回路と、前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットと前記４つの入力信号の１つを受け、前記ＥＯＲ出力と前記キャリーアウトビットと前記１つの入力信号のＥＯＲ演算を行い、キャリービットを出力するキャリー出力用ＥＯＲ回路と、２つの前記１段目ＥＯＲ回路の出力と前記入力信号の相補信号の２つを受け、前記２つのＥＯＲ出力と前記２つの相補信号のＥＯＲ演算を行い、前記キャリーアウトビットとその相補信号を出力する２つのキャリーアウト用ＥＯＲ回路とを有する。【００１６】
又、本発明のキャリーセーブ加算回路は、４つの入力信号と下位桁のキャリーアウト入力を受け、加算ビットと、キャリービットと、前記キャリーアウトビットを演算する複数のＣＳＡ用５−３圧縮回路を、前記キャリーアウト入力で連結したキャリーセーブ加算回路である。そして、その各ＣＳＡ用５−３圧縮回路は、各４つの入力信号とその相補信号を受け、各々２つの入力信号のＥＯＲ演算を行い、２つのＥＯＲ出力とその相補信号を出力する４つの１段目ＥＯＲ回路と、前記４つの１段目ＥＯＲ回路の出力を受け、前記２つのＥＯＲ出力のＥＯＲ演算を行い、１つのＥＯＲ出力とその相補信号を出力する２つの２段目ＥＯＲ回路と、前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットを受け、前記ＥＯＲ出力と前記キャリーアウトビットのＥＯＲ演算を行い、加算ビットを出力する３段目ＥＯＲ回路と、前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットと前記４つの入力信号の１つを受け、前記ＥＯＲ出力と前記キャリーアウトビットと前記１つの入力信号のＥＯＲ演算を行い、キャリービットを出力するキャリー出力用ＥＯＲ回路と、２つの前記１段目ＥＯＲ回路の出力と前記入力信号の相補信号の２つを受け、前記２つのＥＯＲ出力と前記２つの相補信号のＥＯＲ演算を行い、前記キャリーアウトビットとその相補信号を出力する２つのキャリーアウト用ＥＯＲ回路とを有する。【００１７】
更に、本発明では、好ましくは、前記３段目ＥＯＲ回路は、前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットを受け、前記ＥＯＲ出力と前記キャリーアウトビットのＥＯＲ演算を行い、加算ビットとその相補信号を出力する一対のＥＯＲ回路で構成され、前記キャリー出力用ＥＯＲ回路は、前記２つの２段目ＥＯＲ回路の出力と前記キャリーアウトビットと前記４つの入力信号の１つを受け、前記ＥＯＲ出力と前記キャリーアウトビットと前記１つの入力信号のＥＯＲ演算を行い、キャリービットとその相補信号を出力する一対のＥＯＲ回路で構成された。【００１８】
更に、本発明では、好ましくは、前記４つの入力信号の相補信号を生成する４つのインバータを更に有する。【００１９】
更に、本発明では、好ましくは、前記４つの１段目ＥＯＲ回路は、データバスから前記４つの入力信号とその相補信号を受ける。【００２０】
更に、本発明では、好ましくは、前記４つの１段目ＥＯＲ回路と前記４つのインバータは、データバスから前記４つの入力信号を受ける。【００２１】
更に、本発明では、好ましくは、前記複数の５−３圧縮回路を、複数設け、初段の前記複数の５−３圧縮回路の加算ビットと前記キャリービットとを、次段の前記複数の５−３圧縮回路に入力する。
【発明の効果】
【００２３】
本発明では、ＥＯＲ回路群で構成される５−３圧縮回路に、キャリーアウトビットとその相補信号を出力する２つのキャリーアウト用ＥＯＲ回路を少なくとも設け、少なくとも、キャリーアウトをデュアルレーン化したので、必要とするインバータを削減でき、遅延時間の増加を抑圧し、高速な加算動作を実現できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施の形態のＣＳＡ用５−３圧縮回路の回路図である。
【図２】図１の５−３圧縮回路を用いたキャリーセーブアダーの回路図である。
【図３】本発明の第２の実施の形態のＣＳＡ用５−３圧縮回路の回路図である。
【図４】図３の５−３圧縮回路を用いたキャリーセーブアダーの回路図である。
【図５】従来技術と第１の実施の形態と第２の実施の形態の５−３圧縮回路の各段のインバータ及びパストランジスタの段数の説明図である。
【図６】従来技術と第１の実施の形態と第２の実施の形態の５−３圧縮回路の各段のインバータ及びパストランジスタの段数の比較図である。
【図７】乗算における部分積の説明図である。
【図８】部分積のＣＳＡ加算動作の説明図である。
【図９】従来の５−３圧縮回路の回路図である。
【図１０】図９のＥＯＲ回路のサム、キャリー、キャリーアウトの演算動作の説明図である。
【符号の説明】
【００２５】
１−０，１−１，１−２，１−３  ＣＳＡセル（５−３圧縮回路）
３，４初段ＣＳＡ
５  次段ＣＳＡ
１０，１２，１４，１６  １段目ＥＯＲ回路
２０，２２  ２段目ＥＯＲ回路
２４，２６  キャリーアウト用ＥＯＲ回路
３０，３２  ３段目ＥＯＲ回路
３４，３６  キャリー用ＥＯＲ回路
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を、第１の実施の形態、第２の実施の形態、他の実施の形態の順で説明するが、これらの実施の形態は、本発明の一例であり、種々の変形を排除するものではない。【００２７】
［第１の実施の形態］
図１は、本発明の第１の実施の形態の５−３圧縮回路の回路図、図２は、図１の５−３圧縮回路を用いたＣＳＡのブロック図である。【００２８】
図１に示すように、５−３圧縮回路１―０，１−１、１−２，１−３は、直列に接続される。各５−３圧縮回路１−１（１−０，１−２，１−３）は、３段のＥＯＲ回路群で構成される。各ＥＯＲ回路は、一対のパストランジスタで構成され、図１０で示したように、Ａ１とＡ２のＥＯＲ出力を、Ａ１と反転Ａ２の乗算に、Ａ１の反転とＡ１の乗算との和で演算する。【００２９】
この実施の形態では、相補信号を両方使用するデュアルレールを使用することにより、高速化を実現する。即ち、入力（Ａ１、Ａ２，Ａ３，Ａ４）と、その相補信号（ＸＡ１，ＸＡ２，ＸＡ３，ＸＡ４）とを、１段目の各ＥＯＲ１０，１２，１４，１６に入力する。従って、ＥＯＲ回路１０は、Ａ１とＡ２のＥＯＲを、ＥＯＲ回路１２は、Ａ１とＡ２のＥＯＲの反転を、ＥＯＲ回路１４は、Ａ３とＡ４のＥＯＲを、ＥＯＲ回路１６は、Ａ３とＡ４のＥＯＲの反転を、出力する。【００３０】
同様に、２段目のＥＯＲ回路２０は、Ａ１とＡ２とＡ３とＡ４のＥＯＲを、ＥＯＲ回路２２は、Ａ１とＡ２とＡ３とＡ４のＥＯＲの反転を、出力し、その出力を受ける３段目のＥＯＲ回路３２は、Ａ１とＡ２とＡ３とＡ４とＣＩのＥＯＲを、反転ゲート４７を介しＳ（ＳＵＭ）として、出力する。同様に、ＸＡ１を反転ゲート４１，４３を介し受け、且つＥＯＲ回路２０，２２の出力と、ＸＣＩを受けるＥＯＲ回路３４は、反転ゲート４８を介し、図１０に示したキャリーＣを出力する。【００３１】
更に、ＥＯＲ回路１４の出力と、ＥＯＲ回路１６の出力と、ＸＡ２と、ＸＡ４を受けるＥＯＲ回路２４は、反転ゲート４４を介し、図１０のキャリーアウトＣＯを出力する。このキャリーアウトＣＯが、上位桁の５−３圧縮回路１−２のキャリーインＣＩとして、出力される。このように、キャリーアウトＣＯが、上位桁へのキャリーであり、キャリーＣが、次段への桁上げ出力である。【００３２】
更に、出力の相補信号を作成するため、２段目のＥＯＲ回路２０の出力と、ＥＯＲ回路２２の出力と、ＣＩ，ＸＣＩ（ＣＩの相補信号）とを受ける３段目のＥＯＲ回路３０は、Ａ１とＡ２とＡ３とＡ４とＣＩのＥＯＲの反転ＸＳを、反転ゲート４６を介し、出力する。同様に、ＸＡ１を反転ゲート４１を介し受け、且つＥＯＲ回路２０，２２の出力と、ＣＩを受けるＥＯＲ回路３６は、反転ゲート４９を介し、図１０に示したキャリーＣの相補信号ＸＣを出力する。【００３３】
更に、ＥＯＲ回路１４の出力と、ＥＯＲ回路１６の出力と、Ａ２と、Ａ４を受けるＥＯＲ回路２６は、反転ゲート４５を介し、図１０のキャリーアウトＣＯの相補信号ＸＣＯを出力する。このキャリーアウトＸＣＯも、上位桁の５−３圧縮回路１−２のキャリーインＸＣＩとして、出力される。【００３４】
他の５−３圧縮回路１−０，１−２，１−３も同様の構成である。このように、５−３圧縮回路のような排他的論理和回路を多く使用する回路では、ＥＯＲ回路が、ある信号とその反転信号を生成する遅延時間を零とすることができる点に注目し、その２つの信号を効率的に使用することにより、高速化を実現することができる。【００３５】
相補信号を両方使用するデュアルレールを使用することにより、増加した出力分のトランジスタ（図１のＥＯＲ３０、３６、２６）が増加するが、相補信号で扱うので、その信号の反転信号をインバータで作らなくてもよくなる。即ち、図９の従来に比し、反転ゲート１１０，１１２，１１４，１１６，１５０を削減できる。よって、その分のトランジスタを減少させ、結果的にはトランジスタの増加を抑えることができる。【００３６】
又、各ＣＳＡセル１−１のキャリーアウト出力（ＣＯ）は、一桁上位のＣＳＡセル１−２のキャリーイン入力（ＣＩ）と接続されるが、入力からキャリーアウト、一桁上位のキャリーインを通り、その一桁上位のＳＵＭ，キャリーまで、出力されるパスの段数が、キャリーアウト、キャリーインを通過しないパスより１段多く、クリティカルとなる。このパスの高速化をするべく、キャリアアウトの相補信号ＸＣＯを作成し、上位桁に渡す。この結果、クリティカルパスの高速化が図れ、段数的には，入力からＳＵＭ、キャリーまでのパスは、キャリーアウトを通過する、しないに関わらず、同じとすることができる。【００３７】
図２は、これを使用したＣＳＡのブロック図である。図８の部分積の加算動作を行う構成を例にしてある。第１のＣＳＡ３は、図８の部分積Ｘ１，Ｘ２，Ｘ３，Ｘ４の各桁の加算を行い、第２のＣＳＡ４は、図８の部分積Ｘ５，Ｘ６，Ｘ７，Ｘ８の各桁の加算を行う。第３のＣＳＡ５は、図８の加算結果Ｓ１ｍ〜Ｓ１０と、各桁のキャリーＣ１ｍ〜Ｃ１０と、加算結果Ｓ２ｍ〜Ｓ２０と、各桁のキャリーＣ２ｍ〜Ｃ２０とを桁毎に、加算して、加算結果Ｓ３ｍ〜Ｓ３０と、キャリーＣ３ｍ〜Ｃ３０を得る。【００３８】
ＣＳＡ３は、図１の５−３圧縮回路１−０，１−１，１−２，１−３，１−４，１−５を、下位桁のキャリーアウトＣＯで、連結して、構成される。各５−３圧縮回路１−０，１−１，１−２，１−３，１−４，１−５は、部分積Ｘ１，Ｘ２，Ｘ３，Ｘ４及びその反転信号であるＸＸ１，ＸＸ２，ＸＸ３，ＸＸ４を伝達するバスに接続される。具体的には、最下位桁（１桁目）の５−３圧縮回路１−０には、部分積Ｘ１の１桁目Ｘ１０とその相補信号ＸＸ１０が入力する。２桁目の５−３圧縮回路１−１には、部分積Ｘ１の２桁目Ｘ１１、その相補信号ＸＸ１１，部分積Ｘ２の１桁目Ｘ２０，その相補信号ＸＸ２０が入力する。【００３９】
３桁目の５−３圧縮回路１−２には、部分積Ｘ１の３桁目Ｘ１２とその相補信号ＸＸ１２、部分積Ｘ２の２桁目Ｘ２１、その相補信号ＸＸ２１，部分積Ｘ３の１桁目Ｘ３０，その相補信号ＸＸ３０が入力する。４桁目の５−３圧縮回路１−３には、部分積Ｘ１の４桁目Ｘ１３とその相補信号ＸＸ１３、部分積Ｘ２の３桁目Ｘ２２、その相補信号ＸＸ２２，部分積Ｘ３の２桁目Ｘ３１，その相補信号ＸＸ３１、部分積Ｘ４の１桁目Ｘ４０、その相補信号ＸＸ４０が入力される。【００４０】
５桁目の５−３圧縮回路１−４には、部分積Ｘ１の５桁目Ｘ１４とその相補信号ＸＸ１４、部分積Ｘ２の４桁目Ｘ２３、その相補信号ＸＸ２３，部分積Ｘ３の３桁目Ｘ３２，その相補信号ＸＸ３２、部分積Ｘ４の２桁目Ｘ４１，その相補信号ＸＸ４１が入力する。６桁目の５−３圧縮回路１−５には、部分積Ｘ１の６桁目Ｘ１５とその相補信号ＸＸ１５、部分積Ｘ２の５桁目Ｘ２４、その相補信号ＸＸ２４，部分積Ｘ３の４桁目Ｘ３３，その相補信号ＸＸ３３、部分積Ｘ４の３桁目Ｘ４２、その相補信号ＸＸ４２が入力される。以下、同様である。【００４１】
同様に、ＣＳＡ４は、図１の５−３圧縮回路１−１０，１−１１，１−１２，１−１３…を、下位桁のキャリーアウトＣＯで、連結して、構成される。各５−３圧縮回路１−１０，１−１１，１−１２，１−１３…は、部分積Ｘ５，Ｘ６，Ｘ７，Ｘ８及びその反転信号であるＸＸ５，ＸＸ６，ＸＸ７，ＸＸ８を伝達するバスに接続される。具体的には、最下位桁（１桁目）の５−３圧縮回路１−１０には、部分積Ｘ５の１桁目Ｘ５０とその相補信号ＸＸ５０が入力する。２桁目の５−３圧縮回路１−１１には、部分積Ｘ５の２桁目Ｘ５１、その相補信号ＸＸ５１，部分積Ｘ６の１桁目Ｘ６０，その相補信号ＸＸ６０が入力する。【００４２】
３桁目の５−３圧縮回路１−１２には、部分積Ｘ５の３桁目Ｘ５２とその相補信号ＸＸ５２、部分積Ｘ６の２桁目Ｘ６１、その相補信号ＸＸ６１，部分積Ｘ７の１桁目Ｘ７０，その相補信号ＸＸ７０が入力する。４桁目の５−３圧縮回路１−１３には、部分積Ｘ５の４桁目Ｘ５３とその相補信号ＸＸ５３、部分積Ｘ６の３桁目Ｘ６２、その相補信号ＸＸ６２，部分積Ｘ７の２桁目Ｘ７１，その相補信号ＸＸ７１、部分積Ｘ８の１桁目Ｘ８０、その相補信号ＸＸ８０が入力される。以下、同様である。【００４３】
更に，ＣＳＡ５は、図１の５−３圧縮回路１−２０，１−２１，１−２２，１−２３，１−２４，１−２５，１−２６，１−２７，１−２８…を、下位桁のキャリーアウトＣＯで、連結して、構成される。最下位桁（１桁目）の５−３圧縮回路１−２０には、５−３圧縮回路１−０のサムＳ２０及びＸＳ２０が、入力する。２桁目の５−３圧縮回路１−２１には、５−３圧縮回路１−０のキャリーＣ１０，ＸＣ１０，５−３圧縮回路１−１のサムＳ１１，ＸＳ１１が入力する。以下、５桁目の５−３圧縮回路１−２４まで同様である。【００４４】
６桁目の５−３圧縮回路１−２５には、５−３圧縮回路１−４のキャリーＣ１４，ＸＣ１４，５−３圧縮回路１−５のサムＳ１５，ＸＳ１５、５−３圧縮回路１−１０のサムＳ２０，ＸＳ２０が入力する。以下、７桁目以降の５−３圧縮回路１−２６も同様である。【００４５】
このように、バスラインから、４入力とその相補信号を、各５−３圧縮回路１−０〜１−１３に入力することにより、図１のような構成の５−３圧縮回路を動作できる。このようにして、乗算のための部分積の加算においては、これらのＣＳＡセルを複数段組み合わせて使用するので、より高速化を図ることが可能となる。【００４６】
［第２の実施の形態］
図３は、本発明の第２の実施の形態の５−３圧縮回路の回路図、図４は、図２の５−３圧縮回路を用いたＣＳＡのブロック図である。図３及び図４において、図１及び図２で示したものと同一のものは、同一の記号で示してある。【００４７】
図３に示すように、５−３圧縮回路１―０，１−１、１−２，１−３は、直列に接続される。各５−３圧縮回路１−１（１−０，１−２，１−３）は、３段のＥＯＲ回路群で構成される。各ＥＯＲ回路は、一対のパストランジスタで構成され、図１０で示したように、Ａ１とＡ２のＥＯＲ出力を、Ａ１と反転Ａ２の乗算に、Ａ１の反転とＡ１の乗算との和で演算する。【００４８】
この実施の形態では、クリティカルパスであるキャリーアウトのみに、相補信号を両方使用するデュアルレールを使用することにより、面積増を抑えつつ、高速化を実現する。即ち、入力（Ａ１、Ａ２，Ａ３，Ａ４）と、反転ゲート５０，５１，５２，５３で反転したその相補信号（ＸＡ１，ＸＡ２，ＸＡ３，ＸＡ４）とを、１段目の各ＥＯＲ１０，１２，１４，１６に入力する。従って、ＥＯＲ回路１０は、Ａ１とＡ２のＥＯＲを、ＥＯＲ回路１２は、Ａ１とＡ２のＥＯＲの反転を、ＥＯＲ回路１４は、Ａ３とＡ４のＥＯＲを、ＥＯＲ回路１６は、Ａ３とＡ４のＥＯＲの反転を、出力する。【００４９】
同様に、２段目のＥＯＲ回路２０は、Ａ１とＡ２とＡ３とＡ４のＥＯＲを、ＥＯＲ回路２２は、Ａ１とＡ２とＡ３とＡ４のＥＯＲの反転を、出力し、その出力を受ける３段目のＥＯＲ回路３２は、Ａ１とＡ２とＡ３とＡ４とＣＩのＥＯＲを、反転ゲート４７を介しＳ（ＳＵＭ）として、出力する。同様に、ＸＡ１を反転ゲート４１，４３を介し受け、且つＥＯＲ回路２０，２２の出力と、ＸＣＩを受けるＥＯＲ回路３４は、反転ゲート４８を介し、図１０に示したキャリーＣを出力する。【００５０】
更に、ＥＯＲ回路１４の出力と、ＥＯＲ回路１６の出力と、ＸＡ２と、ＸＡ４を受けるＥＯＲ回路２４は、反転ゲート４４を介し、図１０のキャリーアウトＣＯを出力する。このキャリーアウトＣＯが、上位桁の５−３圧縮回路１−２のキャリーインＣＩとして、出力される。このように、キャリーアウトＣＯが、上位桁へのキャリーであり、キャリーＣが、次段への桁上げ出力である。【００５１】
更に、キャリーアウト出力の相補信号を作成するため、ＥＯＲ回路１４の出力と、ＥＯＲ回路１６の出力と、Ａ２と、Ａ４を受けるＥＯＲ回路２６は、反転ゲート４５を介し、図１０のキャリーアウトＣＯの相補信号ＸＣＯを出力する。このキャリーアウトＸＣＯも、上位桁の５−３圧縮回路１−２のキャリーインＸＣＩとして、出力される。【００５２】
他の５−３圧縮回路１−０，１−２，１−３も同様の構成である。このように、５−３圧縮回路のような排他的論理和回路を多く使用する回路では、ＥＯＲ回路が、ある信号とその反転信号を生成する遅延時間を零とすることができる点に注目し、その２つの信号を効率的に使用することにより、高速化を実現することができる。【００５３】
相補信号を両方使用するデュアルレールを使用することにより、増加した出力分のトランジスタ（図１のＥＯＲ２６）が増加するが、相補信号で扱うので、その信号の反転信号をインバータで作らなくてもよくなる。即ち、図９の従来に比し、反転ゲート１５０を削減できる。よって、その分のトランジスタを減少させ、結果的にはトランジスタの増加を抑えることができる。【００５４】
又、各ＣＳＡセル１−１のキャリーアウト出力（ＣＯ）は、一桁上位のＣＳＡセル１−２のキャリーイン入力（ＣＩ）と接続されるが、入力からキャリーアウト、一桁上位のキャリーインを通り、その一桁上位のＳＵＭ，キャリーまで、出力されるパスの段数が、キャリーアウト、キャリーインを通過しないパスより１段多く、クリティカルとなる。このパスの高速化をするべく、キャリーアウトの相補信号ＸＣＯを作成し、上位桁に渡す。この結果、クリティカルパスの高速化が図れ、段数的には，入力からＳＵＭ、キャリーまでのパスは、キャリーアウトを通過する、しないに関わらず、同じとすることができる。【００５５】
図４は、これを使用したＣＳＡのブロック図である。図８の部分積の加算動作を行う構成を例にしてある。第１のＣＳＡ３は、図８の部分積Ｘ１，Ｘ２，Ｘ３，Ｘ４の各桁の加算を行い、第２のＣＳＡ４は、図８の部分積Ｘ５，Ｘ６，Ｘ７，Ｘ８の各桁の加算を行う。第３のＣＳＡ５は、図８の加算結果Ｓ１ｍ〜Ｓ１０と、各桁のキャリーＣ１ｍ〜Ｃ１０と、加算結果Ｓ２ｍ〜Ｓ２０と、各桁のキャリーＣ２ｍ〜Ｃ２０とを桁毎に、加算して、加算結果Ｓ３ｍ〜Ｓ３０と、キャリーＣ３ｍ〜Ｃ３０を得る。【００５６】
ＣＳＡ３は、図３の５−３圧縮回路１−０，１−１，１−２，１−３，１−４，１−５を、下位桁のキャリーアウトＣＯ、ＸＣＯで、連結して、構成される。各５−３圧縮回路１−０，１−１，１−２，１−３，１−４，１−５は、部分積Ｘ１，Ｘ２，Ｘ３，Ｘ４を伝達するバスに接続される。具体的には、最下位桁（１桁目）の５−３圧縮回路１−０には、部分積Ｘ１の１桁目Ｘ１０が入力する。２桁目の５−３圧縮回路１−１には、部分積Ｘ１の２桁目Ｘ１１，部分積Ｘ２の１桁目Ｘ２０が入力する。【００５７】
３桁目の５−３圧縮回路１−２には、部分積Ｘ１の３桁目Ｘ１２、部分積Ｘ２の２桁目Ｘ２１、部分積Ｘ３の１桁目Ｘ３０が入力する。４桁目の５−３圧縮回路１−３には、部分積Ｘ１の４桁目Ｘ１３、部分積Ｘ２の３桁目Ｘ２２，部分積Ｘ３の２桁目Ｘ３１、部分積Ｘ４の１桁目Ｘ４０が入力される。【００５８】
５桁目の５−３圧縮回路１−４には、部分積Ｘ１の５桁目Ｘ１４、部分積Ｘ２の４桁目Ｘ２３，部分積Ｘ３の３桁目Ｘ３２、部分積Ｘ４の２桁目Ｘ４１が入力する。６桁目の５−３圧縮回路１−５には、部分積Ｘ１の６桁目Ｘ１５、部分積Ｘ２の５桁目Ｘ２４，部分積Ｘ３の４桁目Ｘ３３、部分積Ｘ４の３桁目Ｘ４２が入力される。以下、同様である。【００５９】
同様に、ＣＳＡ４は、図１の５−３圧縮回路１−１０，１−１１，１−１２，１−１３…を、下位桁のキャリーアウトＣＯ，ＸＣＯで、連結して、構成される。各５−３圧縮回路１−１０，１−１１，１−１２，１−１３…は、部分積Ｘ５，Ｘ６，Ｘ７，Ｘ８を伝達するバスに接続される。具体的には、最下位桁（１桁目）の５−３圧縮回路１−１０には、部分積Ｘ５の１桁目Ｘ５０が入力する。２桁目の５−３圧縮回路１−１１には、部分積Ｘ５の２桁目Ｘ５１，部分積Ｘ６の１桁目Ｘ６０が入力する。【００６０】
３桁目の５−３圧縮回路１−１２には、部分積Ｘ５の３桁目Ｘ５２、部分積Ｘ６の２桁目Ｘ６１，部分積Ｘ７の１桁目Ｘ７０が入力する。４桁目の５−３圧縮回路１−１３には、部分積Ｘ５の４桁目Ｘ５３、部分積Ｘ６の３桁目Ｘ６２，部分積Ｘ７の２桁目Ｘ７１、部分積Ｘ８の１桁目Ｘ８０が入力される。以下、同様である。【００６１】
更に，ＣＳＡ５は、図１の５−３圧縮回路１−２０，１−２１，１−２２，１−２３，１−２４，１−２５，１−２６，１−２７，１−２８…を、下位桁のキャリーアウトＣＯ、ＸＣＯで、連結して、構成される。最下位桁（１桁目）の５−３圧縮回路１−２０には、５−３圧縮回路１−０のサムＳ２０が、入力する。２桁目の５−３圧縮回路１−２１には、５−３圧縮回路１−０のキャリーＣ１０，５−３圧縮回路１−１のサムＳ１１が入力する。以下、５桁目の５−３圧縮回路１−２４まで同様である。【００６２】
６桁目の５−３圧縮回路１−２５には、５−３圧縮回路１−４のキャリーＣ１４，５−３圧縮回路１−５のサムＳ１５、５−３圧縮回路１−１０のサムＳ２０が入力する。以下、７桁目以降の５−３圧縮回路１−２６も同様である。【００６３】
このように、バスラインから、４入力を、各５−３圧縮回路１−０〜１−１３に入力することにより、図１のような構成の５−３圧縮回路を動作できる。このようにして、乗算のための部分積の加算においては、これらのＣＳＡセルを複数段組み合わせて使用するので、面積を抑えつつ、より高速化を図ることが可能となる。【００６４】
図５、図６は、図９の従来技術、図１の第１の実施の形態、図３の第２の実施の形態のインバータとパストランジスタの数を比較したものである。図９の従来技術では、ＣＳＡセル（５−３圧縮回路）１段で、キャリー出力に、インバータ３段、パストランジスタ３段を、キャリーアウトを出力するのに、インバータ４段、パストランジスタ３段を要する。従って、４段、即ち、４個のＣＳＡセル（５−３圧縮回路）を連結した場合には、キャリー出力に、インバータ１２段、パストランジスタ１２段を、キャリーアウトを出力するのに、インバータ１６段、パストランジスタ１２段を要する。【００６５】
一方、第１の実施の形態では、ＣＳＡセル（５−３圧縮回路）１段で、キャリー出力に、インバータ３段、パストランジスタ３段を、キャリーアウトを出力するのに、インバータ３段、パストランジスタ３段を要する。従って、４段、即ち、４個のＣＳＡセル（５−３圧縮回路）を連結した場合には、キャリー出力に、インバータ９段、パストランジスタ１２段を、キャリーアウトを出力するのに、インバータ９段、パストランジスタ１２段で済む。【００６６】
更に、第２の実施の形態では、ＣＳＡセル（５−３圧縮回路）１段で、キャリー出力に、インバータ３段、パストランジスタ３段を、キャリーアウトを出力するのに、インバータ３段、パストランジスタ３段を要する。従って、４段、即ち、４個のＣＳＡセル（５−３圧縮回路）を連結した場合には、キャリー出力に、インバータ１２段、パストランジスタ１２段を、キャリーアウトを出力するのに、インバータ１２段、パストランジスタ１２段で済む。【００６７】
このように、パストランジスタの段数は、変わらないが、インバータの段数が減少でき、それだけ、遅延時間の増加を抑えることができ、高速化できる。又、第１の実施の形態では、最もインバータの段数を削減でき、より高速化できる。逆に、第２の実施の形態では、ある程度インバータの段数を削減でき、従来より高速化できるとともに、回路の増加をより抑制でき、チップ面積を抑えることができる。【００６８】
［他の実施の形態］
上述の実施の形態では、図７及び図８の部分積の加算の例で説明したが、他の桁数の部分積、部分積数の加算に適用できる。
【産業上の利用可能性】
【００６９】
ＥＯＲ回路群で構成される５−３圧縮回路に、キャリーアウトビットとその相補信号を出力する２つのキャリーアウト用ＥＯＲ回路を少なくとも設け、少なくとも、キャリーアウトをデュアルレーン化したので、必要とするインバータを削減でき、遅延時間の増加を抑圧し、高速な加算動作を実現でき、桁数の多い部分積の加算を高速化するのに寄与する。
【図１】
0004358272.tif 000002
【図２】
0004358272.tif 000003
【図３】
0004358272.tif 000004
【図４】
0004358272.tif 000005
【図５】
0004358272.tif 000006
【図６】
0004358272.tif 000007
【図７】
0004358272.tif 000008
【図８】
0004358272.tif 000009
【図９】
0004358272.tif 000010
【図１０】
0004358272.tif 000011