名称:数字电子钟Verilog代码vivado ego1开发板(文末获取)
软件:vivado
语言:Verilog
代码功能:
设计并制作一个数字电子钟,要求如下:具有“时”、“分”、“秒”数字显示具有“时 分”校时功能。
(1)编写程序并进行仿真验证
(2)下载到FPGA板上,并且在数码管上显示时间(4位数码管,显示分和秒,用4个LED表示小时) (3)扩展功能自行发挥(可加分)
本代码已在ego1开发板验证,ego1开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 管脚约束
4. testbench
5. 程序编译
6. 仿真图
整体仿真图
整体仿真图
整体仿真图
消抖模块仿真图
分频模块仿真图
计时模块仿真图
显示模块仿真图
部分代码展示:
`timescale 1ns / 1ps module digital_clock( input clk_100M,//100MHz input BTNL,//设置时间 input BTNR,//确认 input BTNU,//设置时分秒 output [3:0] LED,//LED显示小时 //数码管显示 output [7:0] dig_led_1,//数码管段选 output [3:0] wei_led_1//数码管位选 ); wire set_time_key;//设置时间 wire confirm_key;//确认 wire change_time_key;//设置时分秒 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),//设置时间 . confirm_key(confirm_key),//确认 . change_time_key(change_time_key),//设置时分秒 . 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
源代码
扫描文章末尾的公众号二维码