购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.11 浮点数的表示方法

本节将介绍浮点数的表示方法。许多具有专用浮点单元 (Float-Point Unit,FPU) 的DSP广泛使用浮点处理单元。但是,在FPGA中不建议使用浮点处理,这是因为:

(1)运算速度慢。

(2)消耗大量的逻辑设计资源。

但是,某些情况下FPU是必不可少的,如需要一个很大的动态范围或者很高计算精度的应用场合。

此外,使用浮点数可能使得设计更加简单。这是因为在定点数设计中,需要关注可用的动态范围。但是,在浮点数设计中不需要考虑动态范围的限制。

3.11.1 浮点数的格式

浮点数可以在更大的动态范围内提供更高的分辨率。当定点数由于受其精度和动态范围所限不能精确表示数值时,浮点数能提供更好的解决方法。当然,在速度和复杂度方面带来了损失。大多数浮点数的表示方法都满足单精度/双精度IEEE浮点标准。标准的浮点数字长由符号位s(1比特位)、指数e和无符号(小数)的规格化尾数m构成,其格式如下:

因此,浮点数可以表示为

其中,bias为偏置。当浮点数为正数时,s=0;当浮点数为负数时,s=1。对于IEEE-754标准而言,还有下面的约定:

(1)当指数e=0,尾数m=0时,表示0。

(2)当指数e=255,尾数m=0时,表示无穷大。

(3)当指数e=255,尾数m!=0时,表示不是一个数(Not a Number,NaN)。

(4)对于最接近于0的数,根据IEEE754的约定,为了扩大对0值附近数据的表示能力,取指数e=-126,尾数 m=(0.00000000000000000000001) 2 。此时,该数的二进制表示为

0 00000000 00000000000000000000001

IEEE的单精度和双精度浮点格式如表3.8所示。

表3.8 IEEE的单精度和双精度浮点格式

在浮点数乘法中,尾数部分可以像定点数一样相乘,而把指数部分相加。浮点数的减法复杂一些,因为首先需要将尾数归一化,就是将两个数都调整到较大的指数,然后将两个数的尾数相加。对于加法运算和乘法运算的混合运算而言,最终的归一化就是将结果尾数再统一乘小数“1.m”形式的表达式,这是非常必要的。

3.11.2 浮点数的短指数表示

简化浮点硬件的一种方法是创建一种短指数的浮点数据格式。浮点数的短指数表示格式如图3.30所示。

图3.30 浮点数的短指数表示格式

在这种表示格式中,有一个4位的指数和一个11位的尾数。因此可以表示-7~8范围内的指数,其结果在动态范围内显著增加,而代价就是稍微降低了精度。定点数和短指数的性能比较如表3.9所示。

表3.9 定点数和短指数的性能比较

不同浮点数的短指数表示格式如表3.10所示。

表3.10 不同浮点数的短指数表示格式 tLj/PNCCSyY+LLhXrVaVg3qf0isfap4ZfHpVNjIWxv00faplPeBT3Ci4u8UhzEFI

点击中间区域
呼出菜单
上一章
目录
下一章
×