CN103488459A - 一种基于改进的高基cordic算法的复数乘法运算单元 - Google Patents
一种基于改进的高基cordic算法的复数乘法运算单元 Download PDFInfo
- Publication number
- CN103488459A CN103488459A CN201310420101.XA CN201310420101A CN103488459A CN 103488459 A CN103488459 A CN 103488459A CN 201310420101 A CN201310420101 A CN 201310420101A CN 103488459 A CN103488459 A CN 103488459A
- Authority
- CN
- China
- Prior art keywords
- cordic
- formula
- input
- shift unit
- data
- 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.)
- Granted
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明属于数字信号处理和集成电路设计技术领域,具体涉及一种基于改进的高基CORDIC算法的复数乘法运算单元。本发明提出的改进的高基CORDIC算法,在已有算法的基础上,进一步增加CORDIC运算每一级的迭代角度的选择范围,在保证精度的同时,减少了所需的迭代次数,从而提高运算速度;采用余弦函数的泰勒级数展开近似的方法,简化高基CORDIC算法中模校正因子的乘法操作,使得整个运算过程只存在一个常数模校正因子,减小了硬件复杂度。在复数乘法的一个乘数是可以事先确定的应用场合,可以完全避免通用复数乘法器的使用,在乘法运算单元的硬件面积和所需要的ROM大小上都具有优势,同时计算精度没有损失。
Description
技术领域
本发明属于数字信号处理和集成电路设计技术领域,具体涉及一种基于改进的高基CORDIC算法的复数乘法运算单元。
背景技术
在数字信号处理中,许多应用场合所需要的复数乘法运算,其中一个乘数是可以事先确定的系数,例如FFT(快速傅里叶变换)中的旋转因子乘法。在FFT处理器中,存储旋转因子的存储单元和复数乘法运算单元占据了很大的面积。传统的实现方案采用通用的复数乘法器计算旋转因子乘法,用存储器存放旋转因子,硬件实现的面积比较大。CORDIC(坐标旋转计算机)算法使用简单的加法和移位操作代替复杂的复数乘法运算,与此同时,可以减小存储旋转因子所需的存储器的大小,从而降低FFT处理器的硬件规模。但是,传统的CORDIC算法需要比较长的迭代周期,不能满足高速计算的要求,而高基的CORDIC算法需要额外的硬件开销来解决模校正因子不是一个常数的问题。
发明内容
为了克服通用复数乘法器硬件资源消耗大的缺点和已有CORDIC算法的不足,本发明提出了一种改进的高基CORDIC算法及基于改进的高基CORDIC算法的复数乘法运算单元。
本发明提出的改进的高基CORDIC算法,具体过程如下:
本发明所提供的改进CORDIC算法,其旋转角度θ的范围限定为[-π/4,π/4],对于旋转角度超过这一范围的计算,通过三角函数的变换关系对输入的二维向量进行预旋转操作,使其映射到[-π/4,π/4]的范围内。角度预旋转的操作如表1所示,其中θ′是原始的旋转角度;θ是CORDIC运算单元实际计算的旋转角度;输入向量是经过角度预旋转,实部虚部交换和取反操作之后输入到CORDIC运算单元的实部和虚部,表示为
表1 角度预选转方法
θ′角度范围 | 输入向量 | θ | |
A | θ′∈[0,π/4) | xp+jyp | θ′ |
B | θ′∈[π/4,π/2) | yp-jxp | θ′-π/2 |
C | θ′∈[π/2,3π/4) | yp-jxp | θ′-π/2 |
D | θ′∈[3π/4,π) | -xp-jyp | θ′-π |
E | θ′∈[π,5π/4) | -xp-jyp | θ′-π |
F | θ′∈[5π/4,3π/2) | -yp+jxp | θ′-3π/2 |
G | θ′∈[3π/2,7π/4) | -yp+jxp | θ′-3π/2 |
H | θ′∈[7π/4,2π) | xp+jyp | θ′-2π |
其中αs为初始角度旋转的系数,αs∈{0,1,-1};
αi为第1级到第n级的CORDIC迭代运算的系数,αi∈{0,±1,±1/2,±1/4};
是第i级CORDIC迭代的模校正因子,本发明提供的高基CORDIC算法采用泰勒级数展开式近似的方式计算模校正因子,表达式为:
由算式(2)和算式(3),得到每一级CORDIC迭代运算的表达式为:
旋转角度θ由初始旋转角度和各级CORDIC迭代角度叠加组成,表达式为:
其中τ表示角度误差。
[αs,α1,α2,...,αn]组合为旋转向量,在旋转角度可以事前确定的应用中,通过事先计算,将结果存储在ROM中,需要时再读出ROM中的旋转向量作为运算单元的控制信号。
本发明提供的CORDIC复数乘法运算单元由三个部分构成:第一部分为输入数据的预处理模块(101),对应于算法中的预选转操作,对输入数据的实部和虚部进行取反和交换;第二部分为CORDIC乘法单元的运算模块,包括初始角度旋转模块(102)(对应于算式(2)中初始旋转角度系数αs所在的矩阵乘法),第一级到第六级的CORDIC迭代运算模块(103)(对应于算式(2)中旋转角度系数αi所在的n级矩阵乘法),以及乘以常数模校正因子的模校正模块(对应于算式(2)中的乘数K0);第三部分为只读存储器(105),用以存储作为控制信号的旋转向量。其中:
第一级CORDIC迭代模块的硬件结构,包括:依次连接的一个二选一数据选择器(201)、三组硬件连线构成的移位器(202)、三个四选一数据选择器(203)、一个4-2数据压缩器(204)和一个快速加法器(205);其中:
所述二选一数据选择器(201),用于选择输入数据或者输入数据取反之后的结果;
所述硬件连线构成的移位器(202),分为三组,一组对应于算式(4)除x1或y1外中的一项;同组中的三个移位器分别实现算式(4)中α1=±1、α1=±1/2、α1=±1/4时对输入数的右移操作;
所述三个四选一数据选择器(203),其四个输入与同组移位器的三个输出以及一个0输入相连;α1=0时选择0输入,α1=±1时选择移位器组中的第一个输出,α1=±1/2时选择移位器组中的第二个输出,α1=±1/4时选择移位器组中的第三个输出;
所述4-2数据压缩器(204),其输入对应于算式(4)中的四项,将经过移位之后的数据压缩成为两路数据输出给快速加法器;
快速加法器(205),将中间结果相加之后得到最后的输出。
第二和第三级CORDIC迭代模块的硬件结构如图(3)所示,包括:依次连接的一个二选一数据选择器、两组硬件连线构成的移位器、两个四选一数据选择器、一个3-2数据压缩器和一个快速加法器;其中:
所述二选一数据选择器,用于选择输入数据或者输入数据取反之后的结果;
所述硬件连线构成的移位器,共分为两组,一组对应于算式(5)除xi或yi外中的一项;同组中的三个移位器分别实现算式(5)中αi=±1、αi=±1/2、αi=±1/4时对输入数的右移操作;
所述两个四选一数据选择器,其四个输入与同组移位器的三个输出以及一个0输入相连;αi=0时选择0输入,αi=±1时选择移位器组中的第一个输出,αi=±1/2时选择移位器组中的第二个输出,αi=±1/4时选择移位器组中的第三个输出;
所述3-2数据压缩器,其输入对应于算式(5)中的三项,将经过移位之后的数据压缩成为两路数据输出给快速加法器;
所述快速加法器,将中间结果相加之后得到最后的输出。
第四级到第六级CORDIC迭代模块的硬件结构如图(4)所示。包括:依次连接的一个二选一数据选择器、一组硬件连线构成的移位器、一个四选一数据选择器和一个快速加法器;其中:
所述二选一数据选择器,用于选择输入数据或者输入数据取反之后的结果;
所述硬件连线构成的移位器,一组对应于算式(6)除xi或yi外中的一项;同组中的三个移位器分别实现算式(6)中αi=±1、αi=±1/2、αi=±1/4时对输入数的右移操作;
所述四选一数据选择器,其四个输入与同组移位器的三个输出以及一个0输入相连;αi=0时选择0输入,αi=±1时选择移位器组中的第一个输出,αi=±1/2时选择移位器组中的第二个输出,αi=±1/4时选择移位器组中的第三个输出;
所述快速加法器,将中间结果相加之后得到最后的输出。
本发明提供的高基CORDIC算法在基4CORDIC算法的基础上,进一步增加了每一级的迭代角度的选择范围,在保证精度的同时,减少了所需的迭代次数,从而提高了运算速度;采用余弦函数的泰勒级数展开近似的方法,简化了高基CORDIC算法中模校正因子的乘法操作,使得整个运算过程只存在一个常数模校正因子,减小了硬件复杂度。
本发明中,复数乘法运算单元,对于一个复数乘数可以事先计算的应用场合,将此乘数作为旋转向量预先计算并存储,作为复数乘法单元的控制信号。
本发明的有益效果是,在复数乘法的一个乘数是可以事先确定的应用场合,可以完全避免通用复数乘法器的使用,在乘法运算单元的硬件面积和所需要的ROM大小上都具有优势,同时计算精度没有损失。
附图说明
图1是CORDIC乘法器的整体结构图。
图2是第一级CORDIC迭代模块。
图3是第二三级CORDIC迭代模块。
图4是第四五六级CORDIC迭代模块。
具体实施方式
以下结合附图对本发明做进一步的阐述。
本实施例是本发明在一个32到2048点可变点数的FFT处理器中的应用,输入和输出数据的实部与虚部均为16比特的定点数。应用于FFT(快速傅里叶变换)处理器的旋转因子乘法单元,由角度预选转模块、初始旋转模块、六级CORDIC迭代运算模块、模校正模块和旋转向量存储模块构成。
在FFT运算中,蝶形单元运算的结果需要乘以对应的旋转因子,表达式为:
其中,N为任意正整数,n和k的取值范围为[0,N-1],j为复数单位。
本实施例中各级的CORDIC迭代运算关系如下式所示:
其中α1为一级CORDIC迭代模块的系数,αi为二到六级CORDIC迭代模块的系数,αi∈{0,±1,±1/2,±1/4}。
在CORDIC运算单元内部,为了避免最终的计算结果溢出,角度预选转模块(101)对输入定点数进行一位符号扩展,字长为17位;初始角度旋转模块将输入数据右移一位,字长为18位;之后的各级迭代模块采用21比特的内部字长。最后的运算结果在模校正模块中进行截断操作,输出16比特的定点数。
旋转向量[αs,α1,α2,...,α6]需要20比特的数据宽度进行存储,角度预旋转模块对输入数的实部和虚部进行交换和取反操作,需要3比特的控制信号,因而所需存储的ROM(103)位宽共23比特。
本实施例采用SMIC0.13工艺库对所设计的CORDIC复数乘法运算单元进行综合,并且与通用复数乘法器进行比较,综合结果如表2所示。通用复数乘法器方案需要存储实部和虚部各16比特的旋转因子,因此需要的ROM宽度为32比特,同时一个复数乘法器需要四个实数乘法器和两个实数加法器构成,硬件消耗较大。本发明提出的基于高基CORDIC算法的复数乘法单元在硬件面积和ROM面积上都具有优势。
表2.综合结果比较
。
Claims (2)
(1)
其特征在于,旋转角度的范围限定为,对于旋转角度超过这一范围的计算,通过三角函数的变换关系对输入的二维向量进行预旋转操作,使其映射到的范围内;角度预旋转的操作如表1所示,其中是原始的旋转角度;是CORDIC运算单元实际计算的旋转角度;输入向量是经过角度预旋转,实部虚部交换和取反操作之后输入到CORDIC运算单元的实部和虚部,表示为;
表1 角度预选转方法
其中为初始角度旋转的系数,;为第1级到第n级的CORDIC迭代运算的角度旋转系数,;为初始旋转角度引入的常数模校正因子,;是第级CORDIC迭代的模校正因子,高基CORDIC算法采用泰勒级数展开式近似的方式计算模校正因子,表达式为:
由算式(2)和算式(3),得到每一级CORDIC迭代运算的表达式为:
(6)
(7)
其中表示角度误差;组合为旋转向量,在旋转角度可以事前确定的应用中,通过事先计算,将结果存储在ROM中,需要时再读出ROM中的旋转向量作为运算单元的控制信号。
2.基于如权利要求1所述改进的高基CORDIC算法的复数乘法运算单元,其特征在于:由三个部分构成:
第一部分为输入数据的预处理模块(101),对应于算法中的预选转操作,对输入数据的实部和虚部进行取反和交换;
第二部分为CORDIC乘法单元的运算模块,包括:初始角度旋转模块(102),对应于算式(2)中初始旋转角度系数所在的矩阵乘法,第一级到第六级的CORDIC迭代运算模块(103),对应于算式(2)中旋转角度系数所在的n级矩阵乘法,以及乘以常数模校正因子的模校正模块,对应于算式(2)中的乘数;
第三部分为只读存储器(105),用以存储作为控制信号的旋转向量;
所述第一级CORDIC迭代模块的硬件结构,包括:依次连接的一个二选一数据选择器(201)、三组硬件连线构成的移位器(202)、三个四选一数据选择器(203)、一个4-2数据压缩器(204)和一个快速加法器(205);其中:
所述二选一数据选择器(201),用于选择输入数据或者输入数据取反之后的结果;
所述4-2数据压缩器(204),其输入对应于算式(4)中的四项,将经过移位之后的数据压缩成为两路数据输出给快速加法器;
快速加法器(205),将中间结果相加之后得到最后的输出;
所述第二和第三级CORDIC迭代模块的硬件结构,包括:依次连接的一个二选一数据选择器、两组硬件连线构成的移位器、两个四选一数据选择器、一个3-2数据压缩器和一个快速加法器;其中:
所述二选一数据选择器,用于选择输入数据或者输入数据取反之后的结果;
所述3-2数据压缩器,其输入对应于算式(5)中的三项,将经过移位之后的数据压缩成为两路数据输出给快速加法器;
所述快速加法器,将中间结果相加之后得到最后的输出;
所述第四级到第六级CORDIC迭代模块的硬件结构,包括:依次连接的一个二选一数据选择器、一组硬件连线构成的移位器、一个四选一数据选择器和一个快速加法器;其中:
所述二选一数据选择器,用于选择输入数据或者输入数据取反之后的结果;
所述快速加法器,将中间结果相加之后得到最后的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310420101.XA CN103488459B (zh) | 2013-09-13 | 2013-09-13 | 一种改进的高基cordic方法及基于其的复数乘法运算单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310420101.XA CN103488459B (zh) | 2013-09-13 | 2013-09-13 | 一种改进的高基cordic方法及基于其的复数乘法运算单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103488459A true CN103488459A (zh) | 2014-01-01 |
CN103488459B CN103488459B (zh) | 2017-01-25 |
Family
ID=49828720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310420101.XA Expired - Fee Related CN103488459B (zh) | 2013-09-13 | 2013-09-13 | 一种改进的高基cordic方法及基于其的复数乘法运算单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103488459B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346597A (zh) * | 2014-10-29 | 2015-02-11 | 中山大学 | 一种qr码检测与校正提取方法及ip核 |
CN106155627A (zh) * | 2016-06-30 | 2016-11-23 | 中国人民解放军国防科学技术大学 | 基于t_cordic算法的低开销迭代三角函数装置 |
CN106708469A (zh) * | 2016-11-17 | 2017-05-24 | 中国人民解放军火箭军工程大学 | 一种基于cordic算法的雷达模拟信号获取方法 |
CN107423026A (zh) * | 2017-04-21 | 2017-12-01 | 中国人民解放军国防科学技术大学 | 一种正余弦函数计算的实现方法及装置 |
CN108037906A (zh) * | 2017-12-14 | 2018-05-15 | 中国人民解放军国防科技大学 | 基于tcordic算法的浮点基本函数实现方法及装置 |
CN110096672A (zh) * | 2019-04-25 | 2019-08-06 | 天津大学 | 基于fpga的低成本流水线型fft处理器实现方法 |
CN110362292A (zh) * | 2019-07-22 | 2019-10-22 | 电子科技大学 | 一种基于近似4-2压缩器的近似乘法运算方法和近似乘法器 |
CN117591784A (zh) * | 2024-01-19 | 2024-02-23 | 武汉格蓝若智能技术股份有限公司 | 一种基于fpga的旋转因子计算方法及fpga芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070266070A1 (en) * | 2006-05-12 | 2007-11-15 | Chung Hua University | Split-radix FFT/IFFT processor |
CN101082858A (zh) * | 2007-07-12 | 2007-12-05 | 北京航空航天大学 | 一种cordic算法的实现装置 |
CN101540614A (zh) * | 2009-04-22 | 2009-09-23 | 东南大学 | 重复累积码的译码方法 |
CN102323878A (zh) * | 2011-05-31 | 2012-01-18 | 电子科技大学 | 一种用于cordic算法模校正的电路装置及方法 |
-
2013
- 2013-09-13 CN CN201310420101.XA patent/CN103488459B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070266070A1 (en) * | 2006-05-12 | 2007-11-15 | Chung Hua University | Split-radix FFT/IFFT processor |
CN101082858A (zh) * | 2007-07-12 | 2007-12-05 | 北京航空航天大学 | 一种cordic算法的实现装置 |
CN101540614A (zh) * | 2009-04-22 | 2009-09-23 | 东南大学 | 重复累积码的译码方法 |
CN102323878A (zh) * | 2011-05-31 | 2012-01-18 | 电子科技大学 | 一种用于cordic算法模校正的电路装置及方法 |
Non-Patent Citations (1)
Title |
---|
AGGARWAL S等: "Area-time efficient scaling-free CORDIC using generalized micro-rotation selection", 《IEEE TRANSACTIONS ON VLSI SYSTEMS》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346597A (zh) * | 2014-10-29 | 2015-02-11 | 中山大学 | 一种qr码检测与校正提取方法及ip核 |
CN104346597B (zh) * | 2014-10-29 | 2018-04-27 | 中山大学 | 一种qr码检测与校正提取方法及ip核 |
CN106155627B (zh) * | 2016-06-30 | 2019-01-22 | 中国人民解放军国防科学技术大学 | 基于t_cordic算法的低开销迭代三角函数装置 |
CN106155627A (zh) * | 2016-06-30 | 2016-11-23 | 中国人民解放军国防科学技术大学 | 基于t_cordic算法的低开销迭代三角函数装置 |
CN106708469A (zh) * | 2016-11-17 | 2017-05-24 | 中国人民解放军火箭军工程大学 | 一种基于cordic算法的雷达模拟信号获取方法 |
CN106708469B (zh) * | 2016-11-17 | 2019-05-21 | 中国人民解放军火箭军工程大学 | 一种基于cordic算法的雷达模拟信号获取方法 |
CN107423026A (zh) * | 2017-04-21 | 2017-12-01 | 中国人民解放军国防科学技术大学 | 一种正余弦函数计算的实现方法及装置 |
CN108037906A (zh) * | 2017-12-14 | 2018-05-15 | 中国人民解放军国防科技大学 | 基于tcordic算法的浮点基本函数实现方法及装置 |
CN108037906B (zh) * | 2017-12-14 | 2021-07-13 | 中国人民解放军国防科技大学 | 基于tcordic算法的浮点基本函数实现方法及装置 |
CN110096672A (zh) * | 2019-04-25 | 2019-08-06 | 天津大学 | 基于fpga的低成本流水线型fft处理器实现方法 |
CN110362292A (zh) * | 2019-07-22 | 2019-10-22 | 电子科技大学 | 一种基于近似4-2压缩器的近似乘法运算方法和近似乘法器 |
CN110362292B (zh) * | 2019-07-22 | 2022-12-20 | 电子科技大学 | 一种基于近似4-2压缩器的近似乘法运算方法和近似乘法器 |
CN117591784A (zh) * | 2024-01-19 | 2024-02-23 | 武汉格蓝若智能技术股份有限公司 | 一种基于fpga的旋转因子计算方法及fpga芯片 |
CN117591784B (zh) * | 2024-01-19 | 2024-05-03 | 武汉格蓝若智能技术股份有限公司 | 一种基于fpga的旋转因子计算方法及fpga芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN103488459B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103488459A (zh) | 一种基于改进的高基cordic算法的复数乘法运算单元 | |
CN103970720B (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
US9268691B2 (en) | Fast mechanism for accessing 2n±1 interleaved memory system | |
CN103970718A (zh) | 一种快速傅里叶变换实现装置及方法 | |
CN103677738A (zh) | 基于混合模式cordic算法的低延时基本超越函数实现方法及装置 | |
CN104375802A (zh) | 一种乘除法器及运算方法 | |
CN102722469A (zh) | 基于浮点运算单元的基本超越函数运算方法及其协处理器 | |
CN101847137B (zh) | 一种实现基2fft计算的fft处理器 | |
Xiao et al. | Reduced memory architecture for CORDIC-based FFT | |
CN103034621B (zh) | 基2×k并行fft架构的地址映射方法及系统 | |
CN102323878B (zh) | 一种用于cordic算法模校正的电路装置及方法 | |
Bhakthavatchalu et al. | A comparison of pipelined parallel and iterative CORDIC design on FPGA | |
Sona et al. | Vedic multiplier implementation in VLSI | |
CN111443893A (zh) | 一种基于cordic算法的n次根计算装置及方法 | |
CN108037906A (zh) | 基于tcordic算法的浮点基本函数实现方法及装置 | |
CN107423026A (zh) | 一种正余弦函数计算的实现方法及装置 | |
Bansal et al. | Memory-efficient Radix-2 FFT processor using CORDIC algorithm | |
CN108008665B (zh) | 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法 | |
CN102541815B (zh) | 一种基于概率计算的正余弦信号的产生方法 | |
Malashri et al. | Low power and memory efficient FFT architecture using modified CORDIC algorithm | |
Neji et al. | Architecture and FPGA implementation of the CORDIC algorithm for fingerprints recognition systems | |
CN115544438A (zh) | 数字通信系统中的旋转因子生成方法、装置和计算机设备 | |
CN104951279A (zh) | 一种基于NEON引擎的向量化Montgomery模乘器的设计方法 | |
CN204143432U (zh) | 一种乘除法器 | |
Ramprabu et al. | Analysis of Feedforward Radix-2^ 2 FFT 4-Parallel Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170125 Termination date: 20190913 |