Sine/Cosine using
Sine/Cosine using
CORDIC Algorithm
CORDIC Algorithm
Prof. Kris
Prof. Kris
Gaj
Gaj
Gaurav Doshi,
Gaurav Doshi,
Hiren
Hiren
Shah
Shah
Outlines
Outlines
Introduction
Introduction
Basic Idea
Basic Idea
CORDIC Principles
CORDIC Principles
Hardware Implementation
Hardware Implementation
FPGA & ASIC Results
FPGA & ASIC Results
Conclusion
Conclusion
Introduction
Introduction
CORDIC (
CORDIC (
COordinate
COordinate
Rotation
Rotation
DIgital
DIgital
Computer)
Computer)
Introduced in 1959 by Jack E.
Introduced in 1959 by Jack E.
Volder
Volder
Efficient to compute sin,
Efficient to compute sin,
cos
cos
, tan,
, tan,
sinh
sinh
,
,
cosh
cosh
,
,
tanh
tanh
Its an Hardware Efficient Algorithm
Its an Hardware Efficient Algorithm
Iterative Algorithm for Circular Rotation
Iterative Algorithm for Circular Rotation
No Multiplication
No Multiplication
Delay/Hardware cost comparable to
Delay/Hardware cost comparable to
division or square rooting.
division or square rooting.
Why CORDIC ?
How to evaluate trigonometric functions?
How to evaluate trigonometric functions?
•
•
Table lookup
Table lookup
•
•
Polynomial approximations
Polynomial approximations
•
•
CORDIC
CORDIC
Compared to other approaches, CORDIC is
a clear winner when :
•
•
Hardware Multiplier is unavailable (
Hardware Multiplier is unavailable (
eg
eg
. microcontroller)
. microcontroller)
•
•
You want to save the gates required to implement
You want to save the gates required to implement
(
(
eg
eg
. FPGA)
. FPGA)
Basic Ideas
Basic Ideas
Embedding of elementary function
Embedding of elementary function
evaluation as a generalized rotation
evaluation as a generalized rotation
operation.
operation.
Decompose rotation operation into
Decompose rotation operation into
successive basic rotations.
successive basic rotations.
Each basic rotation can be realized
Each basic rotation can be realized
with shift
with shift
-
-
and
and
-
-
add arithmetic
add arithmetic
operations.
operations.