• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

数字秒表/定时器(倒计时)功能verilog代码ego1开发板vivado

05/30 09:42
939
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-231204230939625.doc

共1个文件

名称:数字秒表/定时器(倒计时)功能verilog代码ego1开发板vivado(代码在文末下载)

软件:VIVADO

语言:Verilog

代码功能:

数字秒表、定时器:

1、具有定时功能、秒表功能,两个功能通过开关切换。

2、秒表功能时,具体有启动、暂停、复位功能。

3、秒表功能 :计时精度10ms (0.01秒)。

4、秒表功能 :数码管显示分、秒、毫秒(10ms)。

5、定时功能:可以通过按键设置时、分、秒。

6、定时功能:设置完时间后,按下开始按键,开始倒计时,直到倒计时为0,输出led提示结束。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在ego1开发板验证,开发板如下,其他开发板可以修改管脚适配:

ego1开发板.png

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚分配

5. RTL图

6. modelsim仿真

整体仿真图

分频模块

按键消抖模块

秒表控制模块

显示译码模块

部分代码展示:

module?Digital_clock(
input?clk_in,
input?mode_SW,//模式控制开关
input?key_1,//跑表启动,暂停
input?key_2,//跑表复位
input?set_time_key_in,//设置时间
input?confirm_key_in,//确认
input?change_time_key_in,//设置时分秒
output?LED,
output??[7:0]?dig_led_1,
output??[3:0]?wei_led_1,
output??[7:0]?dig_led_2,
output??[3:0]?wei_led_2
);
wire?[7:0]?stopwatch_Millisecond;//10毫秒
wire?[7:0]?stopwatch_second;//秒
wire?[7:0]?stopwatch_minute;//分
wire?key_1_negedge;
wire?key_2_negedge;
wire?clk_1Hz;
wire?clk_100Hz;
wire?set_time_key;//设置时间
wire?confirm_key;//确认
wire?change_time_key;//设置时分秒
wire?[7:0]?countdown_hour_time;//时
wire?[7:0]?countdown_minute_time;//分
wire?[7:0]?countdown_second_time;//秒
//分频模块
fenping?fenping_Hz(
.?clk_in(clk_in),
.?clk_1Hz(clk_1Hz),
.?clk_100Hz(clk_100Hz)//分频到100Hz
);
//按键1消抖模块
key_jitter?key_1_jitter(
.?clkin(clk_in),?????
.?key_in(key_1),
.?key_posedge(key_1_negedge)
);
//按键2消抖模块
key_jitter?key_2_jitter(
.?clkin(clk_in),?????
.?key_in(key_2),
.?key_posedge(key_2_negedge)
);
//按键消抖模块
key_jitter?key_3_jitter(
.?clkin(clk_in),?????
.?key_in(set_time_key_in),
.?key_posedge(set_time_key)
);
//按键消抖模块
key_jitter?key_4_jitter(
.?clkin(clk_in),?????
.?key_in(confirm_key_in),
.?key_posedge(confirm_key)
);
//按键消抖模块
key_jitter?key_5_jitter(
.?clkin(clk_in),?????
.?key_in(change_time_key_in),
.?key_posedge(change_time_key)
);
//秒表控制模块
stopwatch?i_stopwatch(
.?clk_in(clk_in),
.?clk_100Hz(clk_100Hz),//100Hz--对应10ms
.?start_key(key_1_negedge),//启动//暂停
.?reset_key(key_2_negedge),//复位
.?stopwatch_Millisecond(stopwatch_Millisecond),//10毫秒
.?stopwatch_second(stopwatch_second),//秒
.?stopwatch_minute(stopwatch_minute)//分
);
//定时模块
timing?i_timing(
.?clk_in(clk_in),
.?clk_1Hz(clk_1Hz),//1Hz
.?mode_SW(mode_SW),//模式控制开关
.?set_time_key(set_time_key),//设置时间
.?confirm_key(confirm_key),//确认
.?change_time_key(change_time_key),//设置时分秒
.?LED(LED),
.?countdown_hour_time(countdown_hour_time),//时
.?countdown_minute_time(countdown_minute_time),//分
.?countdown_second_time(countdown_second_time)//秒
);
//显示模块
display?i_display(
.?clk(clk_in),
.?watch_minute(stopwatch_minute),//分
.?watch_second(stopwatch_second),//秒
.?watch_milsecond(stopwatch_Millisecond),//10毫秒
.?countdown_hour_time(countdown_hour_time),//时
.?countdown_minute_time(countdown_minute_time),//分
.?countdown_second_time(countdown_second_time),//秒
.?dig_led_1(dig_led_1),
.?wei_led_1(wei_led_1),
.?dig_led_2(dig_led_2),
.?wei_led_2(wei_led_2)
);
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=325

  • 1-231204230939625.doc
    下载

相关推荐