EmbDev.net

Forum: FPGA, VHDL & Verilog cordic sincos output usage


von Harsha G. (Company: panacea) (harshaep)


Rate this post
useful
not useful
Hi all,



I m using cordic ip core in spartan 6 device,futher im getting the 
correct outputs too, but facing problem in multiplying tat output to 
some number( like pwm ontime).



For Example



Input: Pin(phase): 0001100100011110



Output: cos(theta):Xout: 0010110101000111



Output: Sin(theta):Yout: 0010110100111011





from above example,



Phase in = 45 degrees or 0.785 in radians in 2QN format.



Xout: 11591 in decimal format, 0.7071067 in 1QN format

Yout : 11579 in decimal format, 0.7071 in 1QN format



Now consider ,

I want to multiply 50 * Xout



     = 50 * 11591  is what im able to do,but actually i need to do this 
= 50 * 0.7071067





Please can any one help me out!!!!





Thanks in Advance

von experto (Guest)


Rate this post
useful
not useful
what is "xout" in your design?

von Martin (Guest)


Rate this post
useful
not useful
Actually,
as long  as you do not have a floating point unit
instantiated, all you can do is integer arithmetics.

So, you do

 50 * 11591

and then right shift  the result to avoid overflow, keeping the number
of right shifts  in memory.

von Harsha G. (Company: panacea) (harshaep)


Rate this post
useful
not useful
Thank u ,it helped a lot.But how to handle wit floating points?,is der 
any keyword for it?.

von Martin (Guest)


Rate this post
useful
not useful
look at opencores.org,  guess you get a floating
point unit  from there.

von Martin (Guest)


Rate this post
useful
not useful
sorry: opencores.com

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.