# The lookup table length is wrong in this description?

Discussion in 'VHDL' started by fl, Jul 8, 2013.

1. ### flGuest

Hi,
I read the following on a division algorithm. I cannot get the lookup tablelength 4096 as it stated in the last.

The first segment for LUT is 511. Is it right?

Then, the second segment has the table words: (1023-511)/2=256
All the rest segments are the same 256 length.
Thus, the total LUT has: 511+6*256=2047.
It has said that it avoided LUT for negative division. I think the total LUT is length 2047 (or 2048 for 2's power).

What is your opinion on the LUT? 2047 or 4096?

Thanks,

..........................
Table 1: The optimum segmentation scheme.
Segmentation Mapping ratio
1-511 1 : 1
512-1023 1 : 2
1024-2047 1 : 4
2048-4095 1 : 8
4096-8191 1 : 16
8192-16383 1 : 32
16384-32767 1 : 64

Absolute error is calculated by subtracting the true value
of the inverse 1/b from the LUT output. Average error is the
mean of the absolute error among the 32767 data. Since the
value of 1/b retrieved from the LUT is later multiplied by
a in order to generate the division result, any precision error
in LUT will be eventually magnified by the multiplier.
Therefore, the worst-case error is more critical than the average
precision error. The worst-case error can be calculated
as follows: worst-case error of 1/bk = absolute error of
(1/bk) × bk-1.

The error analysis was performed to investigate both the
absolute error in average and the worst-case. As a result of
this analysis an optimum segmentation scheme, tabulated in
Table 1, was determined. It provides the minimum precision
required of a typical hardware-implemented matrix inversion
operation. This was verified by means of simulation using
Matlab-DSP blockset for a number of applications. The
resulting LUT holds 4096 inverse values with a 26-bit word
length in 16.10 data format.
fl, Jul 8, 2013

### Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.