data/full_repos/permissive/114380772/Snake/Key_check_module.v
data/verilator_xmls/23b2931b-d9d9-4611-abf3-dd6d47819f44.xml
module Key_check_module
(	
	input Clk_10khz,
	input Rst_n,
	input Left,
	input Right,
	input Up,
	input Down,
	output reg Key_left,
	output reg Key_right,
	output reg Key_up,
	output reg Key_down
);


	reg [31:0] Count1;
	reg Key_left2;
	reg Key_right2;
	reg Key_up2;
	reg Key_down2;
	
	always @ (posedge Clk_10khz or negedge Rst_n)
	begin
		if(!Rst_n)
		begin
			Count1 <= 32'd0;
			
			Key_left <= 1'd0;
			Key_right <= 1'd0;
			Key_up <= 1'd0;
			Key_down <= 1'd0;
			
			Key_left2 <= 1'd0;
			Key_right2 <= 1'd0;
			Key_up2 <= 1'd0;
			Key_down2 <= 1'd0;						
		end
		else 
		begin
			if(Count1 == 32'd1000)
			begin
				Count1 <= 0;
				Key_left2 <= Left;
				Key_right2 <= Right;
				Key_up2 <= Up;
				Key_down2 <= Down;

				if((Key_left2 == 1'd1) && (Left == 1'd0))
					Key_left <= 1'd1;
				if((Key_right2 == 1'd1) && (Right == 1'd0))
					Key_right <= 1'd1;
				if((Key_up2 == 1'd1) && (Up == 1'd0))
					Key_up <= 1'd1;
				if((Key_down2 == 1'd1) && (Down == 1'd0))
					Key_down <= 1'd1;	
			end
			else
			begin
				Count1 <= Count1 + 1;

				Key_left <= 1'd0;
				Key_right <= 1'd0;
				Key_up <= 1'd0;
				Key_down <= 1'd0;
			end
		end	
	end				
	
endmodule
module Key_check_module
(	
	input Clk_10khz,
	input Rst_n,
	input Left,
	input Right,
	input Up,
	input Down,
	output reg Key_left,
	output reg Key_right,
	output reg Key_up,
	output reg Key_down
);



	reg [31:0] Count1;
	reg Key_left2;
	reg Key_right2;
	reg Key_up2;
	reg Key_down2;
	
	always @ (posedge Clk_10khz or negedge Rst_n)
	begin
		if(!Rst_n)
		begin
			Count1 <= 32'd0;
			
			Key_left <= 1'd0;
			Key_right <= 1'd0;
			Key_up <= 1'd0;
			Key_down <= 1'd0;
			
			Key_left2 <= 1'd0;
			Key_right2 <= 1'd0;
			Key_up2 <= 1'd0;
			Key_down2 <= 1'd0;						
		end
		else 
		begin
			if(Count1 == 32'd1000)
			begin
				Count1 <= 0;
				Key_left2 <= Left;
				Key_right2 <= Right;
				Key_up2 <= Up;
				Key_down2 <= Down;

				if((Key_left2 == 1'd1) && (Left == 1'd0))
					Key_left <= 1'd1;
				if((Key_right2 == 1'd1) && (Right == 1'd0))
					Key_right <= 1'd1;
				if((Key_up2 == 1'd1) && (Up == 1'd0))
					Key_up <= 1'd1;
				if((Key_down2 == 1'd1) && (Down == 1'd0))
					Key_down <= 1'd1;	
			end
			else
			begin
				Count1 <= Count1 + 1;

				Key_left <= 1'd0;
				Key_right <= 1'd0;
				Key_up <= 1'd0;
				Key_down <= 1'd0;
			end
		end	
	end				
	
endmodule