JPH0467211B2 - - Google Patents
Info
- Publication number
- JPH0467211B2 JPH0467211B2 JP34118690A JP34118690A JPH0467211B2 JP H0467211 B2 JPH0467211 B2 JP H0467211B2 JP 34118690 A JP34118690 A JP 34118690A JP 34118690 A JP34118690 A JP 34118690A JP H0467211 B2 JPH0467211 B2 JP H0467211B2
- Authority
- JP
- Japan
- Prior art keywords
- cell means
- row
- carry
- adder
- bit
- 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 - Lifetime
Links
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/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- 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/5055—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination in which one operand is a constant, i.e. incrementers or decrementers
-
- 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/508—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 carry look-ahead circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/506—Indexing scheme relating to groups G06F7/506 - G06F7/508
- G06F2207/5063—2-input gates, i.e. only using 2-input logical gates, e.g. binary carry look-ahead, e.g. Kogge-Stone or Ladner-Fischer adder
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
[産業上の利用分野]
半発明は加算回路に関し、特に比較的少ないゲ
ート使用量で桁上げ伝播遅延を大きく低下させた
加算回路に関する。
[従来技術およびその問題点]
2つのNビツトオペランドを加算してNビツト
の結果を得ること(しばしば桁上げ伝搬加算と呼
ばれる)はデジタル・プロセツサの基本的な演算
である。この演算を実行するために従来より種々
の桁上げ方式が用いられている。
桁上げ伝搬加算を簡単に実行するにはいわゆる
リツプル・アダー(ripple adder)を用いればよ
い。リツプル・アダーはビツト当りのトランジス
タが比較的少なくてすむが、一般的に比較的低速
である。リツプル・アダーはこのように他の加算
器の能力測定の基準としてしばしば用いられる様
な、基本的ではあるが、それだけに低速な加算器
である。
第1図は代表的なリツプル・アダー・セルを示
す図である。第1図において、A(i)及びB(i)は加
えられる2つのオペランドのそれぞれのビツトで
あり、Cin(i)は前段のリツプル・アダー・セルか
らの桁上げ入力であり、Cout(i)はこのリツプ
ル・アダー・セルからの桁上げ出力であり、また
D(i)はこのリツプル・アダー・セルの和である。
ある1つのリツプル・アダー・セルの桁上げ出力
は次段のリツプル・アダー・セルの桁上げ入力と
なる。表1にPASCAL風の言語で書かれた、N
ビツト・リツプル・アダーの論理動作を説明する
プログラムを示す。なお、表1のプログラムにお
いて「+」は論理和、「・」は論理積、「XOR」
は排他的論理和を示す。
表 1
For i=0 toN−1 DO BEGIN
K(i)=A(i)+B(i)
G(i)=A(i)・B(i)
P(i)=A(i)XOR B(i)
Cout(i)=G(i)+〔K(i)・Cin(i)〕
=Cin(i+1)
D(i)=P(i)XOR Cin(i)
End
リツプル・アダーは桁上げ先見回路を付加する
ことにより高速化することができる。桁上げ先見
加算器を実現するために、リツプル・アダーは、
例えば4つのリツプル・アダー・セルから成るブ
ロツクで構成されている。4つの高速加算器の各
ブロツクは、第2図に示すように、ゲートが付加
されており、このゲートによりKビツト(すなわ
ち、ORゲートK(i)の出力)が全て“1”の時、
前段のブロツクからの桁上げ出力がこのブロツク
を素通りして次段のブロツクに伝搬される。桁上
げ先見加算器は比較的高速であり、MOS回路で
安価に構成できる。
他の方法として、I.R.E.トランザクシヨンズ・
オン・エレクトロニツク・コンピユーターズ(I.
R.E.Transactions on Electronic Computers)
誌1960年6月号、第226頁に、スクランスキー
(Sklansky)氏により「条件付き和による加算論
理」として発表された条件付き和加算器がある。
条件付き和加算は非常に高速で動作するのだが、
上述の比較的低速の加算に比べて非常に多くのロ
ジツクを必要とする。その結果、条件付き和加算
はビツト当りの価格が非常に高いものとなつてし
まう。事実、この方法は広範囲には使用されてい
ない。
上記した様に、従来から桁上げ伝搬加算を実行
するために種々の桁上げ方式が使用されている。
しかし、これら公知の方式は新世代のコンピユー
タにとつてはしばしば遅すぎるものであつたり、
或は期待されるよりもはるかに複雑かつ高価なも
のであつた。
[発明の目的]
本発明は上述した従来技術の問題点を解消し、
高速かつ実現容易な加算回路を提供することを目
的とする。
[発明の概要]
本発明の一実施例によれば、加算回路は中間桁
上げ信号を発生するセルの直列接続構成となつて
いる。従つてこれら各ビツト対の中間桁上げ信号
は連続する段を独立して次々と伝搬して行くこと
ができる。従つて本発明によれば、公知例と比較
して全加算器の遅延時間を減少させることができ
ると共に、回路の複雑さを比較的低くおさえるこ
とができる。本発明はまた増分器
(incrementor)やプライオリテイ・エンコーダ
にも応用できる。これらの応用例についても以下
で説明する。
本発明の加算回路はセルの種類が比較的少なく
てすむので、任意長の加算器、増分器又はプライ
オリテイ・エンコーダを構成する場合には以下に
図示する様に規則的に容易に結合することができ
る。従つて本発明によれば、絶対速度が速い回路
を実現することが出来ると共にバイポーラ又は
MOS技術のいずれによりLSIを製造した場合で
も、設計上の複雑化を抑えて安価に構成すること
ができる。
[発明の実施例]
以下、図面によつて本発明の実施例を詳細に説
明する。
以下では、条件付き桁上げ加算と呼ばれている
桁上げ伝播加算を実行する2つの加算器A,Bを
開示している。加算器Bが本発明の実施例であ
り、加算器Aは加算器Bと桁上げ方式の一般原理
を共通にする加算器である。これら2つの加算器
A,Bの構成は両方とも加算器以外にも増分器や
プライオリテイ・エンコーダにも適用できること
が後述する説明により理解できるだろう。表2に
於て、公知の方式と本発明を用いた条件付き桁上
げ加算器との比較を示した。表2に於て、加算器
の速度は全加算を実行するのに必要なゲート遅延
段数によつて示してある。表2に示したデータは
32ビツト加算器の場合である。
第3A図及び第3B図は条件付き桁上げ加算器
Aを示す図であり、表3は条件付き桁上げ加算器
Aに関連する論理式である。第3A図には3種の
異なるセルが示されている。それらはスタート・
セル、任意の数(0でも良い)の継続セル、及び
エンド・セルである。第3B図は、9ビツト加算
器の場合のセル構成例を示す図である。この加算
器に於て、各ブロツクは2〜4個の1ビツト・セ
ルを備えている。すなわちブロツク0に2つのセ
ル、ブロツク1に3つのセル、そしてブロツク2
に4つのセルを備えている。例えば、第2ブロツ
ク(j=1)は3つのセルを備えており、ビツト
番号2はスタート・セル、ビツト番号3は継続
(continue)セル、そしてビツト番号4はエン
ド・セルである。
[Field of Industrial Application] The present invention relates to an adder circuit, and more particularly to an adder circuit that significantly reduces carry propagation delay with relatively low gate usage. BACKGROUND OF THE INVENTION Adding two N-bit operands to obtain an N-bit result (often referred to as carry propagation addition) is a fundamental operation in digital processors. Various carry schemes have been used in the past to perform this operation. A so-called ripple adder can be used to easily perform carry propagation addition. Ripple adders require fewer transistors per bit, but are generally relatively slow. The ripple adder is thus a basic but slow adder that is often used as a basis for measuring the performance of other adders. FIG. 1 is a diagram showing a typical ripple adder cell. In Figure 1, A(i) and B(i) are the respective bits of the two operands being added, Cin(i) is the carry input from the previous ripple adder cell, and Cout(i) is the carry input from the previous ripple adder cell. ) is the carry output from this ripple adder cell, and D(i) is the sum of this ripple adder cell.
The carry output of one ripple adder cell becomes the carry input of the next stage ripple adder cell. Table 1 shows N written in PASCAL-like language.
A program is shown to explain the logical operation of the bit ripple adder. In addition, in the program in Table 1, "+" stands for logical sum, "・" stands for logical product, and "XOR"
indicates exclusive OR. Table 1 For i=0 toN−1 DO BEGIN K(i)=A(i)+B(i) G(i)=A(i)・B(i) P(i)=A(i)XOR B( i) Cout(i)=G(i)+[K(i)・Cin(i)] =Cin(i+1) D(i)=P(i)XOR Cin(i) End Ripple adder is a carry look ahead The speed can be increased by adding a circuit. To realize a carry look-ahead adder, the ripple adder is
For example, it consists of a block consisting of four ripple adder cells. Each block of the four high-speed adders has a gate added to it, as shown in FIG.
The carry output from the previous block passes through this block and is propagated to the next block. Carry lookahead adders are relatively fast and can be constructed inexpensively using MOS circuits. Alternatively, IRE Transactions
On Electronic Computers (I.
RETransactions on Electronic Computers)
In the June 1960 issue of the magazine, page 226, there is a conditional sum adder published by Mr. Sklansky as ``addition logic using conditional sums''.
Conditional sum addition works very fast, but
It requires significantly more logic than the relatively slow addition described above. As a result, conditional sum addition results in a very high price per bit. In fact, this method is not widely used. As mentioned above, various carry schemes have been used in the past to perform carry propagation addition.
However, these known methods are often too slow for new generations of computers;
Otherwise, it was far more complex and expensive than expected. [Object of the invention] The present invention solves the problems of the prior art described above,
The purpose of this invention is to provide a high-speed and easy-to-implement adder circuit. [Summary of the Invention] According to one embodiment of the present invention, an adder circuit has a series connection configuration of cells that generate an intermediate carry signal. Therefore, the intermediate carry signal of each of these bit pairs can be propagated independently and successively through successive stages. Therefore, according to the present invention, the delay time of the full adder can be reduced compared to the known example, and the complexity of the circuit can be kept relatively low. The invention can also be applied to incrementors and priority encoders. Examples of these applications are also discussed below. Since the adder circuit of the present invention requires relatively few types of cells, it can be easily combined in a regular manner as shown below to construct an adder, incrementer, or priority encoder of arbitrary length. I can do it. Therefore, according to the present invention, it is possible to realize a circuit with high absolute speed, and also to realize a circuit with high absolute speed.
No matter which MOS technology is used to manufacture LSIs, they can be constructed at low cost with minimal design complexity. [Embodiments of the Invention] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In the following, two adders A, B are disclosed that perform carry propagation addition, also called conditional carry addition. Adder B is an embodiment of the present invention, and adder A is an adder that shares the general principle of the carry method with adder B. It will be understood from the following explanation that the configurations of these two adders A and B can be applied not only to adders but also to incrementers and priority encoders. Table 2 shows a comparison between a known scheme and a conditional carry adder using the present invention. In Table 2, adder speed is indicated by the number of gate delay stages required to perform a full addition. The data shown in Table 2 is
This is the case for a 32-bit adder. 3A and 3B are diagrams illustrating conditional carry adder A, and Table 3 is a logical expression related to conditional carry adder A. Three different types of cells are shown in Figure 3A. They start
cells, any number (even zero) of continuation cells, and end cells. FIG. 3B is a diagram showing an example of a cell configuration in the case of a 9-bit adder. In this adder, each block has 2 to 4 1-bit cells. That is, two cells in block 0, three cells in block 1, and three cells in block 2.
It has four cells. For example, the second block (j=1) has three cells, bit number 2 is the start cell, bit number 3 is the continue cell, and bit number 4 is the end cell.
【表】【table】
【表】
基本的に、各ブロツクに於て(例えばj=0〜
2に於て)2つのリツプル桁上げ出力Cout0(i)及
びCout1(i)が発生される。各ブロツクのスター
ト・セルに於て桁上げ入力Cin0及びCin1はそれ
ぞれ“0”及び“1”と定義されていることに注
意されたい。この2つの桁上げ出力Coutは現在
のブロツクに入力された桁上げ入力Cinブロツク
(j)と結合することにより現在のブロツクの桁上げ
出力Coutブロツク(j)を発生する。j=0〜2の
全てのブロツクでそれらの2つの桁上げの連鎖
(Cout0−Cin0及びCout1−Cin1)が同時に次々と
伝搬される。ブロツク0は最初にその桁上げ出力
を発生し、そしてブロツク1に伝搬する。その
後、桁上げが各ブロツクを「飛び越す」ためには
ゲート1段分の遅延しか必要ない。よつて、条件
付き桁上げ加算器Aにおいては、桁上げ伝搬遅延
時間を最小にした場合、ブロツクの大きさ、すな
わちビツト長は、ブロツク番号jの増加につれて
等差数列的(すなわち2,3,4,……等)に増
加するから、全遅延時間はオペランドのビツト長
の平方根にほぼ比例して増加する。
従つて条件付き桁上げ加算器Aは桁上げ先見加
算器と比較して、表2からわかる様にビツト当り
の素子を17%増加するのみで25%の性能の向上を
得ることができる。同様に、条件付き桁上げ加算
器Aは1ビツト・セルによつて構成されており、
他の高速化技術の様な複数ビツトにまたがつてい
るセルを使用してはいない。このことにより、実
現が容易でかつチツプ面積の使用効率が良好であ
る規則なレイアウトを持つ集積回路を作ることが
できる。
本発明の実施例である、条件付き桁上げ加算器
Bを第4図に示し、またその動作を示す
PASCAL風の言語で書かれたプログラムを表4
に示す。表4のプログラムはオペランド長がNビ
ツトの場合について示しており、またここで“2
〓〓j”は2jを表わす。
この実施例の構成は条件付き桁上げ加算器A
(第3A図及び第3B図)と類似しており、また
同様にして入力はCin0=1及びCin1=1と見な
され、桁上げ出力がそれに従つて演算される。[Table] Basically, in each block (for example, j = 0 ~
2) Two ripple carry outputs Cout0(i) and Cout1(i) are generated. Note that in the start cell of each block, carry inputs Cin0 and Cin1 are defined as "0" and "1", respectively. These two carry outputs Cout are the carry input Cin block input to the current block.
(j) generates the carry output Cout block (j) of the current block. In all blocks from j=0 to 2, those two carry chains (Cout0-Cin0 and Cout1-Cin1) are propagated one after another simultaneously. Block 0 first generates its carry output and propagates to block 1. Thereafter, only one gate delay is required for the carry to "jump over" each block. Therefore, in the conditional carry adder A, when the carry propagation delay time is minimized, the block size, that is, the bit length, increases in an arithmetic progression (that is, 2, 3, 3, etc.) as the block number j increases. 4, . . . ), the total delay time increases approximately in proportion to the square root of the bit length of the operand. Therefore, conditional carry adder A can achieve a 25% performance improvement compared to the carry lookahead adder by increasing the number of elements per bit by only 17%, as shown in Table 2. Similarly, conditional carry adder A is composed of 1-bit cells,
It does not use cells that span multiple bits like other high-speed technologies. This makes it possible to create an integrated circuit with a regular layout that is easy to implement and uses chip area efficiently. FIG. 4 shows a conditional carry adder B, which is an embodiment of the present invention, and shows its operation.
Table 4 shows programs written in a PASCAL-like language.
Shown below. The program in Table 4 shows the case where the operand length is N bits, and here “2
〓〓j'' represents 2 j . The configuration of this embodiment is a conditional carry adder A.
(FIGS. 3A and 3B) and similarly the inputs are considered as Cin0=1 and Cin1=1 and the carry outputs are calculated accordingly.
【表】
第4図に於て、各ステージは各ビツトから発生
される桁上げ出力Cout0(j,i)及びCout1(j,
i)を、そのビツトへの桁上げ入力がそれぞれ
“0”及び“1”であると仮定して発生する。但
し、“j”はステージ番号であり“i”はビツト
番号であるとする。この目的は、ビツトのブロツ
ク全体に対して下位から与えられる桁上げ入力が
それぞれ“0”及び“1”であるとして各ビツト
に対する桁上げ入力を発生するためである。連続
する各ステージはこの機能を実行するとともに、
またこのブロツク用の桁上げ出力Cout1及び
Cout0を発生する。
第4図のステージ4に示される様に、各ビツト
に対しての最終的な桁上げ入力(表4のCout0
(k,i)及びCout1(k,i))が発生された段
階で、加算器に対しての桁上げ入力Cinが各ビツ
トに対する正しい桁上げ入力(表4のCin(i+
1))を選択する。そしてこの選択された桁上げ
入力は適切なPビツトP(0)〜P(7)と排他的論
理和がとられ最終的な和D(0)〜D(7)が発生さ
れることを示している。
第4図から理解できるように、条件付き桁上げ
加算器Bと条件付き桁上げ加算器Aとの主要な違
いは次の様である。条件付き桁上げ加算器Bに於
ては、ブロツクの大きさは2の累乗で増加する、
すなわち等比数列的に増加するものであるが、条
件付き桁上げ加算器Aのブロツクの大きさは上記
した様に等差数列的に増加する。従つて条件付き
桁上げ加算器Bの全遅延時間は加算されるビツト
数の2を底とした対数に比例する。
条件付き桁上げ加算器A,Bの桁上げは増分器
やプライオリテイ・エンコーダのいずれを構成す
る場合でも適用することができる。増分器はNビ
ツトで表される数に1を加える回路であり、プラ
イオリテイ・エンコーダはNビツト入力中の最優
先(最上位)ビツトをコード化した出力を発生す
る(例えば8ビツト−3ビツト・エンコーダ又は
10ビツト−4ビツト・エンコーダ)ものである。
第5図に条件付き桁上げ加算器Bにおける桁上
げを用いた増分器を示した増分器においては加算
における第2の入力B(0)〜B(7)を使用しない
ので、これらをゼロにセツトすることができる。
このとき第4図のステージ0で発生されるK,
G,Pは以下の様になる。
K=A・B=0
G=A+B=A
P=AXOR=A
同様に、増分器を常にイネーブル状態にしたおく
場合には、Cin信号を“1”にセツトすることが
できる。この様にして、第4図に示した条件付き
桁上げ加算器Bから増分器としては論理的に冗長
なゲーウを全て除去することにより、第5図に示
した増分器を構成することができる。これと同様
の冗長ゲートの除去方法を用いて、第3A図の条
件付き桁上げ加算器Aを基に構成したものが第6
図に示した増分器である。第3A図及び第3B図
に示した加算器と同様に、第6図の継続セルは各
ブロツクに於て必要なだけ何回でも使用すること
ができる。
第7図は条件付き桁上げ加算器Bの高速桁上げ
方式を用いた8ビツト−3ビツト・プライオリテ
イ・エンコーダを示す図である。上記した増分器
と同様に、B(0)〜B(7)入力は“0”にセツト
されており、桁上げ信号は“1”にセツトされて
いる。このプライオリテイエンコーダに於ては、
桁上げ入力は「イネーブル」として示されてお
り、本プライオリテイエンコーダをイネーブル状
態にしておく都合上反転されている。(つまりイ
ネーブル端子は実際にはアースされて“0”が与
えられているのである)。各出力セルは3状態バ
ツフア30を備えており、対応するゲート40に
よりイネーブルとされる。最初の4行に論理素子
により、8ビツト入力A(7)〜A(10)のうち、“1”
となつている最上位ビツトに対応するバツフア3
0のみがイネーブルされることが保証されてい
る。各出力セルの各3状態バツフア30への入力
は各演算子入力のビツト番号に対応する適切に2
進重み付けされた信号を結線されている。この様
に、各3状態がバツフア30は並列接続された3
個のバツフアで構成されており、3ビツト出力の
3本のエンコード出力線を形成している。各3状
態バツフア30のイネーブル時の出力の設定は、
A(0)桁は0,0,0に、A(1)桁は0,0,1
に、等々、A(7)桁の1,1,1に至る迄セツトさ
れている。そして各3状態バツフアへの3ビツト
入力のうち最下位の入力に対応する8個のバツフ
ア(各桁から1つずつ)の出力は共通接続されエ
ンコード(0)出力を形成し、中間重み付けされ
た(すなわち重み2)入力に対応する8個のバツ
フア(各桁から1つずつ)は共通接続されエンコ
ーダ(1)出力を形成し、そして最上位入力に対応す
る8個のバツフア(各桁から1つずつ)は共通接
続されエンコード(2)出力を形成している。そして
これら3本のエンコード・ラインは8ビツト−3
ビツト・エンコーダ機能を実行するための適切に
重み付けされた出力を供給し、適切にイネーブル
された3状態バツフア30は入力語中にある
“1”のうち最上位にあるもののビツト位置に対
応する所望の優先順位を示す数を供給する。上記
した増分器と同様にして、各ビツトに対して適切
な数の3状態バツフアを追加することに加えて、
冗長ゲート除去の技法により、第3A図に示した
条件付き桁上げ加算器Aを基に第8図に示したプ
ライオリテイ・エンコーダを構成することができ
る。この場合にも、第8図に示した継続セルは各
ブロツクに於て必要に応じて何回も使用できる。
[発明の効果]
以上詳細に説明したように、本発明によれば、
比較的少ないゲート量で高速の加算回路を実現す
ることができる。[Table] In Figure 4, each stage has carry outputs Cout0(j,i) and Cout1(j,i) generated from each bit.
i) is generated assuming that the carry inputs to that bit are "0" and "1" respectively. However, it is assumed that "j" is the stage number and "i" is the bit number. The purpose of this is to generate a carry input for each bit assuming that the carry inputs applied from the lower order to the entire block of bits are "0" and "1", respectively. Each successive stage performs this function and
Also, carry output Cout1 and
Generates Cout0. As shown in stage 4 of Figure 4, the final carry input for each bit (Cout0 in Table 4)
(k, i) and Cout1 (k, i)) are generated, the carry input Cin to the adder becomes the correct carry input for each bit (Cin (i+
1) Select). This selected carry input is then exclusive-ORed with the appropriate P bits P(0)-P(7) to generate the final sum D(0)-D(7). ing. As can be understood from FIG. 4, the main differences between conditional carry adder B and conditional carry adder A are as follows. In conditional carry adder B, the block size increases as a power of 2.
That is, it increases in a geometric progression, but the size of the block of the conditional carry adder A increases in an arithmetic progression as described above. Therefore, the total delay time of conditional carry adder B is proportional to the base 2 logarithm of the number of bits being added. The carry of conditional carry adders A and B can be applied to either an incrementer or a priority encoder. The incrementer is a circuit that adds 1 to the number represented by N bits, and the priority encoder generates an output that encodes the highest priority (most significant) bit in the N bit input (for example, 8 bits - 3 bits).・Encoder or
(10-bit to 4-bit encoder). Figure 5 shows an incrementer using carry in conditional carry adder B. In the incrementer, the second inputs B(0) to B(7) in addition are not used, so they are set to zero. can be set.
At this time, K generated at stage 0 in Fig. 4,
G and P are as follows. K=A.B=0 G=A+B=AP P=A XOR =A Similarly, if the incrementer is always enabled, the Cin signal can be set to "1". In this way, the incrementer shown in FIG. 5 can be constructed by removing all logically redundant gates as an incrementer from the conditional carry adder B shown in FIG. . Using a similar redundant gate removal method, the sixth one is constructed based on the conditional carry adder A in Figure 3A.
This is the incrementer shown in the figure. Similar to the adders shown in FIGS. 3A and 3B, the continuation cells of FIG. 6 can be used as many times as necessary in each block. FIG. 7 is a diagram showing an 8-bit to 3-bit priority encoder using the fast carry method of conditional carry adder B. Similar to the incrementer described above, the B(0) to B(7) inputs are set to "0" and the carry signal is set to "1". In this priority encoder,
The carry input is shown as "enabled" and has been inverted to keep the priority encoder enabled. (In other words, the enable terminal is actually grounded and given "0"). Each output cell includes a three-state buffer 30 and is enabled by a corresponding gate 40. Logic elements in the first four rows select “1” among the 8-bit inputs A(7) to A(10).
Buffer 3 corresponding to the most significant bit
Only 0 is guaranteed to be enabled. The inputs to each three-state buffer 30 of each output cell are appropriately two-stated, corresponding to the bit number of each operator input.
The hexadecimal weighted signal is wired. In this way, each buffer 30 has three states connected in parallel.
It consists of three buffers, forming three encode output lines with 3-bit output. The output settings when each 3-state buffer 30 is enabled are as follows:
A(0) digit is 0,0,0, A(1) digit is 0,0,1
, and so on, up to the A(7) digit, 1, 1, 1. Then, the outputs of the eight buffers (one from each digit) corresponding to the lowest 3-bit input to each 3-state buffer are connected in common to form an encoded (0) output, which is intermediately weighted. (i.e. weight 2) The 8 buffers (one from each digit) corresponding to the inputs are connected in common to form the encoder (1) output, and the 8 buffers (one from each digit) corresponding to the most significant input ) are commonly connected to form the encode (2) output. And these three encoded lines are 8 bits - 3
Providing a suitably weighted output to perform the bit encoder function, a suitably enabled three-state buffer 30 selects the desired bit position corresponding to the most significant 1 in the input word. Supplies a number indicating the priority. In addition to adding the appropriate number of three-state buffers for each bit, similar to the incrementer described above,
By redundant gate removal techniques, the priority encoder shown in FIG. 8 can be constructed based on the conditional carry adder A shown in FIG. 3A. In this case as well, the continuation cells shown in FIG. 8 can be used as many times as necessary in each block. [Effects of the Invention] As explained in detail above, according to the present invention,
A high-speed addition circuit can be realized with a relatively small number of gates.
第1図は従来技術に係るリツプル・アダーの1
ビツト分を示す図、第2図は従来技術に係る桁上
げ先見加算器を示す図、第3A図および第3B図
は高速桁上げを行なう加算回路を示す図、第4図
は本発明の実施例を示す図、第5図ないし第8図
は第3A図、第3B図および第4図の加算回路を
応用した増分器およびプライオリテイ・エンコー
ダを示す図である。
A,B……オペランド、D……和、Cin……桁
上げ入力、Cout……桁上げ出力。
Figure 1 shows one of the ripple adders according to the prior art.
FIG. 2 is a diagram showing a carry look-ahead adder according to the prior art, FIGS. 3A and 3B are diagrams showing an adder circuit that performs high-speed carry, and FIG. 4 is a diagram showing an implementation of the present invention. The exemplary diagrams, FIGS. 5 through 8, are diagrams showing an incrementer and priority encoder applying the adder circuits of FIGS. 3A, 3B, and 4. A, B...operand, D...sum, Cin...carry input, Cout...carry output.
Claims (1)
において、 下記の(A)ないし(C): (A) 複数の第1のセル手段を有する1つの入力
行:前記第1のセル手段の各々は前記2つのオ
ペランドからの桁の第1の対を受け入れて、複
数の第1の論理出力信号を後続の行中の隣接す
るセル手段に与える; (B) 複数の第2、第3、第4のセル手段を有する
複数の中間行: (B−1) 前記第2のセル手段は直前の行中
の隣接するセル手段からの論理出力信号の内
の選択されたものを自行中の隣接するセル手
段へ渡し、前記直前の行中の前記隣接するセ
ル手段からの論理出力信号の内の選択された
ものを後続の行中の隣接するセル手段へ渡
す; (B−2) 前記第3のセル手段は直前の行中
の隣接するセル手段からの論理出力信号の内
の選択されたものを後続の行中の隣接するセ
ル手段へ渡し、前記直前の行中の前記隣接す
るセル手段からの論理出力信号の内の選択さ
れたものと自行中の隣接するセル手段からの
前記論理出力信号の内の選択されたものを組
み合わせて、第1の桁上げの出力信号の対を
後続の行中の隣接するセル手段に与える; (B−3) 前記第4のセル手段は直前の行中
の隣接するセルからの論理出力信号の内の選
択されたものを後続の行中の隣接するセル手
段へ渡す; (C) 複数の第5のセル手段を有する1つの出力
行:前記第5のセル手段は先行する行中の隣接
するセル手段からの選択された論理出力信号と
第2の桁上げの入力信号とを組み合わせて最終
的な合計された桁出力を生成する; を設け、 前記複数の中間行は前記入力行と前記出力行と
の間に結合され、 1番目の中間行においては、前記第2、第3、
及び第4のセル手段の内の選択されたものがRポ
ジシヨン毎に繰り返されるように配置されてお
り、 前記1番目の中間行に結合された2番目の中間
行においては、前記第2、第3、及び第4のセル
手段の内の選択されたものがSポジシヨン毎に繰
り返されるように配置されており、 前記2番目の中間行に結合された3番目の中間
行においては、前記第2、第3、及び第4のセル
手段の内の選択されたものがTポジシヨン毎に繰
り返されるように配置されており、 前記繰り返しの長さ(R,S,T)は中間行の
番号が1つ大きくなる毎に2倍になる幾何数列を
形成する ことを特徴とする加算回路。[Claims] 1. In an adder circuit for adding two N-digit operands, the following (A) to (C): (A) One input row having a plurality of first cell means: the first (B) each of the cell means accepts a first pair of digits from said two operands and provides a plurality of first logic output signals to adjacent cell means in a subsequent row; (B) a plurality of second , third and fourth cell means: (B-1) said second cell means receives selected ones of the logic output signals from adjacent cell means in the immediately preceding row; (B-2) passing to an adjacent cell means in the own row, and passing a selected one of the logic output signals from the adjacent cell means in the immediately preceding row to the adjacent cell means in the subsequent row; ) said third cell means passes selected ones of the logic output signals from adjacent cell means in said immediately preceding row to said adjacent cell means in said immediately preceding row; a pair of output signals of a first carry; (B-3) said fourth cell means transmits selected ones of the logic output signals from adjacent cells in the immediately preceding row to adjacent cell means in the subsequent row; (C) one output row having a plurality of fifth cell means: said fifth cell means transmits selected logic output signals from adjacent cell means in the preceding row; a second carry input signal to produce a final summed digit output; the plurality of intermediate rows being coupled between the input row and the output row; In the middle row, the second, third,
and a selected one of the fourth cell means are arranged to be repeated for each R position, and in a second intermediate row connected to the first intermediate row, the second and fourth cell means 3, and selected ones of the fourth cell means are arranged to be repeated every S position, and in the third intermediate row connected to the second intermediate row, the second , the third, and the fourth cell means are arranged to be repeated every T positions, and said repetition length (R, S, T) is such that the intermediate row number is 1. An adder circuit that forms a geometric sequence that doubles every time the number increases.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US41080782A | 1982-08-23 | 1982-08-23 | |
US410807 | 1982-08-23 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15400083A Division JPS5957343A (en) | 1982-08-23 | 1983-08-23 | High speed carrying system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03228122A JPH03228122A (en) | 1991-10-09 |
JPH0467211B2 true JPH0467211B2 (en) | 1992-10-27 |
Family
ID=23626312
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15400083A Granted JPS5957343A (en) | 1982-08-23 | 1983-08-23 | High speed carrying system |
JP2341186A Granted JPH03228122A (en) | 1982-08-23 | 1990-11-30 | Addition circuit |
JP2341188A Granted JPH03229321A (en) | 1982-08-23 | 1990-11-30 | Priority encoder |
JP2341184A Granted JPH03228120A (en) | 1982-08-23 | 1990-11-30 | Incremental apparatus |
JP2341187A Granted JPH03229320A (en) | 1982-08-23 | 1990-11-30 | Incremental circuit |
JP2341185A Granted JPH03228121A (en) | 1982-08-23 | 1990-11-30 | Priority encoder |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15400083A Granted JPS5957343A (en) | 1982-08-23 | 1983-08-23 | High speed carrying system |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2341188A Granted JPH03229321A (en) | 1982-08-23 | 1990-11-30 | Priority encoder |
JP2341184A Granted JPH03228120A (en) | 1982-08-23 | 1990-11-30 | Incremental apparatus |
JP2341187A Granted JPH03229320A (en) | 1982-08-23 | 1990-11-30 | Incremental circuit |
JP2341185A Granted JPH03228121A (en) | 1982-08-23 | 1990-11-30 | Priority encoder |
Country Status (3)
Country | Link |
---|---|
JP (6) | JPS5957343A (en) |
DE (1) | DE3326388A1 (en) |
GB (3) | GB2127187B (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6055438A (en) * | 1983-09-05 | 1985-03-30 | Matsushita Electric Ind Co Ltd | Two-input adder |
JPS6275840A (en) * | 1985-09-30 | 1987-04-07 | Toshiba Corp | Carry selecting adder |
DE58909280D1 (en) * | 1988-07-29 | 1995-07-13 | Siemens Ag | Carry select adders. |
US4956802A (en) * | 1988-12-14 | 1990-09-11 | Sun Microsystems, Inc. | Method and apparatus for a parallel carry generation adder |
US5136539A (en) * | 1988-12-16 | 1992-08-04 | Intel Corporation | Adder with intermediate carry circuit |
JPH0651950A (en) * | 1992-07-30 | 1994-02-25 | Mitsubishi Electric Corp | Adder circuit |
US6527748B1 (en) | 1998-08-17 | 2003-03-04 | Yutaka Suzuki | Method of gastrostomy, and an infection preventive cover, kit or catheter kit, and a gastrostomy catheter kit |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3078337A (en) * | 1958-12-17 | 1963-02-19 | Skiatron Elect & Tele | Metering systems |
US3138703A (en) * | 1959-12-29 | 1964-06-23 | Ibm | Full adder |
DE1231311B (en) * | 1964-11-17 | 1966-12-29 | Siemens Ag | Circuit arrangement for converting information, in particular for time division multiplex telephone exchange systems |
US3316393A (en) * | 1965-03-25 | 1967-04-25 | Honeywell Inc | Conditional sum and/or carry adder |
GB1143886A (en) * | 1966-10-13 | |||
GB1391175A (en) * | 1971-08-04 | 1975-04-16 | Cambridge Consultants Lttd | Electrical circuit means for use in acoustic emission detecting and or recording apparatus |
GB1479939A (en) * | 1973-09-25 | 1977-07-13 | Siemens Ag | Programme-controlled data switching systems |
JPS537349B2 (en) * | 1974-03-27 | 1978-03-16 | ||
JPS5446224U (en) * | 1977-09-07 | 1979-03-30 | ||
EP0052157A1 (en) * | 1980-11-15 | 1982-05-26 | Deutsche ITT Industries GmbH | Binary MOS carry look ahead parallel adder |
-
1983
- 1983-03-07 GB GB08306208A patent/GB2127187B/en not_active Expired
- 1983-03-07 GB GB08330888A patent/GB2130771B/en not_active Expired
- 1983-07-22 DE DE19833326388 patent/DE3326388A1/en active Granted
- 1983-08-23 JP JP15400083A patent/JPS5957343A/en active Granted
- 1983-11-18 GB GB08330889A patent/GB2130774B/en not_active Expired
-
1990
- 1990-11-30 JP JP2341186A patent/JPH03228122A/en active Granted
- 1990-11-30 JP JP2341188A patent/JPH03229321A/en active Granted
- 1990-11-30 JP JP2341184A patent/JPH03228120A/en active Granted
- 1990-11-30 JP JP2341187A patent/JPH03229320A/en active Granted
- 1990-11-30 JP JP2341185A patent/JPH03228121A/en active Granted
Also Published As
Publication number | Publication date |
---|---|
JPH0366693B2 (en) | 1991-10-18 |
JPS5957343A (en) | 1984-04-02 |
DE3326388A1 (en) | 1984-02-23 |
JPH03228121A (en) | 1991-10-09 |
JPH03229320A (en) | 1991-10-11 |
GB8330889D0 (en) | 1983-12-29 |
JPH0450615B2 (en) | 1992-08-14 |
GB2130771A (en) | 1984-06-06 |
GB2127187A (en) | 1984-04-04 |
DE3326388C2 (en) | 1993-04-01 |
GB8306208D0 (en) | 1983-04-13 |
JPH0467213B2 (en) | 1992-10-27 |
JPH03228122A (en) | 1991-10-09 |
GB8330888D0 (en) | 1983-12-29 |
JPH0467212B2 (en) | 1992-10-27 |
GB2130771B (en) | 1986-02-12 |
GB2130774B (en) | 1986-02-12 |
JPH0450614B2 (en) | 1992-08-14 |
JPH03228120A (en) | 1991-10-09 |
GB2127187B (en) | 1986-03-05 |
GB2130774A (en) | 1984-06-06 |
JPH03229321A (en) | 1991-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4623982A (en) | Conditional carry techniques for digital processors | |
JP3244506B2 (en) | Small multiplier | |
JPH0479013B2 (en) | ||
US6301600B1 (en) | Method and apparatus for dynamic partitionable saturating adder/subtractor | |
JPH0456339B2 (en) | ||
JPH03116326A (en) | High speed parallel multiplier circuit | |
EP0849663B1 (en) | Conditional sum adder using pass-transistor logic | |
JP3556950B2 (en) | Structure and method for reducing the number of carry look-ahead adder stages in high speed arithmetic devices | |
JPH0467211B2 (en) | ||
JPH02293929A (en) | Method and apparatus for digital system multiplication | |
US20040010536A1 (en) | Apparatus for multiplication of data in two's complement and unsigned magnitude formats | |
US7024445B2 (en) | Method and apparatus for use in booth-encoded multiplication | |
US3842250A (en) | Circuit for implementing rounding in add/subtract logic networks | |
JPH0552530B2 (en) | ||
Ykuntam et al. | Design of 32-bit carry select adder with reduced area | |
Li et al. | A high-speed 32-bit signed/unsigned pipelined multiplier | |
JPH01304542A (en) | Parity forecasting circuit | |
JP3741280B2 (en) | Carry look-ahead circuit and addition circuit using the same | |
JPS6261120A (en) | Carry selection adder | |
US6519620B1 (en) | Saturation select apparatus and method therefor | |
JP2608600B2 (en) | Apparatus for calculating parity bit of sum of two numbers | |
JP2002014804A (en) | Ternary digital circuit | |
Veeramachaneni | Design of efficient VLSI arithmetic circuits | |
JPH09185493A (en) | Integrated circuit for adder | |
US6272514B1 (en) | Method and apparatus for interruption of carry propagation on partition boundaries |