CN116388754A - 一种基于改进cordic算法的数控振荡器的实现方法 - Google Patents

一种基于改进cordic算法的数控振荡器的实现方法 Download PDF

Info

Publication number
CN116388754A
CN116388754A CN202310144439.0A CN202310144439A CN116388754A CN 116388754 A CN116388754 A CN 116388754A CN 202310144439 A CN202310144439 A CN 202310144439A CN 116388754 A CN116388754 A CN 116388754A
Authority
CN
China
Prior art keywords
rotation
improved
cordic
algorithm
improved cordic
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
Application number
CN202310144439.0A
Other languages
English (en)
Inventor
刘宇
陈越川
李汪润
姜晗
赵博隆
姜晓娟
梁矩阳
骆大森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN202310144439.0A priority Critical patent/CN116388754A/zh
Publication of CN116388754A publication Critical patent/CN116388754A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/099Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
    • H03L7/0991Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator being a digital oscillator, e.g. composed of a fixed oscillator followed by a variable frequency divider
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/099Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
    • H03L7/0995Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Numerical Control (AREA)

Abstract

本发明请求保护一种基于改进CORDIC算法的数控振荡器的实现方法,传统的CORDIC算法具有占用资源大、解算速度相对较慢的缺点,为了提高输出的效率,本文提出一种以高效的12级流水线CORDIC体系结构和一个非常小的查找表(LUT)实现了正弦波形发生器。该系统在Quartus、ModelSim进行了代码编写和仿真。仿真结果表明,本文提出的结构能够将系统的运行速率从217.77MHz提高到291.04MHz,提高了系统的输出效率。有能具体实现的价值。

Description

一种基于改进CORDIC算法的数控振荡器的实现方法
技术领域
本发明属于微电子与硬件电路实现技术领域,涉及一种基于改进CORDIC算法的数控振荡器的实现。
背景技术
数字控制振荡器(NCO,numerical controlled oscillator)是软件无线电、直接数据频率合成器(DDS,Direct digital synthesizer)、快速傅立叶变换(FFT,FastFourier Transform)等的重要组成部分,同时也是决定其性能的主要因素之一,具有频率精度高、转换时间短、频谱纯度高以及频率相位易编程等特点,因此被广泛应用于软件无线电数字上、下变频以及各种频率和相位数字调制解调系统中。随着芯片集成度的提高、数字控制振荡器在信号处理、数字通信领域、调制解调、变频调速、制导控制、电力电子等各方面得到越来越广泛的应用。
为了实现MEMS陀螺仪精度的有效提高,将微陀螺仪测控电路中的模拟测控电路转变为数字测控电路成为了一种有效且稳定的途径。而在数字测控电路中,起决定作用的部分为驱动电路,该电路实现的主要功能就是稳定MEMS陀螺仪的输出频率和幅值,实现陀螺仪的稳定工作。其中稳定输出频率主要采用的是数字锁相环,数控振荡器(NCO)作为数字锁相环的重要组成部分,对整个数字锁相环的性能起到了至关重要的作用。因此设计高精度的数控振荡器是整个电路中的重点和难点。NCO传统的实现方法主要有查表法、多项式展开法或近似法,但这些方法在速度、精度、资源方面难以兼顾。目前的数控振荡器主要采用CORDIC算法来实现。与NCO传统的实现方法相比,采用CORDIC算法来实现时,无需使用乘法器,只需进行简单的移位和相加运算,即可产生高精度的正余弦波形,尤其适合于FPGA的硬件实现。
CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法是产生正余弦波形的一种有效且实用的方法,它于1959年被J.D.Volder等人首次提出,主要运用于三角函数、双曲线、指数、对数的计算。CORDIC算法具有较强的可移植性、实现方便以及精度可控等特点。在长时间的发展过程中,有许多学者对该算法进行了各种研究,并针对该算法的不同缺陷提出了不同的改进方法。2005年,Maharatna K等人提出了基于CORDIC算法的串行结构,并在FPGA上进行了硬件实现,该方法占用的资源较少,使得控制单元设计略显复杂,时序控制较为烦琐,系统处理速度较低。2013年,黄俊等提出了流水线型CORDIC算法,该方法提高了CORDIC的运算效率,但使得算法内部占用的逻辑资源大幅增加。2014年刘章发等提出了二进制角度重编码CORDIC算法,该方法可以省略每一次迭代都要进行的下一步旋转方向判断,从而降低资源占用,提升了解算速度。同年徐成等提出了基于角度重编码提出了迭代合并CORDIC算法,进一步压缩了资源占用。
CORDIC算法的操作方法是基于三角运算,它依赖于矢量旋转在极坐标和直角坐标之间进行连续映射和协调。CORDIC算法并不像LUT那样完全依赖于预定的相位、频率和振幅值来计算正弦波形上的坐标,它比LUT更加灵活。CORDIC由于具有同时产生正交分量和同相分量的能力而优于传统的LUT方法。它计算所需三角函数的数值,如正弦,余弦,双曲函数d(ex-sinh,cosh和tanh),能达到任何所需的精度。
CORDIC算法分为旋转模式和向量模式,由于硬件架构的一致性,旋转模式和向量模式最终实现的基本原理是一样的。本文主要分析和研究的是旋转模式。旋转模式几何原理如图1所示,在坐标系中有一个点P1,将P1旋转角2度后得到点P2,角1为α,称为初始角;角2为旋转角,用β表示。
Figure SMS_1
得到P1点的表达式:
Figure SMS_2
进而能得到P2点的表达式:
Figure SMS_3
因此,已知P1和旋转角度后,就可以计算出点P2。P2的坐标进一步可写成:
Figure SMS_4
为了方便计算,在旋转中不考虑向量模值,将cosβ去掉,此时旋转坐标的度数就能容易得到,这种操作称为伪旋转。此时4变为伪旋转方程:
Figure SMS_5
伪旋转的思想是分割角度,具体做法是将旋转角β分为若干个大小相等的角度βi,即
Figure SMS_6
为了方便CORDIC算法在硬件上得以实现,设每次的旋转角为βi
规定βi满足tanβi=2-i,则有:
βi=tan-12-i (6)
∑tanβi的范围与旋转角β的范围[-99.7°,99.7°]一致。由于每次旋转的方向都与上次旋转后剩余角度的大小有关,所以在每次旋转角度的时候需要设置一个方向di,如果旋转角度之和小于β,则di为1,表明下次旋转为顺时针,如果旋转角度之和大于β,则di为-1,表明下次旋转为逆时针。从初始位置开始旋转一定角度后,会有一个剩余角度,设旋转剩余角度为zi,zi=β-diβi,将(6)带入有:zi=β-ditan-12-i。zi初始为β,即zi(0)=β。随着i的值不断增大,zi会趋近于0,此时旋转结束。
定义旋转方向di后,式(1-6)可变为:
βi=tan-1(di2-i) (7)
在采用伪旋转的时候,每次旋转都会对应一个剩余角度,旋转结束就会产生一个∏cosβi的累积。假设迭代次数n=a-1,那么旋转a次后P2的旋转坐标应该为(xa*∏cosβi,ya*∏cosβi),因此最终P2的坐标角度应该为:
Figure SMS_7
Figure SMS_8
从上式可以看出,当i的值足够大时,Πcosβi趋近于一个常数,此时就能人为设置x1、y1的值令x1=Πcosβi,y1=0,就能计算出cosβ,sinβ的值,从而实现正余弦的操作。CORDIC算法的思想正是使用一系列迭代算法以固定的参数角度偏航,以近似所需的旋转角度。该算法的实现是迭代逼近所需的值。同时可以看出,由于硬件实现的限制,不能无限迭代,否则会造成所需资源和处理时间的增加。因此,在实际应用中,需要根据系统的要求来选择迭代次数,以达到系统所要求的精度。
综上所述,CORDIC算法能实现高效的数控振荡器,但传统的CORDIC算法存在一定欠缺,所以研究一种改进的CORDIC算法来实现高效且占用资源相对较少的数控振荡器很有意义。
发明内容
本发明旨在解决以上现有技术的问题。提出了一种基于改进CORDIC算法的数控振荡器的实现方法。本发明的技术方案如下:
一种基于改进CORDIC算法的数控振荡器的实现方法,其包括以下步骤:
建立改进的CORDIC并行流水线结构;改进的CORDIC并行流水结构是在传统的CORDIC结构中对流水线级数进行修改,由于传统的CORDIC并行流水结构采用的是16级流水线,容易造成逻辑资源浪费,为了减少逻辑资源的消耗,本文将传统的16级流水线改进为12级流水线结构
对改进的CORDIC并行流水线结构的旋转角度进行二进制编码;
对二进制编码后的旋转角度建立查找表;查找表用于储存对应旋转节点所对应的正余弦值,以此进行查表旋转,记录下每次旋转所得到的正余弦值。
对搭建好的改进的CORDIC并行流水线结构进行仿真。
进一步的,所述建立改进的CORDIC并行流水线结构,具体包括:
加法器、减法器、移位寄存器以及流水寄存器。通过将每次旋转得到的坐标输入到加法器或减法器中,并通过移位寄存器将剩余角度储存起来,再与下一级的加法器/减法器相连接。
进一步的,所述改进的CORDIC算法相对于传统算法使用了最少的寄存器,减少了内部资源消耗,同时整体速率也只比传统的算法低了不到3.9%,也保证了系统的高速率。
进一步的,所述对改进的CORDIC并行流水线结构的旋转角度进行二进制编码,具体包括:
根据三角函数的计算关系,将[0,π/4]的旋转角用N位二进制数表示;
Figure SMS_9
其中,an={0,1}是输入的旋转角度θ以二进制表示的位值,n表示旋转次数。根据an值的大小来确定每次旋转的角度以及旋转的方向。
进一步的,所述对二进制编码后的旋转角度建立查找表,具体包括:
采用13位二进制数表示[0,π/4]内的输入角度,而[π/4,2π]内输入角度的正弦和余弦函数值通过三角函数公式变换后获得,则只需要输入[0,π/4]内的角度值即可。
本发明的优点及有益效果如下:
本发明旨在解决传统的CORDIC算法占用资源大、解算速度相对较慢的缺点。提出了一种改进的CORDIC算法结构,采用与传统并行CORDIC算法不同的12级流水线,并附带了一个小查找表,能在提高输出效率的同时减少内部资源的消耗。
本发明的创新主要是改进的CORDIC算法结构,具体改进为在CORDIC并行结构中添加了12级流水线。在传统CORDIC算法的并行结构中,通过该算法迭代的基本原理,为了使最终得到的点的坐标更加无限接近于假设中的点的坐标,往往设置的迭代次数是16次,采用16级流水线既能得到高精度的正余弦,也能极大地提高系统的运行效率。后续该算法基本都基于16级流水线来实现。而采取16级流水线在最终的硬件实现过程中会消耗更多的逻辑资源,影响系统的性能。
由于流水线的级数会影响系统内部逻辑资源的消耗,本文为了减少逻辑资源消耗,对流水线级数上依次进行了相应仿真,最终发现12级流水线不仅保留了系统运行的高速率,同时也保证了内部的逻辑资源消耗相对较少,具有良好的硬件实现价值。
附图说明
图1是传统的CORDIC算法几何原理图;
图2是本发明提供优选实施例一种改进的CORDIC并行流水线结构;
图3是本发明的结构进行仿真实验后的逻辑资源占用与传统结构进行的对比图,上面两张是传统并行CORDIC与传统并行流水CORDIC结果图,下面的为本发明的图,对比参数为深色方框区域;
图4是本发明进行仿真实验后的运行速率与传统结构进行的对比图,上面两张分别是传统并行CORDIC与传统并行流水CORDIC结果图,下面的为本发明的结果图;
图5是本发明最终的输出波形图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
一种基于改进CORDIC算法的数控振荡器的实现方法。
步骤a,对旋转角度进行二进制编码。在传统研究人员和学者对CORDIC的研究中,通过种种研究数据得知,该算法的传统实现方法中,计算剩余角度的资源消耗基本上占据了整个资源消耗的1/3,在算法实际运行过程中,每次旋转的方向和迭代的大小都与上一次的旋转密不可分,这对系统的整体运行速度产生了不可避免的影响。根据三角函数的计算关系,为了避免这样的影响产生,将[0,π/4]的旋转角用N位二进制数表示。
Figure SMS_10
其中,an={0,1}是输入的旋转角度θ以二进制表示的位值,至此,就能够根据这个值的大小来确定每次旋转的角度以及旋转的方向。由于an表示的是二进制的位值,不会在硬件实现过程中消耗额外的资源,就免除了计算剩余角度时产生的资源内耗,提高了系统整体的运行速度。
步骤b,建立小查找表。本文采用13位二进制数表示[0,π/4]内的输入角度,而[π/4,2π]内输入角度的正弦和余弦函数值可以通过三角函数公式变换后获得,则只需要输入[0,π/4]内的角度值即可。部分查找表如下表1所示。
表1查找表
Figure SMS_11
步骤c,对搭建好的改进CORDIC算法结构进行仿真。分别对传统的并行CORDIC结构、传统的并行流水CORDIC结构以及本文发明的改进CORDIC结构分别在Quartus上进行数字代码编写,并在ModelSim上进行仿真验证。
图3结果表明,传统并行流水线体系结构比传统并行体系结构使用了更多的寄存器(流水线体系结构2263,非流水线体系结构1346),而本文提出的改进并行流水CORDIC架构使用了504个寄存器,比前两种传统的CORDIC结构使用的内置资源消耗明显减少。图4则是测量了系统的时钟速度。结果表明,传统的并行结构CORDIC算法的运行速率为217.77Mhz,传统的并行流水结构的运行速率为303.12Mhz,而本文提出的改进并行流水结构算法的运行速率为291.04Mhz。整体说明,传统的流水线结构能极大地提升系统的运行速率,但使用了更多的寄存器导致资源的消耗提升,影响了整体的性能。而本文提出的改进流水线结构,则使用了最少的寄存器,减少了内部资源消耗,整体速率也只比传统的并行流水低了不到3.9%,也保证了系统的高速率。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

Claims (5)

1.一种基于改进CORDIC算法的数控振荡器的实现方法,其特征在于,包括以下步骤:
建立改进的CORDIC并行流水线结构;改进的CORDIC并行流水结构是在传统的CORDIC结构中对流水线级数进行修改,将传统的16级流水线改进为12级流水线结构。
对改进的CORDIC并行流水线结构的旋转角度进行二进制编码;
对二进制编码后的旋转角度建立查找表;查找表用于储存对应旋转节点所对应的正余弦值,以此进行查表旋转,记录下每次旋转所得到的正余弦值;
对搭建好的改进的CORDIC并行流水线结构进行仿真。
2.根据权利要求1所述的基于改进CORDIC算法的数控振荡器的实现方法,其特征在于,所述建立改进的CORDIC并行流水线结构,具体包括:
加法器、减法器、移位寄存器以及流水寄存器;通过将每次旋转得到的坐标输入到加法器或减法器中,并通过移位寄存器将剩余角度储存起来,再与下一级的加法器/减法器相连接。
3.根据权利要求2所述的基于改进CORDIC算法的数控振荡器的实现方法,其特征在于,所述改进的CORDIC算法相对于传统算法使用了最少的寄存器,减少了内部资源消耗,同时整体速率也只比传统的算法低了不到3.9%,也保证了系统的高速率。
4.根据权利要求1所述的基于改进CORDIC算法的数控振荡器的实现方法,其特征在于,所述对改进的CORDIC并行流水线结构的旋转角度进行二进制编码,具体包括:
根据三角函数的计算关系,将[0,π/4]的旋转角用N位二进制数表示;
Figure FDA0004088639880000011
其中,an={0,1}是输入的旋转角度θ以二进制表示的位值,n表示旋转次数,根据an值的大小来确定每次旋转的角度以及旋转的方向。
5.根据权利要求1所述的基于改进CORDIC算法的数控振荡器的实现方法,其特征在于,所述对二进制编码后的旋转角度建立查找表,具体包括:
采用13位二进制数表示[0,π/4]内的输入角度,而[π/4,2π]内输入角度的正弦和余弦函数值通过三角函数公式变换后获得,则只需要输入[0,π/4]内的角度值即可。
CN202310144439.0A 2023-02-21 2023-02-21 一种基于改进cordic算法的数控振荡器的实现方法 Pending CN116388754A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310144439.0A CN116388754A (zh) 2023-02-21 2023-02-21 一种基于改进cordic算法的数控振荡器的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310144439.0A CN116388754A (zh) 2023-02-21 2023-02-21 一种基于改进cordic算法的数控振荡器的实现方法

Publications (1)

Publication Number Publication Date
CN116388754A true CN116388754A (zh) 2023-07-04

Family

ID=86960525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310144439.0A Pending CN116388754A (zh) 2023-02-21 2023-02-21 一种基于改进cordic算法的数控振荡器的实现方法

Country Status (1)

Country Link
CN (1) CN116388754A (zh)

Similar Documents

Publication Publication Date Title
Madisetti et al. A 100-MHz, 16-b, direct digital frequency synthesizer with a 100-dBc spurious-free dynamic range
US5737253A (en) Method and apparatus for direct digital frequency synthesizer
Kumar FPGA implementation of the trigonometric functions using the CORDIC algorithm
CN110998514B (zh) 可中断的三角运算
US7440987B1 (en) 16 bit quadrature direct digital frequency synthesizer using interpolative angle rotation
JPH05241794A (ja) 超越関数近似装置及びその方法
Liu et al. A modified CORDIC FPGA implementation for wave generation
CN109814836A (zh) 一种基于区间划分和cordic的三角函数计算方法及装置
Ashrafi et al. A direct digital frequency synthesizer based on the quasi-linear interpolation method
JPH0522271B2 (zh)
Hwang et al. A 400-MHz processor for the conversion of rectangular to polar coordinates in 0.25-μm CMOS
CN116388754A (zh) 一种基于改进cordic算法的数控振荡器的实现方法
CN107102841A (zh) 一种坐标变换并行计算方法和装置
TWI376633B (en) Method of cordic computing vector angle and electronic apparatus using the same
Anil et al. FPGA Implementation of DDS for Arbitrary wave generation
EP1099998A2 (en) Coprocessor for synthesizing signals based upon quadratic polynomial sinusoids
Chen et al. Implementation Method of CORDIC Algorithm to Improve DDFS Performance
Chen et al. Research and Implementation of a Numerical Control Oscillator with Improved Pipelined CORDIC Algorithm
Verma et al. Pipelined CORDIC Architecture Based DDFS Design and Implementation
KR102468112B1 (ko) 삼각함수 생성 방법 및 직접 디지털 주파수 합성 방법
CN105866483A (zh) 一种用dsp控制器生成正弦波信号的实现方法
CN114063701B (zh) 基于低延迟的精确频率输出方法及系统
CN112260687B (zh) 一种相幅转换器及相幅转换器的转换方法
Chen et al. Design and Implementation of Improved NCO based on FPGA
Cao et al. A high precision method for mapping phase to amplitude in direct digital synthesis and its hardware implementation

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