Hi all, I read a technical report and get confused. I would like to ask you guys for help.
In the technical report, they discribe a method to use LUT-based approach for approximately implementing a function f(x). Lets assume that the x input is a 4 bit number. (The actual number in the report is 25 bit number but just take 4 bit number for the sake of simplicity). The problem is that they do not have enough memory to store all 2^4 entries. So their solution is to sub-sample the original range
0....2^4-1 down to 0...2^2-1 and store the data in a 2-bit-address LUT and then using linear interpolation for obtaining the rest values. To do the sub-sampling, I see they use the right shift operator.I try to infer how they implement this idea in more detail. But I am confused how they populate the 2-bit address LUT?
The original x is that : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15.
After using x>>2, I guess the sampled range x_s is as follws:
0 4 8 12If so, the 2-bit address LUT is full with f(x_s). The question is how to obtain the rest values: f(13), f(14), f(15)? Perhaps we need one more memory cell to store f(16) for the interpolation.
In your opinion, how it can work? If you have this problem how do you implement?
Thank you