在verilog中没有小数的概念,如果要有小数的计算,最普遍的办法是将小数按2的倍数增大计算完后缩小相同的倍数。按2的多少倍数增大是个关键。
例如需要将0.2变成整数计算,那么需要将0.2x2N使之成为整数,如果没法成为真正的整数,那么就取误差范围相对于小的倍数。
如果0.2 x 23= 1.6,那么verilog是取1.6中的整数进行计算,误差就是(1.6-1)/1.6 = 0.38 左右;
如果0.2 x 26= 12.8,那么verilog是用12进行计算,误差范围是0.8/12.8 = 0.0625;相比之下增大倍数越大同倍数减少时误差范围越来越小,但是不需要夸张的增加放大倍数,通过实际情况,在合理的误差范围内就可以了。
文章评论(0条评论)
登录后参与讨论