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

