Fast adder chain

Abstract: A fast adder chain, of a type intended for adding together at least one pair of digital words (X,Y) and comprising a plurality of cascaded adder blocks, has in each block (2) computation means (HA,FA) for obtaining the pseudosum of said pair of digital words (X,Y) and means (10,11) for storing and transmitting the pseudosum (SOMi) to the next block and the pseudocarry (Ci) from the computation to the chain end.

Description: This invention relates to a fast adder chain. More particularly, the invention concerns an adder chain being operative to add together a plurality N of digital words of n bits, N being an integer greater than 2, and comprising a plurality of adder blocks in cascade arrangement including an initial adder block receiving the first two digital words and a final adder block presenting the sum of all the words. As is well known, adder chains are used in a variety of circuit arrangements designed to meet a range of different applicational demands. A typical example of their usability is related to FIR (Finite Impulse Response) filters, wherein the adders are adapted to implement part of the transfer function which is characteristic of the filter. A number of proposals have been known in the art which are directed to provide adder chains. Such prior proposals are beset, however, with a common drawback in that they are all quite slow in yielding the result of the sum operation. A first prior art solution is disclosed in the IBM Technical Disclosure Bulletin Vol 17, no. 1, June 1974, at pages 118-119 which relates to a high-speed accumulator for minimizing the carry delay time by using three input full adders and an arrangement for carry propagation. This solution may be useful to add a limited number of words because with an increasing number of words to be added a lot of time is lost in the carry propagation into the output stage. Another prior art solution is disclosed in the IEEE International Symposium on Circuits and Systems, 1-3 May 1990 vo. 2, pages 982-986, which relates to a "Carry-Save Arithmetic for high-speed digital signal processing". This solution relates to a pipelining architecture including adder blocks and storing means to realize a pilined adder chain. However this structure is quite complex and is not organized in a manner efficient to add together a plurality of digital words. Some of these prior approaches have been described in detail in Joseph Cavanagh's "Digital Computer Arithmetics", published by McGraw-Hill. For completeness of discussion, briefly reviewed herein below are the most commonly adopted solutions to the problem of providing N-bit parallel adders for two's complement, fixed point numbers. A first adder is known as the Carry Look-Ahead type and effective to simultaneously input carries to each block at the location of each bit. The carries are generated from three count levels, whereas the sum is obtained from two levels. It follows that the maximum propagation delay will be equal to five clock impulses. However, the final carry requires a logic AND gate with N+1 inputs, which can only be implemented by a network of cascade-connnected gates. It can be appreciated that this involves additional delay in the signal propagation. Another adder, known as the Carry Select type, has a structure whereby the operands are divided into groups, and each group is implemented using the same logic as in the first adder above. This second adder is not so fast, and requires a highly complex circuitry. A third prior approach, referred to as the Carry By-Pass, tries to reduce the time required to generate the sum by speeding up the carry determining operation for the carry to be input to a given cell. For this purpose, an overriding step is provided for the carry to override one chain stage when either operand has already a logic value of one at said given location. While performing better than the previously described arrangement, the attainable rate is not a significantly fast one. A further typology of adders is that known in the art as Carry Save Adder or pseudoadder, and comprises a combinatorial network which, when input three numbers of N bits each, will output two more N-bit numbers referred to as the pseudosum and pseudocarry. This prior adder requires, however, a final stage to add the pseudosum and pseudocarry together, with the pseudocarry suitably shifted one position. In summary, all of the state-of-art proposals have the disadvantage of being quite slow in performing the sum operation despite the different forms in which they have been embodied. Further, they imply considerable circuit complexity. The underlying technical problem of this invention is to provide an adder chain which has such structural and functional characteristics as to allow the sum operation to be performed at a very fast rate, well beyond the limits of current like arrangements. A related European patent application No. 92830268 filed on the same day by the applicant proposes an alternative solution to the above technical problem with a different circuit structure comprising cascaded adder blocks. The solutive idea on which this invention stands is one of propagating the carry only once to the end of the adder chain. Based on this solutive idea, the technical problem is solved by an adder chain as defined in the characterizing portion of Claim 1. Other features and the advantages of an adder chain according to the invention will become apparent from the following detailed description of an embodiment thereof, given by way of non-limitative example with reference to the accompanying drawings. In the drawings: Figure 1 is a diagramatic representation of an adder chain embodying the invention; Figure 2 shows diagramatically a detail of a first adder or sum block in the chain of Figure 1; Figure 3 shows a diagramatic detail representation of a generic i-th adder or sum block in the chain of Figure 1; Figure 4 shows an embodiment of an elemental adder incorporated to the blocks in Figures 2 and 3; Figure 5 shows another embodiment of an elemental adder incorporated to the blocks in Figures 2 and 3; and Figure 6 is a diagramatic representation of an end block in the chain of Figure 1. With reference to the drawing views, generally and schematically shown at 1 is an adder chain embodying this invention. This chain 1 is particularly, though not solely, intended for incorporation to a digital filter of the FIR type, not shown because known per se. The chain 1 structure comprises a plurality of N adder or sum blocks 2 centrally therein, which correspond in number to the number of words to be added. Also provided are an initial block 4 and an end block 5 for computing and presenting the sum in explicit form. The initial block 4 is shown in Figure 2 to comprise at least n elemental adders HA of the so-called half-adder type, being each effective to perform the sum of two homolog digits (bits) of two digital words. In the exemplary embodiment under consideration, the words to be added are composed of n=8 bits each. The block 4 comprises n adders HA arranged in parallel, being each provided with two inputs for receiving the corresponding digital signals to the aforesaid digits to be added together. Each adder HA will therefore be input: on the one side, a digital signal Ai which corresponds to a bit of a first digital word X; and on the other side, a second digital signal Bi which corresponds to a digit of a second word Y to be added to the first. It is, of course, understood that the two digits will occupy the same position in their respective words X and Y. The second signal is picked up from a register, indicated at 3, which contains the word Y. The word X is instead utilized to allow a number of digital filters incorporating the inventive chain to be cascade connected to one another. Advantageously, the construction of each adder HA includes simple logic gates, as shown in Figure 4. A first gate 7 of the exclusive OR (XOR) type receives both inputs Ai and Bi, and outputs a result designated Si. Another logic gate of the negated AND (NAND) type receives, in turn, the inputs Ai and Bi, and outputs a result Ci through a negator 9. In essence, the simple circuit that embodies the adder HA will implement the following boolean logic equations: Si = Ai XOR Bi Ci = Ai AND Bi where Ai and Bi are the bits to be added together, and Si and Ci are the sum and carry, respectively, of the i-th operation. The construction of the initial block 4 also includes a plurality of latches 10. More specifically, these latches are of the master-slave type and are provided in the number of (2n-1). In fact, a latch 10 is provided after each output Si or Ci from the adders HA, excepting the output Cn-1 of the last adder in the block 4. The last-named output represents, in fact, the n-th carry and should be cleared to allow the carry to be shifted one place toward the most significant bits in order for the result to be correct. A similar set of 2n-1 memories 11, also of the master-slave type, is arranged after the previous latches 10. These memories 11 are dual selection latches activated by a control signal Ctro which can enable the signal to override a latch. The latches 11 are provided to realize linear phase symmetrical FIR filters. The latch 11 outputs have been designated SOMi and Ci in the drawing, according to whether they relate to the i-th bit of pseudosum or pseudocarry in the operation performed in block 4. The construction of the N blocks 2 laid centrally in the chain 1 will be next discussed in detail with specific reference to Figure 3. Each i-th block 2 is input, on the one side, a digital word Y of n bits picked up from memory 3, and on the other side, the digital output Z from the preceding adder block. This output Z will comprise 2n-1 bits. Each block 2 includes at least one adder HA of the half-adder type and a plurality of adders FA of the full-adder type; the latter are operative to add together two bits and one carry being input thereto. Shown in Figure 5 is an embodiment of a full adder FA implemented to the specifications of this invention. This adder FA comprises a first logic gate 12 of the exclusive OR (XOR) type which is input the digital signals corresponding to generic homolog bits Ai and Bi to be added together. The output of this first XOR gate is connected to an input of a second logic gate 12 of the XOR type which also receives the signal C i-1 corresponding to the carry of the sum operation performed on the immediately preceding position bits. The output of the second XOR gate constitutes the result Si of the sum operation on the above-mentioned three bits. The adder FA further comprises a first logic gate 13 of the negated AND (NAND) type which is input, in turn, the bits Ai and Bi. A second NAND gate 13 receives the output from the first XOR gate 12 and the carry signal C i-1 . The respective outputs from the first and second gates 13 are input to a third NAND gate 13 whose output represents the carry Ci from the i-th sum operation performed. In summary, the structure shown in Figure 5 will implement the following boolean logic equations: Si = Ai XOR Bi XOR C i-1 Ci = (Ai NAND Bi) NAND [(Ai XOR Bi) NAND C i-1 ] where C i-1 is the carry input to the adder FA. In a similar way to block 4, each block 2 includes pural latches 10 provided after each output of the adders HA or FA, excepting as far as the output of the carry Cn-1 related to the the last adder FA is concerned. Additional dual selection latches 11, controlled by a control signal Ctri, are cascade connected to the previously described latches, to serve functions that will be explained herein below. The structure of the end block 5 remains to be described which is to perform and present, on an output U, the explicit computation of the digital word sum. As shown in Figure 6, the block 5 basically comprises a plurality of latches 15 which are orderly arranged in cascade along parallel rows. There are n-1 rows. The first row only includes latches 15 and carries on its output the value SOMon of the least significant bit of the pseudosum computed in the last block of the 2 kind. The second and third rows include instead a half adder HA which is input the second pseudosum bit and the first pseudocarry bit. The two outputs of this half adder are connected to two respective latches 15, of which the first contains the second bit of the result of the sum operation to be carried over to the output U, and the second contains the second carry to be applied to a following adder of the FA or full-adder type. From here onwards, the block 5 has paired rows comprising a full adder FA whose position is shifted one place at each double row so as to be input the carry on the output of the FA adder directly preceding it. In summary, the carry is propagated one position at each clock pulse, and each bit of the final or partial sum and each carry are stored in the master-slave latches 15. The operation of the adder chain according to the invention will be next described. It will be obviously assumed that the scanning rate of the transactions which take place within the circuit is set by a clock signal. A major advantage of the invention is that the carry from an elemental sum operation, i.e. an operation performed on two bits only of the words to be added together, is propagated once to the end of the chain, ahead of the output. The internal logic of the adder blocks 2 uses the pseudosum SOMi and pseudocarry Ci for data. For example, if the binary number 101011 is to be added to a binary number 110000, then the result can be expressed by a pseudosum 011011 and an associated so-called pseudocarry 100000. The latter should be shifted one place toward the most significant encoding digits or bits. A generic i-th block 2 will, therefore, receive three words: the pseudosum SOMi, pseudocarry Ci, and output word from memory 3. The end block 5 will instead shift the pseudocarry one place toward the most significant bits of the pseudosum, in accordance with the circuit overall timing. The carry from each elemental summing operation performed on two bits is propagated at each clock pulse. Each bit in the partial sum and each carry will be stored in the master-slave latches 10 and 11. In some cases, particularly where the chain 1 is used in linear digital filters, the dual selection latches 11 may be overridden under control by the control signal Ctri. The chain 1 of this invention poses no operational rate problems because of the time required for an FA adder to complete the sum of two bits and the input carry being approximately 3-4 nsec; while the time required for a latch 10 to store the result of the operation is about 3 nsec. Accordingly, the overall delay will be 6-7 nsec, that is one half that required by current approaches. Thus, the adder chain of this invention has shown to be specially effective in operation at the highest rates anticipated for conventional digital filters. Furthermore, it can be implemented using very simple and highly reliable basic elements.

Claims: A fast adder chain being operative to add together a plurality N of digital words (X,Y,Z,...) of n bits, N being an integer greater than 2, and comprising a plurality of adder blocks (2) in cascade arrangement including an initial adder block (4) receiving the first two digital words (X, Y) and a final adder block (5) presenting the sum of all the words, characterized in that each adder block (4, 2), excluding the final adder block (5), includes n adders (HA,FA) arranged in parallel, each of said adders being provided with two inputs to receive corresponding digital signals of two digital words to be added together for obtaining a pseudosum signal (SOMi) and a pseudocarry (Ci) signal, and means (10,11) for storing and transmitting said pseudosum signals (SOMi) and said pseudocarry signals (Ci) to the next adder block (2), said final adder block (5) receiving as inputs said pseudosum and pseudocarry signals and comprising parallel rows of storing elements (15) cascade connected with at least one adder (HA, FA) therebetween, with the only exception of a first row, for propagating the pseudocarry signal one bit position at each clock pulse toward the end of the chain. An adder chain according to Claim 1, characterized in that each adder block (2) escluding the initial adder block (4) and the final adder block (5) includes at least one half-adder (HA) and a plurality of full-adders (FA). An adder chain according to Claim 3, characterized in that said initial adder block (4) has a number of half-adders (HA) at least equal to the number (n) of digits of the digital words (X,Y) to be added together. An adder chain according to Claim 3, characterized in that each half-adder (HA) includes a logic gate (7) of the exclusive OR type and a logic gate (8,9) of the AND type, both said gates being input digits (Ai,Bi) which occupy the same position in said digital words (X,Y). An adder chain according to Claim 4, characterized in that said AND gate is formed of a NAND gate (8) and a negator (9) connected in cascade. An adder chain according to Claim 2, characterized in that each full-adder (FA) in said plurality of adders comprises a pair of logic gates (12) of the exclusive OR type and three logic gates (13) of the negated AND type. An adder chain according to Claim 6, characterized in that said full-adder implements the following boolean logic equations: Si = Ai XOR Bi XOR C i-1 Ci = (Ai NAND Bi) NAND [(Ai XOR Bi) NAND C i-1 )] where Ai and Bi are the first logic gate (12,13) inputs, C i-1 is the carry input to the adder (FA), Si is a digit from the pseudosum, and Ci is a digit from the pseudocarry. An adder chain according to Claim 1, characterized in that said parallel rows are equal in number to the input bits. An adder chain according to Claim 1, characterized in that said end adder block (5) comprises at least one half-adder (HA) and a plurality of full-adders (FA).

Inventors: GOLLA CARLA, SALI MAURO, GOLLA, CARLA, SALI, MAURO
Applicants: SGS THOMSON MICROELECTRONICS, SGS-THOMSON MICROELECTRONICS S.R.L.
Application year: 1992
Main classification: G06F7
IPC codes: G06F7