1 //----------------------------------------------------------------------------
2 // Decode rotary encoder to clk-syncronous signals
4 // (c) Joerg Bornschein (<jb@capsec.org>)
5 //----------------------------------------------------------------------------
17 //----------------------------------------------------------------------------
18 // decode rotary encoder
19 //----------------------------------------------------------------------------
25 2'b00: rot_q <= { rot_q[1], 1'b0 };
26 2'b01: rot_q <= { 1'b0, rot_q[0] };
27 2'b10: rot_q <= { 1'b1, rot_q[0] };
28 2'b11: rot_q <= { rot_q[1], 1'b1 };
32 reg [1:0] rot_q_delayed;
36 rot_q_delayed <= rot_q;
38 if (rot_q[0] && ~rot_q_delayed[0]) begin
45 //----------------------------------------------------------------------------
46 // debounce push button (rot[2])
47 //----------------------------------------------------------------------------
49 reg [15:0] dead_count;
58 rot_d <= { rot_d[1:0], rot[2] };
60 if (dead_count == 0) begin
61 if ( rot_d[2:1] == 2'b01 ) begin
63 dead_count <= dead_count - 1;
66 dead_count <= dead_count - 1;