Square Root
ThexFSqrt
function computes the square root of a 16-bit fixed point number using the non-restoring square root algorithm. The non-restoring square root algorithm uses the two's complement representation for the square root result. At each iteration the algorithm can generate exact result value even in the last bit.
Input argument D must be 16-bit number, though it is declared as 32-bit. The output sqrt(D) is 16-bit type. If format of D is QM.N (where M+N = 16) then format of output is Q(M/2).N
To get a precision of 'n' bits in fractional part, you can simply left shift the radicand (D) by '2n' before the function call and shift the solution right by 'n' to get the correct answer. For example, to find the square root of 35 (011000112) with one bit after the decimal point, that is, N=1:
- Shift the number (01100011002) left by 2
- Shift the answer (10112) right by 1. The correct answer is 101.1, which is 5.5.
API Syntax
int xFSqrt(unsigned int D)
Parameter Descriptions
The following table describes the template and the function parameters.
Parameter | Description |
---|---|
D | Input data in a 16-bit fixed-point format. |
Return | Output value in short int format. |
Resource Utilization
The following table summarizes the resource utilization of the xFSqrt 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 | 0 | 0 | 8 | 6 | 1 |
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 | 18 | 18 |