module digitalclk(
input clk,//时钟
input reset,//复位
input set_m,//分钟调时
input set_h,//时钟较时
output reg [3:0]hour_g=0,//时钟数的个位
output reg [3:0]hour_s=0,//时钟数的十位
output reg[3:0]minute_g,//分数的个位
output reg[3:0]minute_s,//分数的十位
output reg [3:0]second_g,//秒个位
output reg [3:0]second_s,//秒十位
output reg[6:0]ds_reg,//接数码管
output reg[3:0]ds_en, //数码管选择
output reg DS_DP
);
reg [31:0]cnt;
//声明常量
parameter [6:0]NUM_0=7'b0111111;
parameter [6:0]NUM_1=7'b0000110;
parameter [6:0]NUM_2=7'b1011011;
parameter [6:0]NUM_3=7'b1001111;
parameter [6:0]NUM_4=7'b1100110;
parameter [6:0]NUM_5=7'b1101101;
parameter [6:0]NUM_6=7'b1111101;
parameter [6:0]NUM_7=7'b0000111;
parameter [6:0]NUM_8=7'b1111111;
parameter [6:0]NUM_9=7'b1101111;
parameter [6:0]NUM_BLK=7'b0000000;
parameter [3:0]EN_1=4'b1110;
parameter [3:0]EN_2=4'b1101;
parameter [3:0]EN_3=4'b1011;
parameter [3:0]EN_4=4'b0111;
parameter [3:0]EN_A=4'b0000;
always@(posedge clk or negedge reset)
begin
if(reset==0)//清零
begin
hour_g<=0;
hour_s<=0;
minute_g<=0;
minute_s<=0;
second_g<=0;
second_s<=0;
end
else
begin
if(cnt==50000000)//时间达到一秒-50000000*20ns(默认时钟为50Hz,周期为20ns)
begin
cnt<=0;
if(set_m==0)//设置分钟