当前位置: 首页 > 专利查询>GSI科技公司专利>正文

在关联存储器中使用组合方法对正弦/余弦进行CORDIC计算技术

技术编号:36067486 阅读:20 留言:0更新日期:2022-12-24 10:34
一种用于关联存储器设备的方法,包括以下步骤:提供具有用于CORDIC算法的N次第一迭代的所有可能解的查找表(LUT),接收多个输入角度,并发地针对所述多个角度中的每个角度计算位置索引,并且并发地将每个索引存储在所述关联存储器设备的列中,将来自LUT的在所述位置索引中的解复制到与索引相关联的多个列,以及并发地对所述列执行CORDIC算法的M次附加迭代,以针对每个角度计算三角函数的值。以针对每个角度计算三角函数的值。以针对每个角度计算三角函数的值。

【技术实现步骤摘要】
在关联存储器中使用组合方法对正弦/余弦进行CORDIC计算
[0001]相关申请的交叉引用
[0002]本申请要求于2021年6月23日提交的美国临时专利申请63/213,780的优先权,该申请通过引用并入本文。


[0003]概括而言,本专利技术涉及计算三角函数,并且具体地涉及在关联存储器设备中使用CORDIC算法。

技术介绍

[0004]坐标旋转数字计算机(CORDIC)算法是一种用于计算三角函数(如正弦和余弦)的算法。它被用作所有流行图形计算器的近似函数。
[0005]CORDIC算法围绕“旋转”复数的相位(通过将其乘以一系列常数值)的思想。乘法可以乘以2的幂,其可以使用移位和加法在硬件中实现。
[0006]现在参考的图1A是单位圆(半径等于1的圆)中的点(x,y)的图示。点(x,y)可以表示为角度α的两个三角函数:x=cos(α)和y=sin(α)。
[0007]CORDIC算法通过减小角度γ
i
执行顺时针和/或逆时针旋转的连续迭代。迭代可以在角度0开始,其中算法中的每个步骤执行朝向角度α的旋转。可替代地,迭代可以在角度α开始,其中算法中的每个步骤都执行朝向角度0的旋转。
[0008]现在参考的图1B是CORDIC算法的图示,在角度0开始,该算法迭代地用于确定角度α的正弦或余弦值。在第一迭代中,第一旋转角度(γ1)可以逆时针旋转到达单位圆中的点v1。示例中的角度α大于γ1;因此,在下一次迭代中,旋转角度(γ2)也应该是逆时针的,以接近角度α,到达点v2。得到的角度(γ1+γ2)大于角度α,因此在下一次迭代中,旋转角度(γ3)可能会顺时针旋转,导致角度(γ1+γ2‑
γ3)越来越接近角度α。使角度∑γ
i
更接近α的旋转过程继续进行预定(T)次数的迭代。得到的角度(∑γ
i
)与α之间的差代表此过程中的最大错误(mistake),即1/2
T

[0009]当点(x,y)表示为向量时,每次迭代计算旋转,其通过将向量v
i
与表示角度γ
i
的旋转矩阵R
i
相乘来执行,如等式1所表达的:
[0010]v
i+1
=R
i
*v
i
ꢀꢀꢀꢀꢀꢀꢀ
等式1
[0011]旋转矩阵R
i
由等式2定义:
[0012][0013]选择旋转角度γ
i
使得tan(γ
i
)=
±2‑
i
可以用除以2的幂来代替乘以切线,如等式3中表达的(并且如上所述,除以2的幂可以在HW中通过移位操作来实现)。
[0014][0015]K
i
的值,如等式4所表达,可以预先针对每个i进行计算:
[0016][0017]R
i
中sign
i
的值确定旋转的方向,其中+1是逆时针旋转,并且

1是顺时针旋转。
[0018]用于使用CORDIC算法的迭代序列计算余弦值和正弦值的所得等式可以分别由等式5和等式6表示。值x是余弦,并且值y是正弦。
[0019]x
i+1
=x
i

(sign
i
)*y
i
*2

i
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
等式5
[0020]y
i+1
=(sign
i
)*x
i
*2

i
+y
i
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
等式6
[0021]如上所述,CORDIC算法包括一组迭代,其中,在每个步骤中,已知大小的角度与先前步骤中计算的临时角度相加或从先前步骤中计算的临时角度中删除,旨在达到需要其余弦值和正弦值(x值和y值)的角度α的大小。
[0022]可替代地(而不是执行实际计算),可以将CORDIC算法迭代T次的所有可能结果预先存储在查找表(LUT)中。LUT中的每个条目i在执行CORDIC算法的i次迭代后提供角度α的正弦值和余弦值。存储i次迭代后的CORDIC算法的结果的表的大小为T=2
i

[0023]可以意识到,旋转次数T确定了结果的准确度,并且通过增加旋转次数,结果(正弦/余弦值)的准确度增加。
[0024]当使用LUT时,迭代次数T确定了表的大小和到表的索引中的位数。在执行实际计算时,迭代次数T确定了计算复杂度。

技术实现思路

[0025]根据本专利技术的优选实施例,提供了一种用于关联存储器设备的方法。该方法包括:提供具有用于CORDIC算法的N次第一迭代的所有可能解的查找表(LUT),接收多个输入角度,并发地计算多个输入角度中的每个角度的位置索引,以及并发地将每个索引存储在关联存储器设备的列中。该方法还包括:将来自LUT的在位置索引中的解复制到与索引相关联的多个列,并且并发地对多个列执行CORDIC算法的M次附加迭代,以针对多个输入角度中的每个输入角度计算三角函数的值。
[0026]此外,根据本专利技术的一个优选实施例,并发计算位置索引是对每个输入角度并发地执行的,并且包括以下步骤:将临时角度初始化为输入角度的值,基于临时角度和零之间的比较确定位的值与符号,将位指派给位置索引,基于符号和预定角度计算旋转角度,将旋转角度与临时角度相加。初始化、确定、指派和计算的步骤重复N次,从而创建具有N位的位置索引。
[0027]此外,根据本专利技术的一个优选实施例,N=5且M=5。
[0028]另外,根据本专利技术的优选实施例,复制解的步骤包括有序地遍历LUT的所有条目并且并发地将来自LUT的在位置索引中的X值和Y值复制到具有相同的计算的位置索引的所有列。
[0029]根据本专利技术的优选实施例,提供了一种正弦和余弦估计器。正弦和余弦估计器包括:查找表(LUT),用于存储为CORDIC算法的N次第一迭代预先计算的正弦值和余弦值;关联存储器阵列,用于存储与多个角度相关的信息;LUT索引构建器,用于对于多个角度中的每一个并发地构建索引,索引反映预定义旋转角度的旋转;LUT值指派器,用于将来自LUT中的条目的值指派给共享相同索引的关联存储器阵列的列;以及CORDIC计算机,用于在关联存
储器阵列的多个列上并发地计算CORDIC算法的M次附加的迭代,从而向多个角度提供在CORDIC算法的N+M次迭代之后的正弦值和余弦值。
[0030]此外,根据本专利技术的优选实施例,LUT包括25个条目并且N=5。
附图说明
[0031]被视为本专利技术的主题在说明书的结论部分中被特别指出并明确要求保护。然而,本专利技术关于组织和操作方法二者,连同其目的、特征和优点,在与附图一起阅读时可以通过参考以下详细描述得到最好的理解,在附图中:
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于关联存储器设备的方法,所述方法包括:提供具有用于CORDIC算法的N次第一迭代的所有可能解的查找表(LUT);接收多个输入角度;并发地针对所述多个输入角度中的每个输入角度计算位置索引,并且并发地将每个索引存储在所述关联存储器设备的列中;将来自所述LUT中的在所述位置索引中的解复制到与所述索引相关联的多个列;以及并发地对所述多个列执行所述CORDIC算法的M次附加迭代,以针对所述多个输入角度中的每个所述输入角度计算三角函数的值。2.如权利要求1所述的方法,其中,并发地计算位置索引包括:并发地针对每个所述输入角度:将临时角度初始化为所述输入角度的值;基于所述临时角度和零之间的比较来确定位的值和符号;将所述位指派给所述位置索引;基于所述符号和预定角度来计算旋转角度;将所述旋转角度与所述临时角度相加;重复初始化、确定、指派和计算的步骤N次,从而创建具有N位的所述位置索引。3.如权利要求1所述的方法,其中,...

【专利技术属性】
技术研发人员:M
申请(专利权)人:GSI科技公司
类型:发明
国别省市:

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

1