# Low-Latency Bit-Accurate Architecture for Configurable Precision Floating-Point Division
## 3 Predict-Correct Algorithm for Division
### Predict-Correct Algorithm with Accurate Quotient Approximation
\(m\) plays a crucial role in the sizes of look-up table \(G_{1}\), \(G_{2}\),..., \(G_{l}\). Moreover, the data width of entries in look-up table \(G_{i}\) is \(b_{i}=(m\times t-t)+\lceil\log_{2}t\rceil-(m\times i-m-i)\), \(i=1,2,\dots,t\). Parameter \(n\) represents the number of additional digits of quotient owing to Step 5 and 6 per iteration. For instance, if \(n=2\), subsequent \(2^{n}\) kinds of \((m\times t-t+n-1)\)-bit possible quotients are \(P^{\prime}\)-\(00\), \(P^{\prime}\)-\(01\), \(P^{\prime}\)-\(10\) and \(P^{\prime}\)-\(11\), where the most approximative quotient \(Q_{a}\) is picked up from these possible quotients via quotient selection in Step 6. To help to understand the abovementioned algorithm, an example of fixed-point division using the proposed Predict-Correct algorithm (Algorithm 2) is demonstrated as follows. \begin{tabular}{l} \hline \hline
**Algorithm 2** Example of Fixed-point division using Predict-Correct Algorithm. \\ \hline \(X=(1\ 0010\ 0011\ 1110\ 0110\ 1100\ 0111\ 0101\ 1011\ 1011)_{2}\), \\ \(Y=(1\ 1101\ 0101\ 1011\ 0010\ 1101\ 1110\ 0101\ 0010)_{2}\). \\ Set \(q=33\), \(p=20\), \(m=7\), \(t=3\), \(n=3\). \\ Then \(b_{1}=21\), \(b_{2}=15\), \(b_{3}=9\). \\ \(X_{h}=(1\ 0010\ 0011\ 1110\ 0110\ 1100\ 0000\ 0000\ 0000)_{2}\), \\ \(Y_{h}=(1\ 1101\ 0111\ 1111\ 1111\ 1111\ 1111\ 11111\ 11111\ 11111)_{2}\), \\ \(\Delta Y=(-0\ 0000\ 0010\ 0100\ 1101\ 0010\ 0001\ 1010\ 11010)_{2}\). \\ \(B=1/Y_{h}-\Delta Y/Y_{h}^{2}+(\Delta Y)^{2}/Y_{h}^{3}\) and \(B\) is to be truncated to 22 bits. \\ \hline
1: \(Q=0,j=0\). \\ 2: \(1/Y_{h}=(0\ 1000\ 1011\ 1000\ 0011\ 0011)_{2}\), \(1/Y_{h}^{2}=(0\ 0100\ 1100\ 0000\ 100)_{2}\), \\ \(1/Y_{h}^{3}=(0\ 0010\ 10011\ 1000\ 0111)_{2}\). \\ 3: \(B=(0\ 1000\ 1011\ 1000\ 0111\ 0001\ 12)_{2}\). \\ 4: \(p=(0\ 1001\ 1111\ 0001\ 1000\ 011\ 0010\ 0100\ 1100\ 1100\ 010)_{2}\), \\ and then \(P^{\prime}=(0\ 1001\ 1111\ 0001\ 1000)_{2}\). \\ 5: 8 kinds of 20-bit possible quotients are: \\ (0 1001 1111 0001 1000\ 000)_{2}\) \\ (0 1001 1111 0001 1000\ 010)_{2}\) \\ (0 1001 1111 0001 1000\ 011)_{2}\) \\ (0 1001 1111 0001\ 1000\ 100)_{2}\) \\ (0 1001 1111 0001\ 1000\ 101)_{2}\) \\ (0 1001 1111 0001\ 1000\ 110)_{2}\) \\ (0 1001 1111 0001\ 1000\ 111)_{2}\) \\ 6: \(Q_{2}=(0\ 1001\ 1111\ 0001\ 1000\ 010)_{2}\). \\ 7: \(j^{\prime}=20\) and Update \(j\) with \(f^{\prime}\). \\ 8: \(X^{\prime}=(0000\ 0000\ 0000\ 0000\ 110\ 0010\ 010\ 0010\ 0000\ 1010\ 1110\ 0)_{2}\), \\ \(Q^{\prime}=(0\ 1001\ 1111\ 0001\ 1000\ 010)_{2}\). \\ 9: Left-shift \(X^{\prime}\) by 20 bits. \\ 10: Update \(Q\) and \(X\) with \(Q^{\prime}\) and \(X^{\prime}\) respectively. \\ 11: Since \(j<q\), repeat Step 4 through 10. \\ 4\({}^{\prime}\): \(P=(1101\ 0110\ 0000\ 0000\ 0011\ 1111\ 0100\ 1011\ 0110\ 0000)_{2}\) \\ and then \(P^{\prime}=(1101\ 0110\ 0000\ 0000\ 0)_{2}\). \\ 5\({}^{\prime}\): 8 kinds of 20-bit possible quotients are: \\ (1101 0110\ 0000\ 0000\ 00\ 001)_{2}\) \\ (1101 0110\ 0000\ 0000\ 001)_{2}\) \\ (1101 0110\ 0000\ 0000\ 01)_{2}\) \\ (1101 0110\ 0000\ 0000\ 01)_{2}\) \\ (1101 0110\ 0000\ 0000\ 01)_{2}\) \\ (1101 0110\ 0000\ 0000\ 1)_{2}\) \\ (1101 0110\ 0000\ 0000\ 01)_{2}\) \\ (1101