Implementing the CORDIC algorithm without using Real Data Type

J

Johnsy Joseph

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
 
E

Eric Smith

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.
 
B

Brian Drummond

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.

Heh. Points. There are 32 points around the unit circle.

- Brian
(N, N by W, WNW, NW by N, NW, NW by W, ... :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top