论文部分内容阅读
在导航、雷达等数字信号处理领域,需要大量正余弦和反正切函数计算,目前主要的手段是采用FPGA并行完成。硬件设计方案主要包括查表法、多项式逼近方法和坐标旋转数字计算方法(Coordinate Rotation Digital Computer,CORDIC);随着精度要求的提高,查表法和多项式逼近法硬件资源消耗成指数增加;CORDIC算法可以通过移位和相加计算三角函数和超越函数,是高精度正余弦和反正切函数计算的首选硬件算法。目前正余弦和反正切函数计算精度主要包括定点、单精度浮点和双精度浮点,针对128位浮点的计算硬件实现研究还较少。本文基于CORDIC算法,开展128位高精度浮点正余弦和反正切函数并行计算的硬件结构研究,论文研究对于雷达、导航、天气等高精度快速超函数计算需求具有重要价值。为了减少迭代次数,提高运算速度,本文设计了针对正余弦和反正切函数计算的四步并行分支迭代CORDIC算法。在传统CORDIC算法的单步迭代基础上,改进为每个周期完成四步迭代计算。在每个时钟周期内,并行计算x,y,z的16种可能情况,预测出下一个四步迭代的符号因子。要达到128位浮点标准的113 bit精度,传统CORDIC算法需要经过113个时钟周期,而改进后的四步并行分支迭代CORDIC算法只需32个时钟周期即可完成计算。论文分别设计了正余弦和反正切函数并行计算的硬件结构。浮点正余弦和反正切函数运算单元的硬件结构都包含三个模块:预处理模块、四步并行迭代模块和后处理模块。预处理模块负责对输入异常角度进行处理,将输入的浮点角度转换为CORDIC算法可计算的收敛范围;四步并行迭代模块是核心模块,将改进后的四步并行分支迭代CORDIC算法进行硬件实现;后处理模块中包含前导零检测、归一化等,并结合象限映射的结果,将定点计算结果转化为标准的浮点输出。论文中函数的硬件建模使用Verilog进行编写,利用Modelsim平台,对设计进行验证仿真,最后在TSMC65 nm工艺下进行DC综合。在测试过程中,利用Python平台生成128位浮点的随机数据,并生成理想计算结果,与本次硬件建模中的仿真结果进行了大量的数据对比。测试结果显示,对于正余弦函数,在输入数值指数[2-11,213]的范围内,最大计算误差不超过1 bit。反正切函数浮点运算单元在输入数值y/x的指数比值大于2-10的情况下,最大误差不超过1 bit,两者均能达到高精度要求。两个运算单元的计算周期仅为32个周期,在500MHz的工作频率下,正余弦函数运算单元的硬件面积约为0.75 mm2,硬件功耗约为75.57 m W,反正切函数运算单元的硬件面积约为0.63 mm2,硬件功耗约为40.65 m W。综上,本次设计实现了预期目标,完成了高精度浮点正余弦和反正切函数运算单元的硬件建模。