Professional Documents
Culture Documents
+
+
=
= +
=
| |
| |
0 0 0 0
0 0 0 0
2
0
cos sin
cos sin
0
1 2
1, 0
1, otherwise
n n
n n
n
n
i
n
i
i
i
x A x z y z
y A y z x z
z
A
z
d
=
=
= +
=
= +
<
=
+
[
Vector Mode:
1
1
1
1
2
2
tan(2)
i
i i i i
i
i i i i
i
i i i
x x y d
y y x d
z z d
+
+
=
= +
=
( )
2 2
0 0
0
0
0
2
0
0
t a n 1
1 2
1, 0
1, o t h e r w i s e
n n
n
n
n
i
n
i
i
i
x A x y
y
y
z z
x
A
y
d
=
= +
=
= +
= +
+ <
[
Rotation Angle Limits
Rotation/Vector Algorithms Limited to 90
Due to Use of o = tan(2
0
) for First Iteration
Several Ways to Extend Range
Can use trig identities to covert the problem to one that is within
the domain of convergence
One Way is to Use Additional Rotation for Angles Outside Range
This Rotation is Initial 90 Rotation
( )
'
'
'
2
1, 0
1, otherwise
i
x d y
y d x
z z d
y
d
t
=
=
= +
+ <
CORDIC Uses
OPERATION MODE INITIALIZE DIRECTION
Sine, Cosine Rotation
x=1/A
n
, y=0, z=o
Reduce z to Zero
Polar to Rect. Rotation x=(1/A
n
)X
mag
, y=0, z=X
phase
Reduce z to Zero
General Rotation Rotation
x=(1/A
n
)x
0
, y=(1/A
n
)y
0
, z=o
Reduce z to Zero
Arctangent Vector x=(1/A
n
)x
0
, y=(1/A
n
)y
0
, z=0 Reduce y to Zero
Vector Magnitude Vector x=(1/A
n
)x
0
, y=(1/A
n
)y
0
, z=0 Reduce y to Zero
Rect. to Polar Vector x=(1/A
n
)x
0
, y=(1/A
n
)y
0
, z=0 Reduce y to Zero
Arcsine, Arccosine Vector x=(1/A
n
), y=0,
arg=sino or coso
Reduce y to Value
in arg Register
Can Use CORDIC For Others Also:
Linear Functions
Hyperbolic Functions
Square Rooting
Logarithms, Exponentials
Iterative CORDIC Structure*
*Taken from A Survey of CORDIC Algorithms for FPGA
Based Computers, R. Andraka, FPGA98
Bit-serial CORDIC Structure*
*Taken from A Survey of CORDIC Algorithms for FPGA
Based Computers, R. Andraka, FPGA98