JP2004171491A - 加算回路および加算回路を備えた半導体装置 - Google Patents
加算回路および加算回路を備えた半導体装置 Download PDFInfo
- Publication number
- JP2004171491A JP2004171491A JP2002339707A JP2002339707A JP2004171491A JP 2004171491 A JP2004171491 A JP 2004171491A JP 2002339707 A JP2002339707 A JP 2002339707A JP 2002339707 A JP2002339707 A JP 2002339707A JP 2004171491 A JP2004171491 A JP 2004171491A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- bit
- carry
- output
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
- G06F7/507—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Logic Circuits (AREA)
- Electronic Switches (AREA)
Abstract
【課題】論理素子数および配線本数が削減されて低電力で動作でき、且つ、クリティカルパスの論理段数が低減して高速動作を可能にした加算回路を提供することである。
【解決手段】本発明の加算回路は、2Nビットの場合に(N+1)段の回路ステージで構成され、N=4の16ビットの場合には、1段目の条件セル回路101で生成され下位ビットからの桁上げがある場合とない場合とを表す仮のキャリー情報の中で最上位を除く上位7ビット分の仮のキャリー情報が、伝播の途中段階において変換回路140により仮のビット和情報に変換されて伝播し、最下位を除いた下位7ビット分の仮のキャリー情報から伝搬の途中で真のキャリー信号が選択される。最終段の5段目の回路ステージにおいてビット和S_1乃至S_15を生成して出力する。
【選択図】 図1
【解決手段】本発明の加算回路は、2Nビットの場合に(N+1)段の回路ステージで構成され、N=4の16ビットの場合には、1段目の条件セル回路101で生成され下位ビットからの桁上げがある場合とない場合とを表す仮のキャリー情報の中で最上位を除く上位7ビット分の仮のキャリー情報が、伝播の途中段階において変換回路140により仮のビット和情報に変換されて伝播し、最下位を除いた下位7ビット分の仮のキャリー情報から伝搬の途中で真のキャリー信号が選択される。最終段の5段目の回路ステージにおいてビット和S_1乃至S_15を生成して出力する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は加算回路に関し、特に高速で動作する加算回路およびこれを備えた半導体装置に関する。
【0002】
【従来の技術】
コンピュータの高速化に伴い、より高速な演算回路が必要となり、その重要な部品である加算回路の高速化技術が重要になっている。高速な加算回路を実現する技術は多数知られているが、なかでも条件和加算回路(conditional sum adder)は、最も高速な加算回路の1つとして広く知られている。
【0003】
図9は第1の従来例である4ビットの条件和加算回路の回路図である。図9に示すように、第1の従来例では、2進数(A_3,A_2,A_1,A_0)と(B_3,B_2,B_1,B_0)とを加算する場合に、1段目の回路ステージ21において条件セル回路(conditional cell)111が、下位ビットからの桁上げがある場合のビット和信号(例えばS0_1)および桁上げがない場合のビット和信号(例えばS1_1)を含む仮のビット和情報と、下位ビットからの桁上げがある場合のキャリー信号(例えばC0_1)および桁上げがない場合のキャリー信号(例えばC1_1)を含む仮のキャリー情報との両方を生成して出力する。2段目の回路ステージ22では、下位からのキャリー信号に基づいてマルチプレクサ(MUX)120で2つの仮ビット和及び仮キャリー信号のうちの一方を選択することによって次段に伝搬させ、3段目の回路ステージ23において真のキャリー信号により真のビット和S_0乃至S_3および出力キャリー信号Coutが生成されて加算回路の外部へ出力する。第1の従来例では2Nビットの加算回路を(N+1)段の回路ステージで実現できるため、高速動作が可能である。しかしながら第1の従来例は、多数のマルチプレクサを含むとともに配線本数も多いので消費電力が大きい(例えば、非特許文献1参照。)。
【0004】
消費電力を低減すべく改良された加算回路として第2の従来例の条件キャリー加算回路(conditional carry adder)がある。図10は16ビットの条件キャリー加算回路の回路図である。図10に示すように、第2の従来例では、条件セル回路(conditional cell)100(図2(b)に回路図を示す)は、1段目の回路ステージ31において第1の従来例における条件セル111とは異なり、2つの入力ビットの排他的論理和信号(例えばS0_1)と、下位ビットからの桁上げがある場合のキャリー信号および桁上げがない場合のキャリー信号の1対の信号からなる仮のキャリー情報を生成して出力する。2段目の回路ステージ32から5段目の回路ステージ35では、下位からのキャリー信号に基づいてマルチプレクサ(MUX)120およびキャリー選択回路(carry selector)110により次段の回路ステージに送るキャリー信号を選択して順次伝搬させ、排他的論理和回路130を含む6番目のステージ36で真のビット和S_1乃至S_15が生成されて加算回路の外部へ出力される。第2の従来例は、仮のキャリー情報だけを生成して伝搬すればよく、仮のビット和情報を必要としないためにマルチプレクサの個数(キャリー選択回路はマルチプレクサ2個として計数)を削減でき、したがって動作時の消費電力の低減が可能である。
【0005】
【非特許文献1】
Kuo−Hsing Cheng、外2名、「条件和加算回路の低電力分野への適用ののための改良(The improvement of conditional sum adder for low power applications)」、アイイーイーイー(IEEE)、1998年エイシックコンファレンス予稿集(ASIC Conference 1998. Proceedings)、p.131−134(第1の従来例はp.133のFig.6、第2の従来例は同ページのFig.7)
【0006】
【発明が解決しようとする課題】
しかしながら、第2の従来例では、2Nビットの加算回路を実現するためには(N+2)段の回路ステージが必要であり、同じ16ビットの加算器で比較した場合に、第1の従来例の5段に対して第2の従来例では6段となり、クリティカルパスの論理段数が1段増加するので回路動作の高速性においては不利となる。
【0007】
本発明の目的は、第1の従来例と同等の速度(すなわち第2の従来例よりも高速)での動作を維持しながら、第1の従来例よりもマルチプレクサ等の単位回路の個数、および配線数の削減により低電力で動作できる加算回路を提供することである。
【0008】
【課題を解決するための手段】
本発明の加算回路は、下位ビットからの桁上げがある場合と桁上げがない場合とを表す1対の信号からなる仮のキャリー情報を予め生成し下位からの選択情報に基づき前記仮のキャリー情報から真のキャリー情報を選択することによりキャリー情報の伝搬を高速化した加算回路において、キャリー情報の伝搬経路の所定の部分に前記仮のキャリー情報を下位ビットからの桁上げがある場合と桁上げがない場合とを示す1対の信号からなる仮のビット和情報に変換する変換回路を設けたことを特徴とする。
【0009】
【発明の実施の形態】
以下、本発明の好ましい実施形態について図面を参照しながら詳細に説明する。なお、以下の説明は本発明の代表的な実施の形態を示すものであり、本発明が以下の説明に限定されて解釈されるものではない。
【0010】
図1は、本発明の加算回路の一実施例である16ビットの加算回路の回路図である。図1において加算回路は、16ビットの入力データ(A_15,A_14・・・,A_0)および(B_15,B_14・・・,B_0)と入力キャリー信号Cinとを入力し、その和を表す16ビットのビット和出力信号(S_15,S_14・・・,S_0)と出力キャリー信号Coutとを出力することは図10の第2の従来例と同様であるが、図10の回路ステージ36のS_1からS_8を出力する排他和回路が最終ステージに収められ、S_9からS_15を出力する排他和回路が、1対のキャリー信号からなる仮のキャリー情報を入力し1対のビット和信号からなる仮のビット和情報に変換して出力する変換回路140に置き換えられている点において第2の従来例とは異なっている。
【0011】
次に、各回路ステージの構成について詳細に説明する。
【0012】
本発明を適用した2Nビットの加算回路では、1段目の回路ステージは、最上位ビットから最下位よりもひとつ上のビットのそれぞれに対応して設けられ、2つの入力データの対応するビットを入力して排他的論理和を計算するとともに下位ビットから桁上げがある場合と桁上げがない場合とを表す1対の信号からなる仮のキャリー情報を生成して出力する(2N−1)個の条件セル回路(conditional cell)101と、2つの入力データの最下位ビットと入力キャリー信号とを入力して排他的論理和信号と桁上げ信号を生成する1個のフルアダー(full adder)100とを備えている。条件セル回路101の機能、フルアダー100の機能は、第2の従来例におけるこれらと同様である。
【0013】
図1の16ビットの加算回路の1段目の回路ステージ11の内部構成を図2(a)に示す。2つの入力データは、同一桁のビット毎に最上位ビットから下位ビット方向に設けられた15(=24−1)個の条件セル回路101および最下位ビットに対応して設けられた1個のフルアダーに入力される。条件セル回路101のそれぞれは、入力された2つのビットの排他的論理和を生成すると共に、下位のビットからの入力キャリー信号を0(桁上げがない)と仮定した場合の出力キャリー信号(例えばC0_1)と下位のビットからの入力キャリー信号を1(桁上げがある)と仮定した場合のキャリー信号(例えばC1_1)とを生成し1対の信号からなる仮のキャリー情報として出力する。したがって、排他的論理和信号S0_1乃至S0_15と、下位からの桁上げがないと仮定した場合のキャリー信号C0_1乃至C0_15と、下位からの桁上げがあると仮定した場合のキャリー信号C1_1乃至C1_15とが、1段目の回路ステージから出力される。A_0とB_0が入力される最下位ビットにはフルアダー100が使用され、入力キャリー信号Cinも同時に入力されて真のビット和S_0と真のキャリーCout_0とが出力される。
【0014】
図2(b)は、条件セル回路101の内部回路の一例を示す回路図である。条件セル回路101は、2つの入力ビット(A_i,B_i)を入力し論理積をとって出力する第1のゲート102と、同じく2つの入力ビットを入力し論理和をとり出力する第2のゲート103と、第1のゲート102の出力を入力し反転して出力する第3のゲート104と、第2のゲート103の出力と第3のゲート104の出力とを入力し論理積をとり出力する第4のゲート104とを備え、第1のゲート102の出力を下位ビットからの桁上げがないとした場合のキャリー信号である第1のキャリー信号(C0_i)とし、第2のゲートの出力を下位ビットからの桁上げがあるとした場合のキャリー信号である第2のキャリー信号(C1_i)とし、第4のゲートの出力を下位からの桁上げがないとした場合の2つの入力ビットのビット和に相当する排他的論理和信号(S0_i)として出力する。
【0015】
本発明の2Nビットの加算回路の2段目からN段目までの回路ステージにおいては、1≦M<Nを満たす整数Mにより定まる(N−M+1)段目の回路ステージは次のように構成される。
【0016】
図3は、図1の実施例の16ビット加算回路における2段目の回路ステージ12の内部構成を示す図である。2段目の回路ステージ12は、(N−M+1)=2となる回路ステージであり、N=4であるのでM=3に対応する。2段目の回路ステージ12では(N−M)=1であるので、入力データの2(N−M)=2ビット毎に対応して2M=8個の部分回路P21乃至P28に仮想的に分割されたとする。
【0017】
このように分割された場合に、最下位ビットA_0、B_0から上位の方に数えて2(N−M)=2番目に対応するビットからの入力を含む第1の部分回路である部分回路P21内の上位の2(N−M−1)=1ビットに対応して1個のマルチプレクサ(MUX)120が設けられ、このマルチプレクサは、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_1およびC1_1を入力する。また、このマルチプレクサは部分回路P21内の上位より数えて(2(N−M−1)+1)=2番目のビットに対応する1段目の回路ステージ11中のビットに設けられたフルアダー100から出力されるキャリー信号Cout_0を選択用の信号として入力し、これに基づいて真のキャリー信号である信号300を出力する。
【0018】
また、最上位ビットA_15、B_15に対応するキャリー信号としての信号C0_15およびC1_15を入力に含む第2の部分回路である部分回路P28および部分回路P28から下位の方に数えて2番目の部分回路P27乃至(2M−1)=7番目の部分回路P22に相当する第3の部分回路のいずれかに該当する各部分回路の上位の2(N−Mー1)=1ビットに対応して(2(Nー1)−2(N−M−1))=7個のキャリー選択回路(carry selector)110が設けられ、それぞれのキャリー選択回路に、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路の出力である1対の信号が入力される。また、これらのキャリー選択回路のそれぞれは、部分回路内の上位より数えて(2(N−M−1)+1)=2番目のビットに対応する1段目の回路ステージ11中のビットに設けられた条件セル回路101の出力である1対の選択用の信号を入力し、この選択用の信号に基づいて後の回路ステージにおける仮のキャリー情報または仮のビット和情報を表す1対の信号を選択して出力する。
【0019】
すなわち、部分回路P28内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_15およびC1_15を入力し、部分回路P28内の上位より数えて(2(N−M−1)+1)=2番目のビットに対応する1対の信号C0_14およびC1_14に基づいて選択された1対の信号315および316を出力する。同様に、部分回路P27内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_13およびC1_13を入力し、部分回路P27内の上位から2番目のビットに対応する1対の信号C0_12およびC1_12に基づいて選択された1対の信号311および312を出力する。また、部分回路P26内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_11およびC1_11を入力し、部分回路P26内の上位から2番目のビットに対応する1対の信号C0_10およびC1_10に基づいて選択された1対の信号309および310を出力する。また、部分回路P25内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_9およびC1_9を入力し、部分回路P25内の上位から2番目のビットに対応する1対の信号C0_8およびC1_8に基づいて選択された1対の信号307および308を出力する。また部分回路P24内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_7およびC1_7を入力し、部分回路P24内の上位から2番目のビットに対応する1対の信号C0_6およびC1_6に基づいて選択された1対の信号305および306を出力する。また、部分回路P23内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_5およびC1_5を入力し、部分回路P23内の上位から2番目のビットに対応する1対の信号C0_4およびC1_4に基づいて選択された1対の信号303および304を出力する。また、部分回路P22内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_3およびC1_3を入力し、部分回路P22内の上位から2番目のビットに対応するビットに設けられた1対の信号C0_2およびC1_2に基づいて選択された1対の信号301および302を出力する。
【0020】
また、第2の部分回路である部分回路P28内の下位の2(N−M−1)=1ビットに対応して1個の変換回路140が設けられる。この変換回路は、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_14およびC1_14と、1段目の回路ステージ11において1ビット上位のビットに対応する条件セル回路から出力される排他的論理和信号S0_15とを入力し、仮のビット和情報を表す1対の信号313および314に変換して出力する。
【0021】
マルチプレクサ120は、図4(a)に示すように、1対の入力信号Cin0およびCin1を入力し、選択用の信号Cin1sに基づいて1対の入力信号Cin0およびCin1のうち1つの信号を選択して出力信号Cout1として出力する。選択用の信号Cin1sが1であればCin1を出力信号Cout1として出力し、Cin1sが0であればCin0をCout1として出力する。
【0022】
キャリー選択回路110は、図10の第2の従来例におけるキャリー選択回路と同様の機能を有している。キャリー選択回路110は図4(b)に示すように2個のマルチプレクサ350および351を含み、第1のマルチプレクサ351は、1対の入力信号Cin0およびCin1を入力し、1対の選択用の信号Cin0sおよびCin1sのうちの一方の選択用の信号Cin0sに基づいて1対の入力信号Cin0およびCin1のうち1つの信号を選択し、選択された信号を1対の出力信号のうちの一方の出力信号Cout0として出力する。第2のマルチプレクサ350は、1対の入力信号Cin0およびCin1を入力し、1対の選択用の信号のうちの他方の選択用の信号Cin1sに基づいて入力信号Cin0およびCin1のうちひとつを選択し、選択された信号を1対の出力信号のうちの他方の出力信号Cout1として出力する。マルチプレクサ350においては、Cin1sが1のときにCin1が出力として選択され、Cin1sが0のときにCin0が選択される。マルチプレクサ351においては、Cin0sが1の時Cin1が選択され、Cin0sが0の時Cin0が選択される。図3の部分回路P28に含まれるキャリー選択回路を例にして説明すると、C0_15が図4(b)のCin0に入力され、C1_15がCin1に入力され、C0_14がCin0sに入力され、C1_14がCin1sに入力され、信号315がCout0から出力され、信号316がCout1から出力される。 変換回路140について、図3の部分回路P28に含まれる変換回路を例として説明する。変換回路140は、仮のキャリー情報を表す1対の信号C0_14およびC1_14のうちの一方の信号C0_14と、1段目のステージ11において1ビット上位のビットの条件セル回路から出力される排他的論理和信号SO_15とを入力し、仮のビット和情報を表す1対の信号313および314の一方のうちの信号313を出力する第1の排他的論理和回路と、1対の信号C0_14およびC1_14の他方の信号C1_14と排他的論理和信号SO_15とを入力し、仮のビット和情報を表す1対の信号313および314のうちの他方の信号314を出力する第2の排他的論理和回路とにより構成される。
【0023】
次に図1の16ビット加算回路における3段目の回路ステージ13の構成について説明する。図5は3段目の回路ステージ13の内部構成を示す図である。3段目の回路ステージ13は、(N−M+1)=3となる回路ステージであり、N=4であるのでM=2に対応する。3段目の回路ステージ13では(N−M)=2であるので、入力データの2(N−M)=4ビット毎に対応して2M=4個の部分回路P31乃至P34に仮想的に分割されたとする。
【0024】
このように分割された場合に、最下位ビットA_0、B_0から上位の方に数えて2(N−M)=4番目に対応するビットからの入力を含む第1の部分回路である部分回路P31内の上位の2(N−M−1)=2ビットに対応して2個のマルチプレクサ120が設けられ、上位のビットに対応するマルチプレクサは前の回路ステージである2段目の回路ステージ12において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号301および302を入力し、下位のビットに対応するマルチプレクサは前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_2およびC1_2を入力する。また、これらのマルチプレクサは、部分回路P31内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応する回路ステージ12中のビットに設けられたマルチプレクサ120が出力する信号300を選択用の信号として入力し、これに基づいて、上位のビットに対応するマルチプレクサからは真のキャリー信号である信号401を出力し、下位のビットに対応するマルチプレクサからは真のキャリー信号である信号400を出力する。
【0025】
また、最上位ビットA_15、B_15に対応するキャリー信号としての信号315および316を入力に含む第2の部分回路である部分回路P34または部分回路P34から下位の方に数えて2番目の部分回路P33乃至(2M−1)=3番目の部分回路P32に相当する第3の部分回路のいずれかに該当する各部分回路の上位の2(N−Mー1)=2ビットに対応して(2(Nー1)−2(N−M−1))=6個のキャリー選択回路110が設けられ、それぞれのキャリー選択回路に、前の回路ステージにおいて対応するビットに設けられた条件セル回路101、セル選択回路110または変換回路140の何れかから1対の信号が入力される。また、これらのキャリー選択回路のそれぞれは、部分回路内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応する2段目の回路ステージ12中のビットに設けられたセル選択回路110の出力である1対の選択用の信号を入力し、この選択用の信号後の回路ステージにおける仮のキャリー情報または仮のビット和情報を表す1対の信号を選択して出力する。
【0026】
すなわち、部分回路P34内に含まれる2個のキャリー選択回路110のうち上位のビットに対応するキャリー選択回路は、2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号315および316を入力し、部分回路P34内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応するビットに設けられた2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号311および312に基づいて選択し、1対の信号416および417を出力する。部分回路P34内で下位のビットに対応するキャリー選択回路は、2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号314および313を入力し、1対の選択用の信号311および312に基づいて選択し、1対の信号414および415を出力する。同様に、部分回路P33内に含まれる2個のキャリー選択回路110のうち上位のビットに対応するキャリー選択回路は、2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号309および310を入力し、部分回路P33内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応するビットに設けられた2段目の回路ステージ12内のキャリー選択回路からの出力である1対の選択用の信号307および308に基づいて選択し、1対の信号408および409を出力する。部分回路P33内で下位のビットに対応するキャリー選択回路は、1段目の回路ステージ11内の条件セル回路からの出力である1対の信号C0_10およびC1_10を入力し、1対の選択用の信号307および308に基づいて選択し、1対の信号406および407を出力する。また、部分回路P32内に含まれる2個のキャリー選択回路110のうち上位のビットに対応するキャリー選択回路は、2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号305および306を入力し、部分回路P32内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応するビットに設けられた2段目の回路ステージ12内のキャリー選択回路からの出力である1対の選択用の信号303および304に基づいて選択し、1対の信号404および405を出力する。部分回路P32内で下位のビットに対応するキャリー選択回路は、1段目の回路ステージ11内の条件セル回路からの出力である1対の信号C0_6およびC1_6を入力し、1対の選択用の信号303および304に基づいて選択し、1対の信号402および403を出力する。
【0027】
また、第2の部分回路である部分回路P34内の下位の2(N−M−1)=2ビットに対応して2個の変換回路140が設けられ、この2個の変換回路のなかで上位の変換回路は、前の回路ステージである2段目の回路ステージ12で対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号311および312と1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_14とを入力し、仮のビット和情報を表す1対の信号412および413に変換して出力する。2個の変換回路のなかで下位の変換回路は、前の回路ステージである1段目の回路ステージ11で対応するビットに設けられた条件セル回路の出力であって仮のキャリー情報を表す1対の信号C0_12およびC1_12と1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_13とを入力し、仮のビット和情報を表す1対の信号410および411に変換して出力する。
【0028】
次に、図1の16ビット加算回路における4段目の回路ステージ14の構成について説明する。図6は4段目の回路ステージ14の内部構成を示す図である。4段目の回路ステージ14は、(N−M+1)=4となる回路ステージであり、N=4であるのでM=1に対応する。4段目の回路ステージでは(N−M)=3であるので、入力データの2(N−M)=8ビット毎に対応して2M=2個の部分回路P41とP42とに仮想的に分割されたとする。
【0029】
このように分割された場合に、最下位ビットA_0、B_0から上位の方に数えて2(N−M)=8番目に対応するビットからの入力を含む第1の部分回路である部分回路P41内の上位の2(N−M−1)=4ビットに対応して4個のマルチプレクサ120が設けられ、最上位のマルチプレクサは、前の回路ステージである3段目の回路ステージ13において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号404および405を入力し、部分回路P41内の上位より数えて(2(N−M−1)+1)=5番目のビットに対応する3段目の回路ステージ13中のビットに設けられたマルチプレクサ120から出力される信号401を選択用の信号としてこれに基づいて真のキャリー信号を選択し、信号503を出力する。上位から数えて2番目のマルチプレクサは、前の回路ステージである3段目の回路ステージ13において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号402および403を入力し、信号401を選択用の信号としてこれに基づいて真のキャリー信号を選択し、信号502を出力する。上位から3番目のマルチプレクサは、前の回路ステージである2段目の回路ステージ12において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号303および304を入力し、信号401を選択用の信号としてこれに基づいて真のキャリー信号を選択し、信号501を出力する。上位から4番目のマルチプレクサは、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_4およびC1_4を入力し、信号401を選択用の信号としてこれに基づいて真のキャリー信号を選択し、信号500を出力する。
【0030】
また、最上位ビットA_15、B_15に対応するキャリー信号としての信号416および417を入力に含む第2の部分回路である部分回路P42の上位の2(N−Mー1)=4ビットに対応して(2(Nー1)−2(N−M−1))=4個のキャリー選択回路110が設けられ、それぞれのキャリー選択回路が、前の回路ステージにおいて対応するビットに設けられた条件セル回路101、セル選択回路110または変換回路140のいずれかから出力される1対の信号を入力する。また、これらのキャリー選択回路のそれぞれは、部分回路P42内の上位より数えて(2(N−M−1)+1)=5番目のビットに対応する3段目の回路ステージ13中のビットに設けられたセル選択回路110から出力される1対の選択用の信号を入力し、この選択用の信号に基づいて後の回路ステージにおける仮のキャリー情報または仮のビット和情報を表す1対の信号を選択して出力する。
【0031】
すなわち、部分回路P42内に含まれる4個のキャリー選択回路110のうち最上位のキャリー選択回路は、3段目の回路ステージ13内のキャリー選択回路からの出力である1対の信号416および417を入力し、部分回路P42内の上位より数えて(2(N−M−1)+1)=5番目のビットに対応するビットに設けられた3段目の回路ステージ13内のキャリー選択回路からの出力である1対の選択用の信号408および409に基づいて選択して1対の信号518および519を出力する。同様に、上位から数えて2番目のキャリー選択回路は、3段目の回路ステージ13内のキャリー選択回路からの出力である1対の信号412および413を入力し、1対の選択用の信号408および409に基づいて選択して1対の信号516および517を出力する。また、上位から数えて3番目のキャリー選択回路は、3段目の回路ステージ13内のキャリー選択回路からの出力である1対の信号412および413を入力し、1対の選択用の信号408および409に基づいて選択して1対の信号514および515を出力する。また、最下位すなわち上位から数えて4番目のキャリー選択回路は、3段目の回路ステージ13内のキャリー選択回路からの出力である1対の信号410および411を入力し、1対の選択用の信号408および409に基づいて選択して1対の信号512および513を出力する。
【0032】
また、第2の部分回路である部分回路P41内の下位の2(N−M−1)=4ビットに対応して4個の変換回路140が設けられる。この4個の変換回路のなかで最上位の変換回路は、前の回路ステージである3段目の回路ステージ13において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号408および409と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_12とを入力し、仮のビット和情報を表す1対の信号510および511に変換して出力する。同様に、上位から数えて2番目の変換回路は、前の回路ステージである3段目の回路ステージ13において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号406および407と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_11とを入力し、仮のビット和情報を表す1対の信号508および509に変換して出力する。また、上位から数えて3番目の変換回路は、前の回路ステージである2段目の回路ステージ12において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号307および308と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_10とを入力し、仮のビット和情報を表す1対の信号506および507に変換して出力する。最下位すなわち上位から数えて4番目の変換回路は、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_8およびC1_8と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_9とを入力し、仮のビット和情報を表す1対の信号504および505に変換して出力する。
【0033】
図7は、本発明を適用した16ビット加算回路における(N+1)=5段目の回路ステージ15の回路図である。5段目の回路ステージは、2(N−1)=8個のマルチプレクサ120と2(N−1)=8個の排他的論理和回路130とを備えている。
【0034】
入力データの最上位ビットA_15,B_15に対応したビット位置に設けられたマルチプレクサは、N=4段目の回路ステージ14において最上位のキャリー選択回路110から1対の信号518および519を入力し、4段目の回路ステージ14において入力データの最上位ビットから下位の方に数えて(2(N−1)+1)=9番目に対応するマルチプレクサから出力された選択用の信号503に基づいて出力キャリー信号Coutを選択して加算回路の外部へ出力する。
【0035】
入力データの最上位ビットから下位の方に数えて2乃至2(N−1)=8番目のビットに対応するビットに設けられた(2(N−1)−1)=7個のマルチプレクサは、それぞれが、4段目の回路ステージにおいて対応するビットに設けられたキャリー選択回路または変換回路から1対の信号を入力し、4段目の回路ステージにおいて前記入力データの最上位ビットから下位の方に数えて(2(N−1)+1)=9番目に対応するマルチプレクサから出力された選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号を出力する。すなわち、最上位から数えて2番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられたキャリー選択回路から仮のビット和情報を表す1対の信号516および517を入力し、真のキャリーである選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_15を加算回路の外部へ出力する。最上位から数えて3番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられたキャリー選択回路から仮のビット和情報を表す1対の信号514および515を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_14を外部へ出力する。最上位から数えて4番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられたキャリー選択回路から仮のビット和情報を表す1対の信号512および513を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_13を外部へ出力する。最上位から数えて5番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられた変換回路から仮のビット和情報を表す1対の信号510および511を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_12を外部へ出力する。最上位から数えて6番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられた変換回路から仮のビット和情報を表す1対の信号508および509を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_11を外部へ出力する。最上位から数えて7番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられた変換回路から仮のビット和情報を表す1対の信号506および507を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_10を外部へ出力する。最上位から数えて8番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられた変換回路から仮のビット和情報を表す1対の信号504および505を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_9を外部へ出力する。
【0036】
入力データの最上位ビットから下位の方に数えて(2(N−1)+1)乃至2N番目すなわち9乃至16番目のビットに対応するビットに設けられれた2(N−1)=8個の排他的論理和回路130は、それぞれが、前の段の回路ステージにおいて対応するビットに設けられたフルアダーまたはマルチプレクサから出力された信号と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号とを入力し、1ビット上位の真のビット和を表す信号を加算回路の外部へ出力する。すなわち、最上位ビットから数えて9番目の排他的論理和回路は、4段目の回路ステージ14において対応するビットに設けられたマルチプレクサから出力された信号503と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_8とを入力し、1ビット上位の真のビット和を表す信号S_8を外部へ出力する。同様に、最上位ビットから数えて10番目の排他的論理和回路は、4段目の回路ステージ14において対応するビットに設けられたマルチプレクサから出力された信号502と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_7とを入力し、1ビット上位の真のビット和を表す信号S_7を外部へ出力する。また、最上位ビットから数えて11番目の排他的論理和回路は、4段目の回路ステージ14において対応するビットに設けられたマルチプレクサから出力された信号501と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_6とを入力し、1ビット上位の真のビット和を表す信号S_6を外部へ出力する。また、最上位ビットから数えて12番目の排他的論理和回路は、4段目の回路ステージ14において対応するビットに設けられたマルチプレクサから出力された信号500と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_5とを入力し、1ビット上位の真のビット和を表す信号S_5を外部へ出力する。また、最上位ビットから数えて13番目の排他的論理和回路は、3段目の回路ステージ13において対応するビットに設けられたマルチプレクサから出力された信号401と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_4とを入力し、1ビット上位の真のビット和を表す信号S_4を外部へ出力する。また、最上位ビットから数えて14番目の排他的論理和回路は、3段目の回路ステージ13において対応するビットに設けられたマルチプレクサから出力された信号400と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_3とを入力し、1ビット上位の真のビット和を表す信号S_3を外部へ出力する。また、最上位ビットから数えて15番目の排他的論理和回路は、2段目の回路ステージ12において対応するビットに設けられたマルチプレクサから出力された信号300と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_2とを入力し、1ビット上位の真のビット和を表す信号S_2を外部へ出力する。また、最上位ビットから数えて16番目の排他的論理和回路は、1段目の回路ステージ11において対応するビットに設けられたフルアダー100から出力された信号Cout_0と、1段目の回路ステージにおいて1ビット上位の条件セル回路から出力された排他的論理和信号S0_1とを入力し、1ビット上位の真のビット和を表す信号S_1を外部へ出力する。
【0037】
次に本発明の加算回路の動作について図面を参照して説明する。
【0038】
図1の1段目の回路ステージ11を示した図2(a)において、2つの入力データは同一のビット毎に条件セル101に入力される。条件セルは図2(b)に示したように、2つの入力ビットAj、Bjに対してその論理積を下位からの桁上げがないときのキャリー信号C0_jとし、論理和を下位からの桁上げがあるときのキャリー信号C1_jとし、排他的論理和を下位からの桁上げがないと仮定したときのビット和に相当する排他的論理和信号S0_jとして出力する。これらの出力は、図2(a)において下位ビットからの桁上げがないと仮定して生成される仮のキャリー信号C0_1乃至C0_15、下位ビットからの桁上げがあると仮定して生成される仮のキャリー信号C1_1乃至C1_15、排他的論理和信号S0_1乃至S0_15にそれぞれ対応する。最下位ビットのA_0とB_0は加算回路の外部から入力キャリー信号Cinが入力されるので最下位ビットの真のビット和信号S_0と上位ビットへの真のキャリー信号Cout_0を出力する。
【0039】
次に、2段目の回路ステージ12では、各ビットで生成された仮のキャリー情報は部分回路P21乃至P28に対応して2ビット毎に区切られ、部分回路P22乃至P28において1ビット下位のビットからの仮のキャリー情報に基づいて選択された新たな仮のキャリー情報が生成されて出力される。キャリー情報の選択は図4(b)に示したキャリー選択回路110で実行される。2番目の回路ステージ12内のキャリー選択回路において選択用の信号として入力される1ビット下位のビットからの仮のキャリー情報は、さらに1ビット下位からの桁上げがある場合とない場合とを想定して作られているので、2番目の回路ステージ12内のキャリー選択回路のCout1から出力される仮のキャリー信号は2ビット下位のビットからの桁上げがある場合を表し、Cout0から出力される仮のキャリー信号は2ビット下位のビットからの桁上げがない場合を仮定して生成されることになる。すなわち、最下位ビットのキャリー信号Cout_0は真のキャリー信号なので、最下位から数えて2番目のビットのマルチプレクサ(すなわち、部分回路P21内のマルチプレクサ120)では、仮のキャリー情報を表す1対の信号C0_1およびC_1から真のキャリー信号300が選択されて出力される。
【0040】
また、部分回路P28内の変換回路140は1対の信号C1_14およびC0_14とS0_15とを入力し1対の信号314および313を生成して出力するが、この1対の信号314および313は下位からの桁上げがある場合とない場合を表す仮のビット和情報に相当する。
【0041】
次に、図1の3段目の回路ステージ13を示した図5において、入力する仮のキャリー情報および仮のビット和情報は、部分回路P31乃至P34に対応して4ビット毎に区切られる。k(kは2,3または4)番目の部分回路P3k内で、上位2ビットにおいて生成された1対の信号からなる仮のキャリー情報は部分回路P3k内で最上位から数えて3番目のビットからの仮キャリー情報に基づいて選択され、新たな仮のキャリー情報が生成されて出力される。ここで選択用の信号として用いられる仮のキャリー情報は、1つ下位の部分回路P3i−1内での最上位ビットからのキャリーの有無を想定して生成されているので、部分回路P3k内で新たに生成されて出力される仮のキャリー情報および仮のビット和情報は、全て1つ下位の部分回路P3k−1の最上位ビットからのキャリーを仮定して生成されていることになる。最下位の部分回路P31では最上位から数えて3番目のビットに対応する信号300が真のキャリー信号であるので、部分回路P31に含まれる2個のマルチプレクサのそれぞれにおいて信号300を選択用の信号として選択されて出力される信号401および信号400は真のキャリー信号である。
【0042】
また、部分回路P34に含まれる2個の変換回路140の中の上位の変換回路は1対の信号312および311とS0_14とを入力し1対の信号413および412を生成して出力し、下位の変換回路は1対の信号C1_12とC0_12とS0_13とを入力し1対の信号411および410を生成して出力するが、1対の信号413および412、1対の信号411および410は、下位からの桁上げがある場合とない場合を表す仮のビット和情報に相当する。部分回路P34の出力信号415乃至410は上位3ビット分の仮のビット和情報に相当し、1つ下位の部分回路P33の最上位ビットからのキャリーの有無を想定して生成されていることになる。
【0043】
次に、図1の4段目の回路ステージ14を示した図6おいて、入力する仮のキャリー情報および仮のビット和情報は、部分回路P41乃至P42に対応して8ビット毎に区切られる。部分回路P42内で、上位4ビットにおいて生成された1対の信号からなる仮のキャリー情報と仮のビット和情報は部分回路P42内で最上位から数えて5番目のビットからの仮キャリー情報に基づいて選択され、新たな仮のキャリー情報および仮のビット和情報が生成されて出力される。選択用の信号として用いられる部分回路P42内で最上位から数えて5番目のビットからの仮のキャリー情報を表す1対の信号408、409は、1つ下位の部分回路P41内での最上位ビットからのキャリーの有無を想定して生成されているので、部分回路P42内で新たに生成されて出力される仮のキャリー情報および仮のビット和情報は、全て1つ下位の部分回路P41の最上位ビットからのキャリーを仮定して生成されていることになる。下位の部分回路P41内では最上位から数えて5番目のビットに対応する信号401が真のキャリー信号であるので、部分回路P41に含まれる4個のマルチプレクサのそれぞれにおいて信号401を選択用の信号として選択されて出力される信号503、信号502、信号501、信号500も真のキャリー信号である。
【0044】
また、部分回路P42に含まれる4個の変換回路140の中の最上位の変換回路は1対の信号409および408とS0_12とを入力し1対の信号511および510を生成して出力し、上位から2番目の変換回路は1対の信号407および406とS0_11とを入力し1対の信号509および508を生成して出力し、上位から3番目の変換回路は1対の信号407および406とS0_10とを入力し1対の信号507および506を生成して出力し、上位から4番目の変換回路は1対の信号C1_8およびC0_8とS0_9とを入力し1対の信号505および504を生成して出力するが、1対の信号511および510、1対の信号509および508、1対の信号507および506、1対の信号505および504は、下位からの桁上げがある場合とない場合を表す仮のビット和情報に相当する。部分回路P42の出力信号517乃至504は上位7ビット分の仮のビット和情報に相当し、下位の部分回路P41の最上位ビットからのキャリーの有無を想定して生成されていることになる。
【0045】
次に、図1の最終段である5段目の回路ステージ15を示した図7おいて、最上位から8ビットに渡って設けられたマルチプレクサのうち、最上位から数えて2番目乃至8番目までの7個のマルチプレクサは、仮のビット和情報を入力し、最上位から数えて9番目のビットからの真のキャリー信号503に基づいて選択し、真のビット和信号である信号S_15乃至S_9を加算回路の外部へ出力する。最上位ビットのマルチプレクサは、仮のキャリー情報を現す1対の信号519および518のうちの1つを信号503に基づいて選択し2つの入力データの加算により発生する桁上げ信号として出力キャリー信号Coutを加算回路の外部へ出力する。最上位から9乃至16番目のビットにおいては、真のキャリー信号が4段目の回路ステージ14までに決定しているので、図7に示すとおり、8個の排他的論理和回路は、真のキャリー信号と1段目の回路ステージ11で生成されたビット和信号S0_8乃至S0_1との排他的論理和をとることにより真のビット和S_8乃至S_1を生成し、加算回路の外部へ出力する。最下位ビットの真のビット和は1段目の回路ステージ11で生成された信号S_0をそのまま加算回路の外部へ出力する。
【0046】
図9の第1の従来例の加算回路ではキャリー情報とビット和情報とを1段目の回路ステージで生成して伝播させており、図10の第2の従来例の加算器ではキャリー情報を伝搬させて真のキャリー信号を生成し、最終段の回路ステージですべての真のビット和をまとめて生成している。これに対して、本発明の加算回路では、キャリー情報の伝播の途中段階において仮のキャリー情報が仮のビット和情報に変換されて伝播する。このため、本発明の加算回路では、全てのビットに関してキャリー情報とビット和情報と生成して伝播させる第1の従来例の加算回路に比較してマルチプレクサ数およびマルチプレクサの入出力配線数を低減することができるので、消費電力を低減することが可能である。また、本発明の加算回路は、第1の従来例と同じ回路ステージ数(すなわち第2の従来例よりも1段少ない回路ステージ数)で実現できるので、第2の従来例の加算回路に比較して加算を高速に実行することが可能である。
【0047】
第1の従来例の加算回路を構成するに必要なマルチプレクサ数と本発明の加算回路を構成するに必要なマルチプレクサ数とを比較すると、16ビットの加算回路の場合には、第1の従来例が75個のマルチプレクサを必要とするのに対して、本発明の加算回路では71個のマルチプレクサ相当の回路で構成することができ、32ビットの加算回路の場合には、第1の従来例が186個のマルチプレクサを必要とするのに対して、本発明の加算回路では、175個のマルチプレクサ相当の回路で構成することができる。32ビットの場合の詳細な内訳を示すと、本発明ではマルチプレクサは第1の従来例の186個から129個まで減少し、代わりに途中でビット和を生成する為に排他和セルを計46個追加するので、結局マルチプレクサ11個の削減が可能になる。さらに、条件セルの構成においても、第1の従来例では仮のビット和情報として2つのビット和が必要であるのに対し、本発明では1つの排他的論理和信号のみを生成すればよいので、本発明では条件セルを構成するに必要なトランジスタ数が削減でき、この点においても低電力化できる。但し、マルチプレクサ相当の回路個数の計数において、これらの回路がパストランジスタを用いて構成されているとして、キャリー選択回路および変換回路はマルチプレクサ2個に換算し、排他的論理和回路はマルチプレクサ1個に換算して計数した。
【0048】
また、第2の従来例の加算回路を構成するに必要な回路ステージの段数と本発明の加算回路を構成するに必要な回路ステージの段数とを比較すると、16ビットの加算回路を構成する場合には、第2の従来例の加算回路では6段の回路ステージが必要であるのに対して、本発明の加算回路では5段の回路ステージで構成でき、32ビットの加算回路の場合には、第2の従来例の加算回路では7段の回路ステージが必要であるのに対して、本発明の加算回路では6段の回路ステージで構成できる。このため、本発明の加算回路のクリティカルパスの論理段数は、第2の従来例の加算回路よりも1段小さくでき、第1の従来例の加算回路と同等の論理段数で実現できる。ここで論理段数とはキャリー情報またはビット和情報が1段目の回路ステージから最終段の回路ステージまで伝搬する経路に存在する条件セル回路、マルチプレクサ、キャリー選択回路、変換回路および排他的論理和回路の総和のことである。
【0049】
図8は、本発明の加算回路を備える半導体装置を示す図である。例えば1チップに集積されたマイクロプロセッサなどの半導体装置1の内部に搭載される加算回路として本発明の加算回路2を使用することにより、半導体装置1に上に述べた効果を及ぼすことができる。
【0050】
なお、以上において本発明の実施例として16ビットの加算回路を用いて説明したが16ビットに限定されるものでなく、本発明は2Nビットの加算回路において、電力削減と高速化の効果が顕著でないN≦2の場合を除き、N≧3以上の場合には電力削減と高速化の効果が生じる。
【0051】
【発明の効果】
以上のように、本発明の加算回路は、第1の従来例と同じ回路ステージ段数を有するので第1の従来例と同等の速度(すなわち第2の従来例よりも高速)での動作を維持しながら、第1の従来例よりもマルチプレクサ等の単位回路の個数、および配線数の削減により低電力で動作できるという顕著な効果を備えるものである。
【図面の簡単な説明】
【図1】本発明の加算回路の一実施例である16ビット加算回路の回路図である。
【図2】(a)は16ビット加算回路における1段目の回路ステージ11の内部構成を示す図であり、(b)は条件セル回路のゲートレベルの回路図である。
【図3】16ビット加算回路における2段目の回路ステージの内部構成を示す図である。
【図4】(a)はマルチプレクサを示す回路図であり、(b)はキャリー選択回路を示す回路図である。
【図5】16ビット加算回路における3段目の回路ステージの内部構成を示す図である。
【図6】16ビットの加算回路における4段目の回路ステージの内部構成を示す図である。
【図7】16ビット加算回路における5段目の回路ステージの内部構成を示す図である。
【図8】本発明の加算回路を備える半導体装置を示す図である。
【図9】第1の従来例の条件和加算回路を4ビットの加算回路に適用したときの回路図である。
【図10】第2の従来例の条件キャリー加算回路を16ビットの加算回路に適用したときの回路図である。
【符号の説明】
1 半導体装置
2 加算回路
11 1段目の回路ステージ
12 2段目の回路ステージ
13 3段目の回路ステージ
14 4段目の回路ステージ
15 5段目の回路ステージ
100 フルアダー
101 条件セル回路
110 キャリー選択回路
120 マルチプレクサ
130 排他的論理和回路
140 変換回路
【発明の属する技術分野】
本発明は加算回路に関し、特に高速で動作する加算回路およびこれを備えた半導体装置に関する。
【0002】
【従来の技術】
コンピュータの高速化に伴い、より高速な演算回路が必要となり、その重要な部品である加算回路の高速化技術が重要になっている。高速な加算回路を実現する技術は多数知られているが、なかでも条件和加算回路(conditional sum adder)は、最も高速な加算回路の1つとして広く知られている。
【0003】
図9は第1の従来例である4ビットの条件和加算回路の回路図である。図9に示すように、第1の従来例では、2進数(A_3,A_2,A_1,A_0)と(B_3,B_2,B_1,B_0)とを加算する場合に、1段目の回路ステージ21において条件セル回路(conditional cell)111が、下位ビットからの桁上げがある場合のビット和信号(例えばS0_1)および桁上げがない場合のビット和信号(例えばS1_1)を含む仮のビット和情報と、下位ビットからの桁上げがある場合のキャリー信号(例えばC0_1)および桁上げがない場合のキャリー信号(例えばC1_1)を含む仮のキャリー情報との両方を生成して出力する。2段目の回路ステージ22では、下位からのキャリー信号に基づいてマルチプレクサ(MUX)120で2つの仮ビット和及び仮キャリー信号のうちの一方を選択することによって次段に伝搬させ、3段目の回路ステージ23において真のキャリー信号により真のビット和S_0乃至S_3および出力キャリー信号Coutが生成されて加算回路の外部へ出力する。第1の従来例では2Nビットの加算回路を(N+1)段の回路ステージで実現できるため、高速動作が可能である。しかしながら第1の従来例は、多数のマルチプレクサを含むとともに配線本数も多いので消費電力が大きい(例えば、非特許文献1参照。)。
【0004】
消費電力を低減すべく改良された加算回路として第2の従来例の条件キャリー加算回路(conditional carry adder)がある。図10は16ビットの条件キャリー加算回路の回路図である。図10に示すように、第2の従来例では、条件セル回路(conditional cell)100(図2(b)に回路図を示す)は、1段目の回路ステージ31において第1の従来例における条件セル111とは異なり、2つの入力ビットの排他的論理和信号(例えばS0_1)と、下位ビットからの桁上げがある場合のキャリー信号および桁上げがない場合のキャリー信号の1対の信号からなる仮のキャリー情報を生成して出力する。2段目の回路ステージ32から5段目の回路ステージ35では、下位からのキャリー信号に基づいてマルチプレクサ(MUX)120およびキャリー選択回路(carry selector)110により次段の回路ステージに送るキャリー信号を選択して順次伝搬させ、排他的論理和回路130を含む6番目のステージ36で真のビット和S_1乃至S_15が生成されて加算回路の外部へ出力される。第2の従来例は、仮のキャリー情報だけを生成して伝搬すればよく、仮のビット和情報を必要としないためにマルチプレクサの個数(キャリー選択回路はマルチプレクサ2個として計数)を削減でき、したがって動作時の消費電力の低減が可能である。
【0005】
【非特許文献1】
Kuo−Hsing Cheng、外2名、「条件和加算回路の低電力分野への適用ののための改良(The improvement of conditional sum adder for low power applications)」、アイイーイーイー(IEEE)、1998年エイシックコンファレンス予稿集(ASIC Conference 1998. Proceedings)、p.131−134(第1の従来例はp.133のFig.6、第2の従来例は同ページのFig.7)
【0006】
【発明が解決しようとする課題】
しかしながら、第2の従来例では、2Nビットの加算回路を実現するためには(N+2)段の回路ステージが必要であり、同じ16ビットの加算器で比較した場合に、第1の従来例の5段に対して第2の従来例では6段となり、クリティカルパスの論理段数が1段増加するので回路動作の高速性においては不利となる。
【0007】
本発明の目的は、第1の従来例と同等の速度(すなわち第2の従来例よりも高速)での動作を維持しながら、第1の従来例よりもマルチプレクサ等の単位回路の個数、および配線数の削減により低電力で動作できる加算回路を提供することである。
【0008】
【課題を解決するための手段】
本発明の加算回路は、下位ビットからの桁上げがある場合と桁上げがない場合とを表す1対の信号からなる仮のキャリー情報を予め生成し下位からの選択情報に基づき前記仮のキャリー情報から真のキャリー情報を選択することによりキャリー情報の伝搬を高速化した加算回路において、キャリー情報の伝搬経路の所定の部分に前記仮のキャリー情報を下位ビットからの桁上げがある場合と桁上げがない場合とを示す1対の信号からなる仮のビット和情報に変換する変換回路を設けたことを特徴とする。
【0009】
【発明の実施の形態】
以下、本発明の好ましい実施形態について図面を参照しながら詳細に説明する。なお、以下の説明は本発明の代表的な実施の形態を示すものであり、本発明が以下の説明に限定されて解釈されるものではない。
【0010】
図1は、本発明の加算回路の一実施例である16ビットの加算回路の回路図である。図1において加算回路は、16ビットの入力データ(A_15,A_14・・・,A_0)および(B_15,B_14・・・,B_0)と入力キャリー信号Cinとを入力し、その和を表す16ビットのビット和出力信号(S_15,S_14・・・,S_0)と出力キャリー信号Coutとを出力することは図10の第2の従来例と同様であるが、図10の回路ステージ36のS_1からS_8を出力する排他和回路が最終ステージに収められ、S_9からS_15を出力する排他和回路が、1対のキャリー信号からなる仮のキャリー情報を入力し1対のビット和信号からなる仮のビット和情報に変換して出力する変換回路140に置き換えられている点において第2の従来例とは異なっている。
【0011】
次に、各回路ステージの構成について詳細に説明する。
【0012】
本発明を適用した2Nビットの加算回路では、1段目の回路ステージは、最上位ビットから最下位よりもひとつ上のビットのそれぞれに対応して設けられ、2つの入力データの対応するビットを入力して排他的論理和を計算するとともに下位ビットから桁上げがある場合と桁上げがない場合とを表す1対の信号からなる仮のキャリー情報を生成して出力する(2N−1)個の条件セル回路(conditional cell)101と、2つの入力データの最下位ビットと入力キャリー信号とを入力して排他的論理和信号と桁上げ信号を生成する1個のフルアダー(full adder)100とを備えている。条件セル回路101の機能、フルアダー100の機能は、第2の従来例におけるこれらと同様である。
【0013】
図1の16ビットの加算回路の1段目の回路ステージ11の内部構成を図2(a)に示す。2つの入力データは、同一桁のビット毎に最上位ビットから下位ビット方向に設けられた15(=24−1)個の条件セル回路101および最下位ビットに対応して設けられた1個のフルアダーに入力される。条件セル回路101のそれぞれは、入力された2つのビットの排他的論理和を生成すると共に、下位のビットからの入力キャリー信号を0(桁上げがない)と仮定した場合の出力キャリー信号(例えばC0_1)と下位のビットからの入力キャリー信号を1(桁上げがある)と仮定した場合のキャリー信号(例えばC1_1)とを生成し1対の信号からなる仮のキャリー情報として出力する。したがって、排他的論理和信号S0_1乃至S0_15と、下位からの桁上げがないと仮定した場合のキャリー信号C0_1乃至C0_15と、下位からの桁上げがあると仮定した場合のキャリー信号C1_1乃至C1_15とが、1段目の回路ステージから出力される。A_0とB_0が入力される最下位ビットにはフルアダー100が使用され、入力キャリー信号Cinも同時に入力されて真のビット和S_0と真のキャリーCout_0とが出力される。
【0014】
図2(b)は、条件セル回路101の内部回路の一例を示す回路図である。条件セル回路101は、2つの入力ビット(A_i,B_i)を入力し論理積をとって出力する第1のゲート102と、同じく2つの入力ビットを入力し論理和をとり出力する第2のゲート103と、第1のゲート102の出力を入力し反転して出力する第3のゲート104と、第2のゲート103の出力と第3のゲート104の出力とを入力し論理積をとり出力する第4のゲート104とを備え、第1のゲート102の出力を下位ビットからの桁上げがないとした場合のキャリー信号である第1のキャリー信号(C0_i)とし、第2のゲートの出力を下位ビットからの桁上げがあるとした場合のキャリー信号である第2のキャリー信号(C1_i)とし、第4のゲートの出力を下位からの桁上げがないとした場合の2つの入力ビットのビット和に相当する排他的論理和信号(S0_i)として出力する。
【0015】
本発明の2Nビットの加算回路の2段目からN段目までの回路ステージにおいては、1≦M<Nを満たす整数Mにより定まる(N−M+1)段目の回路ステージは次のように構成される。
【0016】
図3は、図1の実施例の16ビット加算回路における2段目の回路ステージ12の内部構成を示す図である。2段目の回路ステージ12は、(N−M+1)=2となる回路ステージであり、N=4であるのでM=3に対応する。2段目の回路ステージ12では(N−M)=1であるので、入力データの2(N−M)=2ビット毎に対応して2M=8個の部分回路P21乃至P28に仮想的に分割されたとする。
【0017】
このように分割された場合に、最下位ビットA_0、B_0から上位の方に数えて2(N−M)=2番目に対応するビットからの入力を含む第1の部分回路である部分回路P21内の上位の2(N−M−1)=1ビットに対応して1個のマルチプレクサ(MUX)120が設けられ、このマルチプレクサは、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_1およびC1_1を入力する。また、このマルチプレクサは部分回路P21内の上位より数えて(2(N−M−1)+1)=2番目のビットに対応する1段目の回路ステージ11中のビットに設けられたフルアダー100から出力されるキャリー信号Cout_0を選択用の信号として入力し、これに基づいて真のキャリー信号である信号300を出力する。
【0018】
また、最上位ビットA_15、B_15に対応するキャリー信号としての信号C0_15およびC1_15を入力に含む第2の部分回路である部分回路P28および部分回路P28から下位の方に数えて2番目の部分回路P27乃至(2M−1)=7番目の部分回路P22に相当する第3の部分回路のいずれかに該当する各部分回路の上位の2(N−Mー1)=1ビットに対応して(2(Nー1)−2(N−M−1))=7個のキャリー選択回路(carry selector)110が設けられ、それぞれのキャリー選択回路に、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路の出力である1対の信号が入力される。また、これらのキャリー選択回路のそれぞれは、部分回路内の上位より数えて(2(N−M−1)+1)=2番目のビットに対応する1段目の回路ステージ11中のビットに設けられた条件セル回路101の出力である1対の選択用の信号を入力し、この選択用の信号に基づいて後の回路ステージにおける仮のキャリー情報または仮のビット和情報を表す1対の信号を選択して出力する。
【0019】
すなわち、部分回路P28内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_15およびC1_15を入力し、部分回路P28内の上位より数えて(2(N−M−1)+1)=2番目のビットに対応する1対の信号C0_14およびC1_14に基づいて選択された1対の信号315および316を出力する。同様に、部分回路P27内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_13およびC1_13を入力し、部分回路P27内の上位から2番目のビットに対応する1対の信号C0_12およびC1_12に基づいて選択された1対の信号311および312を出力する。また、部分回路P26内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_11およびC1_11を入力し、部分回路P26内の上位から2番目のビットに対応する1対の信号C0_10およびC1_10に基づいて選択された1対の信号309および310を出力する。また、部分回路P25内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_9およびC1_9を入力し、部分回路P25内の上位から2番目のビットに対応する1対の信号C0_8およびC1_8に基づいて選択された1対の信号307および308を出力する。また部分回路P24内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_7およびC1_7を入力し、部分回路P24内の上位から2番目のビットに対応する1対の信号C0_6およびC1_6に基づいて選択された1対の信号305および306を出力する。また、部分回路P23内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_5およびC1_5を入力し、部分回路P23内の上位から2番目のビットに対応する1対の信号C0_4およびC1_4に基づいて選択された1対の信号303および304を出力する。また、部分回路P22内に含まれる1個のキャリー選択回路110は、上位ビットに対応する1対の信号C0_3およびC1_3を入力し、部分回路P22内の上位から2番目のビットに対応するビットに設けられた1対の信号C0_2およびC1_2に基づいて選択された1対の信号301および302を出力する。
【0020】
また、第2の部分回路である部分回路P28内の下位の2(N−M−1)=1ビットに対応して1個の変換回路140が設けられる。この変換回路は、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_14およびC1_14と、1段目の回路ステージ11において1ビット上位のビットに対応する条件セル回路から出力される排他的論理和信号S0_15とを入力し、仮のビット和情報を表す1対の信号313および314に変換して出力する。
【0021】
マルチプレクサ120は、図4(a)に示すように、1対の入力信号Cin0およびCin1を入力し、選択用の信号Cin1sに基づいて1対の入力信号Cin0およびCin1のうち1つの信号を選択して出力信号Cout1として出力する。選択用の信号Cin1sが1であればCin1を出力信号Cout1として出力し、Cin1sが0であればCin0をCout1として出力する。
【0022】
キャリー選択回路110は、図10の第2の従来例におけるキャリー選択回路と同様の機能を有している。キャリー選択回路110は図4(b)に示すように2個のマルチプレクサ350および351を含み、第1のマルチプレクサ351は、1対の入力信号Cin0およびCin1を入力し、1対の選択用の信号Cin0sおよびCin1sのうちの一方の選択用の信号Cin0sに基づいて1対の入力信号Cin0およびCin1のうち1つの信号を選択し、選択された信号を1対の出力信号のうちの一方の出力信号Cout0として出力する。第2のマルチプレクサ350は、1対の入力信号Cin0およびCin1を入力し、1対の選択用の信号のうちの他方の選択用の信号Cin1sに基づいて入力信号Cin0およびCin1のうちひとつを選択し、選択された信号を1対の出力信号のうちの他方の出力信号Cout1として出力する。マルチプレクサ350においては、Cin1sが1のときにCin1が出力として選択され、Cin1sが0のときにCin0が選択される。マルチプレクサ351においては、Cin0sが1の時Cin1が選択され、Cin0sが0の時Cin0が選択される。図3の部分回路P28に含まれるキャリー選択回路を例にして説明すると、C0_15が図4(b)のCin0に入力され、C1_15がCin1に入力され、C0_14がCin0sに入力され、C1_14がCin1sに入力され、信号315がCout0から出力され、信号316がCout1から出力される。 変換回路140について、図3の部分回路P28に含まれる変換回路を例として説明する。変換回路140は、仮のキャリー情報を表す1対の信号C0_14およびC1_14のうちの一方の信号C0_14と、1段目のステージ11において1ビット上位のビットの条件セル回路から出力される排他的論理和信号SO_15とを入力し、仮のビット和情報を表す1対の信号313および314の一方のうちの信号313を出力する第1の排他的論理和回路と、1対の信号C0_14およびC1_14の他方の信号C1_14と排他的論理和信号SO_15とを入力し、仮のビット和情報を表す1対の信号313および314のうちの他方の信号314を出力する第2の排他的論理和回路とにより構成される。
【0023】
次に図1の16ビット加算回路における3段目の回路ステージ13の構成について説明する。図5は3段目の回路ステージ13の内部構成を示す図である。3段目の回路ステージ13は、(N−M+1)=3となる回路ステージであり、N=4であるのでM=2に対応する。3段目の回路ステージ13では(N−M)=2であるので、入力データの2(N−M)=4ビット毎に対応して2M=4個の部分回路P31乃至P34に仮想的に分割されたとする。
【0024】
このように分割された場合に、最下位ビットA_0、B_0から上位の方に数えて2(N−M)=4番目に対応するビットからの入力を含む第1の部分回路である部分回路P31内の上位の2(N−M−1)=2ビットに対応して2個のマルチプレクサ120が設けられ、上位のビットに対応するマルチプレクサは前の回路ステージである2段目の回路ステージ12において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号301および302を入力し、下位のビットに対応するマルチプレクサは前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_2およびC1_2を入力する。また、これらのマルチプレクサは、部分回路P31内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応する回路ステージ12中のビットに設けられたマルチプレクサ120が出力する信号300を選択用の信号として入力し、これに基づいて、上位のビットに対応するマルチプレクサからは真のキャリー信号である信号401を出力し、下位のビットに対応するマルチプレクサからは真のキャリー信号である信号400を出力する。
【0025】
また、最上位ビットA_15、B_15に対応するキャリー信号としての信号315および316を入力に含む第2の部分回路である部分回路P34または部分回路P34から下位の方に数えて2番目の部分回路P33乃至(2M−1)=3番目の部分回路P32に相当する第3の部分回路のいずれかに該当する各部分回路の上位の2(N−Mー1)=2ビットに対応して(2(Nー1)−2(N−M−1))=6個のキャリー選択回路110が設けられ、それぞれのキャリー選択回路に、前の回路ステージにおいて対応するビットに設けられた条件セル回路101、セル選択回路110または変換回路140の何れかから1対の信号が入力される。また、これらのキャリー選択回路のそれぞれは、部分回路内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応する2段目の回路ステージ12中のビットに設けられたセル選択回路110の出力である1対の選択用の信号を入力し、この選択用の信号後の回路ステージにおける仮のキャリー情報または仮のビット和情報を表す1対の信号を選択して出力する。
【0026】
すなわち、部分回路P34内に含まれる2個のキャリー選択回路110のうち上位のビットに対応するキャリー選択回路は、2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号315および316を入力し、部分回路P34内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応するビットに設けられた2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号311および312に基づいて選択し、1対の信号416および417を出力する。部分回路P34内で下位のビットに対応するキャリー選択回路は、2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号314および313を入力し、1対の選択用の信号311および312に基づいて選択し、1対の信号414および415を出力する。同様に、部分回路P33内に含まれる2個のキャリー選択回路110のうち上位のビットに対応するキャリー選択回路は、2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号309および310を入力し、部分回路P33内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応するビットに設けられた2段目の回路ステージ12内のキャリー選択回路からの出力である1対の選択用の信号307および308に基づいて選択し、1対の信号408および409を出力する。部分回路P33内で下位のビットに対応するキャリー選択回路は、1段目の回路ステージ11内の条件セル回路からの出力である1対の信号C0_10およびC1_10を入力し、1対の選択用の信号307および308に基づいて選択し、1対の信号406および407を出力する。また、部分回路P32内に含まれる2個のキャリー選択回路110のうち上位のビットに対応するキャリー選択回路は、2段目の回路ステージ12内のキャリー選択回路からの出力である1対の信号305および306を入力し、部分回路P32内の上位より数えて(2(N−M−1)+1)=3番目のビットに対応するビットに設けられた2段目の回路ステージ12内のキャリー選択回路からの出力である1対の選択用の信号303および304に基づいて選択し、1対の信号404および405を出力する。部分回路P32内で下位のビットに対応するキャリー選択回路は、1段目の回路ステージ11内の条件セル回路からの出力である1対の信号C0_6およびC1_6を入力し、1対の選択用の信号303および304に基づいて選択し、1対の信号402および403を出力する。
【0027】
また、第2の部分回路である部分回路P34内の下位の2(N−M−1)=2ビットに対応して2個の変換回路140が設けられ、この2個の変換回路のなかで上位の変換回路は、前の回路ステージである2段目の回路ステージ12で対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号311および312と1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_14とを入力し、仮のビット和情報を表す1対の信号412および413に変換して出力する。2個の変換回路のなかで下位の変換回路は、前の回路ステージである1段目の回路ステージ11で対応するビットに設けられた条件セル回路の出力であって仮のキャリー情報を表す1対の信号C0_12およびC1_12と1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_13とを入力し、仮のビット和情報を表す1対の信号410および411に変換して出力する。
【0028】
次に、図1の16ビット加算回路における4段目の回路ステージ14の構成について説明する。図6は4段目の回路ステージ14の内部構成を示す図である。4段目の回路ステージ14は、(N−M+1)=4となる回路ステージであり、N=4であるのでM=1に対応する。4段目の回路ステージでは(N−M)=3であるので、入力データの2(N−M)=8ビット毎に対応して2M=2個の部分回路P41とP42とに仮想的に分割されたとする。
【0029】
このように分割された場合に、最下位ビットA_0、B_0から上位の方に数えて2(N−M)=8番目に対応するビットからの入力を含む第1の部分回路である部分回路P41内の上位の2(N−M−1)=4ビットに対応して4個のマルチプレクサ120が設けられ、最上位のマルチプレクサは、前の回路ステージである3段目の回路ステージ13において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号404および405を入力し、部分回路P41内の上位より数えて(2(N−M−1)+1)=5番目のビットに対応する3段目の回路ステージ13中のビットに設けられたマルチプレクサ120から出力される信号401を選択用の信号としてこれに基づいて真のキャリー信号を選択し、信号503を出力する。上位から数えて2番目のマルチプレクサは、前の回路ステージである3段目の回路ステージ13において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号402および403を入力し、信号401を選択用の信号としてこれに基づいて真のキャリー信号を選択し、信号502を出力する。上位から3番目のマルチプレクサは、前の回路ステージである2段目の回路ステージ12において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号303および304を入力し、信号401を選択用の信号としてこれに基づいて真のキャリー信号を選択し、信号501を出力する。上位から4番目のマルチプレクサは、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_4およびC1_4を入力し、信号401を選択用の信号としてこれに基づいて真のキャリー信号を選択し、信号500を出力する。
【0030】
また、最上位ビットA_15、B_15に対応するキャリー信号としての信号416および417を入力に含む第2の部分回路である部分回路P42の上位の2(N−Mー1)=4ビットに対応して(2(Nー1)−2(N−M−1))=4個のキャリー選択回路110が設けられ、それぞれのキャリー選択回路が、前の回路ステージにおいて対応するビットに設けられた条件セル回路101、セル選択回路110または変換回路140のいずれかから出力される1対の信号を入力する。また、これらのキャリー選択回路のそれぞれは、部分回路P42内の上位より数えて(2(N−M−1)+1)=5番目のビットに対応する3段目の回路ステージ13中のビットに設けられたセル選択回路110から出力される1対の選択用の信号を入力し、この選択用の信号に基づいて後の回路ステージにおける仮のキャリー情報または仮のビット和情報を表す1対の信号を選択して出力する。
【0031】
すなわち、部分回路P42内に含まれる4個のキャリー選択回路110のうち最上位のキャリー選択回路は、3段目の回路ステージ13内のキャリー選択回路からの出力である1対の信号416および417を入力し、部分回路P42内の上位より数えて(2(N−M−1)+1)=5番目のビットに対応するビットに設けられた3段目の回路ステージ13内のキャリー選択回路からの出力である1対の選択用の信号408および409に基づいて選択して1対の信号518および519を出力する。同様に、上位から数えて2番目のキャリー選択回路は、3段目の回路ステージ13内のキャリー選択回路からの出力である1対の信号412および413を入力し、1対の選択用の信号408および409に基づいて選択して1対の信号516および517を出力する。また、上位から数えて3番目のキャリー選択回路は、3段目の回路ステージ13内のキャリー選択回路からの出力である1対の信号412および413を入力し、1対の選択用の信号408および409に基づいて選択して1対の信号514および515を出力する。また、最下位すなわち上位から数えて4番目のキャリー選択回路は、3段目の回路ステージ13内のキャリー選択回路からの出力である1対の信号410および411を入力し、1対の選択用の信号408および409に基づいて選択して1対の信号512および513を出力する。
【0032】
また、第2の部分回路である部分回路P41内の下位の2(N−M−1)=4ビットに対応して4個の変換回路140が設けられる。この4個の変換回路のなかで最上位の変換回路は、前の回路ステージである3段目の回路ステージ13において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号408および409と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_12とを入力し、仮のビット和情報を表す1対の信号510および511に変換して出力する。同様に、上位から数えて2番目の変換回路は、前の回路ステージである3段目の回路ステージ13において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号406および407と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_11とを入力し、仮のビット和情報を表す1対の信号508および509に変換して出力する。また、上位から数えて3番目の変換回路は、前の回路ステージである2段目の回路ステージ12において対応するビットに設けられたキャリー選択回路110の出力であって仮のキャリー情報を表す1対の信号307および308と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_10とを入力し、仮のビット和情報を表す1対の信号506および507に変換して出力する。最下位すなわち上位から数えて4番目の変換回路は、前の回路ステージである1段目の回路ステージ11において対応するビットに設けられた条件セル回路101の出力であって仮のキャリー情報を表す1対の信号C0_8およびC1_8と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力される排他的論理和信号S0_9とを入力し、仮のビット和情報を表す1対の信号504および505に変換して出力する。
【0033】
図7は、本発明を適用した16ビット加算回路における(N+1)=5段目の回路ステージ15の回路図である。5段目の回路ステージは、2(N−1)=8個のマルチプレクサ120と2(N−1)=8個の排他的論理和回路130とを備えている。
【0034】
入力データの最上位ビットA_15,B_15に対応したビット位置に設けられたマルチプレクサは、N=4段目の回路ステージ14において最上位のキャリー選択回路110から1対の信号518および519を入力し、4段目の回路ステージ14において入力データの最上位ビットから下位の方に数えて(2(N−1)+1)=9番目に対応するマルチプレクサから出力された選択用の信号503に基づいて出力キャリー信号Coutを選択して加算回路の外部へ出力する。
【0035】
入力データの最上位ビットから下位の方に数えて2乃至2(N−1)=8番目のビットに対応するビットに設けられた(2(N−1)−1)=7個のマルチプレクサは、それぞれが、4段目の回路ステージにおいて対応するビットに設けられたキャリー選択回路または変換回路から1対の信号を入力し、4段目の回路ステージにおいて前記入力データの最上位ビットから下位の方に数えて(2(N−1)+1)=9番目に対応するマルチプレクサから出力された選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号を出力する。すなわち、最上位から数えて2番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられたキャリー選択回路から仮のビット和情報を表す1対の信号516および517を入力し、真のキャリーである選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_15を加算回路の外部へ出力する。最上位から数えて3番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられたキャリー選択回路から仮のビット和情報を表す1対の信号514および515を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_14を外部へ出力する。最上位から数えて4番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられたキャリー選択回路から仮のビット和情報を表す1対の信号512および513を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_13を外部へ出力する。最上位から数えて5番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられた変換回路から仮のビット和情報を表す1対の信号510および511を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_12を外部へ出力する。最上位から数えて6番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられた変換回路から仮のビット和情報を表す1対の信号508および509を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_11を外部へ出力する。最上位から数えて7番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられた変換回路から仮のビット和情報を表す1対の信号506および507を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_10を外部へ出力する。最上位から数えて8番目のマルチプレクサは、4段目の回路ステージの対応するビットに設けられた変換回路から仮のビット和情報を表す1対の信号504および505を入力し、選択用の信号503に基づいて選択して1ビット上位の真のビット和を表す信号S_9を外部へ出力する。
【0036】
入力データの最上位ビットから下位の方に数えて(2(N−1)+1)乃至2N番目すなわち9乃至16番目のビットに対応するビットに設けられれた2(N−1)=8個の排他的論理和回路130は、それぞれが、前の段の回路ステージにおいて対応するビットに設けられたフルアダーまたはマルチプレクサから出力された信号と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号とを入力し、1ビット上位の真のビット和を表す信号を加算回路の外部へ出力する。すなわち、最上位ビットから数えて9番目の排他的論理和回路は、4段目の回路ステージ14において対応するビットに設けられたマルチプレクサから出力された信号503と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_8とを入力し、1ビット上位の真のビット和を表す信号S_8を外部へ出力する。同様に、最上位ビットから数えて10番目の排他的論理和回路は、4段目の回路ステージ14において対応するビットに設けられたマルチプレクサから出力された信号502と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_7とを入力し、1ビット上位の真のビット和を表す信号S_7を外部へ出力する。また、最上位ビットから数えて11番目の排他的論理和回路は、4段目の回路ステージ14において対応するビットに設けられたマルチプレクサから出力された信号501と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_6とを入力し、1ビット上位の真のビット和を表す信号S_6を外部へ出力する。また、最上位ビットから数えて12番目の排他的論理和回路は、4段目の回路ステージ14において対応するビットに設けられたマルチプレクサから出力された信号500と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_5とを入力し、1ビット上位の真のビット和を表す信号S_5を外部へ出力する。また、最上位ビットから数えて13番目の排他的論理和回路は、3段目の回路ステージ13において対応するビットに設けられたマルチプレクサから出力された信号401と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_4とを入力し、1ビット上位の真のビット和を表す信号S_4を外部へ出力する。また、最上位ビットから数えて14番目の排他的論理和回路は、3段目の回路ステージ13において対応するビットに設けられたマルチプレクサから出力された信号400と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_3とを入力し、1ビット上位の真のビット和を表す信号S_3を外部へ出力する。また、最上位ビットから数えて15番目の排他的論理和回路は、2段目の回路ステージ12において対応するビットに設けられたマルチプレクサから出力された信号300と、1段目の回路ステージ11において1ビット上位の条件セル回路から出力された排他的論理和信号S0_2とを入力し、1ビット上位の真のビット和を表す信号S_2を外部へ出力する。また、最上位ビットから数えて16番目の排他的論理和回路は、1段目の回路ステージ11において対応するビットに設けられたフルアダー100から出力された信号Cout_0と、1段目の回路ステージにおいて1ビット上位の条件セル回路から出力された排他的論理和信号S0_1とを入力し、1ビット上位の真のビット和を表す信号S_1を外部へ出力する。
【0037】
次に本発明の加算回路の動作について図面を参照して説明する。
【0038】
図1の1段目の回路ステージ11を示した図2(a)において、2つの入力データは同一のビット毎に条件セル101に入力される。条件セルは図2(b)に示したように、2つの入力ビットAj、Bjに対してその論理積を下位からの桁上げがないときのキャリー信号C0_jとし、論理和を下位からの桁上げがあるときのキャリー信号C1_jとし、排他的論理和を下位からの桁上げがないと仮定したときのビット和に相当する排他的論理和信号S0_jとして出力する。これらの出力は、図2(a)において下位ビットからの桁上げがないと仮定して生成される仮のキャリー信号C0_1乃至C0_15、下位ビットからの桁上げがあると仮定して生成される仮のキャリー信号C1_1乃至C1_15、排他的論理和信号S0_1乃至S0_15にそれぞれ対応する。最下位ビットのA_0とB_0は加算回路の外部から入力キャリー信号Cinが入力されるので最下位ビットの真のビット和信号S_0と上位ビットへの真のキャリー信号Cout_0を出力する。
【0039】
次に、2段目の回路ステージ12では、各ビットで生成された仮のキャリー情報は部分回路P21乃至P28に対応して2ビット毎に区切られ、部分回路P22乃至P28において1ビット下位のビットからの仮のキャリー情報に基づいて選択された新たな仮のキャリー情報が生成されて出力される。キャリー情報の選択は図4(b)に示したキャリー選択回路110で実行される。2番目の回路ステージ12内のキャリー選択回路において選択用の信号として入力される1ビット下位のビットからの仮のキャリー情報は、さらに1ビット下位からの桁上げがある場合とない場合とを想定して作られているので、2番目の回路ステージ12内のキャリー選択回路のCout1から出力される仮のキャリー信号は2ビット下位のビットからの桁上げがある場合を表し、Cout0から出力される仮のキャリー信号は2ビット下位のビットからの桁上げがない場合を仮定して生成されることになる。すなわち、最下位ビットのキャリー信号Cout_0は真のキャリー信号なので、最下位から数えて2番目のビットのマルチプレクサ(すなわち、部分回路P21内のマルチプレクサ120)では、仮のキャリー情報を表す1対の信号C0_1およびC_1から真のキャリー信号300が選択されて出力される。
【0040】
また、部分回路P28内の変換回路140は1対の信号C1_14およびC0_14とS0_15とを入力し1対の信号314および313を生成して出力するが、この1対の信号314および313は下位からの桁上げがある場合とない場合を表す仮のビット和情報に相当する。
【0041】
次に、図1の3段目の回路ステージ13を示した図5において、入力する仮のキャリー情報および仮のビット和情報は、部分回路P31乃至P34に対応して4ビット毎に区切られる。k(kは2,3または4)番目の部分回路P3k内で、上位2ビットにおいて生成された1対の信号からなる仮のキャリー情報は部分回路P3k内で最上位から数えて3番目のビットからの仮キャリー情報に基づいて選択され、新たな仮のキャリー情報が生成されて出力される。ここで選択用の信号として用いられる仮のキャリー情報は、1つ下位の部分回路P3i−1内での最上位ビットからのキャリーの有無を想定して生成されているので、部分回路P3k内で新たに生成されて出力される仮のキャリー情報および仮のビット和情報は、全て1つ下位の部分回路P3k−1の最上位ビットからのキャリーを仮定して生成されていることになる。最下位の部分回路P31では最上位から数えて3番目のビットに対応する信号300が真のキャリー信号であるので、部分回路P31に含まれる2個のマルチプレクサのそれぞれにおいて信号300を選択用の信号として選択されて出力される信号401および信号400は真のキャリー信号である。
【0042】
また、部分回路P34に含まれる2個の変換回路140の中の上位の変換回路は1対の信号312および311とS0_14とを入力し1対の信号413および412を生成して出力し、下位の変換回路は1対の信号C1_12とC0_12とS0_13とを入力し1対の信号411および410を生成して出力するが、1対の信号413および412、1対の信号411および410は、下位からの桁上げがある場合とない場合を表す仮のビット和情報に相当する。部分回路P34の出力信号415乃至410は上位3ビット分の仮のビット和情報に相当し、1つ下位の部分回路P33の最上位ビットからのキャリーの有無を想定して生成されていることになる。
【0043】
次に、図1の4段目の回路ステージ14を示した図6おいて、入力する仮のキャリー情報および仮のビット和情報は、部分回路P41乃至P42に対応して8ビット毎に区切られる。部分回路P42内で、上位4ビットにおいて生成された1対の信号からなる仮のキャリー情報と仮のビット和情報は部分回路P42内で最上位から数えて5番目のビットからの仮キャリー情報に基づいて選択され、新たな仮のキャリー情報および仮のビット和情報が生成されて出力される。選択用の信号として用いられる部分回路P42内で最上位から数えて5番目のビットからの仮のキャリー情報を表す1対の信号408、409は、1つ下位の部分回路P41内での最上位ビットからのキャリーの有無を想定して生成されているので、部分回路P42内で新たに生成されて出力される仮のキャリー情報および仮のビット和情報は、全て1つ下位の部分回路P41の最上位ビットからのキャリーを仮定して生成されていることになる。下位の部分回路P41内では最上位から数えて5番目のビットに対応する信号401が真のキャリー信号であるので、部分回路P41に含まれる4個のマルチプレクサのそれぞれにおいて信号401を選択用の信号として選択されて出力される信号503、信号502、信号501、信号500も真のキャリー信号である。
【0044】
また、部分回路P42に含まれる4個の変換回路140の中の最上位の変換回路は1対の信号409および408とS0_12とを入力し1対の信号511および510を生成して出力し、上位から2番目の変換回路は1対の信号407および406とS0_11とを入力し1対の信号509および508を生成して出力し、上位から3番目の変換回路は1対の信号407および406とS0_10とを入力し1対の信号507および506を生成して出力し、上位から4番目の変換回路は1対の信号C1_8およびC0_8とS0_9とを入力し1対の信号505および504を生成して出力するが、1対の信号511および510、1対の信号509および508、1対の信号507および506、1対の信号505および504は、下位からの桁上げがある場合とない場合を表す仮のビット和情報に相当する。部分回路P42の出力信号517乃至504は上位7ビット分の仮のビット和情報に相当し、下位の部分回路P41の最上位ビットからのキャリーの有無を想定して生成されていることになる。
【0045】
次に、図1の最終段である5段目の回路ステージ15を示した図7おいて、最上位から8ビットに渡って設けられたマルチプレクサのうち、最上位から数えて2番目乃至8番目までの7個のマルチプレクサは、仮のビット和情報を入力し、最上位から数えて9番目のビットからの真のキャリー信号503に基づいて選択し、真のビット和信号である信号S_15乃至S_9を加算回路の外部へ出力する。最上位ビットのマルチプレクサは、仮のキャリー情報を現す1対の信号519および518のうちの1つを信号503に基づいて選択し2つの入力データの加算により発生する桁上げ信号として出力キャリー信号Coutを加算回路の外部へ出力する。最上位から9乃至16番目のビットにおいては、真のキャリー信号が4段目の回路ステージ14までに決定しているので、図7に示すとおり、8個の排他的論理和回路は、真のキャリー信号と1段目の回路ステージ11で生成されたビット和信号S0_8乃至S0_1との排他的論理和をとることにより真のビット和S_8乃至S_1を生成し、加算回路の外部へ出力する。最下位ビットの真のビット和は1段目の回路ステージ11で生成された信号S_0をそのまま加算回路の外部へ出力する。
【0046】
図9の第1の従来例の加算回路ではキャリー情報とビット和情報とを1段目の回路ステージで生成して伝播させており、図10の第2の従来例の加算器ではキャリー情報を伝搬させて真のキャリー信号を生成し、最終段の回路ステージですべての真のビット和をまとめて生成している。これに対して、本発明の加算回路では、キャリー情報の伝播の途中段階において仮のキャリー情報が仮のビット和情報に変換されて伝播する。このため、本発明の加算回路では、全てのビットに関してキャリー情報とビット和情報と生成して伝播させる第1の従来例の加算回路に比較してマルチプレクサ数およびマルチプレクサの入出力配線数を低減することができるので、消費電力を低減することが可能である。また、本発明の加算回路は、第1の従来例と同じ回路ステージ数(すなわち第2の従来例よりも1段少ない回路ステージ数)で実現できるので、第2の従来例の加算回路に比較して加算を高速に実行することが可能である。
【0047】
第1の従来例の加算回路を構成するに必要なマルチプレクサ数と本発明の加算回路を構成するに必要なマルチプレクサ数とを比較すると、16ビットの加算回路の場合には、第1の従来例が75個のマルチプレクサを必要とするのに対して、本発明の加算回路では71個のマルチプレクサ相当の回路で構成することができ、32ビットの加算回路の場合には、第1の従来例が186個のマルチプレクサを必要とするのに対して、本発明の加算回路では、175個のマルチプレクサ相当の回路で構成することができる。32ビットの場合の詳細な内訳を示すと、本発明ではマルチプレクサは第1の従来例の186個から129個まで減少し、代わりに途中でビット和を生成する為に排他和セルを計46個追加するので、結局マルチプレクサ11個の削減が可能になる。さらに、条件セルの構成においても、第1の従来例では仮のビット和情報として2つのビット和が必要であるのに対し、本発明では1つの排他的論理和信号のみを生成すればよいので、本発明では条件セルを構成するに必要なトランジスタ数が削減でき、この点においても低電力化できる。但し、マルチプレクサ相当の回路個数の計数において、これらの回路がパストランジスタを用いて構成されているとして、キャリー選択回路および変換回路はマルチプレクサ2個に換算し、排他的論理和回路はマルチプレクサ1個に換算して計数した。
【0048】
また、第2の従来例の加算回路を構成するに必要な回路ステージの段数と本発明の加算回路を構成するに必要な回路ステージの段数とを比較すると、16ビットの加算回路を構成する場合には、第2の従来例の加算回路では6段の回路ステージが必要であるのに対して、本発明の加算回路では5段の回路ステージで構成でき、32ビットの加算回路の場合には、第2の従来例の加算回路では7段の回路ステージが必要であるのに対して、本発明の加算回路では6段の回路ステージで構成できる。このため、本発明の加算回路のクリティカルパスの論理段数は、第2の従来例の加算回路よりも1段小さくでき、第1の従来例の加算回路と同等の論理段数で実現できる。ここで論理段数とはキャリー情報またはビット和情報が1段目の回路ステージから最終段の回路ステージまで伝搬する経路に存在する条件セル回路、マルチプレクサ、キャリー選択回路、変換回路および排他的論理和回路の総和のことである。
【0049】
図8は、本発明の加算回路を備える半導体装置を示す図である。例えば1チップに集積されたマイクロプロセッサなどの半導体装置1の内部に搭載される加算回路として本発明の加算回路2を使用することにより、半導体装置1に上に述べた効果を及ぼすことができる。
【0050】
なお、以上において本発明の実施例として16ビットの加算回路を用いて説明したが16ビットに限定されるものでなく、本発明は2Nビットの加算回路において、電力削減と高速化の効果が顕著でないN≦2の場合を除き、N≧3以上の場合には電力削減と高速化の効果が生じる。
【0051】
【発明の効果】
以上のように、本発明の加算回路は、第1の従来例と同じ回路ステージ段数を有するので第1の従来例と同等の速度(すなわち第2の従来例よりも高速)での動作を維持しながら、第1の従来例よりもマルチプレクサ等の単位回路の個数、および配線数の削減により低電力で動作できるという顕著な効果を備えるものである。
【図面の簡単な説明】
【図1】本発明の加算回路の一実施例である16ビット加算回路の回路図である。
【図2】(a)は16ビット加算回路における1段目の回路ステージ11の内部構成を示す図であり、(b)は条件セル回路のゲートレベルの回路図である。
【図3】16ビット加算回路における2段目の回路ステージの内部構成を示す図である。
【図4】(a)はマルチプレクサを示す回路図であり、(b)はキャリー選択回路を示す回路図である。
【図5】16ビット加算回路における3段目の回路ステージの内部構成を示す図である。
【図6】16ビットの加算回路における4段目の回路ステージの内部構成を示す図である。
【図7】16ビット加算回路における5段目の回路ステージの内部構成を示す図である。
【図8】本発明の加算回路を備える半導体装置を示す図である。
【図9】第1の従来例の条件和加算回路を4ビットの加算回路に適用したときの回路図である。
【図10】第2の従来例の条件キャリー加算回路を16ビットの加算回路に適用したときの回路図である。
【符号の説明】
1 半導体装置
2 加算回路
11 1段目の回路ステージ
12 2段目の回路ステージ
13 3段目の回路ステージ
14 4段目の回路ステージ
15 5段目の回路ステージ
100 フルアダー
101 条件セル回路
110 キャリー選択回路
120 マルチプレクサ
130 排他的論理和回路
140 変換回路
Claims (10)
- 下位ビットからの桁上げがある場合と桁上げがない場合とを表す1対の信号からなる仮のキャリー情報を予め生成し下位からの選択情報に基づき前記仮のキャリー情報から真のキャリー情報を選択することによりキャリー情報の伝搬を高速化した加算回路において、
キャリー情報の伝搬経路の所定の部分に前記仮のキャリー情報を下位ビットからの桁上げがある場合と桁上げがない場合とを示す1対の信号からなる仮のビット和情報に変換する変換回路を設けたことを特徴とする加算回路。 - 前記キャリー情報の伝搬経路は、
2N(Nは3以上の整数)ビットの加算回路において最大で(N+1)段の回路ステージを有し、
1段目の回路ステージでは、外部から2つの入力データをビット毎に対応して入力するとともに入力キャリー信号を入力し、最下位ビットのビット和を生成して外部へ出力するとともに、最下位ビットを除く各ビットに対応して仮のキャリー情報を生成して後段の回路ステージへ出力し、
2段目からN段目の回路ステージでは、前記仮のキャリー情報の中の最上位を除いた上位(2(N−1)−1)ビット分に対応する仮のキャリー情報が伝播の途中で前記変換回路により前記仮のビット和情報に変換され、最下位を除いた下位(2(N−1)−1)ビット分に対応する仮のキャリー情報から真のキャリー情報を生成し、
(N+1)段目の回路ステージでは、前記2つの入力データの和データのうち前記最下位のビット和を除くデータと出力キャリー信号とを外部へ出力することを特徴とする請求項1に記載の加算回路。 - 前記変換回路は、
入力データの最上位ビットから最下位ビットの順序で配置したときに、1≦M<Nを満たす整数Mにより定まる(N−M+1)段目のステージにおいて入力データの最上位ビットから数えて(2(N−M−1)+1)番目のビットから2(N−M)番目のビットまでに対応してそれぞれ配置されることを特徴とする請求項2に記載の加算回路。 - 前記1段目の回路ステージは、
2Nビットのうちの最上位ビットから最下位よりもひとつ上のビットまでのそれぞれに対応して設けられ前記2つの入力データの対応するビットを入力して排他的論理和を計算するとともに下位ビットから桁上げがある場合と桁上げがない場合の1対の信号からなる仮のキャリー情報を生成して出力する(2N−1)個の条件セル回路と、
前記2つの入力データの最下位ビットと入力キャリー信号とを入力して排他的論理和信号と桁上げ信号を生成する1個のフルアダーと、を備えることを特徴とする請求項2に記載の加算回路。 - 前記回路ステージのうち1≦M<Nを満たす整数Mにより定まる(N−M+1)段目の回路ステージは、
該回路ステージを前記入力データの2(N−M)ビット毎に対応して2M個の部分回路に仮想的に分割したときに、
最下位ビットから上位の方に数えて2(N−M)番目に対応するビットからの入力を含む第1の部分回路の上位の2(N−M−1)ビットに対応して設けられ、それぞれが、前の回路ステージにおいて対応するビットに設けられた条件セル回路またはキャリー選択回路の出力である1対の信号を入力し、前記第1の部分回路内の上位より数えて(2(N−M−1)+1)番目のビットに対応する1段前段の回路ステージ中のビットに設けられたフルアダーまたはマルチプレクサから出力される信号を入力し該信号に基づいて真のキャリー信号を選択して出力する2(N−M−1)個のマルチプレクサと、
最上位ビットに対応するキャリー信号を入力に含む第2の部分回路または前記第2の部分回路から下位の方に数えて2番目乃至(2M−1)番目に相当する第3の部分回路のいずれかに該当する部分回路の上位の2(N−Mー1)ビットに対応して設けられ、それぞれが、前の回路ステージにおいて対応するビットに設けられた条件セル回路、キャリー選択回路または変換回路の出力である1対の信号を入力し、部分回路内の上位より数えて(2(N−M−1)+1)番目のビットに対応する1段前段の回路ステージ中のビットに設けられた条件セル回路またはキャリー選択回路の出力である1対の選択用の信号を入力し該選択用の信号に基づいて後の回路ステージにおける仮のキャリー情報または仮のビット和情報を表す1対の信号を選択して出力する(2(Nー1)−2(N−M−1))個のキャリー選択回路と、
前記第2の部分回路の下位の2(N−M−1)ビットに対応して設けられ、それぞれが、前の回路ステージにおいて対応するビットに設けられた条件セル回路またはキャリー選択回路の出力であって仮のキャリー情報を表す1対の信号と、前記1段目の回路ステージにおいて1ビット上位の条件セル回路から出力される排他的論理和信号とを入力し、仮のビット和情報を表す1対の信号に変換して出力する2(N−M−1)個の変換回路と、を含むことを特徴とする請求項4に記載の加算回路。 - 前記(N+1)段目の回路ステージは、
N段目の回路ステージにおいて前記入力データの最上位ビットに対応して設けられた最上位のキャリー選択回路から出力される1対の信号を入力し、前記N段目の回路ステージにおいて前記入力データの最上位ビットから下位の方に数えて(2(N−1)+1)番目に対応するマルチプレクサから出力された選択用の信号に基づいて出力キャリー信号を選択して出力するマルチプレクサと、
前記入力データの最上位ビットから下位の方に数えて2乃至2(N−1)番目のビットに対応して設けられ、それぞれが、前記N段目の回路ステージにおいて対応するビットに設けられたキャリー選択回路または変換回路から出力された1対の信号を入力し、前記N段目の回路ステージにおいて前記入力データの最上位ビットから下位の方に数えて(2(N−1)+1)番目に対応するマルチプレクサから出力された選択用の信号に基づいて選択し1ビット上位の真のビット和に相当する信号を出力する(2(N−1)−1)個のマルチプレクサと、
前記入力データの最上位ビットから下位の方に数えて(2(N−1)+1)乃至2N番目のビットに対応して設けられ、それぞれが、前の段の回路ステージにおいて対応するビットに設けられたフルアダーまたはマルチプレクサから出力された真のキャリー信号と、1段目の回路ステージにおいて1ビット上位の条件セル回路から出力された排他的論理和信号とを入力し、1ビット上位の真のビット和に相当する信号を出力する2(N−1)個の排他的論理和回路と、を備えることを特徴とする請求項5に記載の加算回路。 - 前記条件セル回路は、
2つの入力ビットを入力し論理積をとり出力する第1のゲートと、
前記2つの入力ビットを入力し論理和をとり出力する第2のゲートと、
前記第1のゲートの出力を入力し反転して出力する第3のゲートと、
前記第2のゲートの出力と前記第3のゲートの出力とを入力し論理積をとり出力する第4のゲートとを備え、
前記第1のゲートの出力を下位ビットからの桁上げがないとした場合のキャリー信号である第1のキャリー信号とし、
前記第2のゲートの出力を下位ビットからの桁上げがあるとした場合のキャリー信号である第2のキャリー信号とし、
前記第4のゲートの出力を前記2つの入力ビットの排他的論理和の演算結果として出力することを特徴とする請求項4,5または6に記載の加算回路。 - 前記変換回路は、
仮のキャリー情報を表す1対の信号の一方と前記1段目のステージにおいて1ビット上位のビットの条件セル回路から出力される排他的論理和信号とを入力し仮のビット和情報を表す1対の信号の一方を出力する第1の排他的論理和回路と、
前記仮のキャリー情報を表す1対の信号の他方と前記排他的論理和信号とを入力し前記仮のビット和情報を表す1対の信号の他方を出力する第2の排他的論理和回路と、を備えることを特徴とする請求項5または6に記載の加算回路。 - 前記キャリー選択回路は、
仮のキャリー情報を表す1対の入力信号を入力し、1対の選択用の信号の一方に基づいて前記1対の入力信号のうち1つの信号を選択して1対の出力信号の一方として出力する第1のマルチプレクサと、
前記1対の入力信号を入力し、前記1対の選択用信号の他方に基づいて前記入力信号のうち1つを選択して前記1対の出力信号の他方として出力する第2のマルチプレクサと、を備えることを特徴とする請求項5または6に記載の加算回路。 - 請求項1乃至9に記載の何れかの加算回路を備えることを特徴とする半導体装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002339707A JP3727301B2 (ja) | 2002-11-22 | 2002-11-22 | 加算回路および加算回路を備えた半導体装置 |
KR1020030074560A KR100663679B1 (ko) | 2002-11-22 | 2003-10-24 | 고속 가산기 |
US10/695,489 US7277909B2 (en) | 2002-11-22 | 2003-10-28 | High speed adder |
CNB2003101196779A CN1290002C (zh) | 2002-11-22 | 2003-11-21 | 高速加法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002339707A JP3727301B2 (ja) | 2002-11-22 | 2002-11-22 | 加算回路および加算回路を備えた半導体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004171491A true JP2004171491A (ja) | 2004-06-17 |
JP3727301B2 JP3727301B2 (ja) | 2005-12-14 |
Family
ID=32702600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002339707A Expired - Fee Related JP3727301B2 (ja) | 2002-11-22 | 2002-11-22 | 加算回路および加算回路を備えた半導体装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7277909B2 (ja) |
JP (1) | JP3727301B2 (ja) |
KR (1) | KR100663679B1 (ja) |
CN (1) | CN1290002C (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509368B2 (en) * | 2005-05-09 | 2009-03-24 | Intel Corporation | Sparse tree adder circuit |
US7908308B2 (en) * | 2006-06-08 | 2011-03-15 | International Business Machines Corporation | Carry-select adder structure and method to generate orthogonal signal levels |
CN101140511B (zh) * | 2006-09-05 | 2010-10-13 | 硅谷数模半导体(北京)有限公司 | 串行进位二进制加法器 |
US9262123B2 (en) * | 2013-07-31 | 2016-02-16 | Arm Limited | Data processing apparatus and method for performing a narrowing-and-rounding arithmetic operation |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5285406A (en) * | 1990-04-02 | 1994-02-08 | Advanced Micro Devices, Inc. | High speed mixed radix adder |
US5257218A (en) * | 1992-01-06 | 1993-10-26 | Intel Corporation | Parallel carry and carry propagation generator apparatus for use with carry-look-ahead adders |
JPH08161151A (ja) * | 1994-12-01 | 1996-06-21 | Mitsubishi Electric Corp | 加算器 |
US6134576A (en) * | 1998-04-30 | 2000-10-17 | Mentor Graphics Corporation | Parallel adder with independent odd and even sum bit generation cells |
-
2002
- 2002-11-22 JP JP2002339707A patent/JP3727301B2/ja not_active Expired - Fee Related
-
2003
- 2003-10-24 KR KR1020030074560A patent/KR100663679B1/ko not_active IP Right Cessation
- 2003-10-28 US US10/695,489 patent/US7277909B2/en not_active Expired - Fee Related
- 2003-11-21 CN CNB2003101196779A patent/CN1290002C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7277909B2 (en) | 2007-10-02 |
CN1503119A (zh) | 2004-06-09 |
CN1290002C (zh) | 2006-12-13 |
KR20040045292A (ko) | 2004-06-01 |
US20040243658A1 (en) | 2004-12-02 |
JP3727301B2 (ja) | 2005-12-14 |
KR100663679B1 (ko) | 2007-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pillmeier et al. | Design alternatives for barrel shifters | |
JP4290202B2 (ja) | ブース乗算の装置および方法 | |
CN101140511B (zh) | 串行进位二进制加法器 | |
US20100235417A1 (en) | Circuit and method converting boolean and arithmetic masks | |
Priyadarshini et al. | A detailed scrutiny and reasoning on VLSI binary adder circuits and architectures | |
WO2005086675A2 (en) | Arithmetic circuit with balanced logic levels for low-power operation | |
JP3727301B2 (ja) | 加算回路および加算回路を備えた半導体装置 | |
KR19980048830A (ko) | 패스 트랜지스터 로직을 사용하는 조건 합 가산기 및 그것을 구비한 집적 회로 | |
CN113268219B (zh) | 一种带二进制补码转换的加法器电路 | |
JPH09222991A (ja) | 加算方法および加算器 | |
Das et al. | A timing-driven approach to synthesize fast barrel shifters | |
KR20000048818A (ko) | 디지탈 가산회로 | |
WO2001091306A1 (fr) | Codeur pour transmission d'une image numerique | |
JPH03229321A (ja) | プライオリティ・エンコーダ | |
JP3741280B2 (ja) | 桁上げ先見回路およびこれを用いた加算回路 | |
Lin et al. | A novel approach for CMOS parallel counter design | |
JP4230234B2 (ja) | 全加算器用のパリティ予測回路 | |
JP2002014804A (ja) | 三値ディジタル回路 | |
JP3540807B2 (ja) | 加算器,乗算器,及び集積回路 | |
JP4408727B2 (ja) | ディジタル回路 | |
Veeramachaneni | Design of efficient VLSI arithmetic circuits | |
US20030074385A1 (en) | Providing a fast adder for processor based devices | |
FAJOOLUNISSA et al. | Design and Implementation of High Speed Carry Skip Adder | |
CN117971157A (zh) | 进位逻辑电路 | |
EP1769335A2 (en) | Arithmetic circuit with balanced logic levels for low-power operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050927 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |