问题由来
定点数和浮点数在嵌入式软件处理和FPGA算法方面使用比较普遍,但是遇到FPGA实现32位定点数的处理,想要仿真时,突然发现全网都在讲浮点数和定点数的格式和理论,几乎没有生成的快捷方法,好在一片文章出现了一点有用的信息,记录下来。
原文连接:
https://www.elecfans.com/d/2220416.html
matlab处理
小数转化为定点数
在FPGA 设计开发的过程中,如果需要使用小数参与相关运算,这个时候就需要将小数转化为定点数,因为FPGA内部只能处理定点数,不能处理小数,小数转定点数的过程需要考虑符号位-整数位宽-小数位位宽。
假设将小数2.918量化为16bit的定点数,包含1bit符号位,3bit整数位,12bit小数位。
3bit整数位能够表示的最大整数是7(3’b111),12位小数位能够表示的数据的最小精度为:1/(2^12)=0.00024414,也就是说12位小数位只能表示0.00024414的整数倍,12位小数位能够表达的最大小数为:
>> (2^12-1)*0.00024414
ans =
0.9998
可以发现表示小数的位数越多ÿ