Implementing the CORDIC algorithm without using Real Data Ty

J

Johnsy Joseph

Guest
Hello,

I am confused on an issue while trying to implement the CORDIC
algorithm. The values of cosine and sine functions are real numbers.
How do I implement such numbers without using the Real data type
because I want to have my design synthesizable? How do I do a work
around using the synthesizable data types like std_logic etc? Please
forgive me if my question is stupid.

Thanks for the help
Warm Regards
:) Sam
 
johnsy_podimala@hotmail.com (Johnsy Joseph) writes:
I am confused on an issue while trying to implement the CORDIC
algorithm. The values of cosine and sine functions are real numbers.
How do I implement such numbers without using the Real data type
because I want to have my design synthesizable?
For real inputs, the range of both the cosine and sin functions are
[-1, 1], or [0, 1] if you only need the first quadrant. Floating point
is obviously not necessary to represent that; just use a suitable
fixed-point number.

Similarly, even though the domain of cosine and sin are the entire
set of reals (or even complex), for many applications it is acceptable
to limit the domain to the range [0, 2*pi), which can also easily be
represented in fixed-point.

CORDIC can easily be used for angles in units other than radians, as
well. I usually use angles measured as a fraction of a unit circle,
e.g., radians/2*pi. I've heard various names proposed for such a
unit of angular measure, but nothing seems definitive.

around using the synthesizable data types like std_logic etc?
Use the unsigned type from ieee.numeric_std, and choose a width and
scale factor to get the precision you need.
 

Welcome to EDABoard.com

Sponsor

Back
Top