Page 378 - Engineering Digital Design
P. 378

8.5 MULTIPLE-NUMBER ADDITION AND THE CARRY-SAVE ADDER                349


                  Fig. 8.12. In fact, the nature of the adder stage to be cascaded in CLA form is immaterial
                  as long as the MSB module of each stage has G and P outputs to be connected to the CGP
                  network. In any case combining R-C and CLA technologies reduces hardware requirements
                  but, of course, does so at the expense of increasing path delay.





                  8.5 MULTIPLE-NUMBER ADDITION AND THE CARRY-SAVE ADDER

                  To add more than two binary numbers by the "conventional" methods discussed in Sections
                  8.3 and 8.4 requires that the addition process be carried out in stages, meaning that k
                  operands are added in k — 1 two-operand additions, each addition (following the first) being
                  that of the accumulated sum with a operand. This staged addition operation is relatively
                  slow since carries are propagated in each stage. However, addition of binary numbers is
                  not limited to two number addition stages. Actually, many binary numbers can be added
                  together in ways that reduces the total addition time. One way to accomplish this is to use a
                  type of "fast" adder called an iterative carry-save (ICS) adder. The algorithm for iterative
                  CS addition of more than two operands is stated as follows:

                        Algorithm 8.1: Sum S=*A + B + C + £> + £---by Carry-Save Method
                   (l)Setmtegers A=*A n _iA n -2-
                      Ci C 0, etc.
                           Q
                   (2) Sum S  = A + R + C = Sj_,'Sj_ 2 • • • S?Sj exclusive of all carries-out CJ .
                           l                   l                               2
                   (3) Sum S  = 5° + D + C] = S,J_  { S n_ 2 • • • S\ S^ exclusive of all carries-out C 0 , but with
                      carries Cj shifted left by one bit,
                           2
                                                         s
                                l
                   (4) Sum S  = S  + M -f Cj^ S^S*^ ' ' ' tf l exclusive of all carries Cl but with
                      carries C^ shifted left by one bit,
                   (5) Continue process until last integer has been added and only two resultant operands
                                       !
                      remain: pseudosuin S  and final CS carries C' '.
                   (6) End with final sum S = S' + C' = S nS n-i - • • SiS 0 by using either R-C or CLA
                      addition,
                    The carry-save process described in Algorithm 8.1 applies to m integer operands and
                  involves m — 2 CS additions resulting in two operands: a pseudosum S' and the final CS
                  carries C'. The final step (step 6 in Algorithm 8.1) adds the two operands S' and C' by using
                  either a R-C adder or a CLA adder. The CS process (steps 1 through 5 in Algorithm 8.1)
                  avoids the ripple-carry problem of R-C adders, resulting in a savings of addition time. For
                  R-C adders of the type in Figs. 8.5 and 8.6, a time (m — l)t R- C would be required to add
                  m integer operands. However, for addition of m integer operands by the CS method, a time
                  (m — 2)t Cs + tR-c is required, which represents a significant savings of time for m > 3,
                  since tcs < tR-c for a given number of addition operations. If CLA addition is involved, the
                  time t R- C can be replaced by tciA with less savings in time between the two methods.
                    The iterative CS process just described in Algorithm 8. 1 is illustrated in Fig. 8. 15a where
                  four 4-bit integers, A, B, C, and D, are added. The ICS adder required for this process is
                  shown in Fig. 8.15b, where use is made of FAs, a HA, and either a R-C adder or a CLA
                  adder for the final sum operation.
   373   374   375   376   377   378   379   380   381   382   383