Abstract:
A high speed full adder circuit is shown to include logic circuitry responsive to the levels of the two digital signals to be added for: (a) immediately producing an appropriate carry signal when the levels of the digital signals are the same; and (b) inverting the carry signal into such adder when the levels of the digital signals differ.

Description:
This application is a continuation of application Ser. No. 073,292 filed July 10, 1987, now abandoned, which is a continuation of application Ser. No. 648,930 filed Sept. 10, 1984, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     This invention pertains in general to large scale integrated (LSI) circuits and in particular to binary adders used in such circuits. 
     As is known, a binary adder is one of the basic building blocks of a digital computer, so the speed at which a binary adder may be operated directly affects the speed of a digital computer. It is of particular importance that the speed of a binary adder be maximized for use in LSI circuits. A relatively high speed full adder using the well-known CMOS technology, as described in an article entitled &#34;LSI&#39;s for Digital Signal Processing&#34; by N. Ohwada, T. Kimura and M. Doken, IEEE Journal of Solid-State Circuits, Vol. SC-14, No. 2, April 1979, pp. 214-220, incorporates an exclusive-OR type adder in combination with transfer gates. The addition of the transfer gates increases the speed of operation significantly as compared to a conventional full adder using only exclusive-OR gates. Unfortunately, however, there is a logic delay associated with developing the requisite carry output signal. That is to say, the transfer gates that develop carry output signals are controlled by either A⊕B or  ○A  ⊕B logic signals (where A and B are the signals to be added) so the delay inherent in developing either one of such logic signals limits the speed of operation. 
     SUMMARY OF THE INVENTION 
     With the foregoing background of the invention in mind, it is an object of this invention to provide an LSI full adder wherein the status of the A and B input signals directly determines the carry output signal. 
     It is another object of this invention to provide complementary pairs of full adder cells that may be directly connected to reduce delay to a minimum. 
     The foregoing and other objects of this invention are generally attained by interconnecting a first adder cell having A, B and C IN  inputs and a sum output and an inverse carry output with a complementary full adder cell having A, B and C IN  inputs and an inverse sum output and a carry output. In both adder cells, serially connected pairs of p-channel and n-channel field effect transistors (FETS) are used to generate the carry output signals in response to the status of the A, B and B input signals. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a more complete understanding of this invention, reference is now made to the following description of the accompanying drawings, wherein: 
     FIG. 1 is a schematic diagram of a full adder cell according to this invention; 
     FIG. 2 is a schematic diagram of a complementary adder to that of FIG. 1 that is provided to correctly maintain the polarity of the carry signal in an array; and 
     FIG. 3 is a sketch illustrating how the adders of FIGS. 1 and 2 may be combined in an array. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Before referring to the drawings, it will be noted that the invention would preferably be implemented using the known LSI technique commonly called CMOS. That is to say, the circuits (shown in block form in the drawings to illustrate the logic underlying this invention) would ordinarily be formed on a common substrate using CMOS elements. 
     Referring now to FIG. 1, a full adder 10 according to this invention here is shown to receive A, B and C IN  (carry in) inputs and to provide S (sum) and C OUT  (inverse carry-out) outputs. The truth table for the full adder 10 is presented in Table 1. 
     
                       TABLE 1______________________________________A          .sup.--B            C.sub.IN     S   .sup.--C.sub.OUT______________________________________0          1     0            0   10          1     1            1   10          0     0            1   10          0     1            0   01          1     0            1   11          1     1            0   01          0     0            0   01          0     1            1   0______________________________________ 
    
     From the foregoing truth table it will be apparent to one of skill in the art that the following Boolean equations obtain: 
     
         S=(A⊕B) C+(A⊕B) C 
    
     
         Eq. (1) 
    
     
         S=(A⊕B) C+(A⊕B) C 
    
     
         Eq. (2) 
    
     
         C.sub.OUT =(A⊕B) C+(A.B) 
    
     
         Eq. (3) 
    
     
         C.sub.OUT =(A⊕B) C+(A.B) 
    
     
         Eq. (4) 
    
     The A input signal is shown to be applied to: (a) the input terminal of an inverter 11, (b) the input terminal of a transmission gate T 1 , and (c) the gate terminals of a p-channel FET, P 1 , and an n-channel FET, N 2 . The B input signal is applied to: (a) the input terminal of an inverter 13, (b) the n-channel terminal of the transmission gate T 1 , and (c) the p-channel terminal of a transmission gate T 2 . The B signal on the output of the inverter 13 is applied to (a) the p-channel terminal of the transmission gate T 1 , (b) the n-channel terminal of the transmission gate T 2 , and (c) the gate terminals of a p-channel FET, P 2 , and an n-channel FET, N 1 . 
     Digressing briefly here now for a moment, it will be appreciated by those of skill in the art that a transmission gate represents a manner of connecting MOS transistors that is unique to CMOS logic. In general, the transmission gate is effective to pass the signals appearing at the input terminal of the device to the output terminal of the device when the n-channel gate terminal is at the logic &#34;1&#34; level and the p-channel gate terminal is at the logic &#34;0&#34; level. Conversely, when the n-channel terminal is at the logic &#34;0&#34; level and the p-channel terminal is at the logic &#34;1&#34; level, the transmission gate is in its OFF condition (i.e., there will be no transmission through the device). 
     From the foregoing it should now be appreciated that inverters 11 and 13 and transmission gates T 1  and T 2  are effective to create the A⊕B signal and an inverter 15 is effective to create the A⊕B signal. The A⊕B signal is applied to: (a) the n-channel gate terminals of transmission gates T 3  and T 5 , and (b) the p-channel gate terminal of transmission gate T 4 . The A⊕B signal is applied to: (a) the n-channel gate terminal of transmission gate T 4 , and (b) the p-channel gate terminals of transmission gates T 3  and T 5 . The carry in, C IN , signal is applied: (a) via an inverter 17, to the input terminal (not numbered) of the transmission gate T 3 , (b) to the input terminal of transmission gate T 4 , and (c) via an inverter 19, to the input terminal of the transmission gate T 5 . 
     The sum (S) output is generated by the inverter 17 and the transmission gate T 3  or the transmission gate T 4 . Thus, S is a logic &#34;1&#34; when (A⊕B) is a logic &#34;1&#34; and the carry in (C IN ) is a logic &#34;0&#34; (i.e. transmission gate T 3  operative) or when (A⊕B) is a logic &#34;0&#34; and C IN  is a logic &#34;1&#34; (i.e. transmission gate T 4  operative). 
     The inverse carry-out, C OUT , is a logic &#34;1&#34; when both A and B inputs are a logic &#34;0&#34; (this condition is referred to as the &#34;carry/generate&#34; mode). Conversely, the inverse carry-out, C OUT , is a logic &#34;0&#34; if both A and B inputs are a logic &#34;1&#34; (this condition is referred to as the &#34;carry/kill&#34; mode). The p-channel FETs P 1  and P 2  that are gated by the A and B inputs, respectively, generate the inverse carry-out, C OUT ) in the &#34;carry generate&#34; mode by connecting a voltage source V to C OUT , and the n-channel FET&#39;s N 1  and N 2 , gated respectively by the B and A inputs, are effective to generate the inverse carry out, C OUT , in the &#34;carry kill&#34; mode by connecting C OUT  to ground. When the (A⊕B) signal is a logic &#34;1&#34; the inverse carry-out, C OUT , is the inverse of C.sub. IN (this condition is referred to as the &#34;carry/propagate&#34; mode). In this mode the inverter 19 inverts the C IN  signal and passes such signal through the transmission gate T 5  (activated by means of the (A⊕B) signal applied to the n-channel gate terminal of such gate) to C OUT  . 
     It should be noted here that there is a logic delay associated with the generation of the inverse carry-out, C OUT  only in the &#34;carry/propagate&#34; mode. That is to say, the inverse carry-out, C OUT , signal in both the &#34;carry/generate&#34; and the &#34;carry/kill&#34; modes is immediately generated, depending on the status of the A and B input signals, while in the &#34;carry propagate&#34; mode the C OUT  signal is not generated until the (A⊕B) signal is formed to actuate the transmission gate T 5 . 
     Referring now to FIG. 2, a full adder 20 that is the complement of the full adder 10 (FIG. 1) is shown to receive A, B and C IN  input signals and to provide inverse sum (S) and carry-out (C OUT  ) output signals. The full adder 20 was developed in order to correctly maintain the polarity of the carry signal in an array of such adders Thus, the full adder 10 (FIG. 1) provides an inverse carry-out, C OUT , output signal and receives a C IN  input signal, while the full adder 20 receives an inverse carry, C IN , signal and develops a carry-out, C OUT , output signal. 
     The full adder 20 operates in a similar manner to the full adder 10 (FIG. 1). As mentioned above, the inputs to the full adder are A, B and C IN  and the outputs are Sum and C OUT . Inverters 21, 23 and 25 and transmission gates T 1  and T 2  form the (A⊕B) and the (A⊕B) signals. It should be noted here that the full adder 10 (FIG. 1) has a B input, whereas the full adder 20 has a B input. The connections to the transmission gates T 1  and T 2  are reversed from those shown in FIG. 1 in the full adder 20 to handle the polarity change. The full adder 20 uses the A⊕B signal and its complement to generate a Sum output through inverter 27 and transmission gates T 3  and T 4 , and a C OUT  output signal through inverter 29 and transmission gate T 5 . As discussed above, the carry signals are formed by FETS P 1 , P 2 , N 1 , N 2  except that the FETS P 1 , P 2  and N 1 , N 2  are gated by A and B signals rather than A and B signals in order to maintain the proper polarity of the C OUT  signal. 
     Referring now to both FIGS. 1 and 2, it should be noted that the generation or killing of the CARRY signal directly at the CARRY output node offers speed advantages over prior art adder cells. That is to say, while the Sum output and the C OUT  output in the carry propagate mode (i.e., when the C OUT  signal is developed in transmission gate T 5 ) are both generated in approximately 2.5 gate delays, the C OUT  signal in the &#34;carry kill&#34; and &#34;carry generate&#34; modes is generated significantly faster. Further, utilizing the adders 10 and 20 in tandem while alternating the carry output, C OUT , signal, results in a reduction of the carry propagation delay by one gate delay per pair. 
     Referring now to FIG. 3, the manner in which the adders 10 (FIG. 1) and 20 (FIG. 2) are combined to form an array of such devices is illustrated. Adders 10 1  and 10 2  are shown to receive A 1  and B 1  input signals from a bank of registers (not shown). Adder 20 1  (the complement of adder 10 1 ) is shown to receive A 2  and B 2  inputs from the registers (not shown) and the C IN  input is the inverse carry-out, C OUT  from adder 10 1 . Adder 20 2  (the complement of adder 20 2 ) receives an A 2  input from the registers (not shown), the B input is the Sum output from adder 10 1 , and the C IN  input is the inverse carry-out, C OUT , output from adder 10 2 . Adder 10 3  receives A 3  and B 3  inputs from the registers (not shown) and the C IN  input is the carry-out, C OUT , output of adder 20 1 . Adder 10 4  receives an A 3  input from the registers (not shown), the B input is the inverse sum, S, output from adder 20 1 , and the C IN  input is the carry-out, C OUT , output from adder 20 2 . 
     Finally, it should be noted that because of the desire to maintain symmetry between the complementary adders 10 (FIG. 1) and 20 (FIG. 2), the adder 10 (FIG. 1) requires an inverse B or B input. The requirement for such an input is not deemed to limit the utility of that device because the input signals to such adder cells are generally obtained from registers, from which both non-inverted and inverted outputs are available. 
     Having described a preferred embodiment of the invention, it will now be apparent to one of skill in the art that other embodiments incorporating its concept may be used. It is felt, therefore, that this invention should not be restricted to the disclosed embodiment, but rather should be limited only by the spirit and scope of the appended claims.