欧嗨呦~
这几天要准备跟着老师做项目。正在笔者为老师“立项报告写的‘重’一些”的要求下愁眉苦脸之际,万方数据里面的一篇文章勾起了我的兴趣(其实就是摸鱼~ _ ~)有意思,,嗯对,很有意思。
简报
查表法是一个很神奇的东西。它的应用范围非常广泛,从角度,到伪随机数,到相位控制,只要固定数据对应固定数值的算法,通过查表法(注意不是查找表!!!查找表是LUT!!!这俩有本质区别的!!!),在我们获得了一个数值之后,可以快速的在预存的数据中找到我们需要的结果,大大简降低了组合逻辑功能实现的复杂度。但是,预存数据进行查找也就意味着,我们需要为预存的数据开辟足够的空间。毕竟当涉及的数据太多或者精度要求太高,数据量太大,就会导致浪费资源、增加系统功耗的问题。所以单一的查表法只适合数据量不大,逻辑资源充足,允许分配功耗较高的场合。
例
一个运算正弦函数的垃圾代码:
module sin_x(
input x,
output [3:0] sinx = 0
);
parameter sin30 = 5;
parameter sin60 = 9;
parameter sin90 = 10;
always@ *
begin
if(x == 30)
sinx = sin30;
else if(x == 60)
sinx = sin 60;
else if(x == 90)
sinx = sin90;
else
sinx = sinx;
end
endmodule
确实是一堆垃圾代码~ _ ~
这就是查表法~虽然看上去又简单又浪费资源,但是配合合适的算法,查表法是可以发挥出惊人的效果的。具体到达什么程度,还请各位自行探索了 ~