名稱:VIVADO萬年歷verilog代碼Nexys4開發(fā)板
軟件:VIVADO
語言:Verilog
代碼功能:
萬年歷要求:
1、實現(xiàn)萬年歷功能,可以顯示年月日,時分秒;
2、支持按鍵調(diào)整時間,年月日,時分秒均可調(diào)整;
3、使用按鍵切換年月日和時分秒的顯示。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在Nexys4開發(fā)板驗證,Nexys4開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
設(shè)計文檔:
工程文件
程序文件
程序編譯
管腳分配
部分代碼展示:
//萬年歷 `timescale??1ns/100ps module?permanent_calendar ( input??clk_in,//100M input??RST, input?mode_key,//模式 input?key_1_in, input?key_2_in, input?key_3_in, input?key_4_in, input?key_5_in, input?key_6_in, input?sw_beep, output?LED, output?beep_led, output?[1:0]?mode_led, output?[7:0]?bit_select,//數(shù)碼管位選 output?[7:0]?seg_select//數(shù)碼管段選???? ); wire?CLK;//1KHz wire?CLK_1Hz; wire?[7:0]?display_1; wire?[7:0]?display_2; wire?[7:0]?display_3; wire[7:0]?year_h;//年高位 wire[7:0]?year_l;//年低位 wire[3:0]?month;//月 wire[4:0]?day;//天 wire?day_add;//天加 wire?day_sub;//天減 wire?month_add;//月加 wire?month_sub;//月減 wire?year_add;//年加 wire?year_sub;//年減 wire?[1:0]?state; wire?key_1; wire?key_2; wire?key_3; wire?key_4; wire?key_5; wire?key_6; wire?hour_add; wire?minute_add; wire?[7:0]???hour_out;//小時 wire?[7:0]???minute_out;//分鐘 wire?[7:0]???second_out;//秒 //分頻模塊 clk_div?i_clk_div( .??clk_in(clk_in),//100M .?CLK_1Hz(CLK_1Hz), .?CLK(CLK)//1KHz ); mode_select?i_mode_select( .?CLK(CLK), .?RST(RST), .?mode_key(mode_key), .?state(state), .?mode_led(mode_led) ); key_6?i_key_6( .?CLK(CLK),????? .?key_1_in(key_1_in), .?key_2_in(key_2_in), .?key_3_in(key_3_in), .?key_4_in(key_4_in), .?key_5_in(key_5_in), .?key_6_in(key_6_in), .?key_1(key_1), .?key_2(key_2), .?key_3(key_3), .?key_4(key_4), .?key_5(key_5), .?key_6(key_6) ); wire?day_cin; //萬年歷 calendar?U_calendar ( .?CLK(CLK),//1ms .?RST(RST), .?day_add(day_add?|?day_cin),//天加 .?day_sub(day_sub),//天減 .?month_add(month_add),//月加 .?month_sub(month_sub),//月減 .?year_add(year_add),//年加 .?year_sub(year_sub),//年減 .?year_h(year_h),//年高位 .?year_l(year_l),//年低位 .?month(month),//月 .?day(day)//天 ); //時分秒 clock?i_clock( .?clk(CLK),//1ms .?RST(RST),//高電平復(fù)位 .?hour_add(hour_add),//小時加 .?minute_add(minute_add),//分鐘加 .?day_cin(day_cin),//日增加 .?hour_out(hour_out),//小時 .?minute_out(minute_out),//分鐘 .?second_out(second_out)//秒 ); wire?alarm_hour_add; wire?alarm_minute_add; wire?alarm_second_add; wire?[7:0]???alarm_hour_out;//小時 wire?[7:0]???alarm_minute_out;//分鐘 wire?[7:0]???alarm_second_out;//秒鐘? //鬧鐘時分秒 alarm?i_alarm( .?clk(CLK),//1ms .?RST(RST),//高電平復(fù)位 .?alarm_hour_add(alarm_hour_add),//小時加 .?alarm_minute_add(alarm_minute_add),//分鐘加 .?alarm_second_add(alarm_second_add),//秒鐘加 .?alarm_hour_out(alarm_hour_out),//小時 .?alarm_minute_out(alarm_minute_out),//分鐘 .?alarm_second_out(alarm_second_out)//秒鐘 ); wire?alarm_day_add;//天加 wire?alarm_day_sub;//天減 wire?alarm_month_add;//月加 wire?alarm_month_sub;//月減 wire?alarm_year_add;//年加 wire?alarm_year_sub;//年減 wire?[7:0]???alarm_year_out;//年 wire?[7:0]???alarm_month_out;//月 wire?[7:0]???alarm_day_out;//日 //鬧鐘年月日 calendar?alarm_calendar ( .?CLK(CLK),//1ms .?RST(RST), .?day_add(alarm_day_add),//天加 .?day_sub(alarm_day_sub),//天減 .?month_add(alarm_month_add),//月加 .?month_sub(alarm_month_sub),//月減 .?year_add(alarm_year_add),//年加 .?year_sub(alarm_year_sub),//年減 .?year_h(),//年高位 .?year_l(alarm_year_out),//年低位 .?month(alarm_month_out),//月 .?day(alarm_day_out)//天 ); change_io?i_change_io( .?CLK(CLK), .?RST(RST), .?state(state), .?key_1(key_1), .?key_2(key_2), .?key_3(key_3), .?key_4(key_4), .?key_5(key_5), .?key_6(key_6), // .?year_l(year_l),//年低位 .?month(month),//月 .?day(day),//天 .?day_add(day_add),//天加 .?day_sub(day_sub),//天減 .?month_add(month_add),//月加 .?month_sub(month_sub),//月減 .?year_add(year_add),//年加 .?year_sub(year_sub),//年減 // .?hour_out(hour_out),//小時 .?minute_out(minute_out),//分鐘 .?second_out(second_out),//秒 .?hour_add(hour_add), .?minute_add(minute_add), // .?alarm_hour_add(alarm_hour_add), .?alarm_minute_add(alarm_minute_add), .?alarm_second_add(alarm_second_add), .?alarm_hour_out(alarm_hour_out),//小時 .?alarm_minute_out(alarm_minute_out),//分鐘 .?alarm_second_out(alarm_second_out),//秒鐘 // .?alarm_day_add(alarm_day_add),//天加 .?alarm_day_sub(alarm_day_sub),//天減 .?alarm_month_add(alarm_month_add),//月加 .?alarm_month_sub(alarm_month_sub),//月減 .?alarm_year_add(alarm_year_add),//年加 .?alarm_year_sub(alarm_year_sub),//年減 .?alarm_year_out(alarm_year_out),//年 .?alarm_month_out(alarm_month_out),//月 .?alarm_day_out(alarm_day_out),//日 .?display_1(display_1), .?display_2(display_2), .?display_3(display_3) ); //鬧鐘led提示模塊 beep?i_beep( .CLK(CLK),//1ms .RST(RST), .sw_beep(sw_beep),//關(guān)鬧鐘 .year_l(year_l),//年低位 .month(month),//月 .day(day),//天 .hour_out(hour_out),//小時 .minute_out(minute_out),//分鐘 .second_out(second_out),//秒 .alarm_year_out(alarm_year_out),//年 .alarm_month_out(alarm_month_out),//月 .alarm_day_out(alarm_day_out),//日 .alarm_hour_out(alarm_hour_out),//小時 .alarm_minute_out(alarm_minute_out),//分鐘 .alarm_second_out(alarm_second_out),//秒鐘 .beep_led(beep_led) ); //整點報時 baoshi?i_baoshi( .?CLK(CLK), .?RST(RST), .?CLK_1Hz(CLK_1Hz), .?hour_out(hour_out),//小時 .?minute_out(minute_out),//分鐘 .?second_out(second_out),//秒 .?LED(LED) ); //數(shù)碼管顯示模塊 display?i_display( .?clk(clk_in), ????.?display_1(display_1), ????.?display_2(display_2), ????.?display_3(display_3), .?bit_select(bit_select),//數(shù)碼管位選 ????.?seg_select(seg_select)//數(shù)碼管段選 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=372
閱讀全文