最近在学习基于FPGADDS设计,借此机会把学习过程记录下来,当作自己的学习笔记也希望能够帮助到学习DDS的小伙伴。  DDS(Direct Digital Synthesizer)直接数字合成器,这是直译过来的名字。设计人员一般把它叫做信号发生器,用它来产生一些数字意义上的波形。它的意义还是挺大的,例如我们学习滤波器,就需要一个高低频率叠加的波形,现时生活中到处都是,可以在设计中,怎么能做
Cordic角度旋转算法简介:        在DDS内,Cordic算法相当于替代Rom的一种相幅映射算法算法通过计算单位圆上点的X坐标和Y坐标,得到角度θ的正弦和余弦值,从一个正弦和余弦已知的初始角度开始,通过多次旋转一系列固定角度来获得所需点的坐标。 其公式如下所示:      &
将图像处理的算法转换为FPGA系统设计的过程称为算法映射。这里将介绍将软件图像处理算法转换为FPGA的映射技术。算法结构映射过程的首要目标便是确定算法设计的结构,这里主要介绍在FPGA中常用的两种算法设计结构:流水线结构和并行阵列结构。流水线设计基本概念流水线处理源自现代工业生产装配线上的流水作业,是指将待处理的任务分解为相对独立的、可以顺序执行的而又相互关联的一个个子任务。流水线处理是高速设计中
从一个小实例出发,来说说我这个cordic算法除了能做些干什么! (圆周模式)   有很多同学知道可以用来做DDS 但是对于现在这个“内存过剩”的年代,采用运算的方式实现DDS远远不如LUT来得方便。。。。PS(cordic算法提出的年代,那是在遥远的20世纪五六十年代,那时候内存非常的宝贵!)于是乎我也就不介绍DDS实现方式。。。众所周知想要得到FFT的运算结果前一步必须取模
1.软件版本Quartusii12.12.本算法理论知识 ROM资源,作为产生离散正弦信号的另一种有效途
原创 2022-10-10 15:17:21
581阅读
CORDIC算法详解(二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode) 文章目录CORDIC算法详解(二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode)2 CORDIC 算法之圆周系统之向量模式(Vectoring Mode)2.1 向量模式(Vectoring Mode)2.2 思考2.3 CORDIC 算法之圆周系统之向量模式应用3 C
FPGA 上快速构建 PID 算法副标题:优秀的IC/FPGA开源项目(四)-使用HLS构建PID算法 《优秀的IC/FPGA开源项目》是新开的系列,旨在介绍单一项目,会比《优秀的 Verilog/FPGA开源项目》内容介绍更加详细,包括但不限于综合、上板测试等。两者相辅相成,互补互充~作为一名工程师,在项目实施阶段多多少少会遇到需要使用控制理论的应用程序。一种非常常用的算法是比例积分微分控
转载 3月前
25阅读
1.软件版本quartusii12.12.本算法理论知识ROM资源,作为产生离散正弦信号的另一种有
原创 2022-10-10 15:24:24
261阅读
1. FPGA 简介第1节 什么是 FPGAFPGA 的全称为 Field-Programmable Gate Array,即现场可编程门阵列。 FPGA 是在 PAL、 GAL、 CPLD 等可编程器件的基础上进一步发展的产物, 是作为专用集成电路( ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 简而言之, FPGA 就是一个可以通
四种常用FPGA/CPLD设计 思想 技巧: 乒乓操作、 串并转换、 流水线操作、 数据接口同步化,都是FPGA/CPLD逻辑 设计的内在规律的体现,合理地采用这些设计思想能在FPGA/CPLD设计工作种取得事半功倍的效果。 FPGA/CPLD 的设计思想与技巧是一个非常大的话题,由于篇幅所限,本文仅介绍一些常用的设计思想与技巧,包括(1)乒乓球操作、(
忙了几天的毕业设计,做了256~16M点FFT窗函数的设计。今晚终于可以写下博客了,嘻嘻。在这次的设计中用到了CORDIC算法,接下来开始举一个简单的例子来说明该算法FPGA实现。根据上一篇博客的CORDIC算法理论基础,本次设计以圆周系统的旋转模式为依据和迭代法为实现方案。为了方便说明该设计,相位输入位宽为8,迭代次数为8。(1)由上一篇博客可知,为了让复杂的三角函数转换成简单的移位相加,得对
转载 5月前
94阅读
正弦信号,是一个模拟信号。而FPGA只能产生数字信号。因此需要用DA将数字量转化为模拟量。这里采用modelsim的模拟波形显示,就不需要DA模块了。产生正弦信号的方法有很多,这里用的是查找rom的方法,产生正弦信号。正弦信号,是一个介于-1和1之间的模拟量。而正弦信号是周期变化的,因此这里只需要将半个正弦信号周期的值存进rom里,其余周期可以根据这个半个周期的值变化可得到。用matlab产生正弦
转载 9天前
10阅读
CORDIC算法实现极坐标(polar)到直角坐标系(Cartesian)的变换。 1: function [horizonal,vertical]=polar2car(mag, pha); 2: x =mag; 3: y =0; 4: z=pha; 5: d=0; 6: i=0; 7: k = 0.6073; %K 增益 8: x = k*x; 9: while i=c d = 1; 13: else d = -1; 14: end 15: x =xNew-y*d*(2^(-i)); 16: ...
原创 2021-08-26 09:54:20
198阅读
CORDIC算法的来历与用途大家网上随处可以见到,这里写 一下自己的理解。将P(x,y)旋转角度a得到新的坐标P’(x’,y’)。这里的坐标变换为:x’= x cos(a) – y sin(a) = cos(a)(x-y *tan(a))y’= y cos(a) + xsin(a) = cos(a)(y+x*tan(a))旋转角度a为常数时,如果tan(a)=2-i ,即可用移位代替乘法便于快速高效在FPGA实现。每次都旋转固定角度delta, 则cos(delta)=cos(arctan(2-i)).而从而得到简便计算如下:atan(2^-i)的结果是预先计算好存储下来了K­i=
原创 2021-08-26 09:54:22
799阅读
一个Pipelined结构 16极流水线 代码如下。但是有错误在pi/2相位整数倍点多了一个毛刺 。 还请各位指正 谢谢 代码如下: 1: 2: module cordic (clk,rst_n,ena,phase_in,sin_out,cos_out,eps); 3: 4: parameter D
原创 2022-08-15 16:22:06
106阅读
 转载自:https://..com/rouwawa/p/7102173.html 上两篇博文Cor
转载 2022-04-18 15:05:18
618阅读
转载 2021-08-20 13:58:31
758阅读
1.算法仿真效果 matlab2013b+QUARTUS 7.2仿真结果如下: 然后使用DDS产生的sin曲线进行ASK,FSK,PSK调制,结果如下: 2.算法涉及理论知识概要 随着现代电子技术的不断发展,很多应用领域对信号的频率的准确度和稳定性要求越来越高,不仅需要单一的固定频率,还需要多点频率,如短波通信接收机要求在2~30MHz的范围内提供以100Hz为间隔的280000个通信频道。一
原创 2023-04-25 23:44:00
189阅读
1.算法描述CORDIC(CoordinateRotationDigitalComputer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数、双曲线、指数、对数的计算。该算法通过基本的加和移位运算代替乘法运算,使得矢量的旋转和定向的计算不再需要三角函数、乘法、开方、反三角、指数等函数。Cordic算法可以利用简单的移位和加减来计算复杂的三角函数、双曲函数
原创 2023-02-07 19:25:56
190阅读
单片机的硬件串口,发送和接收完毕都有相应的标志位,例如TC(发送完成)和RXNE(接收完成)位。 FPGA则不同,FPGA采用的是AXI4-Stream协议,数据送入IP核后,经过固定数量的时钟周期后,就得到运算结果,没有任何标志位表明运算完成。利用浮点数IP核(Floating-point),将32位有符号定点数(Int32)转换为单精度浮点数(float),只需要6个时钟周期,就能得到结果。如
  • 1
  • 2
  • 3
  • 4
  • 5