How do I keep the accuracy from being greatly reduced when the X and Y inputs start becoming smaller (<0.3)?
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:
Please see (Xilinx Answer 29570) for a detailed list of LogiCORE CORDIC Release Notes and Known Issues.