CN109857986A - 基于概率计算的低开销cordic算法实现方法及装置 - Google Patents
基于概率计算的低开销cordic算法实现方法及装置 Download PDFInfo
- Publication number
- CN109857986A CN109857986A CN201910102746.6A CN201910102746A CN109857986A CN 109857986 A CN109857986 A CN 109857986A CN 201910102746 A CN201910102746 A CN 201910102746A CN 109857986 A CN109857986 A CN 109857986A
- Authority
- CN
- China
- Prior art keywords
- iteration
- probability
- cordic algorithm
- cordic
- sum device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开一种基于概率计算的低开销cordic算法实现方法及装置,方法为:在cordic算法第一级迭代前,对输入数据进行前向转换,对中间各级迭代的序列进行加减法运算,对最后一级迭代输出的序列进行后向转换;本发明的装置为:在第一级迭代中的概率加法器包括:前向转换模块与计算模块;中间各级迭代中的概率加法器仅包括计算模块;最后一级迭代中的概率加法器包括:计算模块与后向转换模块;通过将概率加法器技术引入到cordic算法的硬件实现中,降低了cordic算法的硬件开销。
Description
技术领域
本发明属于cordic算法领域,特别涉及一种cordic算法的硬件设计技术。
背景技术
Cordic算法即坐标旋转计算法,最初是用来进行坐标变换的算法,后面经过发展用来求解其他的数学运算,传统上计算三角函数和一些在硬件上不易实现的函数,一般用查找表和一些多项式展开法,查找表虽然简单易实现,但是随着对系统的精度要求增加,其占用资源也在不断增大,因此,人们不断对cordic算法进行改进,其结构也得到了不断的优化,速度和精度也得到了提升,而cordic算法的优势也越来越明显,使用cordic算法能够使得一些不利于硬件实现的函数,能够更容易的在FPGA上实现。
Cordic被广泛用于数字信号处理中,可通过移位和加减等步骤计算平方根、正余弦、模、相位以及完成坐标变换,易于在FPGA等VLSI器件中实现,例如求解FFT、调制解调的幅度和相位,数字频率合成器等。由于传统的cordic算法迭代时间较长,精度不高,硬件开销较大,越来越多的改进算法被提出,例如,JuangT B、Hsiao S F和Tsai M Y提出的平行cordic算法,Chen K T等人提出的改良型旋转策略算法,Hu Y H和Naganathan S提出的角度编码cordic算法等,这些算法从速度、精度上对cordic算法进行了优化,但是并没有从cordic算法实现的硬件开销过大进行优化。由于cordic算法需要进行多次迭代运算,每一次迭代需要耗费3个加法器,一次完整的cordic算法需要3n个加法器,大量使用加法器导致其硬件开销较大。
发明内容
为解决上述技术问题,本发明提出了一种基于概率计算的低开销cordic算法实现方法,通过将概率计算的技术运用到cordic算法中,保证了cordic算法的精度,并使得cordic算法的硬件开销更小。
为解决上述技术问题,本发明提出了一种基于概率计算的低开销cordic算法实现装置,通过采用概率加法器,保证了cordic算法的精度,并使得cordic算法的硬件开销更小。
本发明采用的技术方案之一为:一种基于概率计算的低开销cordic算法实现方法,将cordic算法过程划分为:第一级迭代、各中间级迭代以及最后一级迭代;在cordic算法第一级迭代前,对输入数据进行前向转换,对中间各级迭代的序列进行加减法运算,对最后一级迭代输出的序列进行后向转换。
中间各级迭代的加减法运算使用的加法器为概率加法器;cordic算法过程总的迭代次数小于或等于16。
本发明采用的技术方案之二为:一种基于概率计算的低开销cordic算法实现装置,使用的加法器为概率加法器;将cordic算法过程划分为:第一级迭代、各中间级迭代以及最后一级迭代;在第一级迭代中的概率加法器包括:前向转换模块与计算模块;中间各级迭代中的概率加法器仅包括计算模块;最后一级迭代中的概率加法器包括:计算模块与后向转换模块;
所述第一级迭代中的概率加法器中前向转换模块对输入的数据进行前向转换为序列;前向转换后的序列依次通过第一级迭代中的概率加法器中计算模块、中间各级迭代中的概率加法器的计算模块、最后一级迭代中的概率加法器中计算模块进行加减法运算处理;最后一级迭代中的概率加法器中计算模块输出的序列经最后一级迭代中的概率加法器中的后向转换模块转换为概率值。
本发明的一种基于概率计算的低开销cordic算法实现装置,包括:X数据通路、Y数据通路、Z数据通路以及常数数据通路;所述X数据通路、Y数据通路的概率加法器还包括:移位寄存器模块。
本发明的有益效果:本发明的基于概率计算的低开销cordic算法实现方法及装置,使用概率计算的技术,对cordic算法中的加减法运算采用概率加法器实现,帮助降低了常规cordic算法的硬件开销,并且本发明通过去掉中间各级迭代的前后向转换,对前向转换单元,计算单元、后向转换单元都进行了统一的处理,在减小硬件开销的同时保证了cordic算法的计算精度。
附图说明
图1为本发明实施例提供的一般情况下概率加法器的完整设计单元;
图2为本发明实施例提供的基于概率计算的低开销cordic算法实现装置的并行流水线结构示意图。
具体实施方式
为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。
cordic算法需要n次迭代,完整的cordic算法需要使用3n个加法器和2n个移位寄存器,这里n小于等于16,常规的cordic算法中移位寄存器的硬件开销相比于二进制加法器的硬件开销而言较小,并且cordic使用的加法器也比移位寄存器较多,因此,常规的cordic算法在fpga上实现的硬件开销主要为加法器设计的开销,从节约硬件开销的角度来看,设计使用硬件开销较小的加法器能够有效节约cordic算法的硬件开销。因此,考虑设计出硬件开销较小的加法器,本发明使用概率加法器对cordic算法中的所有加减法进行运算,将使得cordic算法的硬件开销相对于常规cordic算法而言更小。
如图1所示,概率加法器的完整模块包含:前向转换模块、计算模块、后向转换模块,前向转换模块用于将例如数据y转换为用0和1表示的一串数据,即图1中的概率序列,后向转换模块将通过计算单元计算得到的一串0和1表示的序列,即图1中的计算结果转换为比特信息。
而概率加法器的前向转换和后向转换容易导致计算误差,cordic算法需要进行多次迭代计算,如果在每一级的加减法运算中都包含前向转换和后向转换,将会使得每一次迭代出现误差,那么多次迭代将会使得误差更大,而前向转换模块的功能是将数据转换为用0和1表示的一串数据,而后向转换模块的功能是将通过计算单元计算得到的一串0和1表示的序列转换为概率值,从而得到数据的最终值,因此本发明将前向转换单元和后向转换单元进行统一设计,即在cordic算法中的第一级迭代前,对输入的数据进行前向转换,在cordic的整个流程中,都以0和1的序列进行加减法运算,直到最后一级迭代输出,对最后一级输出的序列进行后向转换,从而求得最终值,本发明通过去掉中间环节的前后向转换,对前向转换单元,计算单元、后向转换单元都进行了统一的处理,这样能够有效的减小误差,保证整个cordic算法的计算精度。
如图2所示,本发明的cordic算法需要使用3n个概率加法器和2n个移位寄存器,由表1可知,当序列长度大于等于64时,每一个加法器至少能够优化一个lut,则本发明完整的一次cordic算法计算与传统cordic算法计算相比,至少能够优化3n个lut的硬件开销,
序列长度越大其优化效率越高。如表1所示,随着序列长度的增加,传统加法器的硬件开销也增大,但是概率加法器的硬件开销变化较小,并且随着序列长度的增加,本发明所采用的概率加法器相较于传统二进制加法器其硬件开销更少。
表1传统cordic算法与本发明的cordic算法不同序列长度对加法器需求对比
表1中lut表示fpga中硬件实现所需查找表,用以表示硬件开销。
本实施例给出cordic算法的通用迭代公式,具体如下:
其中,xi表示第i次迭代x数据通路的迭代结果,yi表示第i次迭代y数据通路的迭代结果,zi表示第i次迭代z数据通路的迭代结果,i表示迭代次数,i=1,2,…,n,d表示固定旋转角度,图2中的2n个移位寄存器用于实现x数据通路或y数据通路中乘以2-i的运算。
由图2所示,最初的外部输入为X0、Y0旋转点的横纵坐标,Z0为剩余旋转角度,常数为固定旋转角度θ,输入符号d。在第一级迭代进行前,对初始输入进行前向转换处理,整个cordic并行运算处理,只在第一级迭代前进行前向转换,即对X0、Y0、Z0、常数进行前向转换处理,在最后一级迭代进行后向处理,即对Xn、Yn、Zn进行后向转换处理,中间的计算过程均以概率序列进行运算,不再进行前后向转换。
前向转换的功能是将数据转换为用0和1表示的一串数据,而后向转换是将通过计算单元计算得到的一串0和1表示的序列转换为概率值,从而得到数据的最终值。因为概率加法器的前向转换和后向转换容易导致计算误差,而cordic算法需要进行多次迭代计算,如果在每一级的加减法运算中都包含前向转换和后向转换,将会使得每一次迭代出现误差,那么多次迭代将会使得误差更大,通过去掉中间环节的前后向转换,对前向转换单元,计算单元、后向转换单元进行统一的处理,能够有效的减小误差,以保证整个cordic算法的计算精度。
综上所述,本发明使用概率计算的技术,对cordic算法的硬件设计进行从新设计,通过将概率加法器技术引入到cordic算法的硬件实现中,帮助降低了常规cordic算法的硬件开销,同时设计概率加法器的硬件结构,通过在cordic算法实现上,调整设计前后向转换单元,在减小硬件开销的同时保证了cordic算法的计算精度。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (6)
1.一种基于概率计算的低开销cordic算法实现方法,其特征在于,将cordic算法过程划分为:第一级迭代、各中间级迭代以及最后一级迭代;在cordic算法第一级迭代前,对输入数据进行前向转换,对中间各级迭代的序列进行加减法运算,对最后一级迭代输出的序列进行后向转换。
2.根据权利要求1所述的一种基于概率计算的低开销cordic算法实现方法,其特征在于,中间各级迭代的加减法运算使用的加法器为概率加法器。
3.根据权利要求2所述的一种基于概率计算的低开销cordic算法实现方法,其特征在于,cordic算法过程总的迭代次数小于或等于16。
4.一种基于概率计算的低开销cordic算法实现装置,其特征在于,使用的加法器为概率加法器。
5.根据权利要求4所述的一种基于概率计算的低开销cordic算法实现装置,其特征在于,将cordic算法过程划分为:第一级迭代、各中间级迭代以及最后一级迭代;在第一级迭代中的概率加法器包括:前向转换模块与计算模块;中间各级迭代中的概率加法器仅包括计算模块;最后一级迭代中的概率加法器包括:计算模块与后向转换模块;
所述第一级迭代中的概率加法器中前向转换模块对输入的数据进行前向转换为序列;前向转换后的序列依次通过第一级迭代中的概率加法器中计算模块、中间各级迭代中的概率加法器的计算模块、最后一级迭代中的概率加法器中计算模块进行加减法运算处理;最后一级迭代中的概率加法器中计算模块输出的序列经最后一级迭代中的概率加法器中的后向转换模块转换为概率值。
6.根据权利要求5所述的一种基于概率计算的低开销cordic算法实现装置,其特征在于,包括:X数据通路、Y数据通路、Z数据通路以及常数数据通路;所述X数据通路、Y数据通路的概率加法器还包括:移位寄存器模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910102746.6A CN109857986A (zh) | 2019-02-01 | 2019-02-01 | 基于概率计算的低开销cordic算法实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910102746.6A CN109857986A (zh) | 2019-02-01 | 2019-02-01 | 基于概率计算的低开销cordic算法实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109857986A true CN109857986A (zh) | 2019-06-07 |
Family
ID=66897418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910102746.6A Pending CN109857986A (zh) | 2019-02-01 | 2019-02-01 | 基于概率计算的低开销cordic算法实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857986A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110611631A (zh) * | 2019-09-25 | 2019-12-24 | 电子科技大学 | 一种低时延与低开销的dbpsk解调器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070058745A1 (en) * | 2005-09-09 | 2007-03-15 | Sony Corporation | Wireless communication apparatus, wireless communication method and computer program therefor |
CN101149264A (zh) * | 2007-10-23 | 2008-03-26 | 浙江大学 | 基于坐标旋转数字计算机算法的谐振式光纤陀螺信号检测方法及装置 |
CN102355231A (zh) * | 2011-07-27 | 2012-02-15 | 电子科技大学 | 一种基于概率计算的低功耗数字滤波器及实现方法 |
CN103677737A (zh) * | 2013-09-26 | 2014-03-26 | 中国人民解放军国防科学技术大学 | 基于进位节省加法器的低延时cordic三角函数实现的方法及装置 |
-
2019
- 2019-02-01 CN CN201910102746.6A patent/CN109857986A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070058745A1 (en) * | 2005-09-09 | 2007-03-15 | Sony Corporation | Wireless communication apparatus, wireless communication method and computer program therefor |
CN101149264A (zh) * | 2007-10-23 | 2008-03-26 | 浙江大学 | 基于坐标旋转数字计算机算法的谐振式光纤陀螺信号检测方法及装置 |
CN102355231A (zh) * | 2011-07-27 | 2012-02-15 | 电子科技大学 | 一种基于概率计算的低功耗数字滤波器及实现方法 |
CN103677737A (zh) * | 2013-09-26 | 2014-03-26 | 中国人民解放军国防科学技术大学 | 基于进位节省加法器的低延时cordic三角函数实现的方法及装置 |
Non-Patent Citations (4)
Title |
---|
周东方: "高性能浮点三角函数运算部件的设计与验证", 《万方数据库》 * |
张剑锋: "基于CORDIC算法低功耗加速器设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
戚芳芳: "CORDIC算法的优化研究及其硬件实现", 《中国优秀硕士学位论文全文数据库》 * |
沈建龙: "低时延_消耗CORDIC算法及结构的技术研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110611631A (zh) * | 2019-09-25 | 2019-12-24 | 电子科技大学 | 一种低时延与低开销的dbpsk解调器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jaime et al. | Enhanced scaling-free CORDIC | |
KR100756137B1 (ko) | 제산 및 제곱근 연산 유닛 | |
US20050024241A1 (en) | Method and apparatus for generating gray code for any even count value to enable efficient pointer exchange mechanisms in asynchronous FIFO's | |
CN101295237B (zh) | 求商和余数的高速除法器 | |
JP2585649B2 (ja) | 除算回路 | |
Esposito et al. | Approximate adder with output correction for error tolerant applications and Gaussian distributed inputs | |
JP2008083852A (ja) | 高速フーリエ変換回路及び高速フーリエ変換方法 | |
CN104135457B (zh) | 基于改进的cordic算法的数字鉴相方法及装置 | |
CN109857986A (zh) | 基于概率计算的低开销cordic算法实现方法及装置 | |
CN106027045B (zh) | 基于改进cordic算法的直接数字频率合成器 | |
US6847986B2 (en) | Divider | |
CN113837365A (zh) | 实现sigmoid函数逼近的模型、FPGA电路及工作方法 | |
CN112819168A (zh) | 一种格密码加解密中的环多项式乘法器电路 | |
CN117155572A (zh) | 一种基于gpu并行实现密码技术中大整数乘法的方法 | |
El-Motaz et al. | A cordic-friendly FFT architecture | |
CN114996638A (zh) | 一种顺序架构的可配置快速傅里叶变换电路 | |
Haselmayr et al. | High-accuracy and fault tolerant stochastic inner product design | |
Parashar et al. | Fast combinational architecture for a vedic divider | |
CN111984057B (zh) | 基于gpu的数字nco高精度并行实现方法 | |
CN108319804B (zh) | 低资源调用的8192点基2 dit asic设计方法 | |
Dalmia et al. | Novel high speed vedic multiplier proposal incorporating adder based on quaternary signed digit number system | |
Ortiz et al. | A study on the design of floating-point functions in FPGAs | |
Maharatna et al. | A CORDIC like processor for computation of arctangent and absolute magnitude of a vector | |
Chandu et al. | Design and implementation of high efficiency square root circuit using Vedic mathematics | |
Hao et al. | A VLSI implementation of double precision floating-point logarithmic function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |
|
RJ01 | Rejection of invention patent application after publication |