Download presentation
Presentation is loading. Please wait.
Published bySherman Carr Modified over 9 years ago
1
CORDIC Algorithm COordinate Rotation DIgital Computer Method for Elementary Function Evaluation (e.g., sin(z), cos(z), tan -1 (y)) Originally Used for Real-time Navigation (Volder 1956) Idea is to Rotate a Vector in Cartesion Plane by Some Angle Complexity Comparable to Division
2
Rotations in the Plane (1,0) (0.707,0.707) (cos45°, sin45°) x y 45° 0.707
3
Rotations in the Plane-Simplifications Factoring the term cos from the above Equations: Restrict the Rotation Angles Such that: Above Multiplication is Reduced to a Simple Shift!!
4
Iterations Over Angles Arbitrary Angles Obtained After Series of Smaller Rotations (increasing i values) At Each Iteration Rotate Up or Rotate Down Possible Rotation Angles, e (i) = tan –1 2 -i (degrees):
5
Rotations in the Plane-Simplifications Restrict the Rotation Angles Such that: Substituting into Previous Equations:
6
Rotations in the Plane-Simplifications Using the Identity: Previous Equations: Are Further Simplified as:
7
Scaling Constant – CORDIC Gain Factor Gain Factor Becomes: This Value is Pre-computed for a Given i Value: Can Remove the K i Value and Apply Elsewhere in System Can Pre-scale (x, y) by A n
8
Angle Accumulator, z i Overall Rotation Angle Defined by Sequence of Iterations: Use Angle Accumulator to Keep Track of Rotations:
9
Binary Angular Measurement - BAM Angle Accumulator can Represent Angles as BAM Encode d i ={-1,+1} as Bit Values {0,1} Example: -1 Represented by 0 and +1 Represented by 1 LSb Represents d 0 Content z=01011 z=+45 +26.6 -14.0 +7.1 -3.6 =61.1 Can Simplify CORDIC Circuitry for Some Modes May Need BAM encode/decode – Can Use Lookup Table
10
CORDIC - Rotation Mode Input is Angle, – Initialized in Angle Accumulator Vector Initialized to Lie on x-axis Each Iteration d i Chosen by Sign of Angle Attempt to Bring Angle to Zero Result is x Register Contains ~cos Result is y Register Contains ~sin Also Polar to Rectangular if x Register Initialized to Magnitude
11
CORDIC - Vector Mode Input is (Pre-scaled) Vector in (x,y) Registers Angle, – Initialized to Zero Each Iteration d i Chosen to Move Vector to Lie Along Positive x-axis (Want to Reduce y Register to Zero) Result is Original Vector Angle in Angle Accumulator Can be Used for sin -1 and cos -1 Also Rectangular to Polar Conversion Magnitude in x Register
12
CORDIC – Rotation/Vector Modes Rotation Mode: Vector Mode:
13
Rotation Angle Limits Rotation/Vector Algorithms Limited to 90 Due to Use of =tan(2 0 ) for First Iteration Several Ways to Extend Range One Way is to Use Additional Rotation for Angles Outside Range This Rotation is Initial 90 Rotation
14
CORDIC Uses Can Use CORDIC For Others Also: – Linear Functions – Hyperbolic Functions – Square Rooting – Logarithms, Exponentials
15
CORDIC Hardware
16
Iterative CORDIC Structure* *Taken from “A Survey of CORDIC Algorithms for FPGA Based Computers”, R. Andraka, FPGA’98
17
Bit-serial CORDIC Structure* *Taken from “A Survey of CORDIC Algorithms for FPGA Based Computers”, R. Andraka, FPGA’98
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.