• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

數(shù)字秒表/定時器(倒計(jì)時)功能verilog代碼ego1開發(fā)板vivado

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1-231204230939625.doc

共1個文件

名稱:數(shù)字秒表/定時器(倒計(jì)時)功能verilog代碼ego1開發(fā)板vivado(代碼在文末下載)

軟件:VIVADO

語言:Verilog

代碼功能:

數(shù)字秒表、定時器:

1、具有定時功能、秒表功能,兩個功能通過開關(guān)切換。

2、秒表功能時,具體有啟動、暫停、復(fù)位功能。

3、秒表功能 :計(jì)時精度10ms (0.01秒)。

4、秒表功能 :數(shù)碼管顯示分、秒、毫秒(10ms)。

5、定時功能:可以通過按鍵設(shè)置時、分、秒。

6、定時功能:設(shè)置完時間后,按下開始按鍵,開始倒計(jì)時,直到倒計(jì)時為0,輸出led提示結(jié)束。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在ego1開發(fā)板驗(yàn)證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

ego1開發(fā)板.png

設(shè)計(jì)文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. 管腳分配

5. RTL圖

6. modelsim仿真

整體仿真圖

分頻模塊

按鍵消抖模塊

秒表控制模塊

顯示譯碼模塊

部分代碼展示:

module?Digital_clock(
input?clk_in,
input?mode_SW,//模式控制開關(guān)
input?key_1,//跑表啟動,暫停
input?key_2,//跑表復(fù)位
input?set_time_key_in,//設(shè)置時間
input?confirm_key_in,//確認(rèn)
input?change_time_key_in,//設(shè)置時分秒
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;//設(shè)置時間
wire?confirm_key;//確認(rèn)
wire?change_time_key;//設(shè)置時分秒
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--對應(yīng)10ms
.?start_key(key_1_negedge),//啟動//暫停
.?reset_key(key_2_negedge),//復(fù)位
.?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),//模式控制開關(guān)
.?set_time_key(set_time_key),//設(shè)置時間
.?confirm_key(confirm_key),//確認(rèn)
.?change_time_key(change_time_key),//設(shè)置時分秒
.?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

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=325

  • 1-231204230939625.doc
    下載

相關(guān)推薦