OpenCores
URL https://opencores.org/ocsvn/vg_z80_sbc/vg_z80_sbc/trunk

Subversion Repositories vg_z80_sbc

[/] [vg_z80_sbc/] [trunk/] [rtl/] [rotary.v] - Rev 35

Compare with Previous | Blame | View Log

//----------------------------------------------------------------------------
// Decode rotary encoder to clk-syncronous signals
//
// (c) Joerg Bornschein (<jb@capsec.org>)
//----------------------------------------------------------------------------
 
module rotary (
	input        clk,
	input        reset,
	input [2:0]  rot,
	//
	output       rot_btn,
	output reg   rot_event,
	output reg   rot_left
);
 
assign rot_btn = 0;
 
 
//----------------------------------------------------------------------------
// decode rotary encoder
//----------------------------------------------------------------------------
parameter  counter_init = 10000000;
reg [31:0] counter;
 
reg rot_event2;
reg rot_left2;
 
always @(posedge clk)
begin
	if (reset)
		counter <= counter_init;
	else begin
		rot_event  <= rot_event2;
		rot_left   <= rot_left2;
 
		rot_event2 <= 0;
		rot_left2  <= 0;
 
		if (counter == 0) begin
			counter <= counter_init;
 
			if (rot[0] | rot[1])
				rot_event2 <= 1;
 
			if (rot[0])
				rot_left2  <= 1;
		end else
			counter <= counter - 1;
	end
end
 
 
endmodule
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.