Verilog期末实验报告-波形发生器.doc_第1页
Verilog期末实验报告-波形发生器.doc_第2页
Verilog期末实验报告-波形发生器.doc_第3页
Verilog期末实验报告-波形发生器.doc_第4页
Verilog期末实验报告-波形发生器.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

深 圳 大 学 实 验 报 告课程名称: Verilog使用及其应用 实验名称: 频率可变的任意波形发生器 学院: 电子科学与技术学院 专业:电子科学与技术 班级: 组号: 指导教师: 报告人: 学号: 实验地点 一、实验目的应用Verilog进行编写四种波形发生的程序,并结合DE2板与DVCC实验板上的D/A转换器在示波器显示出波形。初步了解Verilog的编程及DE2板的应用,加强对其的实际应用操作能力。二、实验原理实验程序分为三部分:第一、 通过计数器实现内置信号分频,并通过外置开关调节频率来控制输出波形的频率。第二、 设定ROM中的数值,将波形数据存储到ROM中。第三、 设定波形选择开关。总体设计方案及其原理说明:FPGA图 1-1 系统总体设计方案DDS是一种把数字信号通过数/模转换器转换成模拟信号的合成技术。它由相位累加器、相幅转换函数表、D/A转换器以及内部时序控制产生器等电路组成。参考频率f_clk为整个合成器的工作频率,输入的频率字保存在频率寄存器中,经位相位累加器,累加一次,相位步进增加,经过内部ROM波形表得到相应的幅度值,经过D/A转换和低通滤波器得到合成的波形。p为频率字,即相位增量;参考频率为_clk;相位累加器的长度为位,输出频率_out为:f_out输出信号的频率; N相位累加器的位数;p频率控制字(步长); f_clk基准时钟频率。 图1-2 四种波形单周期的取样示意图段地址 基地址 D7 D6 D5 D4 D3 D2 D1 D0 00 00010 00 00117 00 01015 00 01117 00 10010 00 1013 00 1105 00 1113 01 0003 01 0013 01 0103 01 011 3 01 1001 01 1011 01 1101 01 1111 10 0000 10 0015 10 01010 10 011 15 10 10020 10 10125 10 11030 10 11135 11 00035 11 00130 11 01025 11 011 20 11 10015 11 10110 11 1105 11 1110 图1-3 函数查找表的设计三、实验内容程序编码:module dds(f_clk,p,choose,data);/端口设定input 5:0 p; /频率控制字input1:0 choose; /波形选择input f_clk; /内置晶振output 7:0 data;wire 7:0data;reg 5:0 addr,addr1;reg 5:0 i;reg f_out;initial begin i=0; addr=0; f_out=0; endalways (posedge f_clk) /利用计数器实现任意分频begin if(i=p) /设定频率控制字pbegin i=0;f_out=f_out;end elsei=i+1;endfunction 7:0 rom_out; /ROM的设定 input5:0 addr1;case(addr1) /各波形初值的预装入0 : rom_out = 10; /正弦波初值1 : rom_out = 17;2 : rom_out = 15;3 : rom_out = 17;4 : rom_out = 10;5 : rom_out = 3;6 : rom_out = 5;7 : rom_out = 3;8 : rom_out = 3; /方波初值9 : rom_out = 3;10: rom_out = 3;11: rom_out = 3;12: rom_out = 1;13: rom_out = 1;14: rom_out = 1;15: rom_out = 1;16 : rom_out = 0; /正三角波初值17 : rom_out = 5;18 : rom_out = 10;19 : rom_out = 15;20 : rom_out = 20;21 : rom_out = 25;22 : rom_out = 30;23 : rom_out = 35;24 : rom_out = 35; /反三角波初值25 : rom_out = 30;26 : rom_out = 25;27 : rom_out = 20;28 : rom_out = 15;29 : rom_out = 10;30 : rom_out = 5;31 : rom_out = 0; default : rom_out = 10hxx;endcaseendfunctionalways(posedge f_out) begin if(addr=8) /波形数据切换 addr=0; else addr=addr+1; case(choose) /波形选择开关设定 0: addr1=addr; 1: addr1=addr+8; 2: addr1=addr+16; 3: addr1=addr+24; endcase end assign data = rom_out(addr1);/将ROM中对应数据传递输出端口data输出endmodule四、实验截图1.正弦波示意图:(choose=0时的波形数值)2.方波示意图:(choose=1时的波形数值)3.正三角波示意图:(choose=2时的波形数值)4.反三角波示意图:(choose=3时的波形数值)五、实验总结在这次实验中,对Verilog 语言有了更深一步的了解。在实验中,有时候会出现一些问题,但是在自己的独立思考之下解决了。例如传递函数的输出端口一定要是wire型,不能是reg型;实现寻址操作,定义0-7的循

温馨提示

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

评论

0/150

提交评论