UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 19055

LogiCORE CORDIC - How to prevent the accuracy from being greatly reduced when the X and Y inputs start becoming smaller (<0.3)?

Description

How do I keep the accuracy from being greatly reduced when the X and Y inputs start becoming smaller (<0.3)?

Solution

The CORDIC atan is implemented with a CORDIC rotation. 

The accuracy of the phase output from this rotation depends on the number of significant bits of the input vector. 

Consequently, very small input vectors have few bits of output precision. 

 

You can use one of the following two methods to increase the precision of the output: 

  • Increase the number of bits on the input by padding it with zeros (i.e., the input 00.0001 becomes 00.0001000000). 
  • You can use the precision parameter to extend the inputs by padding them with zeros internally.
    Try setting the precision to something similar to: inputs_width + output_width.
    You can generate a more accurate output, one that is accurate to 1/2 a LSB for any input vector. 

 

Please see (Xilinx Answer 29570) for a detailed list of LogiCORE CORDIC Release Notes and Known Issues.

AR# 19055
Date Created 09/03/2007
Last Updated 07/28/2014
Status Active
Type General Article