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

📄 code.v

📁 Verilog的LED控制器源程序
💻 V
字号:
module sensor(RESET,SX,SY,SZ,RECEIVE,STATUS,DATA);

input RESET; // power on reset
input [11:0]SX;//sensor x axis ;12bit
input [11:0]SY;//sensor y axis ;12bit
input [5:0]SZ;//sensor Z axis  ;6bit

input RECEIVE;
output STATUS;
output [9:0]DATA;
reg [9:0]ADD;
reg STATUS;
reg [9:0]DATA;
reg [4:0]cnt;
reg [1:0]m;

always @ (posedge RECEIVE or negedge RESET)
begin
	if (!RESET)
	 begin
		STATUS=1'b0; DATA=10'b1111111111; cnt=5'b00000; 
		ADD=0;m=0;
	 end
	else
	 begin
      case (m)
			0: begin m=1; end
			1: begin
			    cnt=cnt+1; STATUS=1'b1;
				case(cnt)
				   1:begin ADD[0] = SX[0] & SY[0]; ADD[1] = SX[1] & SY[0]; 
				           ADD[2] = SX[2] & SY[0]; ADD[3] = SX[3] & SY[0];
				           ADD[4] = SX[4] & SY[0]; ADD[5] = SX[5] & SY[0]; 
				           ADD[6] = SX[6] & SY[0]; ADD[7] = SX[7] & SY[0];
				           ADD[8] = SX[8] & SY[0]; ADD[9] = SX[9] & SY[0]; 
				           DATA[9:0]=ADD[9:0]; m=1;
				     end		
				   2:begin ADD[0] = SX[10] & SY[0]; ADD[1] = SX[11] & SY[0];
                           ADD[2] = SX[0] & SY[1]; ADD[3] = SX[1] & SY[1]; 
                           ADD[4] = SX[2] & SY[1]; ADD[5] = SX[3] & SY[1];
                           ADD[6] = SX[4] & SY[1]; ADD[7] = SX[5] & SY[1]; 
                           ADD[8] = SX[6] & SY[1]; ADD[9] = SX[7] & SY[1];
				           DATA=ADD[9:0]; m=1;
				     end
				   3:begin ADD[0] = SX[8] & SY[1]; ADD[1] = SX[9] & SY[1]; 
                           ADD[2] = SX[10] & SY[1];ADD[3] = SX[11] & SY[1];
                           ADD[4] = SX[0] & SY[2]; ADD[5] = SX[1] & SY[2]; 
                           ADD[6] = SX[2] & SY[2]; ADD[7] = SX[3] & SY[2];
                           ADD[8] = SX[4] & SY[2]; ADD[9] = SX[5] & SY[2]; 				
				           DATA=ADD[9:0];m=1;
				     end
				   4:begin ADD[0] = SX[6] & SY[2]; ADD[1] = SX[7] & SY[2];
                           ADD[2] = SX[8] & SY[2]; ADD[3] = SX[9] & SY[2]; 
                           ADD[4] = SX[10] & SY[2];ADD[5] = SX[11] & SY[2];
                           ADD[6] = SX[0] & SY[3]; ADD[7] = SX[1] & SY[3]; 
                           ADD[8] = SX[2] & SY[3]; ADD[9] = SX[3] & SY[3];
				           DATA=ADD[9:0];m=1;
				     end
				   5:begin ADD[0] = SX[4] & SY[3]; ADD[1] = SX[5] & SY[3]; 
				           ADD[2] = SX[6] & SY[3]; ADD[3] = SX[7] & SY[3];
				           ADD[4] = SX[8] & SY[3]; ADD[5] = SX[9] & SY[3]; 
				           ADD[6] = SX[10] & SY[3];ADD[7] = SX[11] & SY[3];
				           ADD[8] = SX[0] & SY[4]; ADD[9] = SX[1] & SY[4];
				           DATA=ADD[9:0];m=1;
				     end
				   6:begin ADD[0] = SX[2] & SY[4]; ADD[1] = SX[3] & SY[4];
				           ADD[2] = SX[4] & SY[4]; ADD[3] = SX[5] & SY[4]; 
				           ADD[4] = SX[6] & SY[4]; ADD[5] = SX[7] & SY[4];
				           ADD[6] = SX[8] & SY[4]; ADD[7] = SX[9] & SY[4]; 
				           ADD[8] = SX[10] & SY[4];ADD[9] = SX[11] & SY[4];
				           DATA=ADD[9:0];m=1;
				     end
				   7:begin ADD[0] = SX[0] & SY[5]; ADD[1] = SX[1] & SY[5]; 
				           ADD[2] = SX[2] & SY[5]; ADD[3] = SX[3] & SY[5];
				           ADD[4] = SX[4] & SY[5]; ADD[5] = SX[5] & SY[5]; 
				           ADD[6] = SX[6] & SY[5]; ADD[7] = SX[7] & SY[5];
				           ADD[8] = SX[8] & SY[5]; ADD[9] = SX[9] & SY[5]; 
				           DATA=ADD[9:0];m=1;
				     end
				   8:begin ADD[0] = SX[10] & SY[5];ADD[1] = SX[11] & SY[5];
				           ADD[2] = SX[0] & SY[6]; ADD[3] = SX[1] & SY[6]; 
				           ADD[4] = SX[2] & SY[6]; ADD[5] = SX[3] & SY[6];
				           ADD[6] = SX[4] & SY[6]; ADD[7] = SX[5] & SY[6]; 
				           ADD[8] = SX[6] & SY[6]; ADD[9] = SX[7] & SY[6];
				           DATA=ADD[9:0];m=1;
				     end
				   9:begin ADD[0] = SX[8] & SY[6]; ADD[1] = SX[9] & SY[6]; 
				           ADD[2] = SX[10] & SY[6];ADD[3] = SX[11] & SY[6];
				           ADD[4] = SX[0] & SY[7]; ADD[5] = SX[1] & SY[7]; 
				           ADD[6] = SX[2] & SY[7]; ADD[7] = SX[3] & SY[7];
				           ADD[8] = SX[4] & SY[7]; ADD[9] = SX[5] & SY[7]; 
				           DATA=ADD[9:0];m=1;
				     end
				  10:begin ADD[0] = SX[6] & SY[7]; ADD[1] = SX[7] & SY[7];
				           ADD[2] = SX[8] & SY[7]; ADD[3] = SX[9] & SY[7]; 
				           ADD[4] = SX[10] & SY[7];ADD[5] = SX[11] & SY[7];
				           ADD[6] = SX[0] & SY[8]; ADD[7] = SX[1] & SY[8]; 
				           ADD[8] = SX[2] & SY[8]; ADD[9] = SX[3] & SY[8];
				           DATA=ADD[9:0];m=1;
				     end
				  11:begin ADD[0] = SX[4] & SY[8]; ADD[1] = SX[5] & SY[8]; 
				           ADD[2] = SX[6] & SY[8]; ADD[3] = SX[7] & SY[8];
				           ADD[4] = SX[8] & SY[8]; ADD[5] = SX[9] & SY[8]; 
				           ADD[6] = SX[10] & SY[8];ADD[7] = SX[11] & SY[8];
				           ADD[8] = SX[0] & SY[9]; ADD[9] = SX[1] & SY[9]; 	
				           DATA=ADD[9:0];m=1;
				     end				
				  12:begin ADD[0] = SX[2] & SY[9]; ADD[1] = SX[3] & SY[9];
				           ADD[2] = SX[4] & SY[9]; ADD[3] = SX[5] & SY[9]; 
				           ADD[4] = SX[6] & SY[9]; ADD[5] = SX[7] & SY[9];
				           ADD[6] = SX[8] & SY[9]; ADD[7] = SX[9] & SY[9]; 
				           ADD[8] = SX[10] & SY[9];ADD[9] = SX[11] & SY[9];
				           DATA=ADD[9:0];m=1;
				     end																
				  13:begin ADD[0] = SX[0] & SY[10]; ADD[1] = SX[1] & SY[10]; 
				           ADD[2] = SX[2] & SY[10]; ADD[3] = SX[3] & SY[10];
				           ADD[4] = SX[4] & SY[10]; ADD[5] = SX[5] & SY[10]; 
				           ADD[6] = SX[6] & SY[10]; ADD[7] = SX[7] & SY[10];
				           ADD[8] = SX[8] & SY[10]; ADD[9] = SX[9] & SY[10];  
				           DATA=ADD[9:0];m=1;
				     end
				  14:begin ADD[0] = SX[10] & SY[10];ADD[1] = SX[11] & SY[10];
				           ADD[2] = SX[0] & SY[11]; ADD[3] = SX[1] & SY[11]; 
				           ADD[4] = SX[2] & SY[11]; ADD[5] = SX[3] & SY[11];
				           ADD[6] = SX[4] & SY[11]; ADD[7] = SX[5] & SY[11]; 
				           ADD[8] = SX[6] & SY[11]; ADD[9] = SX[7] & SY[11];
				           DATA=ADD[9:0];m=1;
				     end
				  15:begin ADD[0] = SX[8] & SY[11]; ADD[1] = SX[9] & SY[11]; 
				           ADD[2] = SX[10] & SY[11];ADD[3] = SX[11] & SY[11];
				           ADD[4] = SZ[0] ; ADD[5] = SZ[1] ; ADD[6] = SZ[2] ;
				           ADD[7] = SZ[3] ; ADD[8] = SZ[4] ; ADD[9] = SZ[5] ;
				           DATA=ADD[9:0];m=2;
				    end
			      default: begin DATA=0;m=1;end	
			    endcase
			   end						
			2: begin STATUS=1'b0;DATA=10'b0000000000;cnt=5'b00000;m=3;end
			3: begin STATUS=1'b0;DATA=10'b1111111111;m=1;end
	  default: begin STATUS=1'b0;DATA=10'b0011001100;end
		endcase
	end
end
endmodule

⌨️ 快捷键说明

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