采用Karatsuba算法在FPGA上实现双精度浮点乘法.pdf

采用Karatsuba算法在FPGA上实现双精度浮点乘法.pdf

ID:57743591

大小:1.05 MB

页数:4页

时间:2020-03-27

采用Karatsuba算法在FPGA上实现双精度浮点乘法.pdf_第1页
采用Karatsuba算法在FPGA上实现双精度浮点乘法.pdf_第2页
采用Karatsuba算法在FPGA上实现双精度浮点乘法.pdf_第3页
采用Karatsuba算法在FPGA上实现双精度浮点乘法.pdf_第4页
资源描述:

《采用Karatsuba算法在FPGA上实现双精度浮点乘法.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2014年1月西安石油大学学报(自然科学版)Jan.2014第29卷第1期JoumalofXianShiyouUniversity(NaturalScienceEdition)Vo1.29No.1文章编号:1673-064X(2014)01-0098-03采用Karatsuba算法在FPGA上实现双精度浮点乘法康磊,徐英卓(西安石油大学计算机学院,陕西西安710065)摘要:双精度浮点运算广泛应用于数值计算和信号处理中,在IEEE754标准中实现两个双精度浮点乘法需要一个53bit×53bit的尾数乘法器,这样的一个乘法器若采用FPGA实现需要大量的硬件资源。将Kar

2、atsuba算法应用于浮点运算器中,采用FPGA实现了一个浮点乘法器,与传统方法相比该乘法器占用硬件资源较少。关键词:双精度浮点数;浮点乘法;Karatsuba算法;FPGA中图分类号:TP302.2文献标识码:A浮点运算广泛应用于诸多领域,特别是在科学双精度浮点数的格式:计算、数值分析和信号处理等方面,如数字滤波器、1tl1bit52bitFFTr、图像处理等。在所有的浮点算术运算中,乘法符号位(S)l阶码(E)l尾数(M)是其核心算法之一,如何构建高效的浮点乘法器一浮点运算器的运算包含加、减、乘、除、平方和开直是人们关注的焦点。随着FPGA技术的发展,由方等。通常

3、情况下,在运算之前需要将浮点数分解于FPGA器件本身的优势——速度、逻辑资源、丰富为符号位、阶码和尾数,然后进行运算,各部分运算的IP核等,使得采用FAPG实现通用高性能的运算结束后,还要经过舍人和规格化,最后再将符号、阶器成为可能。按照IEEE754中定义的双精度浮点码和指数重构得到结果。本文只讨论双精度浮点数数的尾数有53bit,采用FGAP实现53bit×53bit的的乘法运算。浮点乘法器虽然是一个简单的算术单硬件乘法器需要占用大量的硬件资源¨。本文详元,但由于它需要一个53bit位的乘法器,因此在使细说明了采用Karatsuba算法在FPGA上实现了双用FPG

4、A实现时需要考虑硬件资源的消耗和时问。精度浮点乘法器的过程。1双精度浮点数格式2浮点乘法运算过程IEEE754是使用最广泛的浮点数运算标准,常浮点乘法运算规则的通式为:X×Y=用的浮点数有单精确度(32bit)和双精确度(64(一1)Sx+SY×(Mx×My)×2Ex+EVo式中和l,为2个bit)2种。输入的浮点数,其中s和5是符号位,和是单精度浮点数的格式:尾数,E和E是阶码。双精度浮点乘法运算流程如1bit8bit23bit图1所示,其操作步骤如下:符号位(S)1阶码(E)1尾数(M)(1)输入的操作数先是被分成1bit符号位、11收稿日期:2013-09-09

5、基金项目:国家自然基金资助项目(编号:51074125)作者简介:康磊(1968.),女,副教授,硕士,主要研究方向为计算机系统结构。E-mail:kant@xsyu.edu.cn康磊等:采用Karatsuba算法在FPGA上实现双精度浮点乘法一99一bit阶码和53bit尾数(包括隐藏位);(m一1“m一2⋯o)6;(2)判断2个操作数中是否存在0,若是则转向Q1=(Vn-I⋯)6;Q0=(Um-I一2⋯o)6。(9);因此有(3)2个运算数的符号位进行异或运算,结果就PXQ=(P1b+Po)×(Q1b+Q0)是乘法运算结果的符号位结果;=P1Q1b+(P1Qo+P

6、oQ1)b+PoQ0(4)将阶码相加,然后减去l023,得到乘法运=F2b+F1b+r0。(1)算的阶码结果;其中:r2=P1Q1;r1=P1Q0+PoQ1;r0=P0Q0。(5)尾数相乘,得到106位的结果;从式(1)可以看出,实现P×Q可以将乘法器的(6)对运算的结果进行规格化处理,即对尾数位数由凡位降低为m位(m=n/2),乘法器的尾数降的106位结果左移至最高位是1为止,然后取第低了一半,但是需要做4次乘法操作。106位到54位;Karatsuba乘法算法是将式(1)中的r做如(7)对尾数的53到1位按照舍入原则进行舍下变换:人操作,通常采用的默认模式是最近舍

7、入(Roundtorl=(PQ0+PoQ)+(P1Q十PQ。)一(P。Q1+P0Qo)Nearest);(8)对阶码结果进行判溢处理,设置阶码和尾=(P1+Po)(Q。+Q0)一P。Ql—P0Q。数的最后结果;=(P+P0)(Q+Q0)一r2一r0。(2)变换后的式(2)中r的2次乘法运算变成了1(9)将符号位、阶码和尾数的结果重新拼接成64bit的运算结果。次,但需要增加加法的次数,而加法的运算时问要比乘法小得多。Karatsuba算法还可以进一步扩展,将2个乘数分浮点数分解为符号、阶码和尾势解成更多的项数。若将2个乘数表示分解为3项,P和/土、p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。