关键字 |
双精度,浮点数,倍增器,FPGA,数字信号处理,IEEE-754。 |
介绍 |
大多数情况下,浮点算法[2]具有更宽的动态范围和精度,因为这一特性,它们被用于特定应用系统,如DSP[3]。浮点算术涉及到加、减、乘、除等不同的运算[4],其中乘法是许多信号处理计算中的核心运算之一。在科学计算和计算机图形学(CG)等应用中进行了大量的浮点乘法运算。特别是CG,需要大量的FP乘法来获得多媒体系统所需的高质量图像。它也是许多现代应用的关键重要性,如3D图形加速器,数字信号处理器(dsp),高性能计算等。 |
相关工作 |
大多数研究人员都以自己的方式实现浮点运算。Mohamed Al-Ashrafy, Ashraf Salem和Wagdy Anis在“浮点乘法器的高效实现”中有效地实现了IEEE单精度浮点乘法器[1]的概念,这里使用的片数为604,频率为301.114MHz,获得了3个周期的延迟。阿丹基·彪马·拉梅什,A. V. N.提拉克,上午Prasad在[7]“使用Verilog的基于FPGA的高速IEEE-754双精度浮点乘法器”中定义了双精度浮点乘法器。总面积为648片,工作频率为414.714MFLOPS。 |
浮点格式 |
IEEE-754标准[5]格式有两种不同的格式:二进制格式和十进制格式。IEEE-754二进制格式的双精度浮点乘法器如图1所示。双精度浮点乘法器由64位组成,其中符号位由1位表示,指数位由11位表示,尾数位为52位。 |
为了实现等于2n-1的偏差,在实际指数上加上1,以获得存储的指数。对于双精度格式的11位指数,这等于1023。添加偏差允许使用−1023到+1024范围内的指数。双精度格式提供了2-1023到2+1023的范围,相当于10-308到10+308。 |
浮点乘子算法 |
规范化浮点数的形式为Z= (-1)S * 2 (E - Bias) * (1.M)。下面的算法用于将两个浮点数相乘。 |
1.Significand乘法;例如(1. m1 * 1.平方米)。 |
2.在结果中放置小数点。 |
3.指数的增加;即(E1 + E2 -偏置)。 |
4.得到标志;也就是s1 xs2。 |
5.规范化结果;即在结果显著性的MSB处获得1。 |
6.舍入的实现。 |
7.检查下溢情况。 |
浮点乘子的实现 |
考虑两个操作数A和b,图2中的浮点乘法器由符号计算组成:如果数字是正数,则符号位为' 0 ',否则为' 1 '。将两个符号位相加得到两个数字的异或运算的结果符号值。 |
EXPONENT计算:该块将两个浮点数的指数相加,然后从结果中减去Bias(1023),得到真实的结果,即EA + EB - Bias。在本设计中,对两个11位指数进行加法运算。尾数计算:两个浮点数的有效位相乘,这里的有效位是尾数加一个额外的位。这里使用的乘数是进位保存乘数。它分为三个阶段。 |
1.进位保存乘法器的第一步是有(有效位和数字- 1)加法器,它们是半加法器。 |
2.进位保存乘法器的第二阶段是有(有效数字- 2)加法器,它们是满加法器 |
3.第三阶段是一组纹波进位加法器,即半加法器和全加法器。 |
NORMALISER:有效乘法(中间积)的结果必须被规范化,使得小数点左边有一个前导' 1 '(即中间积的第46位)。由于输入是归一化的数字,那么中间乘积在第46或47位处有一个领先的数字 |
1-如果前导1在第46位(即小数点左边),那么中间积已经是一个规范化的数字,不需要移位。 |
2-如果前导1位于第47位,则中间积向右移动,指数加1。 |
乘数输出:得到的结果输出,然后检查溢出和下溢。溢出和下流:由于指数值是11位,双精度浮点乘法器的范围是-2n-1到+2n-1,即-2047到+2047。如果范围大于+2047,则发生溢出;如果范围小于-2047,则发生下溢。 |
COREGENERATOR |
为了将固定数转换为浮点数,使用了一个固定到浮点数的核心发生器,并将其馈送给一个双精度浮点乘法器。在图3 A中,B表示两个被转换为浮点数的固定操作数。 |
测试 |
代码实现后,要进行测试,以验证编码是否正确。这有两种方式。 |
1.它独立地测试了一个动态范围的值。 |
2.计数器被用作更宽动态范围测试的一部分。如果计数器是n位,则计数器的输出有2n个范围(即。, 0到2n-1)。将得到的取值范围赋给fixed to float Double precision float Point Multiplier的输入,如图3所示。由于双精度浮点乘法器是64位宽,因此获得的输出是264位。 |
结果与讨论 |
图4为双精度浮点乘法器仿真图,fa、fb为输入,fr为输出。 |
在图5中,该图显示了在Chipscope Analyzer中获得的数据与数据输出。该波形是不同动态范围的斜坡信号。表一显示了双精度浮点乘法器的逻辑应用。 |
结论 |
因此,双精度浮点乘法器是在Xilinx 12.4中实现的,并针对Vertex-4 FPGA[6]。然后用芯片范围分析仪中的计数器对设计进行测试和验证。该设计面积为4437片,时延为7个时钟周期。它提供了更大的范围和精度。这处理溢出和下溢和截断模式。 |
因此,双精度浮点乘法器是在Xilinx 12.4中实现的,并针对Vertex-4 FPGA[6]。然后用芯片范围分析仪中的计数器对设计进行测试和验证。该设计面积为4437片,时延为7个时钟周期。它提供了更大的范围和精度。这处理溢出和下溢和截断模式。 |
确认 |
A. Keerthi要感谢ECE系助理教授k.v.c oteswararao,他在整个项目中一直指导我,并支持我为论文提供技术想法,激励我高效成功地完成工作。 |
表格一览 |
![Click Here 表的图标](//www.cheescube.com/articles-images/table-icon.gif) |
表1 |
|
数字一览 |
|
参考文献 |
- Mohamed AI-Ashraf', Ashraf Salem, WagdyAnis。,"An Efficient Implementation of Floating Point Multiplier ", Saudi International Electronics, Communications and Photonics Conference (SIECPC), pp. 1-5, 2011.
- A. Jaenicke和W. Luk,“fpga上的参数化浮点算法”,IEEE lCASSP,第2卷,第897-900,2001。
- J.A. Eldon和C. Robertson,“信号处理的浮点格式”,IEEE声学、语音和信号处理国际会议论文集,pp, 717- 7202,1982。
- B. Lee和N. Burgess,“FPGA上的参数化浮点运算”,第36届Asilomar信号、系统和计算机会议记录,2002。IEEE浮点运算标准,2008。
- B. Fagin和C. Renard,“现场可编程门阵列和浮点算法”,IEEE VU汇刊,第2卷,第3期,第365-367页,1994年9月。
- 阿丹基·彪马·拉梅什,A. V. N.提拉克,am . m .普拉萨德。,“An FPGA Based High Speed IEEE-754 Double Precision Floating Point Multiplier Using Verilog” International Conference on Emerging trends in VLSI, Embedded System, Nano Electronics and Telecommunication System (ICEVENT),pp. 1-5,2013
|