F
fl
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.
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.