名称:数字电子时钟设计Verilog代码Quartus? DE2-70开发板
软件:Quartus
语言:Verilog
代码功能:
数字电子时钟
1.设计目的
(1)了解DE2-70开发板的硬件构成;
(2)熟悉开发板可用资源的硬件电路;
(3)掌握EDA开发流程;
(4)熟悉 Quartus开发环境;
(5)掌握 Verilog基本语法;
(6)熟练掌握在 Quartus环境下进行软件仿真的方法。
2.设计内容及基本要求
(1)基本功能
①用6个数码管显示正常的时分秒显示功能;
②完成时间的校正;
③可以设置闹钟,当到达闹钟时间时,6个数码管闪烁5秒进行提示;
④可以完成12小时制和24小时制显示之间的切换。
(2)扩展功能
用1个数码管显示星期。
3.撰写课程设计报告。报告内容要求如下:
设计题目、目的、内容设计思路;
系统电路图;
各功能模块的功能、实现方法、电路图(源代码)、功能仿真图开发板硬件资源使用情况;
编程模块的源代码清单设计时碰到的问题及解决方法。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-70开发板验证,DE2-70开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1.?控制方法:
2个拨码开关SW0和SW1控制模式:
SW0=0,SW1=0为正常计时模式;
SW0=0,SW1=1为修改时间模式;
SW0=1,SW1=0为显示闹钟时间模式;
SW0=1,SW1=1为修改闹钟时间模式;
SW2控制进制切换
2个按键,key0修改小时,key1修改分钟:
将拨码开关设置为SW0=0,SW1=1,此时按下按键可以修改当前时间;
将拨码开关设置为SW0=1,SW1=1,此时按下按键可以修改闹钟时间;
2.?工程文件
3.?程序文件
4.?程序编译
5.?程序RTL图
6.?管脚分配
7.?仿真图
分频模块,用于将50MHz时钟分频到1Hz
设置模式模块,根据按键输入控制当前的模式,模式用led灯显示
计时模块,用于控制数字钟计时,也可以设置时间
上图可以看到state_mode为0001时,AHkey和AMkey可以控制小时和分钟
state_mode不为0001时,正常计时,秒钟计数到59,分钟加1,秒清零
闹钟设置模块,设置闹钟设计
上图可以看到state_mode为0011时,AHkey和AMkey可以控制小时和分钟
显示模块,数码管显示时分秒。闹钟时闪烁5秒,可以切换进制
部分代码展示:
//设置闹钟模块 module?alarm_clock( input?clk_50M, input?[3:0]?state_mode,////当前模式,4'd0:计时,4'd1设置时间?,4'd2显示闹钟时间,4'd3设置闹钟时间 input?AH_key,//AH?修改小时 input?AM_key,//AM?修改分钟 output?[7:0]?alarm_hour_time,//时 output?[7:0]?alarm_minute_time,//分 output?[7:0]?alarm_second_time//秒 ); wire?AH_key_negedge; wire?AM_key_negedge; reg?AH_key_buf0; reg?AH_key_buf1; reg?AM_key_buf0; reg?AM_key_buf1; always@(posedge?clk_50M) begin AH_key_buf0<=AH_key; AH_key_buf1<=AH_key_buf0; end always@(posedge?clk_50M) begin AM_key_buf0<=AM_key; AM_key_buf1<=AM_key_buf0; end assign?AH_key_negedge=~AH_key_buf0?&?AH_key_buf1;//按键下降沿 assign?AM_key_negedge=~AM_key_buf0?&?AM_key_buf1;//按键下降沿 reg?[7:0]?hour=8'd21;//时 reg?[7:0]?minute=8'd59;//分 reg?[7:0]?second=8'd00;//秒 always@(posedge?clk_50M) if(state_mode==4'd3)begin//4'd3设置闹钟时间 if(AH_key_negedge) if(hour==8'd23) hour<=8'd0; else hour<=hour+8'd1; else hour<=hour; if(AM_key_negedge) if(minute==8'd59) minute<=8'd0; else minute<=minute+8'd1; else minute<=minute; end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1185
648