Atan2
ThexFAtan2LookupFP
function finds the arctangent of y/x. It returns the angle made by the vectorwith respect to origin. The angle returned by atan2 will also contain the quadrant information.
The function xFAtan2LookupFP is a fixed point version of the standard atan2 function. This function implements the atan2 using a lookup table approach. The values in the look up table are represented in Q4.12 format and so the values returned by this function are in Q4.12. A maximum error of 0.2 degrees is present in the range of 89 to 90 degrees when compared to the standard atan2 function available in glibc. For the other angles (0 to 89) the maximum error is in the order of 10-3. This function returns 0 when both xs and ys are zeroes.
API Syntax
short xFAtan2LookupFP(short xs, short ys, int M1,int N1,int M2, int N2)
Parameter Descriptions
The following table describes the template and the function parameters.
Parameter | Description |
---|---|
xs | 16-bit signed value x in fixed point format of QM1.N1 |
ys | 16-bit signed value y in fixed point format of QM2.N2 |
M1 | Number of bits to represent integer part of x. |
N1 | Number of bits to represent fractional part of y. Must be equal to 16-M1. |
M2 | Number of bits to represent integer part of y. |
N2 | Number of bits to represent fractional part of y. Must be equal to 16-N1. |
Return | Return value is in radians. Its range varies from -pi to +pi in fixed point format of Q4.12 |
Resource Utilization
The following table summarizes the resource utilization of the xFAtan2LookupFP function, generated usingVivado HLS 2017.1tool for the Xilinx Xczu9eg-ffvb1156-1-i-es1 FPGA.
Operating Frequency (MHz) |
Utilization Estimate | ||||
---|---|---|---|---|---|
BRAM_18K | DSP_48Es | FF | LUT | CLB | |
300 | 4 | 2 | 275 | 75 | 139 |
Performance Estimate
The following table summarizes the performance in different configurations, as generated usingVivado HLS 2017.1tool for the Xilinx Xczu9eg-ffvb1156-1-i-es1 FPGA.
Operating Frequency (MHz) |
Latency Estimate | |
Min (cycles) | Max (cycles) | |
300 | 1 | 15 |