Verilog期末实验报告-波形发生器.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

深圳大学实验报告

课程名称: Verilog使用及其应用

试验名称: 频率可变的任意波形发生器

学院: 电子科学与技术学院

专业:电子科学与技术班级:

组号: 指导教师:

报告人: 学号:

试验地点

一、试验目的

应用Verilog进展编写四种波形发生的程序,并结合DE2板与DVCC试验板上的D/A转换器在示波器显示出波形。初步了解Verilog的编程及DE2板的应用,加强对其的实际应用操作力量。

二、试验原理

试验程序分为三局部:

第一、通过计数器实现内置信号分频,并通过外置开关调整频率来掌握输出波形的频率。其次、设定ROM中的数值,将波形数据存储到ROM中。

第三、设定波形选择开关。

总体设计方案及其原理说明:

FPGA

FPGA

图1-1系统总体设计方案

DDS是一种把数字信号通过数/模转换器转换成模拟信号的合成技术。它由相位累加器、相幅转换函数表、D/A转换器以及内部时序掌握产生器等电路组成。

参考频率f_clk为整个合成器的工作频率,输入的频率字保存在频率存放器中,经N位相位累加器,累加一次,相位步进增加,经过内部ROM波形表得到相应的幅度值,经过D/A转换和低通滤波器得到合成的波形。p为频率字,即相位增量;参考频率为f_clk;相位累加器的长度为N位,输出频率f_out为:

f_out——输出信号的频率;N————相位累加器的位数;p———频率掌握字〔步长〕;f_clk——基准时钟频率。

0000010000011700010150001117001001000101300110500111

00

000

10

00

001

17

00

010

15

00

011

17

00

100

10

00

101

3

00

110

5

00

111

3

01

000

3

01

001

3

01

010

3

01

011

3

01

100

1

01

101

1

01

110

1

01

111

1

10

000

0

10

001

5

10

010

10

10

011

15

10

100

20

10

101

25

10

110

30

10

111

35

11

000

35

11

001

30

11

010

25

11

011

20

11

100

15

11

101

10

11

110

5

11

111

0

图1-3

函数查找表的设计

三、试验内容程序编码:

moduledds(f_clk,p,choose,data);//端口设定input[5:0]p; //频率掌握字

input[1:0]choose; //波形选择

inputf_clk; //内置晶振output[7:0]data;

wire[7:0]data;

reg[5:0]addr,addr1;

reg[5:0]i;regf_out;

initial

begin

i=0;

addr=0;f_out=0;

end

always@(posedgef_clk) //利用计数器实现任意分频begin

if(i==p) //设定频率掌握字pbegin

i=0;

f_out=~f_out;

end

end

else

i=i+1;

function[7:0]rom_out; //ROM的设定input[5:0]addr1;

case(addr1) //各波形初值的预装入

:rom_out=10; //正弦波初值

:rom_out=17;

:rom_out=15;

:rom_out=17;

:rom_out=10;

:rom_out=3;

:rom_out=5;

:rom_out=3;

:rom_out=3; //方波初值

: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

=

1

文档评论(0)

180****1752 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档