JP3746285B2 - 加算回路 - Google Patents
加算回路 Download PDFInfo
- Publication number
- JP3746285B2 JP3746285B2 JP2003420513A JP2003420513A JP3746285B2 JP 3746285 B2 JP3746285 B2 JP 3746285B2 JP 2003420513 A JP2003420513 A JP 2003420513A JP 2003420513 A JP2003420513 A JP 2003420513A JP 3746285 B2 JP3746285 B2 JP 3746285B2
- Authority
- JP
- Japan
- Prior art keywords
- carry
- signal
- circuit
- digit
- addition
- 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.)
- Expired - Fee Related
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
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
Description
リプル・キャリー・アダーは、入力信号の各桁を全加算器によって加算する回路であり、下位の全加算器から出力されるキャリー信号を上位の全加算器へ順に伝播させることにより和出力を得るものである。キャリー信号が1ビットずつ伝播するため、桁上げ速度が遅いという欠点がある。しかしながら、以降に述べる加算回路と比較して回路構成が単純であり、消費電力が少ないという利点もある。
キャリー・ルックアヘッド・アダーは、上位のキャリー信号の一部を桁上げ先見回路によって生成することにより、キャリー信号の生成を高速化した加算回路である。例えばリプル・キャリー・アダーに桁上げ先見回路を用いることにより、キャリー信号の伝播遅延を改善することができる。
図17において、全加算器201〜204は、入力信号の第0桁〜第3桁の加算を行う回路であり、AND回路205〜209およびセレクタ210で構成される回路は、第3桁のキャリー信号c3を生成する桁上げ先見回路である。
すなわち、4入力AND回路205はキャリー伝播信号p3,p2,p1およびキャリー生成信号g0の論理積を、3入力AND回路206はキャリー伝播信号p3,p2およびキャリー生成信号g1の論理積を、2入力AND回路208はキャリー伝播信号p3およびキャリー生成信号g2の論理積をそれぞれ演算する。4入力OR回路208は、これら3つの論理積とキャリー生成信号g3との論理和を演算する。セレクタ210は、4入力AND回路209においてキャリー伝播信号p0,…,p3の論理積を演算した結果が‘0’の場合、4入力OR回路208の論理和を出力し、4入力AND回路209の論理積が‘1’の場合、キャリー信号CINを出力する。このセレクタ210の出力信号が、キャリー信号c3として上位桁の演算に用いられる。
キャリー・セレクト・アダーは、下位からのキャリー信号が‘0’の場合と‘1’の場合の2通りの加算結果を予め計算し、当該キャリー信号が到着したところで2通りの加算結果の一方をセレクタにより選択して出力する回路である。各桁の加算回路には、例えば上述したリプル・キャリー・アダーが用いられる。
入力信号に比べて下位からのキャリー信号が遅い場合、特に、キャリー信号の到着前に各桁の加算結果の予測値が得られる場合には、キャリー信号の到着とともにセレクタから加算結果を出力することができるため、キャリー・セレクト・アダーは高速である。しかしながら、内部に2通りの加算を行う回路を含むため、回路規模および消費電力が増大する欠点を持つ。
図18は、全ビットの和出力をキャリー・セレクト・アダー211〜213によって算出するとともに、上位のキャリー信号c31を桁上げ先見回路214によって生成する加算回路である。このように、キャリー・セレクト・アダーとキャリー・ルックアヘッド・アダーとを組み合わせることにより和信号とキャリー信号を何れも高速に生成することが可能であるが、桁上げ先見回路を余分に必要とするため、キャリー・セレクト・アダーよりも更に回路規模および消費電力が増大する。
キャリー・インクリメント・アダーは、局所的なキャリー生成信号およびキャリー伝播信号を下位から上位に向かって順番に生成する回路をそれぞれ有しており、下位からのキャリー信号が到着した場合に、この局所的なキャリー生成信号およびキャリー伝播信号を用いて各桁のキャリー信号および和信号を計算する。1レベルのキャリー・インクリメント・アダーは、こうした局所的なキャリー生成信号およびキャリー伝播信号の生成回路をそれぞれ1重に持つものである。
1レベルのキャリー・インクリメント・アダーは、キャリー・セレクト・アダーに比べて和出力の生成が若干遅いものの、リプル・キャリー・アダーに相当する回路が1系列分で済むため、回路規模および消費電力についてはキャリー・セレクト・アダーより小さくなる。
1レベルのキャリー・インクリメント・アダーでは、加算するビット長が長くなると、局所的なキャリー生成信号およびキャリー伝播信号の生成が下位からのキャリー信号の到着より遅れてしまう場合が生じ得る。この欠点を改良するため、2レベルのキャリー・インクリメント・アダーは、局所的なキャリー生成信号およびキャリー伝播信号の生成回路をそれぞれ2重に持ち、これらの局所的信号の生成を並列に実行させることにより、上述した遅延を抑えるものである。
図19に示すように、従来の加算回路では、速度を重視すると消費電力や回路面積が大きくなってしまう傾向があり、その両方を良好に保つことが困難であるという不利益が存在する。
この場合、上記第1の加算ユニットは、kが最大でm(mは、1以上の整数を示す)までの第kのキャリー伝播信号生成回路および第kのキャリー生成信号生成回路を含み、上記第2の加算ユニットは、kが最大でn(nは、mより大きい整数を示す)までの第kのキャリー伝播信号生成回路および第kのキャリー生成信号生成回路を含んでも良い。
この乗算回路は、乗算加算回路としても構成され得る。
また、本発明の乗算回路又は乗算加算回路によれば、回路規模と消費電力を低減しつつ高速に乗算を行うことができる。
図1は、本発明の第1の実施形態に係る乗算回路の構成の一例を示すブロック図である。
図1に例示する乗算回路は、部分積生成回路100と、第1の加算回路101と、第2の加算回路102とを有する。
第1の加算回路101は、本発明の第1の加算回路の一実施形態である。
第2の加算回路102は、本発明の第2の加算回路の一実施形態である。
すなわち、ビット信号の入力タイミングが上位桁に向かうにつれて遅くなる傾向を有する下位ビット範囲の入力信号に対しては、加算値の算出タイミングが上位桁に向かうにつれて遅延する第1の加算方式により加算を行う。
ビット信号の入力タイミングが上位桁に向かうにつれて上記下位ビット範囲より緩やかに遅延するか若しくは早くなる傾向を有する中位ビット範囲の入力信号に対しては、上記加算値算出タイミングが上位桁に向かうにつれて上記第1の加算方式より緩やかに遅延する第2の加算方式により加算を行う。
また、ビット信号の入力タイミングが上位桁に向かうにつれて早くなる傾向を有する上位ビット範囲の入力信号に対しては、上記中位ビット範囲から供給されるキャリー信号が‘0’の場合と‘1’の場合のそれぞれに対応する各桁のキャリー信号,和信号の予測値を予め算出し、当該キャリー信号と当該予測値とに基づいて各桁のキャリー信号,和信号を生成する第3の加算方式により加算を行う。
入力信号A,入力信号B,和信号Sの第0桁〜第39桁のビット信号をそれぞれ‘a0’〜‘a39’,‘b0’〜‘b39’,‘s0’〜‘s39’とする。
第0桁〜第39桁で生じるキャリー信号をそれぞれ‘c0’〜‘c39’とする。
第0桁に供給されるキャリー信号を‘CIN’とする。
第j桁(ここで、jは0から39までの整数を示す)のビット信号ajおよびbjの排他的論理和に相当する第j桁のキャリー伝播信号を‘pj’とする。
第j桁(同様に、jは0から39までの整数を示す)のビット信号ajおよびbjの論理積に相当する第j桁のキャリー生成信号を‘gj’とする。
キャリー伝播信号pi_Kは、第K桁(Kは正の整数を示す)へのキャリー信号c(K−1)に応じて第i桁(iは、i>Kを満たす整数を示す)で生じるキャリー信号ciが変化するか否かを示す信号である。
キャリー生成信号gi_Kは、第K桁へのキャリー信号c(K−1)に依存せずに第i桁で生じるキャリー信号ciが‘1’になるか否かを示す信号である。
キャリー伝播信号pi_Kおよびキャリー生成信号gi_Kは、それぞれ次式で表される。
CIA1は、本発明の第1の加算ユニットの一実施形態である。
CIA2は、本発明の第2の加算ユニットの一実施形態である。
CSA3は、本発明の第3の加算ユニットの一実施形態である。
AND回路10_1,…,10_15の縦続接続回路は、本発明の第1のキャリー伝播信号生成回路の一実施形態である。
AND−OR複合回路12_1,…,12_15の縦続接続回路は、本発明の第1のキャリー生成信号生成回路の一実施形態である。
AND−OR複合回路11_0,…,11_15は、本発明のキャリー信号生成回路の一実施形態である。
AND回路10_j(ここで、jは2から15までの整数を示す)は、前段のAND回路10_(j−1)より出力されるキャリー伝播信号p(j−1)_0とキャリー伝播信号pjとの論理積を演算し、その演算結果をキャリー伝播信号pj_0として出力する。
AND−OR複合回路12_j(ここで、jは2から15までの整数を示す)は、前段のAND−OR複合回路12_(j−1)より出力されるキャリー生成信号g(j−1)_0とキャリー伝播信号pjとの論理積とキャリー生成信号gjとの論理和を演算し、その演算結果をキャリー生成信号gj_0として出力する。
AND−OR複合回路11_j(ここで、jは1から15までの整数を示す)は、キャリー信号CINとキャリー伝播信号pj_0との論理積とキャリー生成信号gj_0との論理和を演算し、その演算結果をキャリー信号cjとして出力する。
排他的OR回路13_j(ここで、jは1から15までの整数を示す)は、キャリー信号c(j−1)とキャリー伝播信号pjとの排他的論理和を演算し、その演算結果を和信号sjとして出力する。
以上が、CIA1の各構成要素の説明である。
AND−OR複合回路20_0,…,20_3の縦続接続回路は、本発明の第2のキャリー生成信号生成回路の一実施形態である。
AND−OR複合回路21_0、AND−OR複合回路21_1、AND−OR複合回路21_2,…,21_4の縦続接続回路、およびAND−OR複合回路21_5,…,21_9の縦続接続回路は、本発明の第1のキャリー生成信号生成回路の一実施形態である。
AND回路22_0,…,22_3の縦続接続回路は、本発明の第2のキャリー伝播信号生成回路の一実施形態である。
AND回路23_0、AND回路23_1、AND回路23_2,…,23_4の縦続接続回路、およびAND回路23_5,…,23_9の縦続接続回路は、本発明の第1のキャリー伝播信号生成回路の一実施形態である。
AND−OR複合回路24_0,…,24_14は、本発明のキャリー信号生成回路の一実施形態である。
ただし、図5〜図8の同一符号は同一の構成要素を示す。
AND回路22_0は、キャリー伝播信号p16とキャリー伝播信号p18_17との論理積を演算し、その演算結果をキャリー伝播信号p18_16として出力する。
AND回路22_1は、キャリー伝播信号p18_16とキャリー伝播信号p20_19との論理積を演算し、その演算結果をキャリー伝播信号p20_16として出力する。
AND回路23_j(ここで、jは3または4を示す)は、キャリー伝播信号p(20+j)とキャリー伝播信号p(19+j)_21との論理積を演算し、その演算結果をキャリー伝播信号p(20+j)_21として出力する。
AND回路22_2は、キャリー伝播信号p20_16とキャリー伝播信号p24_21との論理積を演算し、その演算結果をキャリー伝播信号p24_16として出力する。
AND回路23_j(ここで、jは6から9までの整数を示す)は、キャリー伝播信号p(21+j)とキャリー伝播信号p(20+j)_25との論理積を演算し、その演算結果をキャリー伝播信号p(21+j)_25として出力する。
AND回路22_3は、キャリー伝播信号p30_25とキャリー伝播信号p24_16との論理積を演算し、その演算結果をキャリー伝播信号p30_16として出力する。
AND−OR複合回路20_0は、キャリー伝播信号p18_17とキャリー生成信号g16との論理積とキャリー生成信号g18_17との論理和を演算し、その演算結果をキャリー生成信号g18_16として出力する。
AND−OR複合回路20_1は、キャリー伝播信号p20_19とキャリー生成信号g18_16との論理積とキャリー生成信号g20_19との論理和を演算し、その演算結果をキャリー生成信号g20_16として出力する。
AND−OR複合回路21_j(ここで、jは3または4を示す)は、キャリー伝播信号p(20+j)とキャリー生成信号g(19+j)_21との論理積とキャリー生成信号g(20+j)との論理和を演算し、その演算結果をキャリー生成信号g(20+j)_21として出力する。
AND−OR複合回路20_2は、キャリー伝播信号p24_21とキャリー生成信号g20_16との論理積とキャリー生成信号g24_21との論理和を演算し、その演算結果をキャリー生成信号g24_16として出力する。
AND−OR複合回路21_j(ここで、jは6から9までの整数を示す)は、キャリー伝播信号p(21+j)とキャリー生成信号g(20+j)_25との論理積とキャリー生成信号g(21+j)との論理和を演算し、その演算結果をキャリー生成信号g(21+j)_25として出力する。
AND−OR複合回路20_3は、キャリー伝播信号p30_25とキャリー生成信号g24_16との論理積とキャリー生成信号g30_25との論理和を演算し、その演算結果をキャリー生成信号g30_16として出力する。
AND−OR複合回路24_1は、キャリー伝播信号p17とキャリー信号C16との論理積とキャリー生成信号g17との論理和を演算し、その演算結果をキャリー信号c17として出力する。
AND−OR複合回路24_3は、キャリー伝播信号p19とキャリー信号C18との論理積とキャリー生成信号g19との論理和を演算し、その演算結果をキャリー信号c19として出力する。
AND−OR複合回路24_5は、キャリー伝播信号p21とキャリー信号C20との論理積とキャリー生成信号g21との論理和を演算し、その演算結果をキャリー信号c21として出力する。
AND−OR複合回路24_j(ここで、jは6または7の整数を示す)は、キャリー伝播信号p(16+j)_21とキャリー信号C20との論理積とキャリー生成信号g(16+j)_21との論理和を演算し、その演算結果をキャリー信号c(16+j)として出力する。
AND−OR複合回路24_9は、キャリー伝播信号p25とキャリー信号C24との論理積とキャリー生成信号g25との論理和を演算し、その演算結果をキャリー信号c25として出力する。
AND−OR複合回路24_j(ここで、jは10から13までの整数を示す)は、キャリー伝播信号p(16+j)_25とキャリー信号C24との論理積とキャリー生成信号g(16+j)_25との論理和を演算し、その演算結果をキャリー信号c(16+j)として出力する。
以上が、CIA2の各構成要素の説明である。
CSA3は、例えば図9に示すように、全加算器30_0,…,30_8および31_0,…,31_8と、セレクタ32_0,…,32_8を有する。
全加算器30_j(ここで、jは1から8までの整数を示す)は、第(31+j)桁のビット信号a(31+j)およびb(31+j)を入力するとともに、前段の全加算器30_(j−1)で算出されたキャリー信号c(30+j)_0を入力し、これに応じた第(31+j)桁の和信号s(31+j)_0およびキャリー信号c(31+j)_0を算出する。
全加算器31_j(ここで、jは1から8までの整数を示す)は、第(31+j)桁のビット信号a(31+j)およびb(31+j)を入力するとともに、前段の全加算器31_(j−1)で算出されたキャリー信号c(30+j)_1を入力し、これに応じた第(31+j)桁の和信号s(31+j)_1およびキャリー信号c(31+j)_1を算出する。
これらの全加算器は、例えば図10に示すように、入力ビット信号a,bの論理積を演算するAND回路35と、入力ビット信号a,bの排他的論理和を演算する排他的OR回路36と、前桁からのキャリー信号cinと排他的OR回路36より出力されるキャリー伝播信号pとの排他的論理和を演算する排他的OR回路33と、当該キャリー信号cinと当該キャリー伝播信号pとの論理積とAND回路35より出力されるキャリー生成信号gとの論理和を演算するAND−OR複合回路34とを有する。排他的OR回路33の演算結果が和信号sとなり、AND−OR複合回路34の演算結果が次桁へのキャリー信号coutとなる。
例えば全加算器30_0では、排他的OR回路33を削除し、キャリー伝播信号pを和信号sとして出力しても良い。また、AND−OR複合回路34を削除し、キャリー生成信号gをキャリー信号coutとして出力しても良い。
全加算器31_1では、排他的OR回路33をNOT回路に置き換えて、信号pの論理反転信号を和信号sとして出力しても良い。また、AND−OR複合回路34をOR回路に置き換えて、キャリー伝播信号pおよびキャリー生成信号gの論理和をキャリー信号coutとして出力しても良い。
以上が、CSA3の各構成要素の説明である。
第1の加算回路101は、この部分積p1〜pXを加算して、2つの信号AおよびBを生成する。この際、信号AおよびBの各ビット信号は全ビット同時に生成されるのではなく、図2に示すようにビットごとに異なる遅延時間を経て生成され、第2の加算回路102に入力される。すなわち、第2の加算回路102への入力タイミングは、下位のビット範囲において上位桁に向かうほど遅くなり、中位のビット範囲においてはほぼ一定となり、上位のビット範囲では上位桁に向かうほど早くなる。
1レベルのCIA1では、AND回路10_1〜10_15の縦続接続回路において下位桁から順番にキャリー伝播信号p1_0〜p15_0が生成されるとともに、AND−OR複合回路12_1〜12_15の縦続接続回路において下位桁から順番にキャリー生成信号g1_0〜g15_0が生成される。そして、このキャリー伝播信号p1_0〜p15_0およびキャリー生成信号g1_0〜g15_0ならびに第0桁へのキャリー信号CINに基づいて、下位桁から順番に各桁のキャリー信号c1〜c15が生成される。
したがって、第1の加算回路101からの信号の入力タイミングが上位桁に向かうほど遅くなる傾向と、各桁の加算値の算出タイミングが上位桁に向かうほど遅くなる傾向とが一致している。
2レベルのCIA2は、図7に示すように、局所的なキャリー伝播信号およびキャリー生成信号の生成回路をそれぞれ2重に持っている。
すなわち、局所的キャリー伝播信号は、第1のキャリー伝播信号生成回路(AND回路23_0、AND回路23_1、AND回路23_2〜23_4の縦続接続回路、AND回路23_5〜23_9の縦続接続回路)と、第2のキャリー伝播信号生成回路(AND回路22_0〜22_3の縦続接続回路)とにおいて2段階に分けて生成される。
局所的キャリー生成信号は、第1のキャリー生成信号生成回路(AND−OR複合回路21_0、AND−OR複合回路21_1、AND−OR複合回路21_2〜21_4の縦続接続回路、AND−OR複合回路21_5〜21_9の縦続接続回路)と、第2のキャリー生成信号生成回路(AND−OR複合回路20_0〜20_3の縦続接続回路)とにおいて2段階に分けて生成される。
例えば、AND回路23_5〜23_9の縦続接続回路は、第25桁〜第30桁のキャリー伝播信号p25〜p30に基づいてキャリー生成信号g26_25〜g30_25を直接生成する。
例えば、AND回路22_3は、AND回路23_5〜23_9の縦続接続回路の終段から出力されるキャリー伝播信号p30_25と、前段のAND回路22_2から出力されるキャリー伝播信号p24_16とに基づいて、キャリー伝播信号p30_16を生成する。
1段のみの回路も縦続接続回路と見なせば、AND回路22_0,22_1、AND−OR複合回路20_0,20_1についても同様な議論が成り立つ。
したがって、全ての局所的なキャリー伝播信号,キャリー生成信号が下位桁から順番に生成される1レベルのCIAに比べて、上位側のキャリー信号の生成が高速化される。言い換えると、各桁の加算値の算出タイミングは上位桁に向かうにつれて遅延するものの、その遅延の傾向は1レベルのCIAに比べて緩やかである。
CSA3では、キャリー信号c30が‘0’の場合と‘1’の場合における第31桁〜第39桁のキャリー信号および和信号の予測値が予め算出される。そして、キャリー信号c30がCSA3へ到着すると、この予め算出された和信号の一方がセレクタにより選択され、加算結果として出力される。そのため、キャリー信号c30の到着より早く予測値が算出されるものとすると、キャリー信号c30が到着してから各桁のキャリー信号,和信号が生成されるまでの遅延ははほぼ等しくなる。
このように、各ビット範囲におけるビット信号の入力タイミングの遅延傾向に合わせて、それぞれ異なる加算方式により加算が行われるため、回路規模と消費電力を低減しつつ高速に加算を行うことができる。例えば、上位のビット範囲へのキャリー信号c30を高速化するために桁上げ先見回路を設ける回路方式に比べて、回路規模を大幅に減少させることができるとともに、下位のビット範囲に1レベルCIA、中位のビット範囲に2レベルCIAを用いることで、桁上げ先見回路を設けた場合と比較しても遜色のないスピードを実現することが可能になる。
次に、第2の実施形態について述べる。
上述した第1の実施形態では下位,中位のビット範囲の加算に1レベル,2レベルのCIAを用いる例が示されているが、第2の実施形態では、これらに他のレベルのCIAを用いる例が示される。
第2の加算回路102Aは、図1に示す乗算回路における第2の加算回路102と置き換えられる40ビットの加算回路であり、例えば図11に示すように、下位ビット範囲(第0桁〜第15桁)の加算を行うCIA4と、中位ビット範囲(第16桁〜第30桁)の加算を行うCIA5と、上位ビット範囲(第31桁〜第39桁)の加算を行うCSA3とを有する。
CSA3は、図9を参照して既に述べたものと同様であるので、ここではCIA4およびCIA5について説明する。
第kのキャリー伝播信号生成回路は、第(k−1)のキャリー伝播信号生成回路の縦続接続回路の終段から出力されるキャリー伝播信号pM2_M1(ここで、M2,M1は、M2>M1を満たす正の整数を示す)と、前段からのキャリー伝播信号p(M1−1)_M0(ここで、M0は、M1>M0を満たす正の整数を示す)とに基づいてキャリー伝播信号p(M2,M0)を生成する、縦続に接続された複数の回路を含む回路である。
第kのキャリー生成信号生成回路は、第(k−1)のキャリー生成信号生成回路の縦続接続回路の終段から出力されるキャリー生成信号gM2_M1と、前段からのキャリー生成信号g(M1−1)_M0と、第(k−1)のキャリー伝播信号生成回路の縦続接続回路の終段から出力されるキャリー伝播信号pM2_M1とに基づいてキャリー生成信号gM2_M0を生成する、縦続に接続された複数の回路を含む回路である。
したがって、第k段階の回路(第kのキャリー伝播信号生成回路、第kのキャリー生成信号生成回路)は、その下位段階(第(k−1)段階)の回路の終段から出力される信号を用いて、局所的なキャリー伝播信号,キャリー生成信号を生成する。
kが最大でm(mは、1以上の整数を示す)までの第kのキャリー伝播信号生成回路および第kのキャリー生成信号生成回路を含む回路を、mレベルのCIAとする。
次に、第3の実施形態について述べる。
図12は、本発明の第3の実施形態に係る第2の加算回路102Bの構成の一例を示すブロック図である。
第2の加算回路102Bも、図1に示す乗算回路における第2の加算回路102と置き換えられる40ビットの加算回路であり、例えば図12に示すように、下位ビット範囲(第0桁〜第15桁)の加算を行うリプル・キャリー・アダー6と、中位ビット範囲(第16桁〜第30桁)の加算を行うCIA7と、上位ビット範囲(第31桁〜第39桁)の加算を行うCSA3とを有する。以降、リプル・キャリー・アダーをRCAと略記する。
RCA6は、本発明の第4の加算ユニットの一実施形態である。
全加算器60_j(ここで、jは1から15までの整数を示す)は、第j桁のビット信号(aj,bj)を入力するとともに、前段の全加算器60_(j−1)で算出されたキャリー信号c(j−1)を入力し、これに基づいて第j桁の和信号sjおよびキャリー信号cjを算出する。
全加算器60_0,…,60_1の内部構成(図13B)は、図10に示す回路と同様である。
次に、第4の実施形態について述べる。
図14は、本発明の第4の実施形態に係る第2の加算回路102Cの構成の一例を示すブロック図である。
第2の加算回路102Cも、図1に示す乗算回路における第2の加算回路102と置き換えられる40ビットの加算回路であり、例えば図14に示すように、下位ビット範囲(第0桁〜第15桁)の加算を行うCIA8と、中位ビット範囲(第16桁〜第30桁)の加算を行うRCA9と、上位ビット範囲(第31桁〜第39桁)の加算を行うCSA3とを有する。
したがって、本実施形態は、下位のビット範囲より中位のビット範囲の方が、上位側の入力タイミングの遅延傾向が強い場合に適している。例えば、下位のビット範囲においてビット信号の入力タイミングが一定しているか、上位桁に向かうほど入力タイミングが早くなる傾向があり、中位のビット範囲において上位桁に向かうほどビット信号の遅延が急増する傾向がある場合に適している。
次に、第5の実施形態について述べる。
図15は、本発明の第5の実施形態に係る第2の加算回路102Dの構成の一例を示すブロック図である。
第2の加算回路102Dも、図1に示す乗算回路における第2の加算回路102と置き換えられる40ビットの加算回路であり、例えば図15に示すように、下位ビット範囲(第0桁〜第15桁)の加算を行う加算ユニット10と、上位ビット範囲(第16桁〜第39桁)の加算を行う加算ユニット11とを有する。
例えばb0が‘0’の場合、最下位桁の和信号s0としてビット信号a0をそのまま出力しても良い。また、この場合、最下位桁のキャリー信号c0が‘0’になることから、第1桁の和信号s1としてキャリー伝播信号p1、すなわち第1桁のビット信号a1およびb1の排他的論理和をそのまま出力しても良い。このような簡略化により、例えば図4に示すCIA1では、AND−OR複合回路11_0、排他的OR回路13_0および13_1、AND回路14_0、ならびに排他的OR回路15_0を省略することが可能である。
例えば図9に示すCSA3における最上位桁の全加算器30_8および31_8では、キャリー伝播信号pが‘1’になる。このため、これらの全加算器では、図10に示す排他的OR回路33をNOT回路に置換し、下位桁からのキャリー信号cinの論理反転信号を和信号sとして出力する構成としても良い。
図3、図4においては、キャリー・インクリメント・アダー1として、1つの1レベルCIAを例示したが、これを複数個の1レベルCIAで構成することもできる。例えば、1ビット入力の1レベルCIA、1ビット入力の1レベルCIA、2ビット入力の1レベルCIA、4ビット入力の1レベルCIA、8ビット入力の1レベルCIAを縦続接続してキャリー・インクリメント・アダー1を構成し、16ビットの演算を行なえばよい。このように、1レベルCIAについては、複数個の1レベルCIAで実現してもよい。
Claims (13)
- 入力される加算対象の信号のそれぞれ異なるビット範囲を加算する複数の加算ユニットを有し、
上記複数の加算ユニットの少なくとも2つは、その加算を行うビット範囲において加算対象のビット信号の入力タイミングが上位桁に向かうにつれて変化する当該変化の傾向にそれぞれ適合した加算方式であって、各桁の加算値の算出タイミングが上位桁に向かうにつれて変化する傾向に違いを有する異なる加算方式により加算を行う、
加算回路。 - 上記複数の加算ユニットは、
ビット信号の入力タイミングが上位桁に向かうにつれて遅延する傾向を有する第1のビット範囲の入力信号に対して、上記加算値算出タイミングが上位桁に向かうにつれて遅延する第1の加算方式により加算を行う第1の加算ユニットと、
上記入力タイミングが上位桁に向かうにつれて上記第1のビット範囲より緩やかに遅延するか若しくは早くなる傾向を有する第2のビット範囲の入力信号に対して、上記加算値算出タイミングが上位桁に向かうにつれて上記第1の加算方式より緩やかに遅延する第2の加算方式により加算を行う第2の加算ユニットと、を含む、
請求項1に記載の加算回路。 - 上記第1の加算ユニットおよび上記第2の加算ユニットは、
第K桁(Kは正の整数を示す)へのキャリー信号に応じて第i桁(iは、i>Kを満たす整数を示す)で生じるキャリー信号が変化するか否かを示すキャリー伝播信号p(i,K)を前段からのキャリー伝播信号p(i−1,K)に基づいて生成する、縦続に接続された複数の回路を含む第1のキャリー伝播信号生成回路と、
第K桁へのキャリー信号に依存せずに第i桁で生じるキャリー信号が所定のビット値になるか否かを示すキャリー生成信号g(i,K)を前段からのキャリー生成信号g(i−1,K)に基づいて生成する、縦続に接続された複数の回路を含む第1のキャリー生成信号生成回路と、
上記第1のキャリー伝播信号生成回路より出力されるキャリー伝播信号p(i,K)と、上記第1のキャリー生成信号生成回路より出力されるキャリー生成信号g(i,K)と、第K桁へのキャリー信号にとに基づいて、第i桁で生じるキャリー信号を生成するキャリー信号生成回路と、を含む、
請求項2に記載の加算回路。 - 第kのキャリー伝播信号生成回路(kは、2以上の整数を示す)は、第(k−1)のキャリー伝播信号生成回路の縦続接続回路の終段から出力されるキャリー伝播信号p(M2,M1)(M2,M1は、M2>M1を満たす正の整数を示す)と、前段からのキャリー伝播信号p(M1−1,M0)(M0は、M1>M0を満たす正の整数を示す)とに基づいてキャリー伝播信号p(M2,M0)を生成する、縦続に接続された複数の回路を含む回路であり、
第kのキャリー生成信号生成回路は、第(k−1)のキャリー生成信号生成回路の縦続接続回路の終段から出力されるキャリー生成信号g(M2,M1)と、前段からのキャリー生成信号g(M1−1,M0)と、第(k−1)のキャリー伝播信号生成回路の縦続接続回路の終段から出力されるキャリー伝播信号p(M2,M1)とに基づいてキャリー生成信号g(M2,M0)を生成する、縦続に接続された複数の回路を含む回路であり、
上記第1の加算ユニットは、
kが最大でm(mは、1以上の整数を示す)までの第kのキャリー伝播信号生成回路および第kのキャリー生成信号生成回路を含み、
上記第2の加算ユニットは、
kが最大でn(nは、mより大きい整数を示す)までの第kのキャリー伝播信号生成回路および第kのキャリー生成信号生成回路を含む、
請求項3に記載の加算回路。 - 上記複数の加算ユニットは、上記入力タイミングが上位桁に向かうにつれて早くなる傾向を有するビット範囲の入力信号に対して、当該ビット範囲に供給される下位桁からのキャリー信号のそれぞれの仮定値に対応する各桁のキャリー信号の予測値を予め算出し、当該下位桁から供給されるキャリー信号と当該予測値とに基づいて各桁のキャリー信号を生成する第3の加算方式により加算を行う第3の加算ユニットを含む、
請求項1乃至4の何れか一に記載の加算回路。 - 上記複数の加算ユニットは、上記入力タイミングが上位桁に向かうにつれて遅延する傾向を有するビット範囲の入力信号に対して、下位桁から上位桁に向かって順番にキャリー信号を算出する第4の加算方式により加算を行う第4の加算ユニットを含む、
請求項1乃至5の何れか一に記載の加算回路。 - 2を超える複数の部分積を加算した結果として2つの信号を出力する第1の加算回路と、上記第1の加算回路から出力される2つの信号を加算する第2の加算回路とを有する乗算回路であって、
上記第2の加算回路は、上記第1の加算回路から出力される2つの信号のそれぞれ異なるビット範囲を加算する複数の加算ユニットを有する、請求項1乃至6の何れか一に記載の加算回路である、
乗算回路。 - 上記第2の加算回路は、
上記2つの信号の最下位桁から所定の中位桁までのビット範囲を加算する請求項4に記載の第1の加算ユニットと、
上記2つの信号の上記中位桁から所定の上位桁までのビット範囲を加算する請求項4に記載の第2の加算ユニットと、
上記2つの信号の上記上位桁から最上位桁までのビット範囲を加算する請求項5に記載の第3の加算ユニットと、を含む、
請求項7に記載の乗算回路。 - 上記第2の加算回路は、最下位桁の加算結果として上記2つの信号のうちの一方の最下位桁のビット信号を出力するとともに、当該最下位桁の上位桁の加算結果として当該上位桁のビット信号同士の排他的論理和を出力する、
請求項7または8に記載の乗算回路。 - 上記第2の加算回路は、最上位桁の加算結果として下位桁から最上位桁へのキャリー信号の論理反転信号を出力する、
請求項7乃至9の何れか一に記載の乗算回路。 - 上記第1の加算回路は、ツリー状に接続された複数の全加算器を含む、
請求項7乃至10の何れか一に記載の乗算回路。 - 2を超える複数の部分積を加算した結果として2つの信号を出力する第1の加算回路と、上記第1の加算回路から出力される2つの信号を加算する第2の加算回路とを有する乗算加算回路であって、
上記第2の加算回路は、上記第1の加算回路から出力される2つの信号のそれぞれ異なるビット範囲を加算する複数の加算ユニットを有する、請求項1乃至6の何れか一に記載の加算回路である、
乗算加算回路。 - 上記第2の加算回路は、
上記2つの信号の最下位桁から所定の中位桁までのビット範囲を加算する請求項4に記載の第1の加算ユニットと、
上記2つの信号の上記中位桁から所定の上位桁までのビット範囲を加算する請求項4に記載の第2の加算ユニットと、
上記2つの信号の上記上位桁から最上位桁までのビット範囲を加算する請求項5に記載の第3の加算ユニットと、を含む、
請求項12に記載の乗算加算回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003420513A JP3746285B2 (ja) | 2003-12-18 | 2003-12-18 | 加算回路 |
US11/013,118 US20050177611A1 (en) | 2003-12-18 | 2004-12-14 | Addition circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003420513A JP3746285B2 (ja) | 2003-12-18 | 2003-12-18 | 加算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005182346A JP2005182346A (ja) | 2005-07-07 |
JP3746285B2 true JP3746285B2 (ja) | 2006-02-15 |
Family
ID=34782015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003420513A Expired - Fee Related JP3746285B2 (ja) | 2003-12-18 | 2003-12-18 | 加算回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050177611A1 (ja) |
JP (1) | JP3746285B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100714316B1 (ko) * | 2004-10-22 | 2007-05-02 | 광주과학기술원 | 혼합형 가산기 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE844199A (nl) * | 1976-07-16 | 1976-11-16 | Inrichting voor het vermenigvuldigen van binaire getallen | |
US4425623A (en) * | 1981-07-14 | 1984-01-10 | Rockwell International Corporation | Lookahead carry circuit apparatus |
US5210711A (en) * | 1992-02-26 | 1993-05-11 | Sony Corporation Of America | Very fast variable input multi-bit adder |
-
2003
- 2003-12-18 JP JP2003420513A patent/JP3746285B2/ja not_active Expired - Fee Related
-
2004
- 2004-12-14 US US11/013,118 patent/US20050177611A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2005182346A (ja) | 2005-07-07 |
US20050177611A1 (en) | 2005-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5273866B2 (ja) | 乗算器/アキュムレータ・ユニット | |
JP3667635B2 (ja) | 演算装置 | |
US20040117424A1 (en) | High-speed/low power finite impulse response filter | |
JPH09269891A (ja) | 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置 | |
EP0613082A1 (en) | 4:2 adder and multiplier circuit employing the same | |
JPH064271A (ja) | 乗算器 | |
JP2012528391A (ja) | 飽和を伴う整数乗算および乗算加算演算 | |
US7349938B2 (en) | Arithmetic circuit with balanced logic levels for low-power operation | |
JP3746285B2 (ja) | 加算回路 | |
KR100308726B1 (ko) | 고속 산술 장치에서 올림수 예견가산기 스테이지의 수를 감소시키는 장치 및 방법 | |
JPH09231055A (ja) | 論理演算回路及びキャリールックアヘッド加算器 | |
US5870322A (en) | Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication | |
US20050091299A1 (en) | Carry look-ahead adder having a reduced area | |
TWI679577B (zh) | 多位元加法器設備與用於執行算術運算之設備及方法 | |
JPH03229320A (ja) | 増分回路 | |
JP4290203B2 (ja) | リダクションアレイの装置および方法 | |
JP2765516B2 (ja) | 積和演算器 | |
Jamro et al. | FPGA implementation of addition as a part of the convolution | |
JP2606331B2 (ja) | 絶対値加減算方法及びその装置 | |
US20100030836A1 (en) | Adder, Synthesis Device Thereof, Synthesis Method, Synthesis Program, and Synthesis Program Storage Medium | |
Chen et al. | Enhancing parallel-prefix structures using carry-save notation | |
Santhi et al. | Realization of parallel prefix adders for power and speed critical applications | |
EP1769335B1 (en) | Arithmetic circuit with balanced logic levels for low-power operation | |
KR100221315B1 (ko) | 파이프 라인 가산기 | |
JP2006301685A (ja) | 乗算装置 |
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: 20051108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051121 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091202 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101202 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111202 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121202 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121202 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131202 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |