?? settime.v
字號:
module SetTime( t_clk, t_en, t_sw ,d_second, t_diswork , t_sec, display_time, t_scan);
// ok ok **ok ok ok
input t_clk, t_en;
input [7:0] t_sw;
input [7:0] d_second;
output t_diswork;
reg t_diswork;
output [7:0] t_sec;
reg [7:0] t_sec;
output [7:0] display_time;
reg [7:0] display_time;
output [3:0] t_scan;
reg [3:0] t_scan;
parameter FIRST = 2'b00;
parameter SECOND = 2'b01;
parameter THIRD = 2'b10;
parameter FOURTH = 2'b11;
parameter Zero = 4'b0000;
parameter One = 4'b0001;
parameter Two = 4'b0010;
parameter Three = 4'b0011;
parameter Four = 4'b0100;
parameter Five = 4'b0101;
parameter Six = 4'b0110;
parameter Seven = 4'b0111;
parameter Eight = 4'b1000;
parameter Nine = 4'b1001;
parameter No = 4'b1111;
parameter ZERO = 8'b11111100;
parameter ONE = 8'b01100000;
parameter TWO = 8'b11011010;
parameter THREE = 8'b11110010;
parameter FOUR = 8'b01100110;
parameter FIVE = 8'b10110110;
parameter SIX = 8'b10111110;
parameter SEVEN = 8'b11100100;
parameter EIGHT = 8'b11111110;
parameter NINE = 8'b11110110;
parameter NO = 8'b00000000;
reg [1:0] round;
always @(negedge t_clk)
begin
if( t_en==1 )
begin
t_diswork=1;
t_sec=t_sw;
end
else
begin
t_diswork=0;
t_sec[7:4]=No;
t_sec[3:0]=No;
end
case( round )
FIRST:
begin
t_scan=4'b0001;
if( t_diswork==0 )
begin
case( d_second )
8'd00, 8'd01, 8'd02, 8'd03, 8'd04, 8'd05, 8'd06, 8'd07, 8'd08, 8'd09:
display_time = ZERO;
8'd10, 8'd11, 8'd12, 8'd13, 8'd14, 8'd15, 8'd16, 8'd17, 8'd18, 8'd19:
display_time = ONE;
8'd20, 8'd21, 8'd22, 8'd23, 8'd24, 8'd25, 8'd26, 8'd27, 8'd28, 8'd29:
display_time = TWO;
8'd30, 8'd31, 8'd32, 8'd33, 8'd34, 8'd35, 8'd36, 8'd37, 8'd38, 8'd39:
display_time = THREE;
8'd40, 8'd41, 8'd42, 8'd43, 8'd44, 8'd45, 8'd46, 8'd47, 8'd48, 8'd49:
display_time = FOUR;
8'd50, 8'd51, 8'd52, 8'd53, 8'd54, 8'd55, 8'd56, 8'd57, 8'd58, 8'd59:
display_time = FIVE;
8'd60, 8'd61, 8'd62, 8'd63, 8'd64, 8'd65, 8'd66, 8'd67, 8'd68, 8'd69:
display_time = SIX;
8'd70, 8'd71, 8'd72, 8'd73, 8'd74, 8'd75, 8'd76, 8'd77, 8'd78, 8'd79:
display_time = SEVEN;
8'd80, 8'd81, 8'd82, 8'd83, 8'd84, 8'd85, 8'd86, 8'd87, 8'd88, 8'd89:
display_time = EIGHT;
8'd90, 8'd91, 8'd92, 8'd93, 8'd94, 8'd95, 8'd96, 8'd97, 8'd98, 8'd99:
display_time = NINE;
default:display_time = NO;
endcase
end
else
display_time = NO;
end
SECOND:
begin
t_scan=4'b0010;
if( t_diswork==0 )
begin
case( d_second )
8'd00, 8'd10, 8'd20, 8'd30, 8'd40, 8'd50, 8'd60, 8'd70, 8'd80, 8'd90:
display_time = ZERO;
8'd01, 8'd11, 8'd21, 8'd31, 8'd41, 8'd51, 8'd61, 8'd71, 8'd81, 8'd91:
display_time = ONE;
8'd02, 8'd12, 8'd22, 8'd32, 8'd42, 8'd52, 8'd62, 8'd72, 8'd82, 8'd92:
display_time = TWO;
8'd03, 8'd13, 8'd23, 8'd33, 8'd43, 8'd53, 8'd63, 8'd73, 8'd83, 8'd93:
display_time = THREE;
8'd04, 8'd14, 8'd24, 8'd34, 8'd44, 8'd54, 8'd64, 8'd74, 8'd84, 8'd94:
display_time = FOUR;
8'd05, 8'd15, 8'd25, 8'd35, 8'd45, 8'd55, 8'd65, 8'd75, 8'd85, 8'd95:
display_time = FIVE;
8'd06, 8'd16, 8'd26, 8'd36, 8'd46, 8'd56, 8'd66, 8'd76, 8'd86, 8'd96:
display_time = SIX;
8'd07, 8'd17, 8'd27, 8'd37, 8'd47, 8'd57, 8'd67, 8'd77, 8'd87, 8'd97:
display_time = SEVEN;
8'd08, 8'd18, 8'd28, 8'd38, 8'd48, 8'd58, 8'd68, 8'd78, 8'd88, 8'd98:
display_time = EIGHT;
8'd09, 8'd19, 8'd29, 8'd39, 8'd49, 8'd59, 8'd69, 8'd79, 8'd89, 8'd99:
display_time = NINE;
default:display_time = NO;
endcase
end
else
display_time = NO;
end
THIRD:
begin
t_scan=4'b0100;
if( t_diswork==1 )
begin
case( t_sec[7:4] )
Zero: display_time = ZERO;
One: display_time = ONE;
Two: display_time = TWO;
Three: display_time = THREE;
Four: display_time = FOUR;
Five: display_time = FIVE;
Six: display_time = SIX;
Seven: display_time = SEVEN;
Eight: display_time = EIGHT;
Nine: display_time = NINE;
No: display_time = NO;
default:display_time = NO;
endcase
end
else
display_time = NO;
end
FOURTH:
begin
t_scan=4'b1000;
if( t_diswork==1 )
begin
case( t_sec[3:0] )
Zero: display_time = ZERO;
One: display_time = ONE;
Two: display_time = TWO;
Three: display_time = THREE;
Four: display_time = FOUR;
Five: display_time = FIVE;
Six: display_time = SIX;
Seven: display_time = SEVEN;
Eight: display_time = EIGHT;
Nine: display_time = NINE;
No: display_time = NO;
default:display_time = NO;
endcase
end
else
display_time = NO;
end
default:
begin
display_time = NO;
end
endcase
round = round + 1;
end
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -