流水线CORDIC算法的FPGA实现.docVIP

流水线CORDIC算法的FPGA实现.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
流水线CORDIC算法的FPGA实现   摘要:从CORDIC算法的基本原理出发,讨论其工作过程以及旋转角的覆盖范围,在此基础上,给出了具有流水线结构的FPGA实现结构以及增益因子的大小与流水线级数的确定关系,给出了VHDL实现算法,经程序设计与Quartus6.0调试与仿真,结果表明采用FPGA实现的CORDIC算法具有较好的运算精度。   关键词:CORDIC;VHDL;实现;流水线   中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)30-0716-02      The Implementation of Pipeline CORDIC Algorithm Based on VHDL   ZHAO Lin-jun   (Shanxi University of Technology, Hanzhong 723003, China)   Abstract: From the basal principle of CORDIC algorithm, this paper discusses the algorithmic course of work and its coverage range of revolution angle. Based on this, the article gives a pipelined structure which realized by FPGA and a VHDL program. Compiled and simulated by QuartusⅡ6.0, its operational results has a higher precision. Finally, the essential way to improve the CORDIC performance has been pointed out.   Key words: CORDIC; VHDL; Implementation; Pipeline      1 引言      CORDIC(Coordinate Rotation Digital Computer)算法是J.Vocder[1]于1959年在美国航空控制系统的设计中提出来的一种用于计算平面直角坐标系和极坐标系下函数值的循环迭代算法,J.S Walther[2]将其推广了CORDIC算法,将圆周旋转、线性旋转与双曲线旋转均包括到了同一个CORDIC迭代方程之中,由于该算法仅涉及移位与加减运算,便于软硬件实现,因而受到了人们的广泛关注。目前该算法已经应用到FFT、DCT、DWT、DDFS以及极化调制等诸多领域。本文从CORDIC算法的基本原理出发,论述了其流水线结构的FPGA实现的具体方法及其产生正余弦信号的VHDL实现,文中的代码经Quartus6.0编译通过,仿真结果表明文中的设计方法是可行的,且运算结果具有较高的精度。      2 CORDIC算法的基本原理      CORDIC算法的基本原理是如图1所示。设初始向量V1(x1,y1),顺时针旋转θ,得向量V2(x2,y2),这一过程数学上可表示为:   补码表示时,有限字长的数据左移最终结果为零,因此CORDIC算法的迭代次数是受现与参与运算数据的字长的。当字长选择16bits时通过增加两级i=0旋转,使其旋转角度在-π~+π,此时的增益因子大小应为:   由于VHDL只能对定点整数进行综合,因此要对理数据需要进行取整处理,本文研究的系统采用实际数据×2n-1后取整来处理(n为字长),其MSB为符号位。      3 CORDIC算法的FPGA实现[4,6,8]      一个字长16位的18级流水线结构的CORDIC算法如图2所示。其VHDL程序设计的关键语句采用if语句实现。在同一个process中,多条if语句是顺序执行的,因此可以用来实现流水线工作方式。一个完整的if语句为:   if (theta(i)0) then   x(i+1)=x(i)-(SRL(y(i), i));   y(i+1)=y(i)+ (SRL(x(i), i));   theta (i+1)= theta (i)-θi;   else   x(i+1)=x(i)+( SRL (y(i), i));   y(i+1)=y(i)-( SRL (x(i), i));   theta (i+1)= theta (i)+θi;   end if;   其中:SRL(m,k)实现数据m右移k位,并返回值为移位后的结果。      4 仿真结果      采用上节的if语句,按照图2编写了可产生正余弦信号的CORDI

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档