请问用FPGA设计DDS,输出的正弦波整形电路形如图,怎么修改?

502 Bad Gateway
502 Bad Gateway[转载]基于FPGA的DDS信号发生器课设报告
一、实验目的:
1、掌握FPGA设计流程和VHDL;
2、掌握DDS原理及其FPGA的实现方法。
二、实验仪器:
PC机、Quartus II软件、DE2开发板。
三、实验内容及说明:
要求DDS输出的正弦波频率可变,频率变化范围5Hz-100kHz,频率步进值小于1Hz。
四、实验原理:
1971年,Tierney等发表了关于新型数字频率合成器的研究,第一次提出了直接数字频率合成的思想。DDS技术用数字控制方法从一个标准参考频率源产生多种频率的技术,其理论基础是奈奎斯特抽样定理,采用数字存储技术,通过相位累加、幅度查表以及数模变换来实现波形产生。
优点:具有超宽的相对带宽,超高的频率捷变速度、超细的频率分辨率、相位连续,可编程,全数字化便于单片集成。
利用数字硬件和DAC直接产生信号有两种方法:
(1)脉冲输出直接数字合成(PO
DDS):利用相位累加器得到周期脉冲,然后根据这些脉冲可以产生多种其他的波形。
(2)只读存储器查找表方法(ROM
LUT):在ROM中存放一个周期函数的抽样值,每个时钟周期读出一个抽样值通过DAC输出,适用于任意波形的产生。
本实验采用只读存储器查找表方法。
1、基本原理:
我们先简单介绍一下DDS技术的原理,式子1描述的是一个正弦波
&&&&&&&&&&&&&&&&&&&
式1中的时间t是连续的,用周期为
的时钟进行采样,则连续两个采样点之间的相位增量为&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&(2)
为采样频率,将整个周期
份,则相位量化单位
,则代入2可以得到
,更一般的情况是
,那么可以得到输出信号的频率为&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(3)
式3中M称为频率控制字,有上面的分析显然可以知道
决定了最小相位增量,当
一定时,通过控制M来实现对相位增量的控制,进而决定了输出频率的大小,当M等于1时
的值称为频率分辨率。当基准时钟确定后,输出信号频率
与频率控制字M之间必须满足采样定理,即
2、设计原理图
图1为设计原理图:
图1.设计原理图
频率控制字M和相位控制字分别控制DDS输出正弦波的频率和相位。DDS系统的核心是相位累加器,它由一个累加器和一个N位相位寄存器组成。每来一个时钟脉冲,相位寄存器以步长M增加。相位寄存器的输出与相位控制字相加,其结果作为正弦查找表的地址。正弦查找表由ROM构成,内部存有一个完整周期正弦波的数字幅度信息,每个查找表的地址对应正弦波中0~360°范围内的一个相位点。查找表把输入的地址信息映射成正弦波的数字幅度信号,同时输出到DAC的输入端,DAC输出的模拟信号经过低通滤波器(LPF),可得到一个频谱纯净的正弦波。
相位寄存器每经过
时钟周期后回到初始状态,相应地正弦查找表经过一个循环回到初始位置,DDS输出一个正弦波。输出的正弦波周期为
。DDS的最小分辨率为
,当 M=2N-1
时,DDS最高的基波合成频率为
3、相位截断
当系统时钟一定时,频率分辨率与相位累加器位数成反比关系,增加N可提高频率分辨率,但存储容量增加。输出信号频率为
,ROM容量为
,读取大容量的ROM,系统速度降低,进而影响系统的工作频率。
为了避免存储器容量过大,当累加器的位数为N时,实际中可能用W位来寻址,此时ROM的容量为2W,这种方法称为相位截断。下图2所示为相位截断示例。
五、实验内容:
1、正弦函数量化
在该实验中,我将正弦函数360°划分为512个值,于是将正弦函数幅值量化为512个值。用MATLAB软件编写程序生成了dds.mif文件。MATLAB程序如下所示:
depth=512;&&&&&&&&&&&
%存储单元数;
widths=10;&&&&&&&&&&&&
&%数据宽度为10位;
N=0:1: 512;
s=sin(pi*N/256);&&&&&&&&&&&&
fidc=fopen('dds.mif','wt');& %以“wt”的形式打开,n为换行
%写入dds.mif%
fprintf(fidc,'depth=%d;n',depth);
fprintf(fidc,'width=%d;n',widths);
fprintf(fidc,'address_radix=n');
fprintf(fidc,'data_radix =n');
fprintf(fidc,'Content Beginn');
for(x=1:depth)
fprintf(fidc,'%d:%d;n',x-1, round(511*sin(pi*(x-1)/
256)+512));
fprintf(fidc,'');
fclose(fidc);
由此,正弦量化结果就在dds.mif文档中生成。再将其写入Quartus
II软件中ROM定义的程序中。
2、ROM程序
LIBRARY IEEE;
IEEE.STD_LOGIC_1164.ALL;
IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY FLASH_ROM
PORT(LOAD:IN STD_LOGIC;
DIN:IN STD_LOGIC_VECTOR(8 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));
END FLASH_ROM;
ARCHITECTURE ONE OF
FLASH_ROM IS
M:STD_LOGIC_VECTOR(9 DOWNTO 0);
WITH(DIN)SELECT
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
"" WHEN&&&&&
此处程序过于冗长,就不一一列举,总共512个。
PROCESS(LOAD ,M)
&&&&&&&&&&&&&&&&&&
IF LOAD'EVENT AND LOAD='1' THEN DOUT&=M; END
END PROCESS;
当地址匹配成功后,在时钟的上升沿到来时,ROM输出该地址所对应的幅值。
3、32位累加器
程序如下:
LIBRARY IEEE;
IEEE.STD_LOGIC_1164.ALL;
IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ADDER32B
PORT(A,B:IN STD_LOGIC_VECTOR(31 DOWNTO 0);
S:OUT STD_LOGIC_VECTOR(31 DOWNTO 0));
END ADDER32B;
ARCHITECTURE ONE OF
ADDER32B IS
&&&&&&&&&&&&&&&&&&
此处累加器选用32位,累加器的B端口输入的是频率控制字,也为32位的,但我们选用前18位,后14位置零。
4、32位相位寄存器
程序如下:
LIBRARY IEEE;
IEEE.STD_LOGIC_1164.ALL;
IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY REG32B
PORT(LOAD:IN STD_LOGIC;
DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0));
END REG32B;
ARCHITECTURE ONE OF REG32B
PROCESS(LOAD ,DIN)
&&&&&&&&&&&&&&&&&&
IF LOAD'EVENT AND LOAD='1' THEN DOUT&=DIN; END
END PROCESS;
寄存器数出端数出的为32位的数,此数再一次被送入累加器进行累加,而输出位数的前9位送入下一端的加法器,与相位控制字相加结果作为地址数。
5、9位加法器
程序如下:
LIBRARY IEEE;
IEEE.STD_LOGIC_1164.ALL;
IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ADDER9B
PORT(A,B:IN STD_LOGIC_VECTOR(8 DOWNTO 0);
S:OUT STD_LOGIC_VECTOR(8 DOWNTO 0));
END ADDER9B;
ARCHITECTURE ONE OF
ADDER9B IS
&&&&&&&&&&&&&&&&&&
选用了9位数累加,并设定相位控制字为0,如此累加后输出的数即送入存储器中作为地址数使用,并匹配出对应的幅值。再将所对应的引脚设计好,如此该图设计便完成了。
6、顶层模块图:
顶层模块图
(1)仿真累加器:
累加器仿真图
(2)仿真寄存器:
寄存器仿真图
(3)功能仿真:
功能仿真图
(4)正弦波输出:
正弦波输出图
六、分析(时钟频率为50MHz):
1、该系统的频率步进值为0.01Hz,小于1Hz。
2、经过不同位数的仿真,发现当满足可以输出5Hz频率时,最大输出频率远远达不到100KHz,在100KHz时早已失真成三角波了。于是,选用32位。而选用32位能达到的最小频率为190.7Hz,100KHz是可以达到的,这样该系统的输出频率为190.7Hz~100KHz,相对可以满足5Hz的系统来说,32位的系统误差较小。
3、FPGA资源利用情况如下图8所示可知它的资源利用率在2%左右。
图8 FPGA资源利用率
4、发现的问题及改进
在之前,为满足频率步进值小于1Hz,于是选择了27位寄存器,为满足频率从5Hz~100KHz,频率控制字选用20位。可是仿真出来的结果却是,在48KHz时,正弦波开始失真了,而当失真过后,继续增大频率控制字,正弦波形又恢复了,而且当频率控制字越大,正弦的频率反而越小。这可能是因为正弦函数量化太小,当频率控制字越大时,它溢出了,而对正弦函数只进行了512次量化,所以重新选择了32位寄存器和32位频率控制字来保证在100KHz时波形不失真,但不足之处就是能达到的最小的频率是190.7Hz而不是5Hz。
5、实验的收获
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。DDS技术用数字控制方法从一个标准参考频率源产生多种频率的技术,其理论基础是奈奎斯特抽样定理,采用数字存储技术,通过相位累加、幅度查表以及数模变换来实现波形产生。因此理解了DDS的形成过程对我们以后学习及研究有很大的帮助。
回顾起此次信号处理课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说当要对正弦函数进行量化时,我竟然一时蒙住了,已经不知道量化的最基本原理了,于是我重新学习了量化部分的知识,当学完后用MATLAB软件很轻松岛就对其进行了量化,完全免去了复杂的人为计算。、再如,我对VHDL语言掌握的还不是很好,对一些复杂的语句不能够完全理解。通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师及同学们的指导下,终于游逆而解。同时,在老师的身上我学得到很多实用的知识,在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。波形相关本科毕业论文范文,关于基于FPGA的任意波形发生器设计相关毕业论文参考文献格式范文
网站位置: ///写作范文资料阅读
波形相关本科毕业论文范文,关于基于FPGA的任意波形发生器设计相关毕业论文参考文献格式范文
这是一篇波形相关毕业论文参考文献格式范文,与基于FPGA的任意波形发生器设计相关本科毕业论文范文。是论文
专业与波形及发生器及相位方面相关的免费优秀学术论文范文资料,可作为波形方面的大学硕士与本科毕业论文开题报告范文和职称论文论文写作参考文献下载。 【摘 要】本文设计了一种基于FPGA和DDS技术的任意波形发生器.本设计利用VHDL语言完成系统各大模块的硬件描述设计,对硬件结构和工作方式进行重构.在QuartusII 9.0环境中完成系统仿真并进行了硬件测试,结果表明设计达到预定效果,能够按照要求输出相应波形,也证明了基于FPGA设计的可靠性和可行性. 【关 键 词 】FPGA DDS QuartusII 任意波形发生器
基于FPGA的任意波形发生器设计参考属性评定
有关论文范文主题研究:
关于波形的论文范文集
大学生适用:
本科毕业论文、硕士论文
相关参考文献下载数量:
写作解决问题:
如何怎么撰写
毕业论文开题报告:
标准论文格式、论文前言
职称论文适用:
期刊发表、中级职称
所属大学生专业类别:
如何怎么撰写
论文题目推荐度:
波形发生器是各种测试和实验中不可或缺的工具,在雷达、控制、通信、测试、控制等领域应用十分广泛.波形发生器是电子工程师进行信号仿真试验的最佳工具.目前,随着大规模现场可编程逻辑器件的发展,FPGA系统设计的主要发展已经进入“片上可编程系统”的新纪元.随着FPGA不断发展,DDS技术应用越来越成熟,利用DDS原理在FPGA平台上开发高性能的多种波形信号发生器,其成本低,操作灵活,而且还能根据要求在线更新配置,系统开发趋于软件化、自定义化. 传统型任意波形发生器的结构简单、控制方便,但此类波形发生器没有相位调制功能,而且在后期软件编程期间,在不改变时钟频率及波形的情况下,如果要改变一个周期&#30340波形相关论文例文;采样点数,需要重置计数器并且重新向波形存储器中载入数据.就目前发展状况而言,基于DDS技术的任意波形发生器虽然结构比较复杂,还会产生相位截断误差,但实现频率、相位调制功能却很容易,同时产生的波形能够达到很高的频率分辨率,输出频率的转换速度快,而且频率转换时,DDS系统输出波形的相位是连续的. 一、DDS电路工作原理 DDS电路的实现是整个硬件系统设计的关键所在.DDS的基本原理是利用采样定理,通过查表法产生波形.DDS电路工作时首先需要对波形数据进行采样,将采样数值存入波形存储器ROM中作为查找表,然后在时钟脉冲的作用下,对频率控制字进行线性相位叠加,然后将相位累加值的一部分作为ROM查找表的地址码将数据读出来,再经过D/A转换器,低通滤波器转换成符合要求的模拟信号.DDS的基本结构主要由相位累加器、相位调制器、ROM查找表、DAC和低通滤波器构成. 二、系统设计 本设计方法主要采用自行设计的基于FPGA逻辑电路来实现任意波形发生器,利用FPGA设计的DDS电路只要改变FPGA内部波形存储器中存储的波形数据,就可以实现输出任意波形,因而更加具有灵活性,使得采用FPGA来实现DDS电路具有更高的实用价值,通过FPGA编程
系统所需的DDS电路,不但成本降低,而且使任意波形发生器的性能得到提高.这就是本设计采用FPGA来实现的重要原因. 本系统总体设计选用以Altera公司的Cyclone II系列中的EP2C5T144C8芯片为主,配以时钟电路、信号产生电路、滤波控制电路、波形存储电路、按键电路、D/A转换电路等
电路实现波形发生器的硬件设计. 本设计主要是基于Quartus II平台,利用DDS技术,设计一个任意波形发生器,首先通过按键电路选择输出波形的对象,根据对各波形的幅度进行采样,获得各波形的波形数据表作为波形存储器的查找表,然后在系统时钟的作用下,相位累加器对输入的频率数据不停地进行相位线性累加,并将累加器输出的一部分作为波形存储器的地址信号,通过查找表读出相应的波形数据,再送入高速D/A转换器进行转换成为模拟信号,最后送入滤波电路,滤波后输出光滑的连续信号.本设计部分核心在于利用宏功能模块生成波形存储器ROM查找表模块,使得所需要的波形数据通过.mif文件载入到
模块data_rom模块中,当在波形存储器ROM中固化所需波形的一个周期的幅度值后,由地址发生器产生的地址对波形存储器ROM寻址,依次可取出送至D/A转换及滤波,即可实现DDS中波形存储器的功能.在ROM查找表模块data_rom中采用了
初始化数据文件,ROM模块中的初始化数据文件的格式采用.mif格式. 这篇论文来自 三、仿真结果
怎么样写波形硕士论文 播放:38068次 评论:4505人本设计的仿真和硬件验证主要围绕以FPGA为核心的DDS信号输出和控制模块进行.本设计采用MATLAB软件进行仿真测试,Quartus II可将设计者提供的时序波形文件(.vwf)保存为仿真基准文件(.tbl)格式的波形文件,以此波形文件进行仿真.由图1可知,在时钟频率不变的情况下,为了观察频率控制字对输出频率的影响,改变方波的频率控制字,使其由02H改变为82H,可明显观察到,频率控制字越小,输出信号的周期越大,即输出频率越小.这说明了采用DDS技术可以输出任意频率的波形信号.改变波形存储模块data_rom中的数据文件,通过载入正弦波、三角波、锯齿波、梯形波和用户自定义的波形采样数据,利用MATLAB进行显示波形.通过仿真结果可得,基于FPGA的波形发生器已经实现了输出任意波形的功能. 四、结语 本次设计在Quartus II平台上设计DDS电路,用MATLAB对Quartus II仿真得出的数据进行显示,验证了设计的正确性,输出波形可以达到设计要求,MATLAB显示的波形与理想波形是相吻合的,仅在波形的稳定及光滑程度方面有着一定的差距,但这种差距并不影响设计结果、波形观察及任意波形发生器的使用.采用FPGA设计实现还具有相位连续变化、频率分辨率高等优点.所以,FPGA与DDS的有机结合使得波形发生器更具有实用性. 参考文献: [1]王h.基于FPGA实现的任意波形发生器的设计与研究[J].大众科技,2012,14. [2]曾菊荣.基于FPGA和DDS技术的任意波形发生器的设计[J].现代电子技术,2010,(24). [3]铁奎,黄武.任意波形发生器的设计与研究[J].应用天地,2012,31. [4]潘松,黄继业.EDA技术实用教程[M].4版.北京:科学出版社,2010. 作者简介: 雷旭(;),河南省潢川县,硕士研究生,专业:信息与通信工程. 刘倩倩 (;),河南省郸城县,硕士研究生,专业:通信与信息系统.
器基于单片机的信号发生器摘要:此设计用单片机at89c51作为最小系统,利用d/a转换器将数字信号转换成模拟信号,再经过滤波放大,。低频信号发生器的设计低频信号发生器的设计低频信。
p,realgdp,potentialgdp,andwhatar。黑龙江大学本科生毕业论文文(设计)的主要内容,(一)论文思路,掌握波形发生器模拟电路的电路知识,提出多种波形发生器的要求及技。
与通信方向,序号论文及论着名称本学科作者排名出版社/刊物名称级别发表时间visionbasedvehicl。信号发生器系统设计报告2016年版中国信号发生器项目资金申请报告,一,调。
【摘 要】运用多媒体开发工具flash设计实现了基于本体的期刊论文可视化导航检索系统,为用户对领域概念及文献关联的理解提。
室内设计毕业论文题目年度学,室内设计学系,硕士学位论文,空间构成形式对高龄者居住行为及意识之影响,—以台北市福德,安康两平价住宅社区为例。
0;时间等待网站的查询响应[6].为了提高用户查询的效率,本文设计了一个按需的论文检索系统,借助于本地搜索和在线搜索&。
设计论文前言广西摘要(合关键词),(3)外。设计论文前言
昆明理工大学
教育学院毕业设计(论文),对学生的基本要求,一,毕业设计(论文)学生应遵循的基本原则,1,毕业设计(论。
设计论文前言广西摘要(合关键词),(3)外。设计论文前言
昆明理工大学
教育学院毕业设计(论文),对学生的基本要求,一,毕业设计(论文)学生应遵循的基本原则,1,毕业设计(论。
/论文,学生总人数);主持的教学研究课题(含课题名称,来源,年限)(不超过五项);作为第一署名。平面广告设计与制作兴宁市职业技术学校广告设计专业,毕业设计任务指导书,一,广告专业毕。
机电一体化技术专业毕业设计,机械毕业设计开题报告论文燕山大学机械工程学院,本科生毕业设计(论文),指导手册,机械工程学院,2016年2月,目录,机械工程学院本科生毕业设计(论。基于FPGA与LabVIEW的DDS任意信号发生器设计
2015年微型机与应用第2期
作者:梁赫西1,周 密2,谢虎城3
  摘 &要: 实现了一种基于与平台的任意波形发生器。通过FPGA搭建硬件平台,与LabVIEW上位机软件实现串口通信,实时调整FPGA内部波形数据,可实现正弦波、方波、锯齿波、三角波、高斯白噪声、叠加正弦波、自定义公式等常规波形,同时也可以手动绘制任意波形,充分发挥了软件的灵活性。通过参数的设定,可方便地设计各种复杂波形。本设计在EP4CE15F17C8芯片上实现,与LabVIEW上位机软件协同工作,经测试系统具有良好的稳定性、灵活性。  关键词: ;FPGA;LabVIEW0 引言  直接数字频率合成[1](Direct Digital Frequency Synthesis)是一种先进的波形合成技术,目前市面上有不少的DDS专用芯片,但由于大部分设计固化在芯片中,在某些场合此类专用芯片具有一定的局限性[2-3]。为了提高DDS设计的灵活性,本文设计了一种基于FPGA与LabVIEW平台的DDS任意信号发生器。由于FPGA的可编程特性以及软件平台的人机交互,使得设计的灵活性得到了大幅度提高。  同时由于FPGA具有丰富的寄存器、LUT资源,因此设计所需的数字逻辑可在FPGA内部实现,从而使得设计尽量集成到单芯片上,减小了路径的延时,提高了系统的工作频率,增大了信号发生器的分辨率[4-5]。1 DDS设计原理  本文DDS设计方案如图1所示。信号发生器采用相位累加的方法,通过频率控制字K的累加实现相位A的控制,由于波形相位与幅值的一一对应关系,通过查表的方式可以准确输出对应波形幅值,从而产生初步的波形信号。由于数字波形信号为一脉冲序列,需通过DA进行模数转换以及LPF的平滑,方可得到理想的输出波形信号。其波形变化流程如图2所示。  由波形输出特点可知,输出波形的频率fo与相位累加器的累加地址输出数M(M=2N)、频率累加字K以及输入频率fc存在特定关系。通过分析可知,M与fo成反比,K与fo成正比,fc与fo成正比。故可以推知输出波形的频率fo的计算公式如下:    由式(1)可知,fo的输出范围若需扩大,需增大fc、增大K或者减小N,而一般fc为定值,且N需要足够大来保证最小分辨率,因此在这里需要做一个平衡,本设计选择N为32,时钟频率fc为100 MHz,因此本设计的最小频率分辨率为0.023 2 MHz。但在实际设计中,这里N采用32 bit位宽,会给设计的存储空间带来非常大的考验,需要存储的数据量多达4 GB,因此为了在保证最小分辨率的同时,减小系统的数据存储量,本文采取的方式是仅取用32 bit位宽的高10位进行寻址,这样使得内部存储资源能够得到大幅度的缩减,但与此同时造成的相位截断带来了频谱上的杂散分量。为了消除相位截断带来的频谱杂散分量的影响,本设计在相位累加器后加入了一个伪随机序列生成器,采用伪随机序列生成器来打破相位截断的周期性,这样便可以最大程度地提高输出波形的质量。2 任意信号发生器整体架构  DDS硬件构架如图3所示。硬件部分由FPGA及其外围电路组成,主要实现单一波形的输出,同时提供与上位机的通信接口;其处理核心采用ALTERA CYCLONE IV系列FPGA作为硬件平台[6-7],主要实现功能为:接收上位机串口波形数据并实时将数据更新到双口RAM。DDS控制模块实时采集按键值,以调节频率控制字K,频率控制字K通过DDS控制模块进行累加,并在双口RAM中寻址得到波形幅值,并将该波形幅度值输出到波形幅度映射模块,此模块可选择对波形信号进行进一步的放大、缩小等操作。输出到外部的波形数据流经高速DA数模转换,将数字信号转换为模拟信号,此模拟信号为一阶梯信号,需通过低通滤波器对信号进行平滑,最后通过放大模块,对信号幅度进行还原即可得到理想的输出波形信号。  2.1 FPGA逻辑设计  FPGA硬件设计部分主要包括系统复位模块、串口接收模块、RAM接口模块、按键控制模块、M伪随机序列发生模块、RAM存储模块、幅度控制模块。其整体FPGA设计RTL级视图如图4所示。  系统复位模块采用异步复位同步释放的方法,将外部异步时钟同步到系统中,用于PLL锁相环的复位操作,同时将外部复位信号与PLL输出稳定锁定信号进行与运算,输出结果再次进行异步复位同步释放操作,使得输出信号可以稳定地对系统全局进行复位,从而很好地保证了系统的稳定性。  串口接收模块主要由波特率发生器模块和串口接收器模块两部分组成。本设计波特率预置为9 600 Baud,系统时钟为100 MHz。串口接收模块负责接收上位机的串口数据流,并将串行数据流转换为并行数据。  RAM接口模块主要完成将串口接收模块接收的1 024 B数据写入到双口RAM中。写入完毕后,将写信号置0释放,便于后续读操作。写入地址与读写地址均采用内部累加器自动累加寻址。同时设定写操作优先级高于读操作。  按键检测模块主要完成外部按键信号的检测,从而改变输出波形的频率、相位以及幅度。为了增大频率分辨率,减小数据存储容量,将32位的相位累加器截取其高10位进行寻址,给输出波形带来了杂散分量,即相位截断误差。而相位截断误差主要是由于输出波形为一周期性的阶梯波,因此可通过一个M伪随机序列来打破这种周期性,抑制相位截断所带来的误差。本设计将抖动注入在相位累加器之后。  M伪随机序列发生模块的生成式为:1+x+x4+x5+x12,通过一个线性反馈移位寄存器可以方便地实现该伪随机序列。如图5所示,该M伪随机序列发生模块在全局时钟的控制下即可产生出0、1的M伪随机序列,通过数据线dataout将随机序列值传递到按键控制模块的相位累加器,以达到抑制相位截断带来的误差。  RAM存储模块由8×1 024 bit的双口RAM组成,可完整存储一个周期的波形数据,波形幅度为127。  2.2 LabVIEW上位机设计  本设计使用LabVIEW 8.6开发了一个任意波形发生器的上位机软件,在该软件操作界面上可以选择输出波形的种类和参数,也可以手动绘制任意波形,其软件界面如图6所示。  任意信号发生器软件界面由LabVIEW的前面板和后面板构成,在前面板中主要由一些组件构成,如按键组件、文本输入组件、显示组件等。前面板的显示部分在手动绘制模式下为波形绘制区域,绘制过程中该组件右下角可提示鼠标所在坐标以及指示灯提示。在正弦波、方波、锯齿波、三角波、高斯白噪声、叠加正弦波、自定义公式等常规波形模式下,该显示组件仅发挥显示功能。面板下方有一些文本输入组件,这些组件可以用来调节波形的频率、幅度、相位以及占空比等波形相关参数,方便灵活地设计各种波形信号,这里波形频率与最终输出频率有关,所以默认设计为1。前面板右下方为串口通信组件,可以设定COM口、波特率、终止位数、数据位数、流控制、奇偶校验以及发送间隔时长等相关参数。同时在设计中也对软件的采样点数进行了设置,由于本设计采用1 024 B存储空间,故这里默认设置为1 024,实际使用中也可根据实际情况进行设置。  在设计前面板的同时,也需要对其后面板进行设计,前面板仅作为一个友好的用户操作平台,其操作的所有对象的数据需要在后面板上对其进行分析处理,将处理后的结果再返回到前面板显示,因此后面板的设计尤为重要。  由前面板的设计可知,本设计的DDS任意信号发生器可以实现正弦波、方波、锯齿波、三角波、高斯白噪声、叠加正弦波、自定义公式以及任意波形绘制。在后面板设计中这些常规波形LabVIEW都提供了专门的图形化模块,可以直接调用产生相应的波形。这里为了能够将这些波形以及手动绘制波形完全兼容地显示到XY图组件上,采用公式波形组件创建了一个线性递增的采样计数,便于统一管理所有的波形数据。  在手动绘制波形部分,主要通过事件结构完成鼠标绘制图形的功能,并通过各个模块的属性节点来传递各个模块属性值,使得图形化编程更加易于控制。在鼠标的位置计算上通过显示模块XY图的属性节点传递,得到XY图组件坐标位置的左上方坐标点,以及XY图组件的实际长度及宽度。得到了这些数据,便可以将XY图组件坐标原点方便地调节到XY图组件的左侧居中位置,形成一个抽象上的X轴。而Y轴则根据波形幅值的范围,以X轴为分界点一分为二,即形成一个抽象的坐标系。这样便可以方便地将XY图组件中的波形数据转换为实际的波形数据,便于串口通信组件的发送;同时也利于在手动绘制模式时,鼠标实际位置的计算。通过鼠标经过的路径实时地将坐标显示出来,即可完成鼠标波形绘制的功能。手动设计原理如图7所示。  在串口通信部分采用LabVIEW集成的串口通信模块。根据其设计流程,依次将VISA组件中的VISA串口配置模块、VISA串口启动模块、VISA串口写模块以及VISA串口关闭模块加入到后面板,联通各模块并将输入数据按照输入格式进行数据类型转换,使通信畅通,即实现波形数据在上位机与FPGA之间的通信。3 仿真与测试  为验证优化设计,在FPGA仿真阶段对本设计进行了功能仿真。仿真软件采用Mentor公司的Modlesim,通过书写测试激励文件,结合Quartus II的设计网表文件,共同载入Modelsim仿真环境进行仿真,得到了图8所示的仿真时序图,从仿真结果可以看出,经FPGA处理输出的波形信号质量高,符合设计要求。经测试,本DDS任意信号发生器的常规波形频率范围为0.03 Hz~ & &40 MHz,任意波形频率范围为0.03 Hz~20 MHz,其频率分辨率为0.03 Hz,幅值分辨率为8 bit,幅度范围为 & -3 V~+3 V,相较于参考文献[1],在波形输出频率上提升了10%,在频率分辨率上提升了40%。由于相位杂散的影响,在锯齿波的最高频率处出现了小幅度的间隔,在方波的高低电平处存在一定的纹波,但波动控制在极小幅度范围之内,能够满足一般工业应用。在幅值量化上,由于采用有限位宽的数字信号进行模拟量的量化,因此不可避免地会产生极小的量化误差,但通过低通滤波器的处理,能够理想地还原出原始信号,符合预期的设计目标。  设计采用RIGOL的DS1002C双通道示波器测试仪器进行了板级测试,其具有良好的波形存储功能,采样率高达25 GS/s,带宽为100 MHz。其效果如图9、图10所示。4 结论  本文通过在FPGA平台上实现DDS任意信号发生器的硬件平台,采用LabVIEW设计上位机软件与FPGA硬件平台进行通信,实时更新波形数据,拓展了DDS任意信号发生器的波形种类,增强了其灵活性。  本设计实现了采用相位截断的方法提高设计的频率分辨率,同时又通过M伪随机序列注入抖动,消除相位截断误差,提高了信号发生器的性能。经仿真验证,证实了本设计的可行性与稳定性。参考文献  [1] 万志江.基于FPGA的DDS IP核的研究与设计[J].微电子学与计算机,2013(8):98-102.  [2] 刘伟,钟子发,叶春逢.基于FPGA+DDS的信号源设计与实现[J].微型机与应用,):18-20,24.  [3] 梁赫西,陈佑红,郑朝霞.基于FPGA的可配置FFT_IFFT处理器的设计与实现[J].电子技术应用,):57-59.  [4] 哈立原.基于FPGA的直接数字式频率合成器设计[J].内蒙古大学学报,):409-413.  [5] LARSON D C. High speed direct digital synthesis techniques and application[J]. IEEE, 1998: 209-212.  [6] Altera Corporation. Cyclone II device handbook[EB/OL]. www.altera.com. 2005.  [7] Analog Devices. AD9740 10-Bit, 210 MSPS TxDAC D/A Converter[EB/OL].().[]. www.analog.com.
继续阅读>>
热门关键词

我要回帖

更多关于 方波整形为正弦波 的文章

 

随机推荐