cordic算法verilog实现(简单版)(转载)module cordic(clk, phi, cos, sin); parameter W = 13, W_Z = 14; input clk; input [W_Z-1:0] phi; output[W-1:0] cos, sin; reg [W-1:0] cos, sin; reg [W-1:0] x[8:0], y[8:0]; reg [W_Z-1:0] z[7:0]; always @(posedge clk)begin x[0] <= 13'h4D; // 修正CORDIC算法的比例因子,An的倒数 y[0] <= 13'h00; z[0] <= phi; // 旋转45度 if(z[0][W_Z-1]) begin x[1] <= x[0] + y[0]; y[1] <= y[0] - x[0]; z[1] <= z[0] + 14'h65; end else begin x[1] <= x[0] - y[0]; y[1] <= y[0] + x[0]; z[1] <= z[0] - 14'h65; end // 旋转26.57度 if(z[1][W_Z-1])begin x[2] <= x[1] + {{1{y[1][W-1]}}, y[1][W-1:1]}; y[2] <= y[1] - {{1{x[1][W-1]}}, x[1][W-1:1]}; z[2] <= z[1] + 14'h3B; end else begin x[2] <= x[1] - {{1{y[1][W-1]}}, y[1][W-1:1]}; y[2] <= y[1] + {{1{x[1][W-1]}}, x[1][W-1:1]}; z[2] <= z[1] - 14'h3B; end // 旋转14.04度 if(z[2][W_Z-1])begin x[3] <= x[2] + {{2{y[2][W-1]}}, y[2][W-1:2]}; y[3] <= y[2] - {{2{x[2][W-1]}}, x[2][W-1:2]}; z[3] <= z[2] + 14'h1F; end else begin x[3] <= x[2] - {{2{y[2][W-1]}}, y[2][W-1:2]}; y[3] <= y[2] + {{2{x[2][W-1]}}, x[2][W-1:2]}; z[3] <= z[2] - 14'h1F; end // 旋转7.13度 if(z[3][W_Z-1])begin x[4] <= x[3] + {{3{y[3][W-1]}}, y[3][W-1:3]}; y[4] <= y[3] - {{3{x[3][W-1]}}, x[3][W-1:3]}; z[4] <= z[3] + 14'h10; end else begin x[4] <= x[3] - {{3{y[3][W-1]}}, y[3][W-1:3]}; y[4] <= y[3] + {{3{x[3][W-1]}}, x[3][W-1:3]}; z[4] <= z[3] - 14'h10; end // 旋转3.58度 if(z[4][W_Z-1])begin x[5] <= x[4] + {{4{y[4][W-1]}}, y[4][W-1:4]}; y[5] <= y[4] - {{4{x[4][W-1]}}, x[4][W-1:4]}; z[5] <= z[4] + 14'h8; end else begin x[5] <= x[4] - {{4{y[4][W-1]}}, y[4][W-1:4]}; y[5] <= y[4] + {{4{x[4][W-1]}}, x[4][W-1:4]}; z[5] <= z[4] - 14'h8; end // 旋转1.79度 if(z[5][W_Z-1])begin x[6] <= x[5] + {{5{y[5][W-1]}}, y[5][W-1:5]}; y[6] <= y[5] - {{5{x[5][W-1]}}, x[5][W-1:5]}; z[6] <= z[5] + 14'h4; end else begin x[6] <= x[5] - {{5{y[5][W-1]}}, y[5][W-1:5]}; y[6] <= y[5] + {{5{x[5][W-1]}}, x[5][W-1:5]}; z[6] <= z[5] - 14'h4; end // 旋转0.90度 if(z[6][W_Z-1])begin x[7] <= x[6] + {{6{y[6][W-1]}}, y[6][W-1:6]}; y[7] <= y[6] - {{6{x[6][W-1]}},x[6][W-1:6]}; z[7] <= z[6] + 14'h2; end else begin x[7] <= x[6] - {{6{y[6][W-1]}}, y[6][W-1:6]}; y[7] <= y[6] + {{6{x[6][W-1]}}, x[6][W-1:6]}; z[7] <= z[6] - 14'h2; end // 旋转0.45度 if(z[7][W_Z-1])begin x[8] <= x[7] + {{7{y[7][W-1]}}, y[7][W-1:7]}; y[8] <= y[7] - {{7{x[7][W-1]}}, x[7][W-1:7]}; end else begin x[8] <= x[7] - {{7{y[7][W-1]}}, y[7][W-1:7]}; y[8] <= y[7] + {{7{x[7][W-1]}}, x[7][W-1:7]}; end cos <= x[8]; sin <= y[8]; endendmodule
cordic算法verilog实现(简单版)
- Verilog(109207)
- CORDIC(19831)
相关推荐
CORDIC理论分析
1、CORDIC 理论
1.1、 坐标旋转数字计算机CORDIC
坐标旋转数字计算机CORDIC(COordinate Rotation DIgital Computer)算法,通过移位和加减运算,能递归计算常用函数值
2010-07-28 17:57:221661
CORDIC 算法
我现在写着一个CORDIC 的 verilog 代码,但在逻辑上遇到问题。https://www.edaplayground.com/x/3tHk , 为何 y[2] == 0 ? -->
2017-05-14 00:32:53
CORDIC算法实现FFT Verilog编译正确,怎么得到仿真时序图?
//-------------------------------------------------------------// Designer : W// Date: 2008.12.16// Discription :Cordic with computation of modulus
2014-11-02 20:03:32
Cordic IP用户手册
CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是 J.D.Volder1于 1959 年首次提出,主要用于三角函数、双曲线、指数
2023-08-09 06:45:44
Verilog图像算法开发板
Verilog HDL数字系统设计篇教程预览地址:链接:http://pan.baidu.com/s/1pK8TlcJ密码:ojrjETree的开发板开发了下面17种verilog图像算法下图为ETree的FPGA视频音频开发板,在淘宝店:shop397545458.taobao.com
2017-11-28 22:20:11
verilog实现三次样条插值
本帖最后由 我来看看你在干什么 于 2018-5-15 09:10 编辑
用verilog实现EMD算法,需要用到三次样条插值法,请问有做过类似算法实现的吗,可以讲一下verilog实现三次样条插值的思路,或者相互交流探讨一下吗?
2018-05-13 21:34:56
算法实现的VLSI结构
请教高手:写FPGA代码时,是先自己画出电路原理图或框图、或流程图,再对照电路框图写代码;还是不需此过程,直接写代码。看好多论文都是研究某算法实现的VLSI结构,故个人认为通常应先有电路框图及结构,再写verilog,不知对不对?
2013-05-14 21:04:38
FPGA设计中必须掌握的Cordic算法
计算机时发明的。这是一种设计用于计算数学函数、三角函数和双曲函数的简单算法。这种算法的真正优势在于只需要采用极小型的 FPGA封装就可以实现它。CORDIC 只需要一个小型查找表,加上用于执行移位和加
2019-09-19 09:07:16
Gowin CORDIC IP参考设计及用户指南
本次发布 Gowin CORDIC IP 参考设计及用户指南。Gowin CORDIC IP 的用户指南及参考设计可在高云官网下载,其中参考设计已配置一例特定参数,可用于仿真,实例化加插用户设计后的总综合,总布局布线。
2022-10-08 08:11:00
Gowin CORDIC IP用户指南
Gowin CORDIC IP用户指南主要内容包括功能特征、端口描述、时序说明、配置调用、参考设计等。主要用于帮助用户快速了解 Gowin CORDIC IP的产品特性、特点及使用方法。
2022-10-08 08:07:55
LabVIEW FPGA CORDIC IP核的arctan使用方法
使用LabVIEW FPGA模块中的CORDIC IP核,配置arctan(X/Y)算法,配置完成之后,IP核只有一个输入。我参考网上VHDL CORDIC IP核,说是将XY合并了,高位X低位Y。不知道在LabVIEW中如何将两个值X、Y合并成一个(X、Y均为定点数)。具体情况如下图:
2019-09-10 20:07:07
xilinx vivado调用cordic IP核进行实现时报错多重驱动?
用vivado2019.2建立工程,工程中调用cordic IP核进行atan求解,功能仿真时正常且满足要求;综合时正常;实现时报错提示多重驱动。
如果经cordic计算后的输出值不用于后续的操作
2023-06-06 17:17:37
《从算法设计到硬线逻辑的实现》中第十章练习6-在Verilog H...
在做夏宇闻教材《从算法设计到硬线逻辑的实现》中第十章练习6-在Verilog HDL中使用函数按原文编译总是出错,将[3:0]中的3改为大于3的值就没错了,如[4:0].为什么呢?
2013-11-06 14:14:12
【来源】:《武汉理工大学学报》2010年06期
的角度范围也有限。针对传统CORDIC算法的缺陷,在向量模式下提出一种改进型CORDIC算法,它不需要查找表和模校正因子,只需通过简单的移位和加减运算就能实现矩阵的QR分解,从而能够减少硬件的开销
2010-04-24 09:27:51
什么是CORDIC算法?如何实现FPGA的数字频率校正?
收机扩频码的捕获以及数据解调性能的影响,从而提高接收机的性能。频偏校正电路中通常需要根据给定相位产生余弦信号和正弦信号,其中最重要的实现技术是CORDIC(CoordinateRotationDigitalComputer,坐标旋转数字计算机)算法。
2019-09-19 07:17:19
分分钟看懂CORDIC算法
最近出于项目需要,对CORDIC算法深入学习下。刚开始的时候上网搜了下资料发现一上来就直接是推导公式,然后工程运用与理论推导联系太少感觉无从下手!对于像我们数学丢了很多年的同学来说实在是痛苦啊。好在
2014-08-11 14:05:05
在STM32G4中使用CORDIC与定点带符号整数数据格式
三角函数和双曲线函数的低成本逐次逼近算法。最初由Jack Volder在1959年提出,它被广泛用于早期计算器当中。CORDIC算法通过基本的加和移位运算代替乘法运算,具体原理不在此赘述。坐标旋转算法示意图
2022-08-10 14:38:16
基于CORDIC技术的无开方无除法的MQR阵分解方法
只需要简单的移位和进行加法操作就能完成。我们讨论的就是利用CORDIC方法以避免开方和除法运算来实现Givens旋转,从而进行MQR分解,完成自适应波束形成。
2020-11-23 09:15:32
基于Cordic的正弦信号发生器建模仿真
基于Cordic的正弦信号发生器建模仿真(1)信号频率范围10Hz—200KHz;(2)给出Cordic算法信号发生器;(3)可以随时改变频率控制字或相位控制字。
2015-07-03 12:40:17
基于UDB的CORDIC
大家好,这是一个UDP实现的16位定点CORDIC,用于计算给定角度的正弦和余弦。它在PSoC 3上被支持,并且可能(忽略警告)运行到33 MHz。我已经附上了一个演示项目与项目库,所以尝试运行它在
2019-05-24 10:03:12
基于改进的CORDIC算法的FFT复乘及其FPGA实现
耗费了FFT运算中大量的乘法器资源。CORDIC算法只需简单的移位与加减运算就能实现向量旋转,具有使用资源少、硬件规模小等优势。因此在FFT蝶形运算中用其代替传统FFT运算中的复数乘法器,可以获得更好
2011-07-11 21:32:29
如何实现cordic for sine、sqring和sqrt以使程序快速运行?
大家好,我有一个平方根,眼压测量和许多其他功能在我的程序。它们使我的程序变慢了。我听说过CORDIC函数,但我不知道如何实现它。有人能帮助我吗?我将非常感谢你。当做阿维斯
2019-10-28 07:56:31
怎么使用cordic旋转方法在VHDL中实现FFT?
嗨,我已经实现了radix2 / 4&amp;在ISE 14.1中没有使用cordic的分裂基数FFT算法。它们运行良好... o / p即将到来,但问题是代码是不可合成的。为了使代码可合成,我必须
2020-03-06 08:40:29
最强加密算法?AES加密算法的Matlab和Verilog实现 精选资料推荐
目录背景AES加密的几种模式基本运算AES加密原理Matlab实现Verilog实现Testbench此文重点讲述了AES加密算法的加密模式和原理,用MATLAB和Verilog进行加解密的实现。美
2021-07-28 07:34:30
求助,有谁做过对称矩阵特征值分解的FPGA实现的么?
有谁做过对称矩阵特征值分解的FPGA实现的么?网上查了很多资料好多都是零几年的论文,有用到cordic算法,希望有做过的能够提供个verilog代码供我学习,谢过了~
2016-11-07 23:16:45
请问能不能用CORDIC算法代替ROM表,用FPGA实现CORDIC算法来控制AD9910?
正在做一个课题,用FPGA控制AD9910,但是本人想把基于ROM表的改成基于CORDIC算法的,这样还能不能用FPGA实现控制AD9910,理论上应该可以的,但是不知道这样有没有意义一般都是直接用
2018-12-01 08:47:01
改进型MVR-CORDIC算法研究
分析了CORDIC算法的基本原理和MVR-CODIC算法的特点。在此基础上,提出了一种改进型MVR-CODIC算法,利用查ROM表代替原算法中比例因子的计算方法,讨论了改进后算法的所需ROM表的容
2009-03-04 22:26:2628
利用CORDIC 算法在FPGA 中实现可参数化的FFT
针对在工业中越来越多的使用到的FFT,本文设计出了一种利用CORDIC 算法在FPGA 上实现快速FFT 的方法。CORDIC 实现复数乘法比普通的计算器有结构上的优势,并且采用了循环结构
2009-08-24 09:31:109
高性能HPOR CORDIC算法及实现
CORDIC 算法在通信和图像处理等各个领域有着广泛的应用,但是浮点CORDIC 由于迭代延时大且实现复杂没有得到很好的应用,本文提出了一种修正浮点CORDIC 算法: 高精度顺序迭代HPOR
2009-12-15 14:27:2414
基于CORDIC算法的NCO实现
基于CORDIC 算法的NCO 实现田力, 冯琦(西安电子科技大学 电路设计研究所,陕西 西安 710071)摘要:NCO 在信号处理方面有着广泛的应用。而函数发生器是NCO 中的关键部分,
2009-12-15 14:30:3323
利用CORDIC算法在FPGA中实现可参数化的FFT
针对在工业中越来越多的使用到的FFT,本文设计出了一种利用CORDIC算法在FPGA上实现快速FFT的方法。CORDIC实现复数乘法比普通的计算器有结构上的优势,并且采用了循环结构的CORDIC算
2010-08-09 15:39:2055
CORDIC 算法在三轴电子罗盘中的应用
CORDIC算法是用于计算三角、反三角、指数、对数等超越函数的简捷算法。将该算法应用在以单片机为核心的三轴电子罗盘中,用于实现罗盘的倾斜补偿并计算俯仰角、横滚角和航向
2010-10-18 16:52:570
基于CORDIC算法的载波同步锁相环设计
研究了一种利用CORDIC算法的矢量及旋转模式对载波同步中相位偏移进行估计并校正的方法。设计并实现了基于CORDIC算法的数字锁相环。通过仿真,验证了设计的有效性和高效性。
2010-12-15 14:49:430
基于CORDIC算法2FSK调制器的FPGA设计
本文提出了应用CORDIC(Coordinate Rotation Digital Computer)算法实时计算正弦值的方案,并基于CORDIC算法在FPGA芯片上设计了2FSK调制器。这不仅能够节省大量的FPGA逻辑资源,而且能很好地兼顾速度
2011-05-31 10:22:061508
双模式CORDIC算法的FPGA实现
CORDIC算法将复杂的算术运算转化为简单的加法和移位操作,然后逐次逼近结果。这种方法很好的兼顾了精度、速度和硬件复杂度,它与VLSI技术的结合对DSP算法的硬件实现具有极大的意义
2011-06-27 17:27:2666
基于CORDIC算法的数字下变频技术设计
摘要: 传统的基于查表法的数控振荡器耗费大量的FPGA片内资源。为了解决这一问题,提出了一种基于CORDIC(coordinate rotation digital compute,坐标旋转数值计算)算法的数控振荡器的设计方
2012-05-28 16:04:5939
基于CORDIC算法的数字下变频技术设计与实现
摘要: 传统的基于查表法的数控振荡器耗费大量的FPGA片内资源。为了解决这一问题,提出了一种基于CORDIC(coordinate rotation digital compute,坐标旋转数值计算)算法的数控振荡器的设计方
2012-05-29 16:46:340
基于CORDIC算法的高速ODDFS电路设计
为了满足现代高速通信中频率快速转换的需求,基于坐标旋转数字计算(CORDIC,Coordinate Rotation Digital Computer)算法完成正交直接数字频率合成(ODDFS,Orthogonal Direct Digital Frequency Synthes
2013-02-22 16:26:4634
CORDIC算法在基于FPGA的旋变解码和PMSM矢量控制中的应用
论文阐述了CORDIC 算法的基本原理,在旋变解码、坐标变换、SVPWM、输出限幅等算法中的应用,并给出了实现方法及运算值与实际值的对比,证明了CORDIC 算法具有运算精度高,占用资源少,运算速度快等特点。最后通过一台额定9kW 的电动车用永磁同步电机实验验证了算法的正确性和实用性。
2016-08-03 18:36:2525
cordic算法verilog实现(复杂版)
module cordic (clk,rst_n,ena,phase_in,sin_out,cos_out,eps); parameter DATA_WIDTH=8; parameter PIPELINE=8;
2017-02-11 03:07:083961
FPGA基于CORDIC算法的求平方实现
CORDIC是在没有专用乘法器(最小化门数量)情况下,一组完成特定功能的算法,包括平方、超越、Log、sin/cos/artan。原理为连续的旋转一个较小的角度,以一定精度逼近想要的角度。
2017-02-11 19:24:065373
高速低功耗CORDIC算法的研究与实现
针对传统CORDIC算法流水线结构的迭代次数过多,运算速度不够快,消耗硬件资源较多的缺点,改进了一种基于旋转模式并行运算的CORDIC算法。该算法采用二进制两极编码和微旋转角编码进行低位符号预测
2017-11-16 10:46:2214
利用Cordic算法来计算三角函数的值
的应用。因为Cordic 算法只用了移位和加法,很容易用纯硬件来实现,因此我们常能在FPGA运算平台上见到它的身影。不过,大多数的软件程序员们都没有听说过这种算法,也更不会主动的去用这种算法。
2017-11-17 16:37:016470
关于FPGA设计中使用CORDIC算法的教程分享
虽然CORDIC 是实现 DSP 和数学函数最重要的算法之一,但许多设计人员并不熟悉。 作者:Adam P. Taylor 首席工程师 阿斯特里姆公司 (EADS Astrium
2019-10-06 10:52:001565
简单的数学运算计算数学函数的方法CORDIC的详细资料概述
CORDIC是在一个称为二进制搜索的循环中使用更简单的数学运算来计算数学函数的方法。最常用的CORDIC用于计算AtAN2(角度)和点的斜边(距离)。CORDIC还可以用来计算其他数学函数,如Sin和CoS。
2018-05-31 11:18:1412
基于FPGA的Cordic算法实现的设计与验证
本文是基于FPGA实现Cordic算法的设计与验证,使用Verilog HDL设计,初步可实现正弦、余弦、反正切函数的实现。将复杂的运算转化成FPGA擅长的加减法和乘法,而乘法运算可以用移位运算代替
2018-07-03 10:18:002349
CORDIC算法的原理及具体应用
CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数、双曲线、指数、对数
2019-11-13 07:09:006100
如何才能在FPGA上实现对数函数
函数和算术操作的循环迭代算法。CORDIC 算法主要由加法、移位实现,从而大大降低了占用的FPGA 资源。该文介绍一种由CORDIC 算法推导的对数函数在FPGA 上的实现。
2020-08-07 17:14:0012
如何使用FPGA实现CORDIC算法在跟踪环中的应用
主要介绍了坐标旋转数字计算(CORDIC)算法在US,g,鉴别器中的应用,包括码跟踪环、锁频环和锁相环鉴别器,并进行了FPGA实现。在设计中,采用统一cORDIc算法优化方法减少硬件开销,用非流水
2021-01-22 16:12:008
如何使用FPGA实现CORDIC算法的QAM调制系统
提出了一种基于流水线CORDIC的算法实现QAM调制,可有效节省硬件资源,提高运算速度。用Verilog HDL对本设计进行了编程和功能仿真,仿真结果表明,本设计具有一定的实用性。
2021-02-01 14:54:026
一文带你们了解什么是CORDIC算法
CORDIC算法简介 在信号处理领域,CORDIC(Coordinate Rotation Digital Computer,坐标旋转数字计算机)算法具有重大工程意义。CORDIC算法由Vloder
2021-04-11 11:16:5012485
FPGA设计中DAC控制的Verilog实现
FPGA设计中DAC控制的Verilog实现(单片机电源维修)-该文档为FPGA设计中DAC控制的Verilog实现资料,讲解的还不错,感兴趣的可以下载看看…………………………
2021-07-26 12:18:4818
使用Verilog HDL设计实现Cordic算法
任何适合产品实现的算法,都是将简易实现作为第一目标。CORDIC算法是建立在适应性滤波器、FFT、解调器等众多应用基础上计算超越函数的方法。其核心思想是二分逐次逼近。 CORDIC
2021-08-16 11:21:111827
简单介绍一下-Verilog-AMS的基础知识
-Verilog-AMS,今天就简单介绍一下-Verilog-AMS。 为了便于物理系统的建模,人们在Verilog-2005的基础上,添加了一些新的关键字和语法结构,由此诞生了Verilog-AMS标准。所以
2021-10-21 14:50:519056
在FPGA中利用CORDIC算法IP核实现三角函数关系的转换
在FPGA硬件实现CORDIC的逻辑其实是很简单的,就是设置好输入输出的位宽,然后建立好对应的精度表,通过旋转加得到运算结果。
2022-10-17 11:58:582049
如何将算法“翻译”成Verilog?
然而再复杂的算法,在设计工程师的眼里,也就是一堆数学公式,算法设计者也应该尽量做简单的算法实现,比如除法,求幂次方、开平方等复杂运算到了设计工程师这里都已经转化成了简单的乘法和加法运算。更复杂的就是累加、累乘(我所能接触到的)。
2022-11-03 15:38:20623
CORDIC算法简介
在信号处理领域,CORDIC(Coordinate Rotation Digital Computer,坐标旋转数字计算机)算法具有重大工程意义。
2023-03-28 09:39:031099
基2FFT的verilog代码实现及仿真
上文基2FFT的算法推导及python仿真推导了基2FFT的公式,并通过python做了算法验证,本文使用verilog实现8点基2FFT的代码。
2023-06-02 12:38:57630
怎样使用CORDIC算法求解角度正余弦呢?
CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数、双曲线、指数、对数的计算。
2023-08-31 14:54:211106
FPGA实现Cordic算法求解arctanθ
由于在项目中需要使用的MPU6050,进行姿态解算,计算中设计到arctan 和 sqr(x*2 + y * 2),这两部分的计算,在了解了一番之后,发现Cordic算法可以很方便的一次性求出这两个这两部分的计算。
2023-09-27 09:30:26685
评论
查看更多