摘 要:在FPGA上实现单精度浮点加法器的设计,通过分析实数的IEEE 754表示形式和IEEE 754单精度浮点的存储格式,设计出一种适合在FPGA上实现单精度浮点加法运算的算法处理流程,依据此算法处理流程划分的各个处理模块便于流水设计的实现。所以这里所介绍的单精度浮点加法器具有很强的运算处理能力。
关键词:IEEE 754;单精度浮点;加法运算;FPGA
图像处理通常采用软件或者数字信号处理器(DSP)实现。如果利用软件实现,运行时会耗费较多的PC资源,而且算法越复杂时耗费的资源就越多,对于需要高速处理的情况不适用;而如果采用DSP实现,提高并行性的同时指令执行速度必然会提高,较高的指令速度可能导致系统设计复杂化,并增加功耗和成本。新一代的低功耗现场可编程门阵列(FPGA)凭借其强大的高速并行能力,日益成为高速实时图像处理的主流器件。单精度浮点加法运算是数字图像处理的最基础的数据运算方式,在此介绍一种在FPGA上实现单精度浮点加法运算的方法。
1 IEEE 754单精度浮点数存储格式分析
1.1 实数的IEEE 754表示形式
在计算机系统的发展过程中,曾经提出过多种方法表示实数,但是到目前为止使用最广泛的是浮点数表示法。相对定点数而言,浮点数利用指数,使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数。电子电气工程师协会(Institute of Electricaland Electronics Engineers,IEEE)在1985年制定的IEEE754(IEEE Standard fOr Binary Floating-Point Arithme-tic,ANSI/IEEE Std 754-1985)二进制浮点运算规范,是浮点运算部件事实上的工业标准。一个实数V在IEEE754标准中可以用V=(-1)S×M×2E表示,说明如下:
(1)符号S决定实数是正数(S=0)还是负数(S=1),对于数值0的符号位特殊处理。
(2)有效数字M是二进制小数,M的取值范围在1≤M<2或0≤M<1。
(3)指数E是2的幂,它的作用是对浮点数加权。
1.2 IEEE单精度浮点格式
浮点格式是一种数据结构,它规定了构成浮点数的各个字段。IEEE 754浮点数的数据位被划分为3个字段,对3个字段参数进行编码:
(1)一个单独的符号位S直接编码符号S。
(2)K位的偏置指数E编码指数E,移码表示。
(3)N位的小数.f编码有效数字M,原码表示。
IEEE单精度浮点格式共32位,包括3个构成字段:23位小数F,8为偏置指数E,1位符号S。将这些字段连续存放在一个32位字里,并对其进行编码。其中O~22包含23位的小数F;23~30包含8位指数E;第31位包含符号S。如图1所示。
2 单精度浮点加法器的设计与实现
2.1 单精度浮点加法器的算法设计
浮点加法器首先对浮点数拆分,得到符号、阶码、尾数。对拆分结果进行绝对值比较,得到大的阶码、阶差和比较结果输出。然后进行对阶,通过移位小的尾数,得到相同大阶。对尾数进行尾数加减运算,得到的结果进行规格化,最后结合规格化结果运算结果符号输出,得到结果输出。加法器运算过程如图2所示。
2.2 单精度浮点加法器的实现