Hi, I am Chris Lee. I have been studied atan2 cordic and want to design optical image stabilizer with FPGA board. I am beginner in cordic area. So I can't make proper verilog or VHDL code for fpga. Please help me to design atan2 cordic for fpga.
Posts: 14,118
Threads: 61
Joined: Oct 2014
CORDIC (Digit-by-Digit Method, Volder's Algorithm) (for DIgital Computer Rotation Coordination) is a simple and efficient algorithm for calculating hyperbolic and trigonometric functions. It is commonly used when there is no hardware multiplier available (for example, simple microcontrollers and FPGA), since the only operations it requires are addition, subtraction, bit shift and table search.
The atan2 function calculates the arc angle (y / x) of a given point by its Cartesian coordinates. It is widely used in digital signal processing to recover the phase of a signal. This article studies for this context the implementation of atan2 with inputs and outputs of fixed point. It compares the predominant CORDIC change-and-aggregate algorithm with two multiplier-based techniques. The first calculates the bivariant atan2 function as the composition of two univariate functions: reciprocal and arctangent, each evaluated using bipartite or polynomial approximation methods. The second technique directly uses degree 1 or 2 bivariate polynomial approximations. Each of these approaches requires a relevant reduction of the argument, which is also discussed. All algorithms are last bit of precision, and implemented with equal care in the open source framework FloPoCo.