一种基于FPGA的反三角函数实现方法技术

技术编号:13338152 阅读:193 留言:0更新日期:2016-07-13 10:23
本发明专利技术涉及于集成电路领域,尤其是涉及到一种基于FPGA的反三角函数实现方法,本发明专利技术提供的这种基于FPGA的反三角函数实现方法,包括反三角函数实现器,所述反三角函数实现器包括处理器、寄存器组模块、运算控制模块、运算模块、FPGA控制模块;本发明专利技术的目的在于提供一种基于FPGA的反三角函数实现方法,在不增加硬件电路开销且支持一定程度并行三角函数计算的前提下,提高三角函数运算精度。

【技术实现步骤摘要】


本专利技术涉及于集成电路领域,尤其是涉及到一种基于FPGA的反三角函数实现方法

技术介绍

通常对于0-360°或0-2π弧度的相对小的角度范围定义三角函数。对于2π以上的角度值,三角函数的值重复。事实上可以将范围限制为0-π/2,因为各种三角恒等式可用于从0到π/2之间的角度的三角函数得到π/2到2π之间的任意角度是三角函数的值。
三角函数的计算在函数求解、二维建模、数值分析、图象处理、弹道计算及修正等
广泛应用。三角函数运算器作为协处理器对整个系统的数字信号的处理能力有着极为重要的影响。
目前,三角函数运算器的设计主要基于CORDIC算法。CORDIC算法是一种线性收敛和顺序执行的迭代算法,即对N位精度至少需要N次迭代,第i+1次迭代只有在第i次迭代完成后才能执行。CORDIC算法可以将多种难以用硬件实现的复杂运算分解为统一的简单移位、加法运算,然后逐次逼近结果。CORDIC算法可以应用在圆周系统、线性系统和双曲系统,每一系统又有旋转模式和向量模式之分。
由于三角函数属于圆周系统,因此下面主要针对圆周系统下CORDIC的应用进行说明,CORDIC在圆周系统下迭代公式的推导过程可查阅相关文献。
在专利申请号为201210433693.4的中国专利中,公开了一种基于CORDIC算法的反馈和流水线结构相结合的三角函数运算器,包括基于软件配置的寄存器组模块、运算控制模块及伪流水运算迭代单元组成。基于软件配置的寄存器组模块包括A、B两类寄存器;运算控制模块负责寄存器组模块和伪流水运算迭代单元的连接;伪流水运算迭代单元由实现CORDIC算法的n级流水单元组成。本专利技术提出的基于配置的伪流水CORDIC算法结构在不增加硬件电路开销且支持一定程度并行三角函数计算的前提下,通过将运算迭代单元的输出不断反馈回其输入的伪流水形式,实现无限制精度的三角函数运算。
然而,本专利中提出的种种优化措施都是针对流水线结构,虽然在一定程度上可以加快运算结果,降低硬件开销,但都是以降低结果的运算精度为代价的,从上面的分析可知:运算精度和电路规模成正相关关系。
近年,国内外提出了诸多优化的CORDIC算法实现结构,详细的可参考“基于嵌入式的CORDIC算法的改进和实现”“、并行CORDIC算法的研究”“、ANewMethodtoImplementCORDICAlgorithm”、“一种改进的流水CORDIC算法结构”等文献。诸多文章的优化方向主要以下几个方向:
1)简化模校正因子P的计算;
2)提前预测旋转剩余角度zi的符号位;
3)跳过没有必要的多于迭代运算(当角度等于arctan2-i时,不需要修正结果的多次迭代;
4)当迭代次数达到一定级数之后,合并迭代次数,从而减小流水级数,降低硬件消耗。
结合国内外文献提出的优化措施可知,目前提出的种种优化措施都是针对流水线结构,虽然在一定程度上可以加快运算结果,降低硬件开销,但都是以降低结果的运算精度为代价的,从上面的分析可知:运算精度和电路规模成正相关关系。
此外,在诸如FPGA的集成电路设备中看起来容易实现具有初始考虑的CORDIC,但是更仔细的分析显示无效率,至少部分地因为多个深度数学结构,每个层包括宽的加法器。
普通FPGA架构可以具有4-6个输入函数,紧接着专用脉动进位加法器,紧接着寄存器。当用于计算浮点函数时,如在单精度正弦或余弦函数的情况,对于更小的输入值生成精确的结果所需要的硬件资源的数量可能变大。

技术实现思路

本专利技术的目的在于提供一种基于FPGA的反三角函数实现方法,在不增加硬件电路开销且支持一定程度并行三角函数计算的前提下,提高三角函数运算精度。
为此,本专利技术提供了一种基于FPGA的反三角函数实现方法,包括反三角函数实现器,所述反三角函数实现器包括处理器、寄存器组模块、运算控制模块、运算模块、FPGA控制模块;
所述处理器输入端与寄存器组模块输出端电连接,寄存器组模块输出端与运算控制模块输入端电连接,所述运算控制模块输出端与运算模块输入端电连接,所述处理器输出端、寄存器组模块输出端、运算控制模块输出端和运算模块输出端与FPGA控制模块输入端电连接。
所述寄存器组模块包括A类寄存器、运行控制寄存器、计算状态寄存器、运算命令寄存器、计算精度寄存器、计算结果寄存器、操作数寄存器和总线接口;
所述A类寄存器输出端、运行控制寄存器输出端、计算状态寄存器输出端、运算命令寄存器输出端、计算精度寄存器输出端、计算结果寄存器输出端、操作数寄存器输出端和总线接口输出端与寄存器组模块输入端电连接。
所述运算模块包括若干个加减法器和若干个移位器;所述加减法器输出端和移位器输出端与运算模块输入端电连接。
所述反三角函数实现器还包括电源模块、复位模块和开关模块;
所述电源模块输出端、复位模块输出端和开关模块输出端分别与FPGA控制模块输入端电连接。
所述反三角函数实现器还包括显示屏和键盘输入模块;
所述显示屏输入端与FPGA控制模块输出端电连接,所述键盘输入模块输出端与FPGA控制模块输入端电连接。
与现有技术相比,本专利技术具有以下有益的技术效果:
本专利技术提供的一种基于FPGA的反三角函数实现方法在运算控制模块的控制下,可以将伪流水运算迭代单元的输出反馈作为伪流水运算迭代单元的输入,在n级流水单元的m次反馈下就能够完成m×n级伪流水的实际运算,其中伪流水指用非完全流水线结构实现完全流水结构的CORDIC算法运算,节省了硬件开销。
进一步,本专利技术提供一种基于FPGA的反三角函数实现方法,还能够支持一定程度并行三角函数计算,并行程度根据用户允许的硬件开销而定。
再进一步,将存器组模块由软件配置实现后,可以在硬件开销完全可控的情况下(硬件消耗主要由伪流水迭代运算单元组成),通过运算控制单元的控制,支持多条三角函数运算并行进行,并且以伪流水的形式完成无限制精度的三角函数运算。解决了随着运算精度的提高,所需运算器硬件电路规模不断扩大的技术问题,在电路规模下不变的前提下,可以通过软件配置无限制的提高运算的精度。
本专利技术提供的基于CORDIC算法的反馈和流水线结构相结合的三角函数运算器,具体的以支持4条浮点三角函数运算并行处理进行验证,用户配置计算精度,其功能及性能均已经过流片验证。
附图说明
图1是本专利技术的结构框图。
具体实施方式
实施例1
为了在不增加硬件电路开销且支持一定程度并行三角函数计算的前提下,提高三角函数运算精度。本专利技术提供了一种基于FPGA的反三角函数实现方法,包括反三角函数实现器,所述反三角函数实现器包括处理器、寄存器组模块、运算控制模块、运算模块、FPGA控制模块;
所述处理器输入端与寄存器组模块输出端电连接,寄存器组模块输出端与运算控制模块输入端电连接,所述运算控制模块输出端与运算模块输入端电连接,所述处理器输出端、寄存器组模块输出端、运算控制模块输出端和运算模块输出端与FPGA控制模块输入端电连接。
本专利技术的寄存器组模块工作过程为:
所述寄存器组模块包括A类寄存器:启动三角函数运算的运行控制寄存器、说明三角函数运算状态的计算状态寄存器、标明运算类型的运算命令寄存器、说明运算精度的运本文档来自技高网
...

【技术保护点】
一种基于FPGA的反三角函数实现方法,包括反三角函数实现器,其特征在于:所述反三角函数实现器包括处理器、寄存器组模块、运算控制模块、运算模块、FPGA控制模块;所述处理器输入端与寄存器组模块输出端电连接,寄存器组模块输出端与运算控制模块输入端电连接,所述运算控制模块输出端与运算模块输入端电连接,所述处理器输出端、寄存器组模块输出端、运算控制模块输出端和运算模块输出端与FPGA控制模块输入端电连接。

【技术特征摘要】
1.一种基于FPGA的反三角函数实现方法,包括反三角函数实现
器,其特征在于:所述反三角函数实现器包括处理器、寄存器组模块、
运算控制模块、运算模块、FPGA控制模块;
所述处理器输入端与寄存器组模块输出端电连接,寄存器组模块
输出端与运算控制模块输入端电连接,所述运算控制模块输出端与运
算模块输入端电连接,所述处理器输出端、寄存器组模块输出端、运
算控制模块输出端和运算模块输出端与FPGA控制模块输入端电连
接。
2.根据权利要求1所述的一种基于FPGA的反三角函数实现方法,
其特征在于:所述寄存器组模块包括A类寄存器、运行控制寄存器、
计算状态寄存器、运算命令寄存器、计算精度寄存器、计算结果寄存
器、操作数寄存器和总线接口;
所述A类寄存器输出端、运行控制寄存器输出端、计算状态寄存
器输出端、运算命令寄存器输出端、计算精度寄存器输出端、计...

【专利技术属性】
技术研发人员:王栋连仲勋杨鑫
申请(专利权)人:陕西培元电子科技有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1