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

Subversion Repositories alternascope

[/] [alternascope/] [trunk/] [UserInput/] [d_MouseInput.v] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 smpickett
//==================================================================
2
// File:    d_MouseInput.v
3
// Version: 0.01
4
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5
// Copyright Stephen Pickett
6
//   May 19, 2005
7
//------------------------------------------------------------------
8
// Revisions:
9
// Ver 0.01     May 19, 2005    Initial Release
10
//
11
//==================================================================
12
 
13
module Driver_MouseInput(
14
    CLK_50MHZ, MASTER_RST,
15
    XCOORD, YCOORD, L_BUTTON, R_BUTTON, M_BUTTON,
16
    TRIGGER_LEVEL,
17
    TEST_in_range_trig
18
    );
19
 
20
//==================================================================//
21
// DEFINITIONS                                                      //
22
//==================================================================//
23
 
24
 
25
//==================================================================//
26
// VARIABLE DEFINITIONS                                             //
27
//==================================================================//
28
//----------------------//
29
// INPUTS / OUTPUTS     //
30
//----------------------//
31
input CLK_50MHZ;            // System wide clock
32
input MASTER_RST;           // System wide reset
33
input[11:0] XCOORD;         // X coordinate of the cursor
34
input[11:0] YCOORD;         // Y coordinate of the cursor
35
input L_BUTTON;             // Left Mouse Button Press
36
input R_BUTTON;             // Right Mouse Button Press
37
input M_BUTTON;             // Middle Mouse Button Press
38
output[8:0] TRIGGER_LEVEL;  // Current Trigger Level
39
 
40
//----------------------//
41
// WIRES / NODES        //
42
//----------------------//
43
wire CLK_50MHZ, MASTER_RST;
44
wire[11:0] XCOORD;
45
wire[11:0] YCOORD;
46
wire L_BUTTON, R_BUTTON, M_BUTTON;
47
reg[8:0] TRIGGER_LEVEL;
48
 
49
//----------------------//
50
// REGISTERS            //
51
//----------------------//
52
 
53
 
54
//----------------------//
55
// TESTING              //
56
//----------------------//
57
output TEST_in_range_Trig;
58
wire TEST_in_range_Trig;
59
 
60
 
61
 
62
 
63
//==================================================================//
64
// FUNCTIONAL DEFINITIONS                                           //
65
//==================================================================//
66
 
67
//------------------------------------------------------------------//
68
// INTERMEDIATES                                                    //
69
//------------------------------------------------------------------//
70
wire Lrise, Lfall;
71
reg  Lbuf;
72
always @ (posedge CLK_50MHZ or posedge MASTER_RST) begin
73
    if(MASTER_RST == 1'b1)
74
        Lbuf <= 1'b0;
75
    else
76
        Lbuf <= L_BUTTON;
77
end
78
 
79
assign Lrise = (!Lbuf &  L_BUTTON);
80
assign Lfall = ( Lbuf & !L_BUTTON);
81
 
82
//------------------------------------------------------------------//
83
// TRIGGER                                                          //
84
//------------------------------------------------------------------//
85
reg in_range_Trig;
86
reg Ldrag_Trig;
87
always @ (YCOORD or XCOORD or TRIGGER_LEVEL) begin
88
    in_range_Trig = (((YCOORD >= TRIGGER_LEVEL-1'b1) && (YCOORD <= TRIGGER_LEVEL+1'b1)) && ((XCOORD >= 10'd556 && XCOORD <= 10'd558)));
89
end
90
 
91
assign TEST_in_range_Trig = in_range_Trig;
92
 
93
always @ (posedge CLK_50MHZ or posedge MASTER_RST) begin
94
    if(MASTER_RST)
95
        Ldrag_Trig <= 1'b0;
96
    else if(Lrise && in_range_Trig)
97
        Ldrag_Trig <= 1'b1;
98
    else if(Lfall)
99
        Ldrag_Trig <= 1'b0;
100
    else
101
        Ldrag_Trig <= Ldrag_Trig;
102
end
103
 
104
 
105
always @ (posedge CLK_50MHZ or posedge MASTER_RST) begin
106
    if(MASTER_RST)
107
        TRIGGER_LEVEL <= 9'd200;
108
    else if(Ldrag_Trig)
109
        TRIGGER_LEVEL <= YCOORD;
110
    else
111
        TRIGGER_LEVEL <= TRIGGER_LEVEL;
112
end
113
 
114
 
115
 
116
 
117
 
118
endmodule
119
 

powered by: WebSVN 2.1.0

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