F
fl
Guest
Hi,
I read the following on a division algorithm. I cannot get the lookup table length 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.
I read the following on a division algorithm. I cannot get the lookup table length 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.