移位作除法求解惑。。。
是不是所有的除法都可以用移位表达式表示出来?如果直接使用fpga内的乘法器,除法器,那么整个模块的最高工作频率就会下降一大截;
乘法的例如:
reg data,temp;
data1<=data*10;
就可以写成 data1<={data,3'd0} + {data,1'd0}; // data<=temp<<3 + temp<<1
但是
如果是要除以10,即要算 data/10的商,这个移位表达式能写出来么? 呵呵,data/10=data*0.1,也可以通过移位来实现 怎么移? 0.0625+0.03125+0.015625=0.109
data1<={4'd0,data}+{6'd0,data}; li37hao 发表于 2013-3-2 00:15 static/image/common/back.gif
0.0625+0.03125+0.015625=0.109
data1
多谢,近似的方法
但是精度有点低。。。
例如120/ 10 = 12
而120*0.109= 13.08
。。。 如果希望精度高,把位数搞长 这个对于除数是变量的没法化除为乘
页:
[1]