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

📄 test.v

📁 实现交通灯
💻 V
字号:
`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date:    14:59:58 02/20/2009 // Design Name: // Module Name:    test // Project Name: // Target Devices: // Tool versions: // Description: //// Dependencies: //// Revision: // Revision 0.01 - File Created// Additional Comments: ////////////////////////////////////////////////////////////////////////////////////module test(clk, rst, ucar, lcar, lights);    input clk;    input rst;    input ucar;    input lcar;    output [5:0] lights;	 	 reg [5:0] lights;	 reg [2:0] current_state,next_state;	 reg time1able,flag1;	 reg [7:0] count1;	 	 parameter up_green  = 3'b000;    parameter up_green_wait  = 3'b001;    parameter up_yellow  = 3'b010;    parameter left_green  = 3'b011;    parameter left_green_wait  = 3'b100;    parameter left_yellow  = 3'b101;	// parameter greentime=,yellowtime=2;	 initial		begin			lights<=6'b001001;			current_state<=up_green;			next_state=up_green;			count1=0;time1able=0;flag1=0;		end			 always @(posedge clk)		if(rst)		   begin 		   current_state<=up_green;	//	   count1=0;time1able=0;flag1=0;         end		else			current_state<=next_state;				  always @(posedge clk)		begin			 if(rst)			 begin				count1=0;time1able=0;flag1=0;			end		    if(flag1==1)		    begin		        		        if(count1==2)		           time1able=1;		        else count1=count1+1;		    end						case(current_state)				up_green:					begin					   if(flag1==0) flag1=1;					   if(time1able==1)					   begin						   next_state=up_green_wait;						   time1able=0;						   flag1=0;						   count1=0;						end				   end				up_green_wait:					begin						if(lcar==1) next_state=up_yellow;						else next_state=up_green;					end				up_yellow:					begin					   if(flag1==0) flag1=1;					   if(time1able==1)					   begin						   next_state=left_green;						   time1able=0;						   flag1=0;						   count1=0;				      end					end				left_green:					begin					   if(flag1==0) flag1=1;					   if(time1able==1)					   begin						   next_state=left_green_wait;						   time1able=0;						   flag1=0;						   count1=0;						end				   end				left_green_wait:					begin						if(ucar==1) next_state=left_yellow;						else next_state=left_green;					end				left_yellow:					begin					   if(flag1==0) flag1=1;					   if(time1able==1)					   begin						   next_state=up_green;						   time1able=0;						   flag1=0;						   count1=0;						end				   end				default:					next_state=up_green;			endcase		end							always@(posedge clk)			case(current_state)				up_green:					begin						lights<=6'b100001;					end				up_yellow:					begin						lights<=6'b010001;					end				left_green:					begin						lights<=6'b001100;					end				left_yellow:					begin						lights<=6'b001010;					end//				default://						lights<=6'b001001;			endcase				//	task delay(input[3:0] timedelay)	;		//	repeat (timedelay) @ (posedge clk);//		endtask		//		always@(posedge clk)//		begin//		    if(flag1==1)//		    begin		        //		        if(count1==2)//		           time1able=1;//		        else count1=count1+1;//		    end		//end		endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -