FPGA电子秒表计时器verilog实验报告.docx

FPGA电子秒表计时器verilog实验报告.docx

ID:60719292

大小:335.01 KB

页数:13页

时间:2020-12-10

FPGA电子秒表计时器verilog实验报告.docx_第1页
FPGA电子秒表计时器verilog实验报告.docx_第2页
FPGA电子秒表计时器verilog实验报告.docx_第3页
FPGA电子秒表计时器verilog实验报告.docx_第4页
FPGA电子秒表计时器verilog实验报告.docx_第5页
资源描述:

《FPGA电子秒表计时器verilog实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、华中科技大学《电子线路设计、测试与实验》实验报告实验名称:用EDA技术设计多功能数字钟院(系):电子信息与通信学院专业班级:姓名:学号:时间:地点:实验成绩:指导教师:2018年3月27日实验任务及要求基本要求:电子秒表1)可计时的范围0.00s~99.99s(显示用七段数码管,显示小数点)。2)能够暂停,能够在计时结束使用灯光或者声音报警提示。提高要求:PWM波产生器1)可输出占空比按10%递进的PWM波(示波器测量查看)。二.实验条件实验板:Nexys4DDR实验软件:ISE14.7,ModelSim三.预习要求1.NEXYS4DDR开发板说明。2.有限状

2、态机。3.数码管扫描显示。四.实验原理1.电子秒表设计框图模块分析1)分频模块(Divider.v)将系统给定的100MHZ的频率通过分频模块变成100Hz的clk(用来计时)和4000Hz的clk_seg(用来扫描数码管)。代码如下:原理:输入的100MHz的信号为CLK_100MHz,每当CLK_100MHz上升沿来时,Count_DIV计数加1,且每当Count_DIV=100M/(2*100)=0.5M时,CLK_Out取反一次并且Count_DIV<=0,这样会得到一个100Hz的信号。当需要得到4000Hz的clk_seg时,在顶层模块中修改par

3、ameterOUT_Freq=4000;这样,每当Count_DIV=100M/(2*4000)=12500时,CLK_Out取反一次并且Count_DIV<=0,这样会得到一个4000Hz的信号。在主程序中修改参数如下:仿真时,为便于观察,在testbench中,将CLK_100MHz的周期设为2ns:always#1CLK_100MHz<=~CLK_100MHz;并修改参数如下,验证分频模块的正确性(图中数字16,8,1只表示频率的倍数关系,并非真正的频率)其仿真图如下图:从图中可以看出,CLK_100MHz的周期为2ns,clk_seg的周期为4ns,c

4、lk的周期为32ns,符合倍数关系,故分频模块的正确性得到验证。2)七段数码管显示模块运用4个七段数码管,前两个显示秒的十位和个位,后两个显示小数点后两位,因为要显示4个数码管,因此用4000Hz的频率扫描4个数码管,使每个数码管每隔1ms亮一次。代码如下:3)十进制计数器模块因为每个数码管的计数规律都为:0-1-2-3-4-5-6-7-8-9-0-1……,所以采用十进制计数器。传入的参数stop表示暂停信号,若有暂停信号或没有使能,则保持计数不变。代码如下:4)主程序模块代码如下:代码分析:Second0[3:0]表示百分位的数字,Second0[7:4]表

5、示十分位的数字,Second1[3:0]表示个位的数字,Second1[7:4]表示十位的数字。如果start为1,即计时开始,则开启数码管使能,数码管开始显示计数值,如果finish等于1,表示计时完成,则alarm=1;点亮报警灯。接下来调用四个counter10模块,通过控制其使能信号实现正确计时,第一个(C1)的使能信号为start,也就是按下开启键便开始计时,第二个(C2)的使能信号为Second0[3:0]==4’d9,也就是当百分位计时到了9,且下一个时钟的上升沿到来时,则十分位加1;第三个(C3)的使能信号为Second0==8’h99,也就是

6、当小数点后计时到了99,且下一个时钟的上升沿到来时,则个位加1;第四个(C4)的使能信号为Second1[3:0]==4’h9&&Second0==8’h99,也就是当小数点后计时到了99而且个位计数到了9,且下一个时钟的上升沿到来时,则十位加1;这样,就能确保计时的准确性。TestBench`timescale1ns/1nsmodulestopwatch_test;regCLK_100MHz;regrst;regstart;regstop;regfinish;wire[6:0]HEX0;wire[7:0]scan;wirealarm;wiredot;stop

7、watchuut(.CLK_100MHz(CLK_100MHz),.rst(rst),.start(start),.stop(stop),.finish(finish),.HEX0(HEX0),.scan(scan),.alarm(alarm),.dot(dot));initialbeginCLK_100MHz=0;rst=0;start=0;stop=0;finish=0;#5;rst=1;#5;rst=0;start=1'b1;#64;stop=1'b1;#64;stop=0;#6400;finish=1'b1;#700;endalways#1CLK_10

8、0MHz<=~CLK_100MHz;e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。