Abstract:
A binary adder employs separate summing and carry circuitry within each digit to optimize the speed of operation of the adder. Carry bits of less significant digits are calculated independently of corresponding sum bits, thus allowing propagation of such carry bits to more significant digits before completion of the summation of the less significant digits.

Description:
BACKGROUND AND SUMMARY 
     The speed of a binary adder is limited, in part, by the speed at which any carry bit signal issued in the course of summing corresponding digits of the two binary numbers being added can be propagated through successive more significant digits of the adder. Prior art binary adders are disadvantageous in that the carry bit from a less significant digit within the adder cannot be propagated to the next more significant digit until a summation of the less significant digits has been completed. 
     Accordingly, it is the principal object of this invention to provide a binary adder having the capability of propagating any carry bit signal, calculated in the course of summing corresponding digits of the numbers being added, prior to the time the addition has been completed. 
     It is a further object of this invention to provide isolation between successive digits of the binary adder in order to prevent circuitry of more significant digits from affecting signals associated with less significant digits. 
     These objects are accomplished in accordance with the preferred embodiment of this invention by employing separate logic circuitry within each digit of the binary adder to determine the status of the output carry bit signal based solely on the status of bits from the corresponding digits of the numbers being added and the carry bit signal from the preceding less significant digit of the adder. The status of this output carry bit signal may be determined prior to the completion of the calculation of the sum of the corresponding digits of the numbers being added and the carry bit from the preceding less significant digit of the adder by means of this separate logic circuitry. Therefore, summation of more significant digits may be commenced by the binary adder prior to completion of the summation of less significant digits. 
     Interference with signals associated with less significant digits of the binary adder by circuitry associated with more significant digits is prevented by insertion of a logic inverter between the carry bit output of the less significant digit and the carry input of the succeeding more significant digit. This logic inverter causes the input carry signal for even digit positions to be complementary to the input signal for odd digit positions, and summing and carry circuitry within the even and odd digit positions of the adder is arranged accordingly. 
    
    
     DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a binary adder for summing two binary numbers. 
     FIG. 2 is a diagram of service logic circuitry for producing logic signals that control the carry and summing circuitry of FIG. 3. 
     FIG. 3 is a schematic diagram of carry and summing circuitry of representative successive even and odd digit positions of the binary adder of FIG. 1. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring now to FIG. 1, there is shown a block diagram of an adder for summing two binary numbers A and B. Any specific digit D i  of the adder produces a sum bit S i  and a carry bit C i  based on the state of the corresponding bits A i  and B i  of the binary numbers A and B to be summed and the input carry bit C i-1  from the preceding less significant digit D i-1 . Digit D o  is the least significant digit position of the binary adder, and digit D n-1  is the most significant digit position. The symbol &#34;n&#34; represents the number of binary digits in the adder. A digit D i  represents any arbitrary digit position in the binary adder. 
     The logic states of the sum bit S i  and the carry bit C i  for various states of the input bits A i , B i , and C i-1  are shown in Table I below. 
     
                       TABLE 1______________________________________INPUTS               OUTPUTSA.sub.i B.sub.i   C.sub.i-1  S.sub.i C.sub.i______________________________________0       0         0          0       00       0         1          1       00       1         0          1       00       1         1          0       11       0         0          1       01       0         1          0       11       1         0          0       11       1         1          1       1______________________________________ 
    
     As shown in Table I, if bits A 1  and B 1  are both zero, output carry bit C i  will be zero regardless of the state of input carry bit C i-1 . If bits A i  and B i  are both one, output carry bit C i  will be one regardless of the state of input carry bit C i-1 . If only one of the bits A i  and B i  is one, and the other bit is zero, output carry bit C i  will have the same logical value as input carry bit C i-1 . 
     If bits A i  and B i  are both zero, sum bit S i  will have the same value as input carry bit C i-1 . Also, if bits A i  and B i  are both one, sum bit S i  will have the same logical value as input carry bit C i-1 . Finally, if only one of the bits A i  and B i  is one, and the other bit is zero, sum bit S i  will be complementary to the logical value of input carry bit C i-1 . 
     These relationships may be expressed symbolically as follows: 
     
         1. If NOR.sub.i = 1, then C.sub.i = 0, where NOR.sub.i = A.sub.i + B.sub.i 
    
     
         2. If AND.sub.i = 1, then C.sub.i = 1, where AND.sub.i = A.sub.i .sup.. B.sub.i 
    
     
         3. If XOR.sub.i = 1, then C.sub.i = C.sub.i-1, where XOR.sub.i = A.sub.i .sup.. B.sub.i = A.sub.i .sup.. B.sub.i + A.sub.i .sup.. B.sub.i 
    
     
         4. If NOR.sub.i = 1, S.sub.i = C.sub.i-1 
    
     
         5. If AND.sub.i = 1, S.sub.i = C.sub.i-1 
    
     
         6. If XOR.sub.i = 1, S.sub.i = C.sub.i-1 
    
     These relationships are referred to hereinbelow as equations (1) through (6). The values of NOR i , AND i , and XOR i , defined in equations (1) - (3), for all combinations of A i  and B i  are given in Table 2below. 
     
                       TABLE 2______________________________________A.sub.i  B.sub.i  NOR.sub.i   AND.sub.i                                  XOR.sub.i______________________________________0       0         1           0        00       1         0           0        11       0         0           0        11       1         0           1        0______________________________________ 
    
     It may be seen that the logical relationships XOR i , AND i , and NOR i  are mutually exclusive: that is, only one of such relationships will have a logical value of one for any selected combination of bits A i  and B i . By defining the relationships between A i  and B i  in the above way, circuitry for implementing addition of two binary numbers A and B is simplified. This simplification is possible because the same logic signals, AND i , NOR i , and XOR i , may be employed in both the summing and carry circuitry for each digit. 
     Referring now to FIG. 2, there is shown service logic circuitry for receiving the bits A i  and B i  and for producing the logic signals corresponding to AND i , XOR i , and NOR i  in accordance with Table 2 above. 
     Bits A i  and B i  are supplied as inputs to an inverting OR gate 8 to produce the signal NOR i . Bits A i  and B i  are also inverted by two inverters 2 and 4, and then supplied to an inverting OR gate 6 to produce the signal AND i . (It can be shown by basic Boolean manipulations that A i  + B i  = AND i .) The signals AND i  and NOR i  are supplied as inputs to an inverting OR gate 10 to produce the signal XOR i . (Reference to Table 2 showsthat NOR i  + AND i  = XOR i .) 
     Referring now to FIG. 3, there is shown circuitry employing the logic signals produced by the service logic circuitry of FIG. 2 to implement the logical relationships of equations (1) through (6) above. While the circuitry of FIG. 3, described hereinbelow, comprises logic circuits which respond to signals from the separate service logic circuitry of FIG. 2, those persons skilled in the art will appreciate that logic circuits directly responsive to the logic levels of the bits A i  and B i  could also be employed within the circuitry for each digit to implement the logical relationships of equations (1) through (6) above. The service logic of FIG. 2 would then be eliminated, while the circuitry illustrated in FIG. 3 would become more complex. 
     Representative circuitry for an even digit position D i  and an odd digit position D i+1  are shown in FIG. 3. For reasons discussed hereinbelow, circuitry for an even digit position will have as its input from the previous less significant digit a signal representing the logical complement of the output carry bit of that prior digit. For example, the carry input to even digit position D i  is a signal C i-1  representing the complement of the output carry bit C i-1  of preceding odd digit position D i-1 . Circuitry for the even digit position D i  comprises a carry circuit 21, a summing circuit 29, and an inverter 26. Circuitry for the odd digit position D i+1  comprises a carry circuit 41, a summing circuir 49, and an inverter 46. 
     Carry circuit 21 for even digit position D i  operates as follows: 
     If NOR i  = 1, a transfer gate 22 is turned on, and a junction 23 is forced to the voltage level of a voltage supply 25, which represents a logical one. The inverter 26 inverts the logic level at junction 23 to produce the output carry signal C i  equal to logical zero. This operation implements equation (1). 
     If AND i  = 1, a transfer gate 24 is turned on, and junction 23 is forced to ground to produce a logical zero. The logic level at junction 23 is inverted by inverter 26 to produce an output carry bit C i  equal to logical one. This operation implements equation (2). 
     If XOR i  = 1, a transfer gate 20 is turned on, and junction 23 assumes the value of input signal C i-1 . Inverter 26 then produces output carry bit C i  equal to the logic value of carry bit C i-1 . This operation implements equation (3). 
     Carry circuit 41 for odd digit position D i+1  operates as follows: 
     If NOR i+1  = 1, a transfer gate 44 is turned on, and a junction 43 is forced to ground or logical zero. Output carry bit C i+1  is represented by the signal at junction 43. This operation implements equation (1) for digit D i+1 . 
     If AND i+1  = 1, a transfer gate 42 is turned on, and junction 43 is forced to the level of voltage supply 25, or logical one. This operation implements equation (2). 
     If XOR i+1  = 1, a transfer gate 40 is turned on, and junction 43 assumes the value of input carrybit C i . This operationimplements equation (3). 
     The signal appearing at junction 43 is inverted by the inverter 46 to produce an output signal C i+1  complementary to the logic level of the output carry bit for digit D i+1 . 
     The summing circuit 29 for even digit position D i  operates as follows: 
     If the signal NOR i  = 1, a transfer gate 32 is turned on, and a signal representing the input carry bit C i-1 , obtained by inverting the input signal C i-1  through an inverter 30, is coupled to a junction 35. Junction 35 represents the sum bit S i . This operation implements equation (4). 
     If AND i  = 1, a transfer gate 34 is turned on, and junction 35 assumes the logical value of input carry bit C i-1 . This operation implements equation (5). 
     If XOR i  = 1, a transfer gate 28 is turned on, and the input signal C i-1  appears at junction 35. This operation implements equation (6). An inverter 36 inverts the signal at junction 35 to provide electrical isolation and to produce an inverted sum bit signal S i . 
     The summing circuit 49 for odd digit position D i+1  operates as follows: 
     If NOR i+1  = 1, a transfer gate 48 is turned on, and the input carry bit signal C i  is connected to a junction 55 to produce a signal S i+1 . This operation implements equation (4) for digit D i+1 . 
     If AND i+1  = 1, a transfer gate 52 is turned on, and the input carry bit signal C i  is connected to junction 55 to produce the signal S i+1 . This operation implements equation (5). 
     If XOR i+1  = 1, a transfer gate 54 is turned on, and a signal C i , obtained by inverting the input carry bit signal C i  through an inverter 50, is applied to junction 55. This operation implements equation (6). The signal S i+1  at junction 55 is applied to an inverter 56 to produce an inverted sum bit signal S i+1 . 
     Any number of pairs of summing and carry circuits for even and odd digit positions may be linked together to create a binary adder of required length. The linkage is accomplished through inverters 26 and 46, which are employed to prevent loading of the signals at junctions 23 and 43, respectively, by circuitry for more significant digits. As illustrated in FIG. 3, the resulting inversion of the signals requires a rearrangement of the circuitry for alternate digits of the adder, but does not require additional components within each digit to process the inverted signals. Those persons skilled in the art will appreciate that, where loading is not a problem, inverters 26 and 46 may be deleted, and all digits of the adder may employ circuitry for odd digit positions, such as digit D i+1 , or for even digit positions, such as digit D i . In addition, inverters may be interposed between groups of odd digit position circuits and groups of even digit position circuits. This arrangement reduces the number of inverters required to construct a binary adder of required length, but still prevents excessive loading of circuitry associated with less significant digits of the binary adder. 
     Although the least significant digit D o  does not receive an input carry bit, the same summing and carry circuits as are employed in other even digit positions of the binary adder may be employed for digit D o . For use as digit D o , a voltage supply is connected at the carry input to the even digit position circuit so that an input signal C in  assumes a constant value of logical one. This corresponds to an input carry bit C in  to digit D o  that is a constant logical zero. Those persons skilled in the art will appreciate that input signal C in  also allows the binary adder to be used to increment a number by one. For example, to increment binary number A by one, binary number B is set to zero and the input signal C in  is set to logical zero to supply an input carry bit C in  equal to logical one to digit D o . The output of the binary adder is then the binary number A incremented by one.