频率可变的任意波形发生器

上传人:第*** 文档编号:34126567 上传时间:2018-02-21 格式:DOC 页数:7 大小:123.50KB
返回 下载 相关 举报
频率可变的任意波形发生器_第1页
第1页 / 共7页
频率可变的任意波形发生器_第2页
第2页 / 共7页
频率可变的任意波形发生器_第3页
第3页 / 共7页
频率可变的任意波形发生器_第4页
第4页 / 共7页
频率可变的任意波形发生器_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《频率可变的任意波形发生器》由会员分享,可在线阅读,更多相关《频率可变的任意波形发生器(7页珍藏版)》请在金锄头文库上搜索。

1、深 圳 大 学 实 验 报 告课程名称: Verilog 使用及其应用 实验名称: 频率可变的任意波形发生器 学院: 电子科学与技术学院 一、 前言波 形 发 生 器 是 一 种 数 据 信 号 发 生 器 , 在 调 试 硬 件 时 , 常 常 需 要 加 入 一 些 信 号 ,以 观 察 电 路 工 作 是 否 正 常 , 在 实 验 与 工 程 中 都 具 有 重 要 的 作 用 。 随 着 电 子 技 术 的发 展 与 成 熟 , 电 子 工 程 领 域 对 波 形 发 生 器 的 要 求 越 来 越 高 , 不 仅 要 求 波 形 发 生 器具 有 连 续 的 相 位 变 换 , 频

2、 率 稳 定 等 特 点 , 还 要 求 波 形 发 生 器 可 以 模 拟 各 种 复 杂 信 号 ,并 能 做 到 幅 度 、 频 率 , 相 位 , 波 形 动 态 可 调 。 Verilog HDL 是一种硬件描述语言(HDL:Hardware Discription Language) ,是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。本实验正是基于 Verilog HDL 语言对波形发生器的功能进行描述,并进行仿真,从而了解与掌握波形发生器的内部工作原理,并进一步熟悉与掌握 Verilog HDL 语

3、言,将课堂所学知识进行实践。二、 实验原理总体设计方案及其原理说明:图 1-1 系统总体设计方案DDS 是一种把数字信号通过数/模转换器转换成模拟信号的合成技术。它由相位累加器、相幅转换函数表、D/A 转换器以及内部时序控制产生器等电路组成。参考频率 f_clk 为整个合成器的工作频率,输入的频率字保存在频率寄存器中,经位相位累加器,累加一次,相位步进增加,经过内部 ROM 波形表得到相应的幅度值,经过 D/A 转换和低通滤波器得到合成的波形。P 为频率字,即相位增量;参考频率为_clk;相位累加器的长度为位,输出频率_out 为:F_out输出信号的频率;FPGAN相位累加器的位数;P频率控

4、制字(步长) ;F_clk基准时钟频率。图 1-2 四种波形单周期的取样示意图段地址 基地址 16 位二进制数代表波形的取值00 000 000 001 7000 010 10000 011 7000 100 000 101 -7000 110 10000 111 -7001 000 10001 001 10001 010 10001 011 10001 100 -100 01 101 -10001 110 -10001 111 -10010 000 010 001 2510 010 5010 011 7510 100 10010 101 12510 110 15010 111 17511 0

5、00 17511 001 15011 010 12511 011 10011 100 7511 101 5011 110 2511 111 0图 1-3 函数查找表的设计三、 源程序module dds(f_clk,p,choice,data);/模块的端口设定input 15:0 p; /频率控制字input1:0 choice; /波形选择变量input f_clk; /输入时钟信号output 15:0 data; /波形数值输出wire 15:0 data;reg 5:0 addr,address; /波形数值所在地址reg 15:0 count;reg f_out; /经 P 变量频

6、率控制调动后的时钟信号initialbegincount=0;addr=0;f_out=0; endfunction 15:0rom; /ROM 中各波形数值的设定input5:0 address;case(address) /波形选择0 : rom = 0; /正弦波1 : rom = 70;2 : rom = 100;3 : rom = 70;4 : rom = 0;5 : rom = -70;6 : rom = -100;7 : rom = -70;8 : rom = 100; /方波9 : rom = 100;10: rom = 100;11: rom = 100;12: rom =

7、-100;13: rom = -100;14: rom = -100;15: rom = -100;16 : rom = 0; /正三角波17 : rom = 25;18 : rom = 50;19 : rom = 75;20 : rom = 100;21 : rom = 125;22 : rom = 150;23 : rom = 175;24 : rom = 175; /负三角波25 : rom = 150;26 : rom = 125;27 : rom = 100;28 : rom = 75;29 : rom = 50;30 : rom = 25;31 : rom = 0; default

8、 : rom = 10hxx;endcaseendfunctionalways (posedge f_clk) /利用计数器 count 变量实现分频beginif(count=p) /设置频率控制字begincount=0;f_out=f_out;endelsecount=count+1;endalways(posedge f_out)beginif(addr=7) /波形取 8 个点,实现波形数据切换addr=0;elseaddr=addr+1;case(choice) /选择波形0: address=addr;1: address=addr+8;2: address=addr+16;3:

9、 address=addr+24;endcaseendassign data = rom(address);/将 ROM 中对应的数据传递到 data 端口输出endmodule四、 仿真程序module test;wire 15:0 data;wire 5:0 address;reg 15:0 p;reg f_clk; reg 1:0 choice;always #10 f_clk = f_clk;initial /波形的初始化begin f_clk =0;p=2; /频率控制字为 2 时的波形choice=0;#1050 choice = 1;/延时,切换波形,使所有波形能够在同一个仿真结果 #1500 choice = 2;#1500 choice = 3;#1000 p=5; /延时,更换频率#500 choice=0;#1050 choice = 1;#1500 choice = 2;#1500 choice = 3;#1000 p=15; /延时,更换频率#500 choice=0;#1050 choice = 1;#1500 choice = 2;#1500 choice = 3;enddds phase (.f_clk (f_clk),.p(p),.choice(choice),.data(data); /调用 dds 模块 endmodule五、实验结果

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号