名稱:數(shù)字電子鐘Verilog代碼vivado? ego1開發(fā)板
軟件:vivado
語言:Verilog
代碼功能:
設(shè)計并制作一個數(shù)字電子鐘,要求如下:具有“時”、“分”、“秒”數(shù)字顯示具有“時、分”校時功能。
(1)編寫程序并進(jìn)行仿真驗證。
(2)下載到FPGA板上,并且在數(shù)碼管上顯示時間(4位數(shù)碼管,顯示分和秒,用4個LED表示小時)。
(3)擴展功能自行發(fā)揮(可加分)。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在ego1開發(fā)板驗證,ego1開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 管腳約束
4. testbench
5. 程序編譯
6. 仿真圖
整體仿真圖
整體仿真圖
整體仿真圖
消抖模塊仿真圖
分頻模塊仿真圖
計時模塊仿真圖
顯示模塊仿真圖
部分代碼展示:
`timescale?1ns?/?1ps module?digital_clock( input?clk_100M,//100MHz input?BTNL,//設(shè)置時間 input?BTNR,//確認(rèn) input?BTNU,//設(shè)置時分秒 output?[3:0]?LED,//LED顯示小時 //數(shù)碼管顯示 output???[7:0]?dig_led_1,//數(shù)碼管段選 output???[3:0]?wei_led_1//數(shù)碼管位選 ????); wire?set_time_key;//設(shè)置時間 wire?confirm_key;//確認(rèn) wire?change_time_key;//設(shè)置時分秒 wire?clk_1Hz; wire?[7:0]?hour_time;//時 wire?[7:0]?minute_time;//分 wire?[7:0]?second_time;//秒 key_jitter?key_set_time_key( ?????.?clkin(clk_100M), ?????.?key_in(BTNL),//輸入 ?.?key_posedge(set_time_key),//消抖后按鍵上升沿 ?.?key_negedge(),//消抖后按鍵下降沿 ?????.?key_value()//消抖后按鍵 ); key_jitter?key_confirm_key( ?????.?clkin(clk_100M), ?????.?key_in(BTNR),//輸入 ?.?key_posedge(confirm_key),//消抖后按鍵上升沿 ?.?key_negedge(),//消抖后按鍵下降沿 ?????.?key_value()//消抖后按鍵 ); key_jitter?key_change_time_key( ?????.?clkin(clk_100M), ?????.?key_in(BTNU),//輸入 ?.?key_posedge(change_time_key),//消抖后按鍵上升沿 ?.?key_negedge(),//消抖后按鍵下降沿 ?????.?key_value()//消抖后按鍵 ); fenping?i_fenping( .?clk_100M(clk_100M), .?clk_1Hz(clk_1Hz) ); jishi?i_jishi( .?clk_100M(clk_100M), .?clk_1Hz(clk_1Hz), .?set_time_key(set_time_key),//設(shè)置時間 .?confirm_key(confirm_key),//確認(rèn) .?change_time_key(change_time_key),//設(shè)置時分秒 .?hour_time(hour_time),//時 .?minute_time(minute_time),//分 .?second_time(second_time)//秒 ); display_num?i_display_num( .?clk(clk_100M), .?LED(LED), .?hour_time(hour_time),//時 .?minute_time(minute_time),//分 .?second_time(second_time),//秒 .?dig_led_1(dig_led_1), .?wei_led_1(wei_led_1) ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=465