Page 518 - DSP Integrated Circuits
P. 518

11.14 Distributed Arithmetic                                          503


        and












            By selecting the appropriate system (m = 0,1, -1 means a linear, circular, and
        hyperbolic coordinate system, respectively) and iteration mode, we obtain a vari-
        ety of computable functions, unmatched in terms of simplicity by any other unified
        algorithm. On the other hand, CORDIC belongs to the digit-by-digit algorithms
        with linear convergence and sequential behavior. This means that for W-bit preci-
        sion, approximately W iterations are needed. Equations (11.34) through (11.36)
        indicate that the main speed limiting factor is addition/subtraction. Further,
        the iterations given by Equations (11.34) through (11.36) do not guarantee that
        k m = 1— i.e., the final vector magnitude may be expanded or contracted (see
        Equations (11.40) through (11.45)). Scaling factor compensation is therefore
        required [41].



        11.14 DISTRIBUTED ARITHMETIC

        Most digital signal processing algorithms involve sum-of-products (inner products)
        of the type






            Typically, the coefficients a^ are fixed, but there are several common cases
        where both a and x are variable vectors, for example, computation of correlation,
        which require a serial/parallell or serial/serial multiplier. Distributed arithmetic is
        an efficient procedure for computing inner products between a fixed and a variable
        data vector. The basic principle is owed to Croisier et al. [11], and Peled and Liu
        [30] have independently presented a similar method.


        11.14.1 Distributed Arithmetic
        Consider the inner product in Equation (11.46). Coefficients, ai, i = 1,2,..., N, are
        assumed to be fixed. A two's-complement representation is used for both coeffi-
        cients and data. The data are scaled so that \Xi I < 1. The inner product can be
        rewritten
   513   514   515   516   517   518   519   520   521   522   523