Verilog课程设计题
函数发生器(方波和阶梯波)
目
学生:
专业:
班级:
指导教师:
完成日期:
目录
1、概述 (1)
2、功能 (2)
3设计方案(设计的技术方案、工作原理、设计框图) (3)
4设计与仿真 (11)
5、结束语 (14)
6附录 (15)
1.概述
(1)实验目的:
在基于QUARTUS2软件平台下,运用Verilog硬件描述语言来进行编写两种波形(方波和阶梯波)发生的程序,并结合DE2板与DVCC 实验板上的D/A转换器在示波器显示出波形。
初步了解Verilog的编程及DE2板的应用,加强对其的实际应用操作能力。
(2)实验要求:
运用DE2上的DAC实现方波、阶梯信号发生器功能。
方波频率、占空比可设置。
阶梯波信号频率、幅度可调。
在完成基本要求的基础上,可进一步增加功能、提高性能。
2.功能
实验容:
5 . 利用简易函数发生器
基本要求:运用DE2上的DAC实现方波、阶梯信号发生器功能。
方波频率、占空比可设置。
阶梯波信号频率、幅度可调。
在完成基本要求的基础上,可进一步增加功能、提高性能。
3设计方案(1)设计流程图
(2)波形产生的基本原理
1.先利用时钟信号f_clk产生一个工作频率,输入的频率字保存在频
率寄存器中,经N位相位累加器,累加一次,相位步进增加,经过部ROM波形表得到相应的幅度值,经过D/A转换和低通滤波器得到合成的波形。
2.利用存储器,先把定点值存入存储器中,再通过choose选择所需
要的那段地址的值,在通过data读出值。
3.最后利用波形仿真,通过转换把数字量转换为波形图。
(3)产生波形频率可调的方法
采用设置频率控制字的方法,设置一个输入端口【5:0】q,并且下载时将其绑定在6个控制开关上,可以实现频率的调整,采用2进制,q的值就是频率的缩小(扩大)倍数。
(4)源程序
module sq(f_clk,p,choose,data);//端口设定
input [5:0] p; //频率控制字
input choose; //波形选择
input f_clk; //置晶振
output [7:0] data;
wire [7:0]data;
reg [5:0] addr,address;
reg [5:0] i;
reg f_out;
initial
begin
i<=0;
addr<=0;
f_out<=0;
end
always (posedge f_clk) //利用计数器实现任意分频begin
if(i==p) //设定频率控制字p
begin
i=0;
f_out=~f_out;
end
else
i=i+1;
end
function [7:0] romout; //ROM的设定
input[5:0] address;
case(address) //各波形初值的预装入
0 : romout = 255; //阶梯波初值
1 : romout = 255;
2 : romout = 255;
3 : romout = 255;
4 : romout = 128;
5 : romout = 128;
6 : romout = 128;
7 : romout = 128;
8 : romout = 64;
9 : romout = 64;
10: romout = 64;
11: romout = 64;
12: romout = 0;
13: romout = 0;
14: romout = 0;
15: romout = 0;
16 : romout = 255; //方波初值
17 : romout = 255;
18 : romout = 255;
19 : romout = 255;
20 : romout = 255;
21 : romout = 255;
22 : romout = 255;
23 : romout = 255;
24 : romout = 0;
25 : romout = 0;
26: romout = 0;
27: romout = 0;
28: romout = 0;
29: romout = 0;
30: romout = 0;
31: romout = 0;
default : romout = 10'hxx;
endcase
endfunction
always(posedge f_out)
begin
if(addr==16) //波形数据切换
addr=0;
else
addr=addr+1;
case(choose) //波形选择开关设定
0: address=addr;
1: address=addr+16;
endcase
end
assign data = romout(address);//将ROM中对应数据传递输出端口data输出
endmodule
4程序编译及仿真结果
(1)引脚的绑定图
(2)仿真编译图阶梯波仿真结果
方波仿真结果
(3)波形产生效果图阶梯波效果图
方波效果图
5.结束语
经过两周的课程设计,我觉得自己更进一步认识了Verilog语言的使用,并且对整个设计制作和仿真流程有了更深入的了解,从实验的迷惑到后来的熟练操作,再到实验报告撰写的结束,其中的每一步都是我受益匪浅。
坚持靠自己的独立思考并通过一步步的调试,最终成功地摸索程序并且进行了进一步优化最终完成实验,不但锻炼了逻辑思维能力,并且锻炼了自己的独立探索能力。
虽然自己的程序不是那么完美,但是每一步都有自己的劳动,都有自己的思想在其中,可以说,实验的结果自己还是比较满意的。
但是很明显有许多有待加强的地方。
实验综合性较强也比较复杂,在实验中涉及了本学期多个知识点,其中让我印象最深的是 initial语句和function说明语句,因为这两个语句之前用得比较少。
我觉得这样的实验比较贴近学习和工作,通过自己动手更加能够充分掌握所学知识点,将书本和实际结合起来,希望以后可以开展更多这样的实验。
实验中也遇到了许多问题,比如,实验效果图出不来之类。
但通过两位老师的指导,最终把问题一一解决。
这对我来说是一次飞速的成长。
老师的指导!
6.附录
DE2简介
1.核心的FPGA芯片-Cyclone II 2C35 F672C6,从名称可以看出,它包含有35千个LE,在Altera的芯片系列中,不算最多,但也绝对够用。
Altera下载控制芯片- EPCS16以及USB-Blaste对Jtag的支持。
2.存储用的芯片有: 512-KB SRAM,8-Mbyte SDRAM,4-Mbyte Flash memory
3.经典IO配置:拥有4个按钮,18个拨动开关,18个红色发光二极管,9个绿色发光二极管,8个七段数码管,16*2字符液晶显示屏
4. 超强多媒体:24位CD音质音频芯片WM8731(Mic输入+LineIn+ 标准音频输出),视频解码芯片(支持NTSC/PAL制式),带有高速DAC视屏输出VGA模块。
5.更多标准接口:通用串行总线USB控制模块以及A、B型接口,SD Card接口,IrDA红外模块, 10/100M自适应以太网络适配器,RS-232标准串口, PS/2键盘接口
6.其他:50M,27M晶振各一个,支持外部时钟, 80针带保护电路的外接IO
7.此外还有:配套的光盘资料,QutuarsII6软件,NiosII 6.0IDE,例程与说明文档。