APP下载

低延时的浮点正弦余弦函数硬件实现算法

2021-11-16梁峰刘春锐李孝聪邱广波张继陈振娇李薇敏曹琪雷绍充

西安交通大学学报 2021年11期

梁峰, 刘春锐, 李孝聪, 邱广波, 张继, 陈振娇, 李薇敏, 曹琪, 雷绍充

(1.西安交通大学微电子学院, 710049, 西安; 2.中国电子科技集团公司第五十八研究所, 214035, 江苏无锡)

具有正弦余弦函数计算能力的集成电路已被广泛应用于各个领域。通用芯片CPU、GPU和DSP中也有专门进行正弦余弦函数运算的硬件单元,例如TI的TMX320系列DSP芯片,其上有一个硬件纹理映射单元(TMU),专门用于实现超越函数的快速计算。

传统的正弦余弦函数的硬件实现,主要采用坐标旋转数字计算机(CORDIC)算法[1]。CORDIC算法的优势在于电路面积小,仅用移位寄存器和加法器/减法器就可以实现计算。但其缺点在于,它的收敛速度较慢,通常一轮迭代只能增加一个有效数字。对于单精度浮点运算,CORDIC算法需要较多的时钟周期才能使结果达到单精度浮点所要求的精度。基于此,有许多改进的CORDIC算法如Para-CORDIC[2-3]、Hybrid CORDIC[4]、Scale-Free CORDIC[5-7]等,或者使用循环展开的方式在一个时钟周期内做多轮迭代[8-11]。这些方法在一定程度上缩短了CORDIC算法的延时,但是仍满足不了低延时计算的需求。

除CORDIC算法外,有些设计采用了多项式拟合法[12-13]、泰勒级数展开法[14-15]、幂级数展开法[16-17]等算法。这些算法收敛速度较快,但是需要大量的乘法运算才能得到单精度浮点所需精度。

为了解决正弦余弦函数计算延时较大这一问题,本文提出了一种低延时的浮点正弦余弦函数硬件算法。该算法采用分段的思想将单精度浮点数输入按照指数范围的不同划分为3个不同区域,在这3个不同区域内分别采用不同的算法来保证计算的精度。……

登录APP查看全文