所有提交的EM系统将被重定向到网上投稿系统.作者被要求将文章直接提交给网上投稿系统各自的日志。

双精度浮点乘法器在FPGA上的实现

A.Keerthi1, K.V.Koteswararao2
  1. 印度蒂鲁帕蒂Sree Vidyanikethan工程学院ECE系PG学生[VLSI]
  2. 印度蒂鲁帕蒂Sree Vidyanikethan工程学院欧洲经委会系助理教授
有关文章载于Pubmed谷歌学者

更多相关文章请访问国际电气、电子和仪器工程高级研究杂志

摘要

乘法是数字信号处理(DSP)计算中常用的算术运算之一。所提出的设计是IEEE-754双精度浮点乘法器的实现,与单精度乘法器[1]相比,它具有更宽的动态范围和精度。采用Xilinx 12.4 ISE工具设计了双精度乘法器,并在Xilinx Vertex-4 ML403平台上进行了设计验证,该平台可处理溢流、欠流和截断模式。利用Xilinx ISim模拟器对乘数输出进行了全面的仿真和分析,并编写了一个测试平台来生成输入刺激



关键字

双精度,浮点数,倍增器,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,他在整个项目中一直指导我,并支持我为论文提供技术想法,激励我高效成功地完成工作。

表格一览

表的图标
表1

数字一览

数字 数字 数字 数字 数字
图1 图2 图3 图4 图5

参考文献







全球科技峰会