JPH03228121A - Priority encoder - Google Patents

Priority encoder

Info

Publication number
JPH03228121A
JPH03228121A JP2341185A JP34118590A JPH03228121A JP H03228121 A JPH03228121 A JP H03228121A JP 2341185 A JP2341185 A JP 2341185A JP 34118590 A JP34118590 A JP 34118590A JP H03228121 A JPH03228121 A JP H03228121A
Authority
JP
Japan
Prior art keywords
carry
adder
signal
block
input
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
Application number
JP2341185A
Other languages
Japanese (ja)
Other versions
JPH0450615B2 (en
Inventor
Frederick A Ware
フレデリック・エイ・ウエア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH03228121A publication Critical patent/JPH03228121A/en
Publication of JPH0450615B2 publication Critical patent/JPH0450615B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/74Selecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/5055Adding; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; 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/508Adding; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/506Indexing scheme relating to groups G06F7/506 - G06F7/508
    • G06F2207/50632-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)

Abstract

PURPOSE: To perform a high-speed operation with a relatively less gate amount by allowing an adder to have the serial connection constitution of cells for generating intermediate carry signals. CONSTITUTION: At a stage where final carry inputs Cout0 (k, i) and Cout1 (k, i) to respective bits are generated, a conditional carry adder selects the correct carry input to the respective bits for the carry input Cin to the adder. The selected carry input is exclusively ORed with appropriate P bits PR(0)-P(7) and final sums D(0)-D(7) are generated. Then, this priority encoder is constituted based on the conditional carry adder by the method of redundant gate elimination in addition to the addition of the appropriate number of tristage buffers to the respective bits. Thus, the high-speed operation is performed with the relatively less gate amount.

Description

【発明の詳細な説明】 本発明はデジタル加算器等における桁上げに関し、特に
比較的少ないゲート使用量で桁上げ伝搬遅延を大きく低
下させる高速桁上げ方式に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to carry in digital adders and the like, and particularly to a high-speed carry method that greatly reduces carry propagation delay with a relatively small amount of gate usage.

2つのNビットオペランドを加算してNビットの結果を
得ること(しばしば桁上げ伝搬加算と呼ばれる)はデジ
タル・プロセッサの基本的な演算である。この演算を実
行するために従来より種々の桁上げ方式が用いられてい
る。
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.

桁上げ伝搬加算を簡単に実行するにはいわゆるリップ/
l/ −7ダー(ripple adder )を用い
ればよい。リップル・アダーはビット当りのトランジス
タが比較的少なくてすむが、−船釣に比較的低速である
。リップル・アダーはこのように他の加算器の能力測定
の基準としてしばしば用いられる様な、基本的ではある
が、それだけに低速な加算器である。
To easily perform carry propagation addition, use the so-called rip/
A ripple adder may be used. Ripple adders require relatively few transistors per bit, but are relatively slow - for boat fishing. The ripple adder is thus a basic, yet slow, adder that is often used as a basis for measuring the performance of other adders.

第1図は代表的なリップル・アダー・セルを示す図であ
る。第1図において、A(i)及びB(巾ま加えられる
2つのオペランドのそれぞれのビットであり、C1n(
i)  は前段のリップル・アダー・セルからの桁上げ
入力であり、Cout (i )  はこのリップル・
アダー・セルからの桁上げ出力であり、またD(1)は
このリップル・アダー・セルの和である。
FIG. 1 is a diagram showing a typical ripple adder cell. In FIG. 1, A(i) and B(are the bits of each of the two operands being added, and C1n(
i) is the carry input from the previous ripple adder cell, and Cout (i) is this ripple adder cell.
This is the carry output from the adder cell, and D(1) is the sum of this ripple adder cell.

ある1つのリップル・アダー・セルの桁上げ出力は次段
のリップル・アダー・セルの桁上げ入力となる。表IK
PASCAL風の言語で書かれた、Nビット・リップル
・アダーの論理動作を説明するプログラムを示す。なお
、表1のプログラムにおいて「+」は論理和、「・」は
論理積、「XOR」は排他的論理和を示す。
The carry output of one ripple adder cell becomes the carry input of the next stage ripple adder cell. Table IK
A program written in a PASCAL-like language illustrates the logical operation of an N-bit ripple adder. In the program shown in Table 1, "+" indicates a logical sum, "." indicates a logical product, and "XOR" indicates an exclusive logical sum.

or 表       1 i=o  to N−I  DOBCGINK(i )
 = Ali ) + B(i )G(i)= A(i
)・B(1) P(i)= A(i) XORB(i)Cout(i)
 = G(i) + (K(i) −C1n(i−1)
=Cin (i + 1  ) D(ト)= P(i) XORC1n(i)nd リップル・アダーは桁上げ先見回路を付加することによ
り高速化することができる。桁上げ先見加算器を実現す
るために、リップル・アダー【11は、例えば4つのリ
ップル・アダー・セルから成るブロックで構成されてい
る。4つの高速加算器の各ブロックは、第2図に示すよ
うに、ゲートが付加されており、このゲートによりにビ
ット(すなわち、ORゲートK(i)の出力)が全て1
゛′の時、前段のブロックからの桁上げ出力がこのフロ
ックを素通りして次段のブロックに伝搬される。
or Table 1 i=o to N-I DOBCGINK(i)
= Ali ) + B(i)G(i) = A(i
)・B(1) P(i) = A(i) XORB(i) Cout(i)
= G(i) + (K(i) −C1n(i−1)
=Cin (i + 1) D(t)=P(i) XORC1n(i)nd The ripple adder can be made faster by adding a carry look ahead circuit. To implement a carry look-ahead adder, the ripple adder [11] is composed of a block of, for example, four ripple adder cells. Each block of the four high-speed adders has an additional gate, as shown in FIG.
When '', the carry output from the previous block passes through this block and is propagated to the next block.

桁上げ先見加算器は比較的高速であり、MO3回路で安
価に構成できる。
The carry look-ahead adder is relatively fast and can be constructed inexpensively with MO3 circuits.

他の方法として、1.R,E、 )ランザクションズ1
オン・エレクトロニック・コンピュータース(I 、 
R,E 、Transactions on Elec
tronic Computers )i1960年6
月号、第226頁に、スフランスキ〜(5klansk
y )氏により「条件付き和による加算論理」として発
表された条件付き相加算器がある。
As another method, 1. R, E, ) Transactions 1
On Electronic Computers (I,
R,E,Transactions on Elec
tronic Computers) i19606
Monthly issue, page 226, 5klansk
There is a conditional phase adder announced by Mr.

条件付き和加算は非常に高速で動作するのだが、上述の
比較的低速の加算に較べて非常に多くのロジックを必要
とする。その結果、条件付き和加算はビット当りの価格
が非常に高いものとなってしまう。事実、この方法は広
範囲には使用されていない。
Although conditional sum addition is very fast, 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 approaches were often too slow for new generations of computers, or were much more complex and expensive than expected.

本発明は上述の従来方式の欠点を除去し、高速かつ実現
容易な条件付き桁上げ加算用の高速桁上げ方式を提供す
ることを目的とする。
SUMMARY OF THE INVENTION It is an object of the present invention to eliminate the drawbacks of the above-mentioned conventional methods and to provide a high-speed carry method for conditional carry addition that is fast and easy to implement.

本発明を適用した加算器は中間桁上げ信号な発生するセ
ルの直列接続構成となっている。従ってこれら各ビット
対の中間桁上げ信号は連続する段を独立して次々と伝搬
して行くことができる。従って本発明によれば、公知例
と比較して全加算器の遅延時間を減少させることができ
ると共に、回路の複雑さを比較的低くおさえることがで
きる。
The adder to which the present invention is applied has a structure in which cells that generate intermediate carry signals are connected in series. 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.

本発明はまた増分器(incrementor )やプ
ライオリティ・エンコーダにも応用できる。これらの応
用例についても以下で説明する。
The invention can also be applied to incrementors and priority encoders. Examples of these applications are also discussed below.

本発明の高速桁上げ方式はセルの種類が比較的少なくて
すむので、任意長の加算器、増分器又はプライオリティ
・エンコーダを構成する場合には以下に図示する様に規
則的に容易に結合することができる。従って本発明によ
れば、絶対速度が速い回路を実現することが出来ると共
にバイポーラ又はMO8技術のいずれによりLSIを製
造した場合でも、設計上の複雑化を抑えて安価に構成す
ることができる。
Since the fast carry scheme of the present invention requires relatively few types of cells, they can be easily combined in a regular manner as shown below when constructing an adder, incrementer, or priority encoder of arbitrary length. be able to. Therefore, according to the present invention, it is possible to realize a circuit with a high absolute speed, and even if the LSI is manufactured using either bipolar or MO8 technology, it can be constructed at a low cost without complicating the design.

以下、図面によって本発明の詳細な説明する。Hereinafter, the present invention will be explained in detail with reference to the drawings.

以下では、条件付き桁上げ加算と呼ばれている桁上げ伝
搬加算を実行するために本発明の高速桁上げ方式を用い
た2つの加算器A、・Bを開示している。これら2つの
加算器A、Bの構成は両方とも加算器以外にも増分器や
プライオリティ・エンコーダにも適用できることが後述
する説明により理解できるだろう。表2に於て、公知の
方式と本発明を用いた条件付き桁上げ加算器との比較を
示した。表2に於て、加算器の速度は全加算を実行する
のに必要なゲート遅延段数によって示しである。表2に
示したデータは32ビツト加算器の場合である。
In the following, two adders A, B are disclosed that use the fast carry scheme of the present invention to perform carry propagation addition, referred to as conditional carry addition. 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, the speed of the adder is indicated by the number of gate delay stages required to perform the full addition. The data shown in Table 2 is for a 32-bit adder.

第3A図及び第3B図は本発明の第1実施例である条件
付き桁上げ加算器Aを示す図であり、表3は条件付き桁
上げ加算器Aに関連する論理式である。第3A図には3
種の異なるセルが示されている。それらはスタート・セ
ル、任意の数(Oでも良い)の継続セル、及びエンド・
セルである。
3A and 3B are diagrams showing a conditional carry adder A according to a first embodiment of the present invention, and Table 3 shows logical expressions related to the conditional carry adder A. Figure 3A shows 3
Cells of different species are shown. They are a start cell, an arbitrary number (may be O) of continuation cells, and an end cell.
It is a cell.

第3B図は、9ビツト加算器の場合のセル構成例を示す
図である。この実施例に於て、各ブロックは2〜4個の
1ビツト・セルを備えている。すなわちフロックOに2
つのセル、ブロックlK3つのセル、そしてブロック2
に4つのセルを備工ている。例えば、第2ブロツク(j
=1 )  は3つのセルを備えており、ビット番号2
はスタート・セル ビット番号3は継続(can t 
1nue )セル、そしテヒット番号4はエンド・セル
で、fiル。
FIG. 3B is a diagram showing an example of a cell configuration in the case of a 9-bit adder. In this embodiment, each block includes 2 to 4 1-bit cells. In other words, floc O has 2
1 cell, block 1K 3 cells, and block 2
Four cells are currently being constructed. For example, the second block (j
=1) has three cells, bit number 2
is the start cell Bit number 3 is the continuation (can t
1nue) cell, and the hit number 4 is the end cell, fil.

表 2 リップル・アダ 桁上げ先見加算器 条件付き相加算器 条件付き桁上げ加算善人 条件付き桁上げ加算器B 表 全加算器に対して: Cin ブロック(01= C団加算器各ブロック」に
対して: Cin 0(0) = 0 Cin 1(01= 1 Coutブ(77り(j) =Cout □ (ima
x)+(Cout 1 (i max)−Cinブロッ
ク())〕=C1nブロック(j+1) ブロック」の各ビット1に対して: K (11: A (i)+ B (i)G(i)=A
(il・B(1) P(it = A(i) XORB(i)Cout Cout 0(+) 1(i) G(i)+ (K(il ・Cin O(i) 〕=C
1nO(i+1) G(i)+(K(il ・Cin 1(i))= Ci
n l (i+I  ) C1n(i) = Cin 0(i)+ (Cin 1
 (i) ・C])(i)= P(i) XORC1n
(i)nブロック(J)〕 基本的に、各ブロックに於て(例えば」二〇〜2に於て
)2つのリップル桁上げ出力Cout Q(i)及びC
out 1(il  が発生される。各ブロックのスタ
ト・セルに於て桁上げ入力C1nQ及びC1n1はそれ
ぞれ0°°及び”l ”と定義されていることに注意さ
れたい。この2つの桁上げ出力Cout は現在のブロ
ックに入力された桁上げ入力Cinブロック(」)と結
合することにより現在のブロックの桁上げ出力Cout
  ブロック(」)を発生する。J=O〜2の全てのブ
ロックでそれらの2つの桁上げの連鎖(CoutO−C
in Q及びCoutl −Cin 1 )が同時に次
々と伝搬される。ブロック0は最初にその桁上げ出力を
発生し、そしてブロックlに伝搬す八その後、桁上げが
各ブロックを「飛び越す」ためにはゲート1段分の遅延
しか必要ない。よって、条件付き桁上げ加算器Aにおい
ては、桁上げ伝搬遅延時間を最小にした場合、ブロック
の大きさ、すなわちビット長は、ブロック番号jの増加
につれて等差数列的(すなわち23.4・・・・・・等
)に増加するから、全遅延時間はオペランドのビット長
の平方根にほぼ比例して増加する。
Table 2 Ripple adder carry look-ahead adder conditional phase adder conditional carry add good person conditional carry adder B For table full adder: For Cin block (01 = C group adder each block) Cin 0 (0) = 0 Cin 1 (01 = 1 Cout bu (77ri (j) = Cout □ (ima
x) + (Cout 1 (i max) - Cin block ())] = C1n block (j + 1) For each bit 1 of block: K (11: A (i) + B (i) G (i) =A
(il・B(1) P(it = A(i)
1nO(i+1) G(i)+(K(il ・Cin 1(i))=Ci
n l (i+I) C1n(i) = Cin 0(i)+ (Cin 1
(i) ・C]) (i) = P(i) XORC1n
(i) n block (J)] Basically, in each block (for example, in "20~2") two ripple carry outputs Cout Q(i) and C
out 1(il is generated. Note that in the start cell of each block, carry inputs C1nQ and C1n1 are defined as 0°° and "l", respectively. These two carry outputs Cout is the carry output Cout of the current block by combining with the carry input Cin block ('') input to the current block.
Generates a block (''). In every block of J=O~2, those two carry chains (CoutO−C
in Q and Coutl −Cin 1 ) are simultaneously propagated one after another. Block 0 first generates its carry output and propagates to block I. 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 as the block number j increases (i.e., 23.4... etc.), the total delay time increases approximately in proportion to the square root of the bit length of the operand.

従って条件付き桁上げ加算器Aは桁上げ先見加算器と比
較して、表2かられかる様にビット当りの素子を17%
増加するのみで25・%の性能の向上を得ることができ
る。同様に、条件付き桁上げ加算器Aは1ビツト・セル
によって構成されており、他の高速化技術の様な複数ビ
ットにまたがっているセルを使用してはいない。このこ
とKより、実現が容易でかつチップ面積の使用効率が良
好である規則なレイアウトを持つ集積回路を作ることが
できる。
Therefore, the conditional carry adder A has 17% more elements per bit than the carry lookahead adder, as seen from Table 2.
A 25% performance improvement can be obtained by simply increasing the number of pixels. Similarly, conditional carry adder A is constructed from 1-bit cells and does not use cells spanning multiple bits as in other high-speed techniques. Because of this K, it is possible to create an integrated circuit with a regular layout that is easy to implement and has good chip area usage efficiency.

本発明の高速桁上げ方式を用いた第2の実施例である、
条件付き桁上げ加算器Bを第4図に示し、またその動作
を示すPASCAL風の言語で書かれたプログラムを表
4に示す。表4のプログラムはオペランド長がNビット
の場合について示しており、またここで”2 * * 
j ”は2jを表わす。
A second embodiment using the high-speed carry method of the present invention,
Conditional carry adder B is shown in FIG. 4, and a program written in a PASCAL-like language illustrating its operation is shown in Table 4. The program in Table 4 shows the case where the operand length is N bits, and here "2 * *
j'' represents 2j.

この実施例の構成は条件付き桁上げ加算器A(第3A図
及び第3B図)と類似しており、また同様にして入力は
C1n0二1及びC1n1=1と見なされ、桁上げ出力
がそれに従って演算される。
The configuration of this embodiment is similar to conditional carry adder A (Figures 3A and 3B), and similarly the inputs are considered as C1n021 and C1n1 = 1, and the carry output is Calculated according to

表       4 For  i−Oto (N−1)  Do  BEG
INoout O(0,i )−Afil ・Bfil
 −GtilOoul 1 (0,i )= Afil
 + Bfil −K11lPfi+        
−Alil XORB+i)nd FOr j−1to LOG2N W−2本本。
Table 4 For i-Oto (N-1) Do BEG
INoout O(0,i)-Afil ・Bfil
−GtilOul 1 (0,i)=Afil
+ Bfil -K11lPfi+
-Alil XORB+i)nd FOR j-1to LOG2N W-2 books.

O EGIN For K −Oto  (N/W−1)LO−K”W Ll −(K”W−4−W/2 ) L2− (K”W+W) D。O EGIN For K-Oto (N/W-1) LO-K"W Ll - (K”W-4-W/2) L2- (K”W+W) D.

EOIN For コ −(LO) ro(Ll −1)D。EOIN For Ko - (LO) ro(Ll-1)D.

EOIN CoutO(j、  自 )−Cout0(j−1,1
)Coull(j、 1)−Oou口(j−1,i)n
d For −(L−1)Io (L2−1)Do  BEGINC
ou+ 0 (i。
EOIN CoutO(j, self)-Cout0(j-1,1
)Coull(j, 1)-Oou口(j-1,i)n
d For -(L-1)Io (L2-1)Do BEGINC
ou+0 (i.

0ou+ l (j。0ou + l (j.

i) −0ou+0(j−1,i)+(Coull (
j−1・Cout 0(j−L Lt −1) )i)
 −Cout O(i −1,i )+(Cout I
 (i−1゜−Coutl (j ’2. Lt −1
))I) ) nd C1n(01−Cin加算器 K −LOG2υ For  i  −OIo (N−1) DOBEGI
ND(息1−PfilXORO団(i+ C7n(i+1)−CoutO(K、I)+C0our
l(K。
i) -0ou+0(j-1,i)+(Coull (
j-1・Cout 0(j-L Lt-1) )i)
−Cout O(i −1,i )+(Cout I
(i-1゜-Coutl (j '2. Lt -1
)) I) ) nd C1n (01-Cin adder K -LOG2υ For i -OIo (N-1) DOBEGI
ND(breath 1-PfilXORO group(i+C7n(i+1)-CoutO(K,I)+C0our
l(K.

nd )・CIn加算司 Cout加算器−Cin(N) 第4図に於て、各ステージは各ビットから発生される桁
上げ出力Cout O(J T ’ )及びCoutl
 (j、 i )を、そのビットへの桁上げ入力がそれ
ぞれ”0”及び1”であると仮定して発生する。但し、
」°゛はステージ番号でありl゛′はビット番号である
とする。この目的lま、ビットのブロック全体に対して
下位から与えられる桁上げ入力がそれぞれ”0′°及び
”1 ”であるとして各ビットに対する桁上げ入力を発
生するためである。連続する各ステージはこの機能を実
行するとともに、またこのブロック用の桁上げ出力Co
ut 1及びCout Oを発生する。
nd)・CIn adder Cout adder-Cin(N) In FIG. 4, each stage has a carry output Cout O(J T ') and Coutl generated from each bit.
(j, i) is generated assuming that the carry inputs to that bit are “0” and 1, respectively. However,
'' is the stage number and l' 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. In addition to executing this function, the carry output Co for this block is
Generate ut 1 and Cout O.

第4図のステージ4に示される様K、各ビットに対して
の最終的な桁上げ入力(表4のCout □(k、i)
及びCoutl (k、 i ))が発生された段階で
、加算器に対しての桁上げ入力Cin が各ビットに対
する正しい桁上げ入力(表4のCin (i+1) )
な選択する。そしてこの選択された桁上げ入力は適切な
Pピットル(o)〜P(7)と排他的論理和かとられ最
終的な和D(0)〜D(7)が発生されることを示して
いる。
K, the final carry input for each bit (Cout □ (k, i) in Table 4, as shown in stage 4 of Figure 4)
and Coutl (k, i)), the carry input Cin to the adder is the correct carry input for each bit (Cin (i+1) in Table 4).
Choose. This selected carry input is then exclusive-OR'ed with the appropriate P pitle(o)-P(7) to generate the final sum D(0)-D(7). .

第4図から理解できるように、条件付き桁上げ加算器B
と条件付き桁上げ加算器Aとの主要な違いは次の様であ
る。条件付き桁上げ加算器Bに於ては、ブロックの大き
さは2の累乗で増加する、すなわち等比数列的に増加す
るものであるが、条件付き桁上げ加算器Aのブロックの
大きさは上記した様に等差数列的に増加する。従って条
件付き桁上げ加算器Bの全遅延時間は加算されるビット
数の2を底とした対数に比例する。
As can be understood from Fig. 4, conditional carry adder B
The main differences between the conditional carry adder A and the conditional carry adder A are as follows. In conditional carry adder B, the block size increases by a power of 2, that is, in a geometric progression, but the block size of conditional carry adder A is As mentioned above, it increases in an arithmetic progression. Therefore, the total delay time of conditional carry adder B is proportional to the base 2 logarithm of the number of bits to be added.

条件付き桁上げ加算器A、Bの桁上げは増分器やプライ
オリティ・エンコーダのいずれを構成する場合でも適用
することができる。増分器はNビットで表わされる数に
1を加える回路であり、プライオリティ・エンコーダは
Nビット入力中の最優先(最上位)ビットをコード化し
た出力を発生する(例えば8ピット−3ビツト・エンコ
ーダ又は10ビット−4ビツト・エンコーダ)ものであ
る。
The carry of the conditional carry adders A and B can be applied to either an incrementer or a priority encoder. An incrementer is a circuit that adds 1 to a number represented by N bits, and a priority encoder generates an output that encodes the highest priority (most significant) bit in an N-bit input (for example, an 8-bit to 3-bit encoder). or a 10-bit to 4-bit encoder).

第5図に条件付き桁上げ加算器BEおける桁上げを用い
た増分器を示した増分器においては加算器おける第2の
入力B(0)〜B(7)を使用しないので、これらをゼ
ロにセットすることができる。このとき第4図のステー
ジOで発生されるK 、G 、 Pは以下の様になる。
Figure 5 shows an incrementer using a carry in the conditional carry adder BE.In the incrementer, the second inputs B(0) to B(7) in the adder are not used, so they are set to zero. can be set to . At this time, K, G, and P generated at stage O in FIG. 4 are as follows.

K=A  B=O G=A+B=A P =A XORB =A 同様に、増分器を常にイネーブル状態にしておく場合に
は、Ci口倍信号l゛にセットすることができる。この
様にして、第4図に示した条件付き桁上げ加算器Bから
増分器としては論理的に冗長なゲーウを全て除去するこ
とにより、第5図に示した増分器を構成することができ
る。これと同様の冗長ゲートの除去方法を用いて、第3
A図の条件付き桁上げ加算器Aを基に構成したものが第
6図に示した増分器である。第3A図及び第3B図に示
した加算器と同様に、第6図の継続セルは各フロックに
於て必要なだけ何回でも使用することができる。
K=A B=OG G=A+B=A P =A 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 third
The incrementer shown in FIG. 6 is constructed based on the conditional carry adder A shown in FIG. 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.

第7図は条件付き桁上げ加算器Bの高速桁上げ方式を用
いた8ビット−3ビツト・プライオリテイ・エンコーダ
を示す図である。上記した増分器と同様に、B(0)〜
B(7)入力は0“にセットされており、桁上げ信号は
1°′にセットされている。
FIG. 7 is a diagram showing an 8-bit to 3-bit priority encoder using the high-speed carry method of conditional carry adder B. Similar to the incrementer described above, B(0) ~
The B(7) input is set to 0'' and the carry signal is set to 1°'.

この実施例に於ては 桁上げ入力は「イネーブル」とし
て示されており、本プライオリティエンコーダをイネー
ブル状態にしておく都合上反転されている。(つまりイ
ネーブル端子は実際にはアースされて”O“が与えられ
ているのである)。各出力セルは3状態バツフア30を
備えており、対応するゲート40によりイネーブルとさ
れる。最初の4行の論理素子により、8ビツト入力A(
7)〜AOωのうち、“1゛′となっている最上位ビッ
トに対応するバッファ30のみがイネーブルされること
が保証されている。各出力セルの各3状態バツフア30
への入力は各演算子入力のビット番号に対応する適切に
2進重み付けされた信号と結線されている。この様に、
各3状態バツフア30は並列接続された3個のバッファ
で構成されており、3ビツト出力の3本のエンコード出
力線を形成している。各3状態バツフア30のイネーブ
ル時の出力の設定は、A(0)桁は0,0.0に、A(
1)桁は0゜0.1に、等々、A(力桁の1.1.1に
至る迄セットされている。そして各3状態バツフアへの
3ビツト入力のうち最下位の入力に対応する8個のバッ
ファ(各桁から1つずつ)の出力は共通接続されエンコ
ード(0)出力を形成し、中間重み付けされた(すなわ
ち重み2)入力に対応する8個のバッファ(各桁から1
つずつ)は共通接続されエンコード(1)出力を形成し
、そして最上位入力に対応する8個のバッファ(各桁か
ら1つずつ)は共通接続されエンコード(2)出力を形
成している。そしてこれら3本のエンコード・ラインは
8ビット−3ピント・エンコーダ機能を実行するための
適切に重み付けされた出力を供給し、適切にイネーブル
望の優先順位を示す数を供給する。上記した増分器と同
様にして、各ビットに対して適切な数の3状態バツフア
を追加することに加えて、冗長ゲー友 ト除却の技法により、第3A図に示した条件付き桁上げ
加算器Aを基に第8図に示したプライオリティ・エンコ
ーダを構成することができる。この場合にも、第8図に
示した継続セルは各ブロックに於て必要に応じて何回も
使用できる。
In this embodiment, the carry input is shown as "enabled" and is inverted to keep the priority encoder enabled. (In other words, the enable terminal is actually grounded and given "O"). Each output cell includes a three-state buffer 30 and is enabled by a corresponding gate 40. The first four rows of logic elements allow the 8-bit input A (
7) It is guaranteed that only the buffer 30 corresponding to the most significant bit of "1" of ~AOω is enabled. Each 3-state buffer 30 of each output cell
The inputs to are wired with appropriately binary weighted signals corresponding to the bit numbers of each operator input. Like this,
Each three-state buffer 30 is composed of three buffers connected in parallel, forming three encode output lines with 3-bit output. The output settings when each three-state buffer 30 is enabled are as follows: A(0) digit is set to 0, 0.0, A(
1) The digits are set to 0°, 0.1, and so on, all the way to A (power digit 1.1.1) and correspond to the lowest of the 3-bit inputs to each 3-state buffer. The outputs of the eight buffers (one from each digit) are connected together to form the encoded (0) output, and the eight buffers (one from each digit) corresponding to the intermediate weighted (i.e. weight 2) inputs are connected together to form the encoded (0) output.
) are connected in common to form the encode(1) output, and the eight buffers (one from each digit) corresponding to the most significant inputs are connected in common to form the encode(2) output. These three encode lines then provide appropriately weighted outputs to perform the 8-bit to 3-pinto encoder function, and provide appropriately enabled priority numbers. In addition to adding the appropriate number of three-state buffers for each bit in a manner similar to the incrementer described above, redundant gate elimination techniques can be used to construct the conditional carry adder shown in Figure 3A. The priority encoder shown in FIG. 8 can be constructed based on A. In this case as well, the continuation cells shown in FIG. 8 can be used as many times as necessary in each block.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は従来技術にかかるリッフル・アダーの1ピント
分を示す回路図、第2図は従来技術にかかる桁上げ先見
加算器を示す回路図、第3A図は本発明の高速桁上げ方
式を用いた加算器を示す回路図、第3B図は第3A図の
加算器のビット長を拡張した場合の構成を例示するブロ
ック図、第4図は本発明の高速桁上げ方式を用いた別の
加算器を示す回路図、第5図及び第6図は本発明の高速
桁上げ方式を用いた増分器を示す回路図、第7図及び第
8図は本発明の高速桁上げ方式を用いたプライオリティ
・エンコーダを示す回路図であるっA、 B :オペラ
ンド、 D:和、 Cin:桁上げ入力、 Cout :桁上げ出力IG B 手 続 補 正 書 平成2年12月28日 ■。 事件の表示 に2 、3(1//と亡 平成2年11月30日付け提出の特許願(5)2゜ 発明の名称  プライオリティ・エンコーダ3゜ 補正をする者 事件との関係  特許出願人 住所  アメリカ合衆国カリフォルニア州パロアルトハ
ノーバー・ストリート 3000 名称  ヒユーレット・パラカード・カンパニ代表者 
ステイーブン・ピー・フォックス国籍  アメリカ合衆
国 4゜
FIG. 1 is a circuit diagram showing one pin point of a riffle adder according to the prior art, FIG. 2 is a circuit diagram showing a carry look-ahead adder according to the prior art, and FIG. 3A is a circuit diagram showing a high-speed carry method of the present invention. FIG. 3B is a block diagram illustrating the configuration of the adder shown in FIG. 3A when the bit length is expanded. FIG. 4 is a circuit diagram showing the adder used in this invention. A circuit diagram showing an adder, FIGS. 5 and 6 are circuit diagrams showing an incrementer using the high-speed carry method of the present invention, and FIGS. 7 and 8 are circuit diagrams showing an incrementer using the high-speed carry method of the present invention. This is a circuit diagram showing a priority encoder. A, B: Operand, D: Sum, Cin: Carry input, Cout: Carry output IGB Procedural amendment December 28, 1990■. Indication of the case 2, 3 (1// and the patent application filed on November 30, 1990 (5) 2゜Name of the invention Priority encoder 3゜Relationship with the case Patent applicant address 3000 Hanover Street, Palo Alto, California, U.S.A. Name: Hewlett-Paracard Company Representative
Steven Pea Fox Nationality United States 4°

Claims (1)

【特許請求の範囲】 複数のブロックを設け、N桁のオペランドを対象とする
プライオリティ・エンコーダにおいて、前記各ブロック
は下記の(A)及び(B);(A)当該ブロックを開始
/継続する複数のスタート/継続セル手段:前記スター
ト/継続セル手段の各々は下記の(A−1)ないし(A
−4)を有する; (A−1)前記オペランドからの第1の桁を受け入れて
第1の論理出力信号を与える第1入力手段; (A−2)前記第1入力手段からの第1の論理出力信号
と第1の桁上げ入力信号を組み合わせて、第1の桁上げ
出力信号を与える第1桁上げ手段; (A−3)第1のブロック・イネーブル信号を当該スタ
ート/継続セル手段を貫くように結合する第1ブロック
・イネーブル手段; (A−4)前記第1入力手段からの論理出力信号と、前
記第1のブロック・イネーブル信号と、前記第1の桁上
げ入力信号と、第1の2進重み付け信号とを組み合わせ
て、第1の複数のコード化された出力信号を与える第1
エンコーダ出力手段; (B)前記ブロックの各々を終了させるエンド・セル手
段;前記エンド・セル手段は下記の(B−1)ないし(
B−4)を有する; (B−1)前記オペランドからの第2の桁を受け入れて
、第2の論理出力信号を与える第2入力手段; (B−2)前記第2入力手段からの第2の論理出力信号
と先行するセル手段からの第2の桁上げ入力信号とを組
み合わせて、第2の桁上げ出力信号を与える第2桁上げ
手段; (B−3)前記第2の桁上げ出力信号を第2のブロック
・イネーブル信号と組み合わせて、最終のブロック・イ
ネーブル信号を与える第2ブロック・イネーブル手段; (B−4)前記第2入力手段からの論理出力信号と、前
記第2のブロック・イネーブル信号と、前記第2の桁上
げ入力信号と、第2の2進重み付け信号とを組み合わせ
て、第2の複数のコード化された出力信号を与える第2
エンコーダ出力手段; を設け、 前記複数のブロックは前記最終ブロック・イネーブル信
号と前記複数のコード化された出力信号のみによって直
列に接続され、 前記ブロックの各々は直列接続された可変個数のスター
ト/継続セル手段を有し、 前記直列接続された可変個数のスタート/継続セル手段
は前記第1の桁上げ出力信号と、前記第1のブロック・
イネーブル信号と、前記複数のコード化された出力信号
とによって互いに直列に接続され、 前記ブロックの各々の最後の前記スタート/継続セル手
段は、前記第1の桁上げ出力信号と、前記第1のブロッ
ク・イネーブル信号と、前記複数のコード化された出力
信号によって前記エンド・セル手段に直列に結合され、 前記直列に接続されている複数のブロック中の前記可変
個数のスタート/継続セル手段の個数は等差数列的に増
加する ことを特徴とするプライオリティ・エンコーダ。
[Claims] In a priority encoder that includes a plurality of blocks and targets N-digit operands, each block has the following (A) and (B); (A) a plurality of blocks that start/continue the block; Start/continuation cell means: Each of the start/continuation cell means includes the following (A-1) to (A-1).
-4); (A-1) first input means for accepting a first digit from said operand and providing a first logic output signal; (A-2) a first input means from said first input means; a first carry means that combines the logic output signal and the first carry input signal to provide a first carry output signal; (A-3) a first block enable signal to the start/continue cell means; (A-4) a logic output signal from said first input means, said first block enable signal, said first carry input signal; 1 binary weighted signal to provide a first plurality of coded output signals.
Encoder output means; (B) End cell means for terminating each of the blocks; The end cell means includes the following (B-1) or (
B-4); (B-1) second input means for accepting a second digit from said operand and providing a second logic output signal; (B-2) a second digit from said second input means; (B-3) a second carry means for combining the logic output signal of No. 2 and a second carry input signal from the preceding cell means to provide a second carry output signal; (B-3) said second carry; a second block enable means for combining the output signal with a second block enable signal to provide a final block enable signal; (B-4) a logic output signal from the second input means and a second block enable signal; A second block enable signal, said second carry input signal, and a second binary weighting signal are combined to provide a second plurality of coded output signals.
encoder output means; wherein the plurality of blocks are connected in series only by the final block enable signal and the plurality of encoded output signals, and each of the blocks has a variable number of serially connected start/continue signals. cell means, the variable number of serially connected start/continue cell means receiving the first carry output signal and the first block/continue cell means;
an enable signal and said plurality of encoded output signals connected in series with each other, said start/continue cell means at the end of each of said blocks receiving said first carry output signal and said plurality of coded output signals; serially coupled to said end cell means by a block enable signal and said plurality of coded output signals, said variable number of start/continue cell means in said plurality of serially connected blocks; is a priority encoder characterized by increasing in an arithmetic progression.
JP2341185A 1982-08-23 1990-11-30 Priority encoder Granted JPH03228121A (en)

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
JPH03228121A true JPH03228121A (en) 1991-10-09
JPH0450615B2 JPH0450615B2 (en) 1992-08-14

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
JP2341188A Granted JPH03229321A (en) 1982-08-23 1990-11-30 Priority encoder
JP2341185A Granted JPH03228121A (en) 1982-08-23 1990-11-30 Priority encoder
JP2341187A Granted JPH03229320A (en) 1982-08-23 1990-11-30 Incremental circuit
JP2341186A Granted JPH03228122A (en) 1982-08-23 1990-11-30 Addition circuit
JP2341184A Granted JPH03228120A (en) 1982-08-23 1990-11-30 Incremental apparatus

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP15400083A Granted JPS5957343A (en) 1982-08-23 1983-08-23 High speed carrying system
JP2341188A Granted JPH03229321A (en) 1982-08-23 1990-11-30 Priority encoder

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2341187A Granted JPH03229320A (en) 1982-08-23 1990-11-30 Incremental circuit
JP2341186A Granted JPH03228122A (en) 1982-08-23 1990-11-30 Addition circuit
JP2341184A Granted JPH03228120A (en) 1982-08-23 1990-11-30 Incremental apparatus

Country Status (3)

Country Link
JP (6) JPS5957343A (en)
DE (1) DE3326388A1 (en)
GB (3) GB2130771B (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
DE3326388C2 (en) 1993-04-01
JPH0467212B2 (en) 1992-10-27
JPH0467213B2 (en) 1992-10-27
JPH03228122A (en) 1991-10-09
JPH0450614B2 (en) 1992-08-14
JPH03229320A (en) 1991-10-11
GB2130771B (en) 1986-02-12
JPH0366693B2 (en) 1991-10-18
JPH03229321A (en) 1991-10-11
GB2130774B (en) 1986-02-12
JPS5957343A (en) 1984-04-02
GB2127187B (en) 1986-03-05
GB8330888D0 (en) 1983-12-29
GB8330889D0 (en) 1983-12-29
GB8306208D0 (en) 1983-04-13
GB2130771A (en) 1984-06-06
JPH0467211B2 (en) 1992-10-27
GB2127187A (en) 1984-04-04
JPH0450615B2 (en) 1992-08-14
JPH03228120A (en) 1991-10-09
GB2130774A (en) 1984-06-06
DE3326388A1 (en) 1984-02-23

Similar Documents

Publication Publication Date Title
US4623982A (en) Conditional carry techniques for digital processors
JP3244506B2 (en) Small multiplier
US6301600B1 (en) Method and apparatus for dynamic partitionable saturating adder/subtractor
US20200334014A1 (en) Parallel-prefix adder and method
JPH03228121A (en) Priority encoder
JPH06274317A (en) Multiplication circuit and dividion circuit
Gudala et al. Implementation of high speed and low power carry select adder with BEC
US3842250A (en) Circuit for implementing rounding in add/subtract logic networks
US20040010536A1 (en) Apparatus for multiplication of data in two's complement and unsigned magnitude formats
Ykuntam et al. Design of 32-bit carry select adder with reduced area
JPH0784760A (en) Self-checking complement adder unit
Edison et al. An efficient CSLA architecture for VLSI hardware implementation
US6484193B1 (en) Fully pipelined parallel multiplier with a fast clock cycle
Armand et al. Low power design of binary signed digit residue number system adder
US7277909B2 (en) High speed adder
JP3741280B2 (en) Carry look-ahead circuit and addition circuit using the same
JP2563473B2 (en) Binary calculator
JPH09185493A (en) Integrated circuit for adder
Deepthi et al. Performance Analysis of a 64-bit signed Multiplier with a Carry Select Adder Using VHDL
Veeramachaneni Design of efficient VLSI arithmetic circuits
US6272514B1 (en) Method and apparatus for interruption of carry propagation on partition boundaries
US6301597B1 (en) Method and apparatus for saturation in an N-NARY adder/subtractor
Reddy et al. An Area and Speed Efficient Square Root Carry Select Adder Using Optimized Logic Units
JP3199196B2 (en) 5-input adder
FAJOOLUNISSA et al. Design and Implementation of High Speed Carry Skip Adder