XC886/888CLM
CORDIC Coprocessor
User’s Manual
11-1
V1.3, 2010-02
CORDIC Coprocessor, V 1.2.1
11
CORDIC Coprocessor
The CORDIC algorithm is a useful convergence method for computing trigonometric,
linear, hyperbolic and related functions. It allows performance of vector rotation not only
in the Euclidian plane, but also in the Linear and Hyperbolic planes.
The CORDIC algorithm is an iterative process where truncation errors are inherent.
Higher accuracy is achieved in the CORDIC Coprocessor with 16 iterations per
calculation and kernel data width of at least 20 bits. The main advantage of using this
algorithm is the low hardware costs involved compared to other complex algorithms.
The generalized CORDIC algorithm has the following CORDIC equations. The factor m
controls the vector rotation and selects the set of angles for the circular, linear and
hyperbolic function:
x
i+1
=
x
i
-
m
·
d
i
·
y
i
· 2
-i
(11.1)
y
i+1
=
y
i
+
d
i
·
x
i
· 2
-i
(11.2)
z
i+1
=
z
i
-
d
i
·
e
i
(11.3)
where
m
= 1 Circular function (basic CORDIC) with
e
i
= atan(2
-i
)
m
= 0 Linear function with
e
i
= 2
-i
m
= -1 Hyperbolic function with
e
i
= atanh(2
-i
)
For clarity, the document uses the following terms for referencing CORDIC data:
•
Result Data: Final result data at the end of CORDIC calculation (Bit BSY no longer
active).
•
Calculated Data: Intermediate or last data resulting from CORDIC iterations.
•
Initial Data: Data used for the very first CORDIC iteration, is usually user-initialized
data.
*