FPGA中的数据格式
浮点数
浮点数由4部分组成:符号位、尾数、基数、指数
IEEE754标准(基数为2的情形)
三种精度
-
单精度(32位,对应于C语言中的float)
-
双精度(64位,对应于C语言中的double)
-
扩展精度
-
三种精度总结
规格化和非规格化
-
规格化
当E所表示的二进制序列不全为0也不全为1时;
-
非规格化
当E所表示的二进制序列全为0时;
-
无穷
当E所表示的二进制序列全为1,M表示的二进制全为0时;
若S为1则为负无穷大,为0则为正无穷大; -
NaN
当E所表示的二进制序列全为1,M表示的二进制不全为0时;
表示这不是一个合法的实数
浮点数运算(这里用十进制为例)
-
加法运算
-
乘法运算
定点数
整数
-
原码
原码的表示与机器数真值表示的一样,即用第一位表示符号,其余位表示数值 -
反码
- 正数的反码是其原码本身。
- 负数的反码是在其原码的基础上,符号位不变,其余各位取反。
-
补码
- 正数的补码是其原码本身。
- 负数的补码是在其原码的基础上,符号位不变,其余各位取反后加1(即在反码的基础上加1)。
-
符号位扩展:符号位扩展是不改变数值大小的。
定点纯小数
定点带小数
浮点数与定点数的比较
- 浮点数有以下优点:
- 更宽的动态范围
- 可缩短复杂算法的开发周期
- 统一的标准数据格式
- 缺点:
- 会消耗更多的资源
- 会给布线资源带来压力,导致工作频率降低
法的开发周期 - 统一的标准数据格式
- 缺点:
- 会消耗更多的资源
- 会给布线资源带来压力,导致工作频率降低