论文部分内容阅读
随着世界信息化进程的高速发展,需要计算机处理计算的数据量变得十分庞大。浮点数拥有表示范围广的特性,因此浮点计算在高精度计算领域应用增多,浮点数的计算变得越来越重要。浮点超越函数在天文、测绘等领域应用十分广泛。而在集成电路的设计中,由于制造工艺、芯片面积等条件的限制,传统的浮点硬件运算单元架构简单、速度慢,难以实现复杂的超越函数计算,因此在实际中多采用软件方法实现复杂浮点运算。集成电路工艺的提升为设计复杂浮点超越函数运算单元提供了基础,因此设计更快速、精确的浮点硬件运算单元已经成为集成电路设计中必须面对的课题。指数函数是超越函数中应用最广的函数,本文基于坐标旋转数字计算方法(Coordinate Rotation Digital Compute,CORDIC),提出了128位浮点指数函数硬件并行处理架构。架构中使用了一种改进四次预测CORDIC算法,在一个时钟上预测四次迭代的符号值,减少了迭代运算周期,提高了算法速度,解决了CORDIC算法在高精度计算情况下迭代次数较多的问题。在128位浮点指数运算中,将原本至少需要128次迭代缩减为37次,大大减少了算法运行周期,提高了算法的运行效率。相比于传统CORDIC算法只能根据下一次迭代结果值判断符号,四次预测CORDIC算法从四次迭代的整体值来判断符号,因此更能保证计算精度,也更适合于高精度浮点指数函数计算。本文实现了128位浮点指数函数运算单元的硬件电路结构设计。整体结构分为三个部分:预处理模块、指数函数尾数迭代模块和规则化模块。预处理模块负责异常分析,并对输入的128位浮点数进行处理,将输入的浮点数转化为定点数通过计算单元计算出结果的指数值,并输出尾数迭代的初始计算值。指数函数尾数迭代计算模块利用改进四次预测CORDIC算法进行迭代计算,是本算法的核心。将预处理得到的定点数输入到尾数迭代模块,经过一定时钟周期后迭代结果为预处理定点数相对应的双曲正余弦值。规则化模块负责将尾数迭代模块计算结果相加,得到计算结果的尾数值,通过前导零检测电路和减法器将尾数值、指数值与符号位整合输出为标准浮点数格式。本设计使用Verilog语言进行编程,完成了128位浮点指数函数硬件电路的设计。在TSMC 65 nm工艺下,利用Synopsys的综合设计工具进行仿真综合。利用Python生成的10万个随机浮点数与实验结果对比验证。经过测试,本算法的计算结果在输入输出为128位浮点数的情况下,可以满足113位满精度输出。在500 MHz的工作频率下,硬件面积消耗为0.66 mm~2,功耗为62.65m W,计算周期为37个时钟。综上,本文实现了预期设计目标,完成了128位高精度浮点指数函数运算单元的设计。