1、定点数定义
定点数是指小数点固定的隐含在某一位置上的一类数据
有符号数:
以四位有符号数1111为例,其数值大小为:1x(-2^(0))(4+2+1)= -7。
2、补码
正整数的补码:与原码相同。
负整数的补码:将其原码除符号位外的所有位取反,之后加1。
3、定点纯小数
定点纯小数是指整数部分为0的定点小数,分为有符号定点纯小数和无符号定点纯小数,S为符号位,小数点在小数位的最左侧。
对于字长为wf的无符号定点小数,其数值可表示为:
Bi表示对应的位为1,以四位无符号定点纯小数1001为例:
其值为value=b0 x 2^(0-4) +b3 x 2^(3-4) =0.0625+0.5=0.5625
对于字长为wf+1的有符号定点纯小数,其数值表示为:
同样以1001为例,字长为4,wf=3,符号位为1,尾数位001,其值表示为:
value= (-1)^(1) + 2^(0-3) =-1+0.125 = -0.875
4、定点带小数
即整数部分不为0的小数,分为有符号定点带小数额无符号定点带小数,S为符号位,定点数位宽为w,小数位位宽为wf:
对于无符号定点带小数,正常计算即可,其计算公式为:
对于有符号定点带小数,其计算公式为:
5、定点数据的上溢和下溢
上溢(overflow):运算结果超出了定点数的整数部分所能表示的范围,
下溢(underflow):运算结果小数部分超出了小数部分能表示的范围。
UFIX_4_2,表示无符号型定点小数,全长为4,小数部分宽度为2,所能表示的范围为:[0,3.75],精度为0.25,如果运算结果为4,即发生上溢,如果运算结果为0.125,则发生下溢。
6、浮点数和定点数的比较
与定点数相比,采用浮点数进行算法描述:
(1)、具有更宽的动态范围。
(2)、可缩短复杂运算的开发周期。
(3)、统一的标准数据格式。
劣势:
(1)、浮点运算会消耗更多的查找表、寄存器和乘法器。
(2)、浮点运算会给布线资源带来压力,导致最大运行频率降低。
通常在算法建模时采用浮点数,而在FPGA实现时采用定点数。