




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑位单浮点乘法器的FPGA实现-设计应用摘要:采用VerilogHDL语言,在FPGA上实现了32位单精度浮点乘法器的设计,通过采用改进型Booth编码,和Wallace树结构,提高了乘法器的速度。本文使用AlteraQuartusII4.1仿真软件,采用的器件是EPF10K100EQ240-1,对乘法器进行了波形仿真,并采用0.5CMOS工艺进行逻辑综合。关键词:浮点乘法器;Booth算法;Wallace树;波形仿真随着计算机和信息技术的快速发展,人们对微处理器的性能要求越来越高。乘法器完成乘法操作的周期基本上决定了微处理器的主频,因此高性能的乘法器是现代微处理器中的重要部件。本文介绍了32位浮点阵列乘法器的设计,采用了改进的Booth编码,和Wallace树结构,在减少部分积的同时,使系统具有高速度,低功耗的特点,并且结构规则,易于VLSI的实现。1乘法计算公式32位乘法器的逻辑设计可分为:Booth编码与部分积的产生,保留进位加法器的逻辑,乘法阵列的结构。1.1Booth编码与部分积的逻辑设计尾数的乘法部分,本文采用的是基4Booth编码方式,如表1。首先规定Am和Bm表示数据A和B的实际尾数,P表示尾数的乘积,PPn表示尾数的部分积。浮点32位数,尾数是带隐含位1的规格化数,即:Am=1×a22a21….a0和Bm=1×b22b21.…b0,由于尾数全由原码表示,相当于无符号数相乘,24×24位尾数乘积P的公式为:1.2乘法器的阵列结构本文采用的是3-2加法器,输入3个1位数据:a,b,ci;输出2个1位数据:s,Co。运算式如下:其逻辑表达式如下:当每个部分积PPn产生之后,将他们相加便得到每个乘法操作的结果。相加的步骤有很多,可采用的结构和加法器的种类也很多。比如串行累加:而Wallace树的乘法阵列如下:加法器之间的连接关系如图1,图2所示,或者从公式(7)与(8)中可以看出,图1中串行累加的方法延迟为11个3-2加法器的延迟,而图2中,Wallace树延迟为5个3-2加法器的延迟。图1的延迟比图2的延迟大。图1串行累加图2Wallace树232位浮点乘法器的设计本文是针对IEEE754单精度浮点数据格式进行的浮点乘法器设计。IEEE754单精度浮点格为32位,如图3所示。设A,B均为单精度IEEE754格式,他们的符号位,有效数的偏移码和尾数部分分别用S,E和M来表示。双精度和单精度采用的运算规则是一致的,只是双精度的位长增加了一倍,双精度是64位,其中尾数52位,指数11位,1位符号位。所以提高了精度范围。图332位浮点数据格式32位浮点数据格式:A=(-1)S×M×2E-127。其中乘法器运算操作分4步进行。(1)确定结果的符号,对A和B的符号位做异或操作。(2)计算阶码,两数相乘,结果的阶码是两数的阶码相加,由于A和B都是偏移码,因此需要从中减去偏移码值127,得到A和B的实际阶码,然后相加,得到的是结果的阶码,再把他加上127,变成偏移码。(3)尾数相乘,A和B的实际尾数分别为24位数,即1×Ma和1×Mb,位1是隐藏位,浮点数据格式只显示后23位,所以尾数相乘结果应为一个48位的数据。(4)尾数规格化,需要把尾数相乘的48位结果数据变成24位的数据,分3步进行:①如果乘积的整数位为01,则尾数已经是规格化了;如果乘积的整数位为10,11,则需要把尾数右移1位,同时把结果阶码加1。②对尾数进行舍入操作,使尾数为24位,包括整数的隐藏位。③把结果数据处理为32位符合IEEE浮点数标准的结果。包括1位符号位,8位结果阶码位,结果23尾数位。332位浮点乘法器的实现与仿真图4列出本设计的FPGA仿真结果。图中data1是被乘数,data2是乘数,reset是清零信号,高有效。start是开始信号,也是高有效。dataout10是两个浮点32位数相乘,进行规格化以后的结果,是一个32位数。Product是24位尾数相乘的结果,是一个48位数。图432位浮点乘法器的仿真结果整个设计采用了VHDL和VerilogHDL语言进行结构描述,如果采用的是上华0.5的标准单元库,并用SynopsysDC进行逻辑综合,其结果是完成32位浮点乘法的时间为30ns,如果采用全定制进行后端版图布局布线,乘法器性能将更加优越。4结语本文给出了32位浮点乘法器的设计,浮点算法具有高精度性以及较宽的运算范围,使得乘法的设计更能够满足工程和科学计算的要求,电路的设计、模拟和实现均采用AlteraQuartusII4.1开发工具。采用的器件EPF1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论