Verilog数字系统设计教程实验报告频率可变任意波形发生器的设计_第1页
Verilog数字系统设计教程实验报告频率可变任意波形发生器的设计_第2页
Verilog数字系统设计教程实验报告频率可变任意波形发生器的设计_第3页
Verilog数字系统设计教程实验报告频率可变任意波形发生器的设计_第4页
Verilog数字系统设计教程实验报告频率可变任意波形发生器的设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、深 圳 大 学 实 验 报 告 课程名称: verilog数字系统设计教程 实验项目名称: 频率可变任意波形发生器的设计 学院: 电子科学与技术 专业: 微电子 指导教师: 报告人: 学号: 2007160051 班级: 07级微电1班 实验时间: 2009-12-8 2010-1-11 实验报告提交时间: 2010-1-4 教务处制(这里可加前言摘要之类的东西自己想来写)1 设计原理dds是一种把数字信号通过数/模转换器转换成模拟信号的合成技术。直接数字频率合成技术 (dds)是一种以采样定理为基础的全数字化频率合成波形的方法 。dds频率合成器主要由频率寄存器 、相位寄存器 (需要时可加入

2、 ) 、相位累加器 、波形存 储表 ( rom ) , dac转换器和模拟低通滤波器 ( lpf ) 等组成 。在系统时钟 ( sysclk)输入一定的情况下 ,频率寄存器中的频 率控制字决定系统输出频率 , 而相位累加器的位数决定了系统频率分辨率 。总体设计方案及其原理说明:fpga图 1-1 系统总体设计方案相位累加器由 n 位加法器和 n 位累加寄存器级联而成 。每当系统时钟 syscl k产生一个上升沿 , n 位加法器将频率寄 存器中的频率控制字 ( fr eqda ta )与上一个系统时钟累加寄 存器输出的累加相位数据相加 ,相加后的结果送累加寄存器 。 这样在系统时钟的作用下 ,

3、 不断对频率控制字进行线性相位 累加 ,相位累加器的溢出率就是 dd s任意波形发生器的输出 频率 。2 设计与实现实际上 dd s就是通过改变地址增量来达到控制输出频率 的目的 ,而波形存储器 ( rom )是以相位为地址 ,存有一个或多个按相位划分幅值的波形幅度信息 。参考频率f_clk为整个合成器的工作频率,输入的频率字保存在频率寄存器中,经位相位累加器,累加一次,相位步进增加,经过内部rom波形表得到相应的幅度值,经过d/a转换和低通滤波器得到合成的波形(数模转换在这里不作要求)。p为频率字,即相位增量;参考频率为_clk;相位累加器的长度为位,输出频率_out为:式中f_out为输出

4、信号的频率;f_clk为基准时钟频率。n为相位累加器的位数;p为频率控制字(步长)。理论上通过设定f_clk、n和p就可以得到各种频率波形的输出。在本设计中 , 相位累加器位数 n =6, f_clk位 长 为 32, 系 统 时 钟 频 率 为 27m h z。3 各模块实现3. 1相位累加器在设计波形发生器时 , 要 实 现 频 率 可 变 ,相位累加器是关键的一个部分 。在 modelsim 开发环境下,本实验通过改变p的值来变换输出频率f_out。假设p初值为0,每个波形(正弦波、方波、正三角波、反三角波)的采样数据点的仿真数值输出,p累加一次,即p=p + n , n = 16 ;当

5、p = 56时,p置零,依此循环累加。频率的不同,即波形周期的不同,函数单周期内输出波形的量化数据的宽度也不一样。 (正弦波为例)如下图所示:(你用自己的方式表示我的是以这种方式你用其他方式吧,怕老师为难) 图1-2 正弦波的仿真输出如图,当p=16时,将p值代入公式,在本设计中 , 相位累加器位数 n = 6, f_clk位 长 为 32, 系 统 时 钟 频 率f_clk为 27m h z,则可计出输出频率f_out=16/64*27000000=6.75mhz;同理可求出当p=32、48或64时对应的输出频率f_out。3. 2模9计数器本实验各个波形一个周期内采取9个量化数据点,所以用

6、模9计数器。八位段寄存器d的低四位d【3:0】用于计数,高四位d【7:4】用于波形选择。d【7:4】=dh,当dh=0000时,输出为正弦波;dh=0001时,输出为方波;dh=0010时,输出为正三角波;dh=0011时,输出为反三角波。累加器部分和计数器部分的主要程序代码如下:always (posedge f_clk) begin d7:4=dh; begin if(p=56) begin p=n; begin if(d3:0=4b1000) d3:0=0; else d3:0=d3:0+4b0001; end end else p=p+n; endend3. 3 rom波形存储表本实验

7、设计一个rom按顺序间隔存放所有波形的量化数据,并在 modelsim 开发环境下进行波形数字仿真输出。各波形的量化数据表设计如下:段地址 基地址 d7 d6 d5 d4 d3 d2 d1 d0 0000 0000 0 0000 0001 7 0000 0010 10 0000 0011 7 0000 0100 0 0000 0101 -7 0000 0110 -10 0000 0111 -7 0001 0000 10 0001 0001 10 0001 0010 10 0001 0011 10 0001 0100 10 0001 0101 -10 0001 0110 -10 0001 011

8、1 -10 0010 0000 0 0010 0001 1 0010 0010 2 0010 0011 3 0010 0100 4 0010 0101 5 0010 0110 6 0010 0111 7 0011 0000 0 0011 0001 -1 0011 0010 -2 0011 0011 -3 0011 0100 -4 0011 0101 -5 0011 0110 -6 0011 0111 -7 图1-3 函数查找表的设计四种波形单周期的取样示意图如下: 图1-4 四种波形单周期的取样示意图程序编写用function函数来对rom波形函数存储表存储各波形的量化数据。各波形量化数据表设

9、计程序代码如下:function 7:0 rom;input 7:0 d;case(d)/正弦波的量化采样数据/8b00000000: rom = 0;8b00000001: rom = 7;8b00000010: rom = 10;8b00000011: rom = 7;8b00000100: rom = 0;8b00000101: rom = -7;8b00000110: rom = -10;8b00000111: rom = -7;8b00001000: rom =0;/方波的量化采样数据/8b00010000: rom = 10;8b00010001: rom = 10;8b00010

10、010: rom = 10;8b00010011: rom = 10;8b00010100: rom = 10;8b00010101: rom = -10;8b00010110: rom = -10;8b00010111: rom = -10;8b00011000: rom = -10;/正三角波的量化采样数据/8b00100000: rom = 0;8b00100001: rom = 1;8b00100010: rom = 2;8b00100011: rom = 3;8b00100100: rom = 4;8b00100101: rom = 5;8b00100110: rom = 6;8b0

11、0100111: rom = 7;8b00101000: rom = 8;/反三角波的量化采样数据/8b00110000: rom = 0;8b00110001: rom = -1;8b00110010: rom = -2;8b00110011: rom = -3;8b00110100: rom = -4;8b00110101: rom = -5;8b00110110: rom = -6;8b00110111: rom = -7;8b00111000: rom = -8;default : rom = 8bx; endcaseendfunctionassign date= rom(d);4 仿

12、真试验在modelsim 开发环境下,编写一个仿真程序,并可仿真输出各波形的量化数据。仿真程序如下:includedds.vmodule test;wire 7:0 date,d;wire 27:0 p;reg f_clk; reg 27:0 n;reg 3:0 dh;always #10 f_clk = f_clk;initial begin f_clk =0; dh=0; n=16; #720 dh = 1; #720 dh = 2; #720 dh= 3; end test w4 (.p(p),.d(d),.date(date),.f_clk(f_clk),.n(n),.dh(dh); endmodule下面是所设计的 dd s任意波形发生器在 modelsim 中的时序仿真。(图你自己找其他的,这些图我删了一些,这部分你自己想办法修一下) 图1-5 正弦波的仿真输出如图所示,当段地址dh=0000时,单周期内输出正弦波采样数据点的仿真数据date对应的数值依此为0、7、10、7、0、-7、-10、-7、0。 图1-6 方波的仿真输出如图所示,当段地址dh=0001时,单周期内输出方波采样数据点的仿真数据date对应的数值依此为10、-10; 图1-8 正三角波的仿真输出如图

温馨提示

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

评论

0/150

提交评论