Page 491 - DSP Integrated Circuits
P. 491

476                                           Chapter 11 Processing Elements


       array multipliers. Of these types, the array multiplier takes up the least amount of
        area, but it is also the slowest with a latency proportional to O(W^) where W^ is
        the word length of the operands. The parallel (tree-based) multipliers have laten-
        cies of O(log2(W^)), but they take up more area due to more irregular wiring.


        11.5.3 Shift-and-Add Multiplication
       A sequential multiplier is obtained by generating the bit-products row-wise. Con-
        sider the multiplication of two numbers, y = a • x. Using two's-complement repre-
        sentation we have







           The multiplication can be performed by generating the partial products (for
        example, rowwise) as illustrated in Figure 11.6. A shift-and-add multiplier is
        obtained by using only one bit-parallel adder and successively adding the partial
        products row or columnwise. Figure 11.7 shows the block diagram of a shift-and-
        add multiplier in which the partial products are implemented using a multiplexer
        instead of AND gates.
           Addition starts with the partial products corresponding to the LSB. If X{ = 0,
        zero is accumulated via the multiplexer, while if JCj = 1, then the partial product,
                                                                         g
       a • Xi, is accumulated. Starting with bit xyf d_i, the bit-products (a • ^w^-l) i  added
       to the initially cleared accumulator register and the sum is shifted one step to the
        right, which corresponds to division by 2.
                                                s
           Next, the row of bit-products (a • x\v d-2) *  added to the accumulator register.
       Upon reaching XQ, the bit-products (a • XQ) are subtracted from the value in the accu-
        mulator. In practice it is more common to add the bit-products (-a • XQ) instead.
                                                                 2
           A multiplication between two W^-bit numbers will require W^  AND operations
        and W^-l add and shift operations. The result will be a (Wd+W c—l)-bit number.
           Notice that division by 2, accomplished by shifting a two's-complement num-
       ber one step to the right, requires that the sign bit be copied. For example, (0.5)io =
        (1.100)2c- Shifting one step to the right and copying the sign bit gives (l.lW^c =
        (0.25)io-




















                      Figure 11.6 Sequential forming of partial bit-products
   486   487   488   489   490   491   492   493   494   495   496