当前位置: 首页 > 专利查询>浙江大学专利>正文

低时延高频单向旋转的CORDIC算法装置及算法制造方法及图纸

技术编号:19820744 阅读:24 留言:0更新日期:2018-12-19 14:20
本发明专利技术公开了一种低时延高频单向旋转的CORDIC算法装置及算法。先通过用[0,π/4]替代全象限,能压缩一半的查找表来节省资源;然后将查表法和单向旋转迭代运算结合使用;最后通过一次单向的加法树合并迭代来获得结果。跟其他算法相比,单向旋转能最大程度上节省资源,减少功耗,而合并迭代通过加法树并行运算来实现,能满足高频下的时序要求和有效缩短时延。通过仿真验证发现本发明专利技术相对传统的CORDIC算法的整体性能有了明显的改善,缩短了时延,减少了资源消耗,提高了工作的最高频率,更适用于高频的场景,也减少了综合器综合的压力,有利于获得最优的结构和最小的面积。

【技术实现步骤摘要】
低时延高频单向旋转的CORDIC算法装置及算法
本专利技术属于数字芯片
,涉及CORDIC算法。
技术介绍
随着数字通信中应用正弦余弦正切等函数的领域越来越广,而计算这些函数主要的三种方法,即泰勒级数展开法、查找表法和坐标旋转数字计算机(CoordinateRotationDigitalComputer,简称CORDIC)算法中,查找表在位宽增大时所消耗资源是呈指数增长的,泰勒级数实现复杂,耗用资源多,且时序难以满足。而CORDIC算法依靠迭代实现,不需要用到乘法器,只用到了移位和加法,且能通过改变迭代次数来适应不同精度的需求,因此广泛应用在直接数字频率合成(DDS)、数控振荡器(NCO)等器件中。传统的CORDIC算法需要等待上次迭代完成才能确定下次迭代的方向,在需要达到较高精度的情况下,时延过长,限制了运算的速度,在使用流水线结构来加快运算速度时,也会因为单次迭代就需要6个加法器而消耗大量硬件资源,实现方式如图3所示。为解决此问题,研究者们提出了多种方案:进行双步旋转,将两次迭代在一个周期做完,但仍需要N/2拍才能完成运算(其中N为传统迭代总次数),且一个周期做两次加法在位宽大的情况下难满足高频时的时序要求;先利用角度进行二级化重编码,提前得知旋转方向,不需要角度加减来判断运算方向,节省了一路加法器,但也需要做大于N/2次的迭代;先二级化重编码,并将表压缩至π/8,然后一次合并迭代运算,此时换算到其他象限需要乘以√2/2,虽然减小了表的大小,但7个数的移位连加时序上的条件难满足,还存在精度问题;利用角度进行二级化重编码后,先查表,然后进行已知旋转方向的迭代,最后通过一次合并迭代得到结果,大大缩短了时延,但因为是双向旋转,相比单次迭代还多出了2个加法器和2个减法器,且合并迭代易导致时序问题;将双向旋转改为单向旋转,可以每次迭代省去2个减法器,但因为还是通过迭代实现,时延并未缩短。
技术实现思路
为了克服现有技术的不足,本专利技术提供了一种低时延高频单向旋转的CORDIC算法装置及算法。一种低时延高频单向旋转的CORDIC算法装置,包括角度压缩模块、查找表模块、单向旋转迭代模块、加法树合并迭代模块、还原输出模块;所述的角度压缩模块,位于最左的位置,将(0,2π)的角度量化为16bit的角度输入角度压缩模块进行正余弦变换的运算来将角度压缩到(0,π/4)的范围内,输出13bit的角度量化数据和2bit的角度压缩标志位,分别是是否要交换正余弦两路信号和是否要加正负号,运算后得到结果的前4bit单独输出到查找表模块,按照4bit从查找表中查得的结果和角度压缩模块输出的后1bit传输给单向旋转迭代模块决定是否进行一次单向旋转的蝶形运算,1bit数据为1则运算,为0则不运算,单向旋转迭代模块的输出和角度压缩模块剩下的9bit给到加法树合并迭代模块,利用加法树结构完成连加运算,加法树合并迭代模块的输出和角度压缩模块运算获得的角度压缩标志位传输给还原输出模块进行判断加正负号和是否交换两路信号的运算,并最终获得CORDIC算法的结果cosθ和sinθ。所述的角度压缩模块,用[0,π/4]替代全象限16bit的角度,输出角度的正负标志位和是否交换正弦余弦的标志位和压缩到[0,π/4]的角度,[0,π/4]13bit的角度分别输出到查找表模块、单向旋转迭代模块、加法树合并迭代模块,角度的正负标志位和是否交换正弦余弦的标志位输出到还原输出模块。所述的查找表模块,剩下13bit的角度前4bit用于(0,π/4)范围内的正弦余弦表的查表,表的大小为24,涵盖从0000到1111对应的所有数,查表数据输出给单向旋转迭代模块用于进一步运算。所述的单向旋转迭代模块,1bit用于决定是否单向旋转,1bit数据为1则运算,为0则不运算,进行一次单向迭代运算仅需2个加法器,单向迭代运算的结果给到加法树合并迭代模块进行进一步运算。所述的加法树合并迭代模块,利用移位后进行相加的加法树结构来进行单向旋转迭代求和,3个时延即可算出结果。所述的还原输出模块,利用角度压缩模块生成的两个标志位,判断加正负号和是否交换两路信号,将角度还原到(0,2π)的范围内。一种低时延高频单向旋转的CORDIC算法,先通过用[0,π/4]替代全象限,压缩一半的查找表来节省资源,通过角度压缩模块来实现;然后将查表法和单向旋转迭代运算结合使用,通过查找表模块、单向旋转迭代模块实现;再通过一次单向的加法树合并迭代来获得结果,通过加法树合并迭代模块实现;最后利用之前算得的角度压缩标志位,将角度还原到(0,2π)的范围内,通过还原输出模块实现。所述的CORDIC算法,具体如下:所述的角度压缩模块,位于最左的位置,将(0,2π)的角度量化为16bit的角度输入角度压缩模块进行正余弦变换的运算来将角度压缩到(0,π/4)的范围内,输出13bit的角度量化数据和2bit的角度压缩标志位,分别是是否要交换正余弦两路信号和是否要加正负号,运算后得到结果的前4bit单独输出到查找表模块,按照4bit从查找表中查得的结果和角度压缩模块输出的后1bit传输给单向旋转迭代模块决定是否进行一次单向旋转的蝶形运算,1bit数据为1则运算,为0则不运算,单向旋转迭代模块的输出和角度压缩模块剩下的9bit给到加法树合并迭代模块,利用加法树结构完成连加运算,加法树合并迭代模块的输出和角度压缩模块运算获得的角度压缩标志位传输给还原输出模块进行判断加正负号和是否交换两路信号的运算,并最终获得CORDIC算法的结果cosθ和sinθ。本专利技术的有益效果:(1)节省资源:a.用[0,π/4]替代全象限的角度,只需要修改符号以及正弦余弦交换即可代表整个象限,且选择器所占资源少,却能压缩一半的查找表来节省大量资源。减少3bit的数据量,相比起传统的流水线结构压缩到[0,π/2]少了1级蝶形运算,节省了6个加法器。b.按单次迭代来看,传统算法需要6个加法器和6个移位器,二级化重编码的双向旋转算法需要4个加法器和4个移位器,而单向旋转只需要2个加法器和2个移位器,大大节省了逻辑资源。因此单向旋转能最大程度上节省资源。(2)缩短时延:通过一次性合并迭代,而不需要串行迭代来实现,极大的缩短了时延,且角度位宽越大,相对于传统方式的时延优势越明显。(3)提高工作最高频率:合并迭代通过加法树并行运算来实现,能满足高频下的时序要求,减少了综合器综合的压力,有利于获得最优的结构和最小的面积。(4)降低了功耗:由于资源上的节省,以及并未因为要缩短时延而设计为复杂的组合逻辑结构,功耗节约上也是具有优势的。改进的算法比传统的CORDIC算法在100MHz工作频率下,功耗差别不大,但随着频率增高,改进算法功耗的优势逐渐凸显。附图说明图1是本专利技术一种低时延高频单向旋转的CORDIC算法装置的结构示意图;图2是本专利技术中的加法树合并迭代模块的结构示意图;图3是
技术介绍
中传统流水线实现方式的结构示意图;图4是两种算法生成的[0,2π]余弦值的误差仿真图,其中(a)部分采用传统算法,(b)部分采用本专利技术低时延高频单向旋转的CORDIC算法。附图标记说明:1.角度压缩模块;2.查找表模块;3.单向旋转迭代模块;4.加法树合并迭代模块;5.还原输出模本文档来自技高网
...

【技术保护点】
1.一种低时延高频单向旋转的CORDIC算法装置,其特征在于,包括角度压缩模块(1)、查找表模块(2)、单向旋转迭代模块(3)、加法树合并迭代模块(4)、还原输出模块(5);所述的角度压缩模块(1),位于最左的位置,将(0,2π)的角度量化为16bit的角度输入角度压缩模块(1)进行正余弦变换的运算来将角度压缩到(0,π/4)的范围内,输出13bit的角度量化数据和2bit的角度压缩标志位,分别是是否要交换正余弦两路信号和是否要加正负号,运算后得到结果的前4bit单独输出到查找表模块(2),按照4bit从查找表中查得的结果和角度压缩模块(1)输出的后1bit传输给单向旋转迭代模块(3)决定是否进行一次单向旋转的蝶形运算,1bit数据为1则运算,为0则不运算,单向旋转迭代模块(3)的输出和角度压缩模块(1)剩下的9bit给到加法树合并迭代模块(4),利用加法树结构完成连加运算,加法树合并迭代模块(4)的输出和角度压缩模块(1)运算获得的角度压缩标志位传输给还原输出模块(5)进行判断加正负号和是否交换两路信号的运算,并最终获得CORDIC算法的结果cosθ和sinθ。

【技术特征摘要】
1.一种低时延高频单向旋转的CORDIC算法装置,其特征在于,包括角度压缩模块(1)、查找表模块(2)、单向旋转迭代模块(3)、加法树合并迭代模块(4)、还原输出模块(5);所述的角度压缩模块(1),位于最左的位置,将(0,2π)的角度量化为16bit的角度输入角度压缩模块(1)进行正余弦变换的运算来将角度压缩到(0,π/4)的范围内,输出13bit的角度量化数据和2bit的角度压缩标志位,分别是是否要交换正余弦两路信号和是否要加正负号,运算后得到结果的前4bit单独输出到查找表模块(2),按照4bit从查找表中查得的结果和角度压缩模块(1)输出的后1bit传输给单向旋转迭代模块(3)决定是否进行一次单向旋转的蝶形运算,1bit数据为1则运算,为0则不运算,单向旋转迭代模块(3)的输出和角度压缩模块(1)剩下的9bit给到加法树合并迭代模块(4),利用加法树结构完成连加运算,加法树合并迭代模块(4)的输出和角度压缩模块(1)运算获得的角度压缩标志位传输给还原输出模块(5)进行判断加正负号和是否交换两路信号的运算,并最终获得CORDIC算法的结果cosθ和sinθ。2.根据权利要求1所述的CORDIC算法装置,其特征在于,所述的角度压缩模块(1),用[0,π/4]替代全象限16bit的角度,输出角度的正负标志位和是否交换正弦余弦的标志位和压缩到[0,π/4]的角度,[0,π/4]13bit的角度分别输出到查找表模块(2)、单向旋转迭代模块(3)、加法树合并迭代模块(4),角度的正负标志位和是否交换正弦余弦的标志位输出到还原输出模块(5)。3.根据权利要求1所述的装置,其特征在于,所述的查找表模块(2),剩下13bit的角度前4bit用于(0,π/4)范围内的正弦余弦表的查表,表的大小为24,涵盖从0000到1111对应的所有数,查表数据输出给单向旋转迭代模块(3)用于进一步运算。4.根据权利要求1所述的装置,其特征在于,所述的单向旋转迭代模块(3),1bit用于决定是否单向旋转,1bit数据为1...

【专利技术属性】
技术研发人员:胡卿莉莫炯炯王志宇刘家瑞陈华郁发新
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江,33

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

1