Verilog 实现简易数字钟设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

module ly2(clock,sec1,sec2,min1,min2,hou1,hou2);

input clock;

output sec1,sec2,min1,min2,hou1,hou2;

reg[5:0] sec,min,hou;

reg tun,mod;

reg[3:0] sec1,sec2,min1,min2,hou1,hou2;

wire mt,nt;

initial

begin

tun=1;

mod=1;

min=0;

hou=0;

sec=0;

sec1=0;

sec2=0;

min1=0;

min2=0;

hou1=0;

hou2=0;

end

always @(posedge clock) \\clock 标准1HZ时钟信号

begin

if(sec==59)

begin

sec<=0; \\秒为60进制计数器

tun<=1; \\每60秒产生一个进位信号tun。

end

else

begin

sec<=sec+1;

tun<=0; \\进位信号置0。

end

end

assign mt=tun; \\生成分的控制信号,

always@(posedge mt)

begin

if(min==59) \\分钟为60进制计数器begin

min<=0;

mod<=1; \\每60分产生一个小时的进位。

end

else

begin

min<=min+1;

mod<=0; \\分钟向小时的进位信号置0。

end

end

assign nt=mod; \\生成时的控制信号,always@(posedge nt)

begin

if(hou==23) \\小时为24进制计数器hou<=0;

else

hou<=hou+1;

end

always@(sec)

begin

sec1<=sec%10; \\sec1为秒个位

sec2<=sec/10; \\sec2为秒十位

end

always@(min)

begin

min1<=min%10; \\min1为分个位

min2<=min/10; \\min2为分十位

end

always@(hou)

begin

hou1<=hou%10; \\hou1为时个位

hou2<=hou/10; \\hou2为时十位

end

endmodule

相关文档
最新文档