FPGA波形发生器实验报告_第1页
FPGA波形发生器实验报告_第2页
FPGA波形发生器实验报告_第3页
FPGA波形发生器实验报告_第4页
FPGA波形发生器实验报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告册 课程名称: Verilog HDL数字系统设计 实验项目名称: 频率可变的任意波形发生器 学 院: 电子科学与技术 专 业: 微电子 班 级: 二班 报 告 人: 黄日才 学 号: 2008160120 指导教师: 刘春平 老师 实验时间: 2011.01.06 提交时间: 实验结论:经过不断的试验,最终完成了该实验设计的基本要求,输出四种不同的波形实现信号频率可调,并且在这基础上调用了FPGA芯片集成锁相环,增加了输出信号幅度可调。经过测试显示输出波形信号稳定。一、 实验目的利用DE2实验板和DVCC试验箱的DA转换器设计出可出任意波形且频率可调的信号发生器,也就是基于FPGA的

2、用Verilog描述的直接数字频率合成器(DDS)。 二、 设计方案及其原理说明:DDS是一种把数字信号通过数/模转换器转换成模拟信号的合成技术。它由相位累加器、相幅转换函数表、D/A转换器以及内部时序控制产生器等电路组成。参考频率f_clk为整个合成器的工作频率,输入的频率字保存在频率寄存器中,经位相位累加器,累加一次,相位步进增加,经过内部ROM波形表得到相应的幅度值,经过D/A转换和低通滤波器得到合成的波形。P为频率字,即相位增量;参考频率为_clk;相位累加器的长度为位,输出频率_out为:F_out输出信号的频率;N相位累加器的位数;P频率控制字(步长);F_clk基准时钟频率。1、

3、系统总体设计方案框架图:FPGA图 1-1 系统总体设计方案2、四种波形单周期的取样示意图: 3、本实验采用每个周期取样16次,以便产生的波形更加的平滑。函数查找表的设计:(十进制)地址(8位二进制)rom的值012011652204323042405230620471658120974103511912013914351574地址rom的值161017101810191020102110221023102425025250262502725028250292503025031250地址rom的值3230336034903512036150371803821039240402104118042

4、15043120449045604630470地址rom的值4824049210501805115052120539054605530560573058605990601206115062180632104、程序思路 1)分频器控制读取rom的步长,通过输入变量改变分频器计数器的计数总量,控制分频实验频率可调。 2)制作rom,通过一个函数实现,给函数输入一个地址,通过case语句输出一个值。3)波形选择,同个if语句选择地址计数器输出的值,从而输出四种不同的波形4)锁相环(附加),调用FPGA芯片集成的锁相环模块,让输出的相位更加的稳定。5)调幅(附加),通过在rom的值除以不同的值来控制改

5、变输出信号的幅度。三、 程序及具体方法注释module dds_ver(clk_50MHz,fout,change,freq,key0 );input clk_50MHz; /输入50MHz的全局时钟input1:0 change; /定义输入变量,用来切换输出波形,一共4个档位input 2:0 freq; /定义输入变量,用来改变输出信号的频率,一共8个档位 output 7:0 fout; /输出8为rom的值,用来驱动DA转化芯片,输出波形input key0; /定义输入变量,用来改变幅值计数器的值,从而改变幅值/调用FPGA芯片集成的锁相环模块,让输出的波形相位更稳定pllpll_

6、inst (.inclk0 ( clk_50MHz ),.c0 ( clk_pll );wire 7:0 fout;/分频功能,根据输入变量的不同实现不同的分频,用于读取rom的步长reg clk;reg 15:0 cnt;always (posedge clk_pll) /利用计数器实现任意分频begin if(cnt=(50*(freq+1) /设定频率控制字节begin cnt=0;clk=clk;end elsecnt=cnt+1;end/调幅功能,输入key0更变计数器cntvol的值,从而更变输出信号的幅度reg 2:0 cntvol;always(negedge key0)beg

7、in if (cntvol>=1&&cntvol<7) cntvol<=cntvol+1'd1; else cntvol<=1'b1;end/地址累加器,实现地址的分段累加,从而实现四种不同波形的切换输出reg 5:0 addr;always (posedge clk)begin begin if(change=0) begin if(addr>=0&&addr<15) /切换正弦波 addr=addr+1; else addr=0; end else if(change=1) begin if(addr>

8、;=16&&addr<31) /切换方波 addr=addr+1; else addr=16; end else if(change=2) begin if(addr>=32&&addr<47) /切换正三角波 addr=addr+1; else addr=32; end else if(change=3) begin if(addr>=48&&addr<63) /切换反三角波 addr=addr+1; else addr=48; end endend/制作rom的函数function 7:0 rom;input 6

9、3:0 address;case(address) 0:rom=120/cntvol; /正弦波的rom值 1:rom=165/cntvol; 2:rom=204/cntvol; 3:rom=230/cntvol; 4:rom=240/cntvol; 5:rom=230/cntvol; 6:rom=204/cntvol; 7:rom=165/cntvol; 8:rom=120/cntvol; 9:rom=74/cntvol; 10:rom=35/cntvol; 11:rom=9/cntvol; 12:rom=0/cntvol; 13:rom=9/cntvol; 14:rom=35/cntvol

10、; 15:rom=74/cntvol; 16:rom=10/cntvol; /方波的rom值 17:rom=10/cntvol; 18:rom=10/cntvol; 19:rom=10/cntvol; 20:rom=10/cntvol; 21:rom=10/cntvol; 22:rom=10/cntvol; 23:rom=10/cntvol; 24:rom=250/cntvol; 25:rom=250/cntvol; 26:rom=250/cntvol; 27:rom=250/cntvol; 28:rom=250/cntvol; 29:rom=250/cntvol; 30:rom=250/cn

11、tvol; 31:rom=250/cntvol; 32:rom=30/cntvol; /正三角波的rom值 33:rom=60/cntvol; 34:rom=90/cntvol; 35:rom=120/cntvol; 36:rom=150/cntvol; 37:rom=180/cntvol; 38:rom=210/cntvol; 39:rom=240/cntvol; 40:rom=210/cntvol; 41:rom=180/cntvol; 42:rom=150/cntvol; 43:rom=120/cntvol; 44:rom=90/cntvol; 45:rom=60/cntvol; 46:

12、rom=30/cntvol; 47:rom=0/cntvol; 48:rom=240/cntvol; /反弦波的rom值 49:rom=210/cntvol; 50:rom=180/cntvol; 51:rom=150/cntvol; 52:rom=120/cntvol; 53:rom=90/cntvol; 54:rom=60/cntvol; 55:rom=30/cntvol; 56:rom=0/cntvol; 57:rom=30/cntvol; 58:rom=60/cntvol; 59:rom=90/cntvol; 60:rom=120/cntvol; 61:rom=150/cntvol;

13、62:rom=180/cntvol; 63:rom=210/cntvol;endcaseendfunctionassign fout=rom(addr);/ /把读到的rom的值赋给输出端口,输出驱动DA转换芯片endmodule四、 实验结果 及分析1、QuartusII仿真 结果2、下载到DE2实验板连接到DVCC试验箱用示波器显示输出的各种波形图1)输出正弦波2)输出正弦波频率调节3)输出正弦波幅值调节4)输出方波5)输出正三角波6)输出正三角波3、结果分析通过仿真和搭建实验平台。成功完成了实验设计的要求输出波形有很严重的锯齿现象,但是基本上显示出了完整的波形,实现了设计的波形切换输出、

14、频率可调和幅值可调,前后比较了没有加入锁相环和加入锁相环模块输出波形的质量,加入锁相环值之后波形稳定很多。输出波形的质量只要取决于信号周期取样的频率,取样点越多输出波形的失真越小,当然跟取样点的准确性也有很大关系,但是rom的值是通过MATLAB产生的,准确性很高。为了验证这个结论,决定每个信号周期取256个点(8为DA转换最大取样点256个)再进行实验,观察实验结果。输出波形质量明显提高。实验结果波形图如下:1)正弦波2)方波 3)三角波 4)锯齿波说明:由于觉得正三角波和反三角波只是相位上相差180度,显示出来的波形没有区别,这是由于采用取值法决定的,取值是包括了DA输出负值的点,所以没有

15、正三角波和负三角波在显示上占有180度相位差的区别。所以把反三角波改成输出锯齿波。(这只是取样点不同,没有本质其别)当然,这些输出信号也是可以调节频率和幅度的。五、 实验结论:经过不断的试验,最终完成了该实验设计的基本要求,输出四种不同的波形实现信号频率可调,并且在此基础上调用了锁相环技术,增加了输出信号幅度可调。经过测量显示输出波形信号稳定。通过该信号发生器的设计,学习和掌握了DA转换,更加熟练地使用Verilog语言描述硬件电路和信号的输出,也更加熟练地掌语言编写过程中的握数据的控制、运用quartusII仿真和调用modelsim仿真。熟悉软件在编译过程中出现的错误和排除这些错误。在搭建实验平台的过程中,由于没有使用过DVCC实验箱,所以遇到麻烦,开始没有使DE2板和DVCC试验箱共地,所以输不出波形,但是有些同学没有共地也能输出波形,而我试验之后发现我的实验平台只有共地才能输出完整波形,理论上也是需要所有的实验系统共地才不会影响信号完整性输出的。编写代码时应该细分代码实现的功能,从很小的一个功能部分开始编写,不能全部一起编写,要先编写一小部分进行仿真。测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论