¸ðµâ ¹× ½Ã¹Ä·¹À̼Ç
1. ±âº» ½Ã°è Á¦ÀÛ (0.1ÃÊ~1ºÐ´ÜÀ§, ½ºÅ¾¿öÄ¡)
<Àüü ½Ã°£¸ðµâÀÌÁö¸¸ 1ºÐ±îÁö¸¸ ÄÚµùÇÏ¿´½À´Ï´Ù.>
¨¿±âº» ½Ã°£ ¸ðµâ
`timescale 100ns/1ns
module timer_go
(c1k,reset,comma_a,sec_b,sec_a,min_b,min_a,hour_b,hour_a,night_a,c1k_b,c1k_c);
input c1k,reset;
output [5:0] comma_a, sec_b, min_b, hour_b;
output [4:0] sec_a, min_a;
output [2:0] hour_a;
output [3:0] night_a;
output c1k_c;
output [17:0] c1k_b;
reg [5:0] comma_a, sec_b, min_b, hour_b;
reg [4:0] sec_a, min_a;
reg [2:0] hour_a;
reg [3:0] night_a;
reg c1k_c;
reg [17:0] c1k_b;
initial
begin
comma_a=0;
sec_a = 0;
sec_b = 0;
min_a = 0;
min_b = 0;
hour_a = 0;
hour_b = 0;
night_a = 4`hA;
c1k_b = -1;
c1k_c = 0;
end
always @ (posedge c1k or posedge reset)
begin
if (c1k_b == 18`d99999)
begin
c1k_b <= 0;
c1k_c <= 1;
end
else
begin
c1k_b <= c1k_b + 1;
c1k_c = 0;
¡¦(»ý·«)
|
if(reset)
begin
min_b<=4`d0;
min_a<=3`d0;
end
else if (c1k_c)
begin
if(comma_a==4`d9 & sec_b==4`d9 & sec_a==3`d5)
begin
if(min_b==4`d9)
begin
min_b<=4`d0;
if(min_a==3`d5)
min_a<=3`d0;
else
min_a<=min_a + 1`b1;
end
else
min_b<=min_b + 1`b1;
end
else begin
min_a<=min_a;
min_b<=min_b;
end
end
else begin
min_a<=min_a;
min_b<=min_b;
end
end
always @(posedge c1k_c or posedge reset)
begin
if(reset) begin
hour_b<=4`d0;
hour_a<=2`d0;
end
else if (c1k_c) begin
if(comma_a==4`d9 & sec_b==4`d9 & sec_a==4`d5 & min_b==4`d9 & min_a==3`d5)
begin
if(hour_b==4`d9)
b