单精度浮点乘法器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

原创性声明

郑重声明:此篇题为《基于FPGA的单精度浮点数乘法器设计》的论文,是作者在导师的指导下,于武汉大学攻读硕士学位期间,进行研究工作所取得的成果。根据作者

所知,论文中除了参考文献列举的地方外,不包含其他人已经发表或撰写过的研

究成果。本声明的一切法律结果由本文作者承担。

作者签名:旷捷毛雪莹彭俊淇

导师签名:黄启俊常胜

撰写日期:二零一零年三月十八日

基于FPGA的单精度浮点数乘法器设计

作者:旷捷毛雪莹彭俊淇

导师:黄启俊常胜

(武汉大学物理科学与技术学院,武汉,430072)

摘要:本文设计了一个基于FPGA的单精度浮点数乘法器。乘法器为五级流水线结构。设计中采用了改进的带偏移量的冗余Booth3算法和跳跃式Wallace树型结构,减少了部分积的数目,缩短了部分积累加的耗时;提出了对尾数定点乘法运算中Wallace树产生的2个伪和采用部分相加的处理方式,有效地提高了的运算速度;并且加入了对特殊值的处理模块,完善了乘法器的功能。单精度浮点数乘法器在Altera DE2开发板上进行了验证,其在Cyclone II EP2C35F672C6器件上的最高工作频率达到212.13 MHz。

关键词:改进的带偏移量的冗余Booth3算法;跳跃式Wallace树;单精度浮点数乘法器;FPGA

An FPGA Implementation of Single Precision Floating-point Multiplier

Author: KUANG Jie, MAO Xueying, PENG Junqi

Tutor: HUANG Qijun, CHANG Sheng

(Department of Physics Science and Technology, Wuhan University, Wuhan, 430072)

Abstract:An FPGA implementation of single precision floating-point multiplier is introduced in this thesis. With the usage of modified redundant Booth3 with bias and leapfrog Wallace tree, and the application of partial addition in fixed-point multiplication, the efficiency of the 5-stage multiplier is promoted. Moreover, a module dealing with special values is introduced to perfect the function of the multiplier. The verification of the multiplier is accomplished on Altera DE2, and the Fmax on Cyclone II EP2C35F672C6 reaches 212.13 MHz.

Key words: modified redundant Booth3 with bias; leapfrog Wallace tree; single precision floating-point multiplier; FPGA

随着数字信号处理技术的不断发展,人们对数据的精确性和处理的实时性的要求日益提高,浮点数逐渐取代定点数,成为应用最广的数据格式。如何实现高速的浮点数算法已成为了人们关心的热点问题。传统的利用DSP实现浮点算法的方案由于DSP串行执行指令的工作方式,在速度上已逐渐难以满足应用的要求。FPGA作为具有并行处理结构的器件,具有

大量逻辑单元、嵌入式存储资源以及DSP 处理单元,具备了作为系统核心的条件。因此,

利用FPGA 实现浮点数算法成为了数字信号处理技术发展的一个新的趋势。

作为最常用的基本运算之一,浮点数乘法引起了人们的较多关注。乘法算法从基本迭代

算法和并行相加算法发展到了Booth 算法与Wallace 树型结构的结合,关键在于部分积数目

的减少和部分积相加效率的提高。但是目前应用频率最高的Booth2算法(基4-Booth 算法)

和传统Wallace 树型结构[1存在如下缺点:Booth2算法仅能将N 位定点乘法的部分积数目

从N 减少至约N/2;传统的Wallace 树型结构会由于各条路径输入信号到达时间不一致而引

起不必要的延时。采用Booth2算法和传统Wallace 树型结构的文献[1]在Cyclone II

EP2C35F672C8器件上完成自定义26位浮点数乘法运算需要67.579ns ;文献[2]的设计在5

个时钟周期内完成单精度浮点数乘法运算,但是采用Cyclone EP1C6Q240C8器件仅能在80

MHz 时钟下稳定运行,难以满足数字信号处理技术在运算速度上日益提高的需求。文献[3]-[5]

在Booth2算法和传统Wallace 树型结构上作出改进:文献[3]提出带偏移量的冗余Booth3算

法,能将N 位定点乘法的部分积数目减至约N/3,取得比Booth2算法更高的运算效率;文

献[4]和[5]将跳跃式Wallace 树型结构引入乘法器电路,以解决传统Wallace 树型结构各条路

径输入信号到达时间不一致的问题。但文献[3]-[5]的方案仅在ASIC 上进行了实现,且仅应

用于定点乘法器,未应用于浮点乘法器。此外,上述浮点数乘法器的文献([1]和[2])并未

提到对特殊值(如NaN 、零值、无穷大等)的处理。

][2]由于FPGA 正以其设计的灵活性在数字信号处理领域得到越来越广泛的应用,因此将

高效率的ASIC 算法应用于FPGA 浮点运算正成为人们研究的重点。本文在带偏移量的冗余

Booth3算法的基础上作出改进,并引入跳跃式Wallace 树型结构,在尾数定点乘法运算中对

Wallace 树产生的2个伪和采用部分相加的方式以平衡各级流水线的耗时,有效地提高了乘

法器的运算速度;同时加入了对特殊值的处理,完善了乘法器的功能。本文的设计在Altera

DE2开发板上进行了验证。乘法器在5个时钟周期内完成单精度浮点数乘法运算,在Cyclone

II EP2C35F672C6器件上的最高工作频率达到212.13 MHz 。在与文献[1]和[2]选用相同器件

进行的时序分析和对比中,本文的设计在运算速度上提高了约50%。

一.单精度浮点数及运算规则

IEEE 754标准所定义的单精度浮点数[6]由32位二进制数表示,其格式如图1.1。

图1.1 IEEE754标准单精度浮点数格式

按区域可划分为符号位S (sign ,1位)、指数位E (exponent ,8位)和尾数位M (mantissa ,

23位)。其中:

(1)符号位S 表示浮点数是正数或负数。S=0时为正数,S=1时为负数。

(2)指数位E 表示浮点数带偏移量127的指数,实际指数为e=E-127。

(3)尾数位M 表示规格化浮点数尾数的小数部分。规格化浮点数的尾数取值在1与2

之间,而M 省略了该尾数整数部分的1。

综上所述,图1.1表示的单精度浮点数的值为

127(1) 1.2S F M −=−××E (1.1)

相应地,两个单精度浮点数A 和B 的乘法运算分为以下四个部分:

(1)符号位运算:对被乘数的符号位signa 和乘数的符号位signb 做异或运算,得到乘

积的符号位signr 。

相关文档
最新文档