⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settime.v

📁 Traffic light written with Verilog
💻 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 + -