[发明专利]用于集成电路设备中的三角函数的计算有效
申请号: | 201180031374.4 | 申请日: | 2011-06-21 |
公开(公告)号: | CN102959503A | 公开(公告)日: | 2013-03-06 |
发明(设计)人: | M·兰厄姆默 | 申请(专利权)人: | 阿尔特拉公司 |
主分类号: | G06F7/548 | 分类号: | G06F7/548 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 集成电路 设备 中的 三角函数 计算 | ||
技术领域
本发明涉及在集成电路设备中计算三角函数,并且具体而言在诸如可编程逻辑设备(PLD)的可编程集成电路中。
背景技术
通常对于0-360°或0-2π弧度的相对小的角度范围定义三角函数。对于2π以上的角度值,三角函数的值重复。事实上可以将范围限制为0-π/2,因为各种三角恒等式可用于从0到π/2之间的角度的三角函数得到π/2到2π之间的任意角度是三角函数的值。
在集成电路设备中可用于计算三角函数的一个方法是CORDIC算法,其使用以下三个递归方程式:
xn+1=xn-dnyn2-n
yn+1=yn+dnxn2-n
zn+1=zn-dntan-1(2-n)
例如,为了计算输入的正弦或余弦,将x值初始化为“1”,将y值初始化为“0”,并且将Z值初始化为需要的角度。然后将Z向零旋转,其确定的dn的符号,dn是±1,如果zn是正的,则dn也是正的,因为目标是使z更接近0;如果zn是负的,则dn也是负的,这出于相同的原因。x和y表示单位向量的x和y分量;随着z旋转,该向量也旋转,并且当z到达它到0的最终旋转时,x和y的值将分别收敛到输入角的余弦和正弦。
为了解决旋转期间单位向量的伸展,将比例因子应用于x的初始值。该比例因子是:
因此将最初的x设置为1/1.64677...=0.607252935...。
但是随着输入变小,CORDIC可能变得不正确。例如,随着θ接近0,sin(θ)接近θ(并且因此sin(θ)接近0),并且随着θ接近0,cos(θ)接近1。但是,计算值与实际值之间的误差的量值随着θ减小而增加。
此外,在诸如FPGA的集成电路设备中看起来容易实现具有初始考虑的CORDIC,但是更仔细的分析显示无效率,至少部分地因为多个深度数学结构,每个层包括宽的加法器。普通FPGA架构可以具有4-6个输入函数,紧接着专用脉动进位加法器,紧接着寄存器。当用于计算浮点函数时,如在单精度正弦或余弦函数的情况,对于更小的输入值生成精确的结果所需要的硬件资源的数量可能变大。
发明内容
根据本发明的实施方式,可以使用基于可以被应用的不同的三角恒等式的各种改进实现来计算不同的三角函数。
对于正弦和余弦函数,改进CORDIC实现将小输入角度改变成较大角度,其中CORDIC结果对于较大角度更精确。这可以通过对于小的θ(例如对于θ<π/4)使用π/2-θ代替θ来完成。如上文所讨论的,对于较小角度,CORDIC精确性受损,但是标准CORDIC实现可以用于较大角度。复用器可以在输入值θ与减法器的输出之间选择,其中该减法器的减数和被减数分别是π/2和输入值θ。可以使用输入θ与阈值的比较来控制复用器以做出选择。正弦和余弦都由CORDIC实现的x和y数据路径来计算,并且可以使用可能受与输入复用器相同的比较输出控制的另一个复用器来选择希望的输出路径。当π/2-θ已经被用作输入时,可以使用恒等式cos(θ)=sin(π/2-θ)以及sin(θ)=cos(π/2-θ)来得到希望的结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿尔特拉公司,未经阿尔特拉公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180031374.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:给文档编索引
- 下一篇:用于确定或监测物理或化学过程变量的现场装置