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

Subversion Repositories alternascope

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

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

Line No. Rev Author Line
1 5 smpickett
//==================================================================//
2
// File:    d_MouseInput.v                                          //
3
// Version: 0.0.0.2                                                 //
4
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//
5
// Copyright (C) Stephen Pickett                                    //
6
//   Jun 08, 2005                                                   //
7
//                                                                  //
8
// This program is free software; you can redistribute it and/or    //
9
// modify it under the terms of the GNU General Public License      //
10
// as published by the Free Software Foundation; either version 2   //
11
// of the License, or (at your option) any later version.           //
12
//                                                                  //
13
// This program is distributed in the hope that it will be useful,  //
14
// but WITHOUT ANY WARRANTY; without even the implied warranty of   //
15
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    //
16
// GNU General Public License for more details.                     //
17
//                                                                  //
18
// If you have not received a copy of the GNU General Public License//
19
// along with this program; write to:                               //
20
//     Free Software Foundation, Inc.,                              //
21
//     51 Franklin Street, Fifth Floor,                             //
22
//     Boston, MA  02110-1301, USA.                                 //
23
//                                                                  //
24
//------------------------------------------------------------------//
25
// Revisions:                                                       //
26
// Ver 0.0.0.1     May   , 2005   Under Development                 //
27
// Ver 0.0.0.2     Jun 08, 2005    Modulized 'UserLines'            //
28
//                                                                  //
29
//==================================================================//
30 2 smpickett
 
31
module Driver_MouseInput(
32
    CLK_50MHZ, MASTER_RST,
33
    XCOORD, YCOORD, L_BUTTON, R_BUTTON, M_BUTTON,
34 27 smpickett
    TRIGGER_LEVEL, VERT_OFFSET, HORZ_OFFSET,
35
    TIMESCALE, TRIGGERSTYLE
36 2 smpickett
    );
37 5 smpickett
 
38
 
39 2 smpickett
//==================================================================//
40 5 smpickett
// PARAMETER DEFINITIONS                                            //
41 2 smpickett
//==================================================================//
42 27 smpickett
parameter P_clickLimit_left     = 10'd556;
43
parameter P_clickLimit_right    = 10'd558;
44
parameter P_clickLimit_leftV    = 10'd559;
45
parameter P_clickLimit_rightV   = 10'd561;
46
parameter P_clickLimit_top      = 10'd102;
47
parameter P_clickLimit_bot      = 10'd100;
48 2 smpickett
 
49 5 smpickett
 
50 2 smpickett
//==================================================================//
51
// VARIABLE DEFINITIONS                                             //
52
//==================================================================//
53
//----------------------//
54
// INPUTS / OUTPUTS     //
55
//----------------------//
56
input CLK_50MHZ;            // System wide clock
57
input MASTER_RST;           // System wide reset
58 5 smpickett
input[9:0] XCOORD;          // X coordinate of the cursor
59
input[9:0] YCOORD;          // Y coordinate of the cursor
60 2 smpickett
input L_BUTTON;             // Left Mouse Button Press
61
input R_BUTTON;             // Right Mouse Button Press
62
input M_BUTTON;             // Middle Mouse Button Press
63 5 smpickett
output[9:0] TRIGGER_LEVEL;  // Current Trigger Level
64 27 smpickett
output[9:0] VERT_OFFSET;    // VERTICAL OFFSET
65
output[9:0] HORZ_OFFSET;    // HORIZONTAL OFFSET
66
output[3:0] TIMESCALE;      // Current Tiemscale value
67
output[1:0] TRIGGERSTYLE;   // Style (rise/fall) of trigger
68 2 smpickett
 
69
//----------------------//
70
// WIRES / NODES        //
71
//----------------------//
72
wire CLK_50MHZ, MASTER_RST;
73 5 smpickett
wire[9:0] XCOORD;
74
wire[9:0] YCOORD;
75 2 smpickett
wire L_BUTTON, R_BUTTON, M_BUTTON;
76 27 smpickett
wire[9:0] TRIGGER_LEVEL, VERT_OFFSET, HORZ_OFFSET;
77
wire[3:0] TIMESCALE;
78
wire[1:0] TRIGGERSTYLE;
79 2 smpickett
 
80
//----------------------//
81
// REGISTERS            //
82
//----------------------//
83
 
84
 
85
//----------------------//
86
// TESTING              //
87
//----------------------//
88
 
89
 
90
 
91
 
92
//==================================================================//
93
// FUNCTIONAL DEFINITIONS                                           //
94
//==================================================================//
95
 
96
//------------------------------------------------------------------//
97
// INTERMEDIATES                                                    //
98
//------------------------------------------------------------------//
99 5 smpickett
 
100
// -- LEFT BUTTON --
101 2 smpickett
wire Lrise, Lfall;
102
reg  Lbuf;
103
always @ (posedge CLK_50MHZ or posedge MASTER_RST) begin
104 5 smpickett
    if(MASTER_RST == 1'b1) Lbuf <= 1'b0;
105
    else                   Lbuf <= L_BUTTON;
106 2 smpickett
end
107
 
108
assign Lrise = (!Lbuf &  L_BUTTON);
109
assign Lfall = ( Lbuf & !L_BUTTON);
110
 
111 5 smpickett
// -- RIGHT BUTTON --
112
wire Rrise, Rfall;
113
reg  Rbuf;
114
always @ (posedge CLK_50MHZ or posedge MASTER_RST) begin
115
    if(MASTER_RST == 1'b1) Rbuf <= 1'b0;
116
    else                   Rbuf <= R_BUTTON;
117 2 smpickett
end
118
 
119 5 smpickett
assign Rrise = (!Rbuf &  R_BUTTON);
120
assign Rfall = ( Rbuf & !R_BUTTON);
121 2 smpickett
 
122 5 smpickett
 
123
// -- MIDDLE BUTTON --
124
wire Mrise, Mfall;
125
reg  Mbuf;
126 2 smpickett
always @ (posedge CLK_50MHZ or posedge MASTER_RST) begin
127 5 smpickett
    if(MASTER_RST == 1'b1) Mbuf <= 1'b0;
128
    else                   Mbuf <= M_BUTTON;
129 2 smpickett
end
130
 
131 5 smpickett
assign Mrise = (!Mbuf &  M_BUTTON);
132
assign Mfall = ( Mbuf & !M_BUTTON);
133 2 smpickett
 
134
 
135 5 smpickett
//------------------------------------------------------------------//
136
// USER MODIFIABLE LINES                                            //
137
//------------------------------------------------------------------//
138
sub_UserLines set_trigger(
139 27 smpickett
    .MASTER_CLK(CLK_50MHZ), .MASTER_RST(MASTER_RST),
140
    .LINE_VALUE_OUT(TRIGGER_LEVEL),
141
    .BUTTON_RISE(Lrise),
142 5 smpickett
        .BUTTON_FALL(Lfall),
143 27 smpickett
    .XCOORD(XCOORD),
144 5 smpickett
        .YCOORD(YCOORD),
145 27 smpickett
    .RESET_VALUE(10'd99),
146
    .LEFT(P_clickLimit_left),
147
        .RGHT(P_clickLimit_right),
148
    .BOT(TRIGGER_LEVEL),
149
//    .BOT(TRIGGER_LEVEL-1'b1),
150 5 smpickett
        .TOP(TRIGGER_LEVEL+1'b1),
151 27 smpickett
    .SETXnY(1'b0)
152
    );
153
 
154
sub_UserLines set_Voffset(
155
    .MASTER_CLK(CLK_50MHZ), .MASTER_RST(MASTER_RST),
156
    .LINE_VALUE_OUT(VERT_OFFSET),
157
    .BUTTON_RISE(Lrise),
158
        .BUTTON_FALL(Lfall),
159
    .XCOORD(XCOORD),
160
        .YCOORD(YCOORD),
161
    .RESET_VALUE(10'd0),
162
    .LEFT(P_clickLimit_leftV),
163
        .RGHT(P_clickLimit_rightV),
164
    .BOT(VERT_OFFSET),
165
//        .BOT(VERT_OFFSET-1'b1),
166
        .TOP(VERT_OFFSET+1'b1),
167
    .SETXnY(1'b0)
168
    );
169
 
170
sub_UserLines set_Hoffset(
171
    .MASTER_CLK(CLK_50MHZ), .MASTER_RST(MASTER_RST),
172
    .LINE_VALUE_OUT(HORZ_OFFSET),
173
    .BUTTON_RISE(Lrise),
174
        .BUTTON_FALL(Lfall),
175
    .XCOORD(XCOORD),
176
        .YCOORD(YCOORD),
177
    .RESET_VALUE(10'd319),
178
//    .LEFT(HORZ_OFFSET-1'b1),
179
    .LEFT(HORZ_OFFSET),
180
        .RGHT(HORZ_OFFSET+1'b1),
181
        .BOT(P_clickLimit_bot),
182
        .TOP(P_clickLimit_top),
183
    .SETXnY(1'b1)
184
    );
185
 
186
sub_UserTimeScaleBox TSBox(
187
    .MASTER_CLK(CLK_50MHZ), .MASTER_RST(MASTER_RST),
188
    .VALUE_OUT(TIMESCALE),
189
    .BUTTON_RISE(Lrise),
190
        .BUTTON_FALL(Lfall),
191
    .XCOORD(XCOORD),
192
        .YCOORD(YCOORD)
193
    );
194
 
195
sub_UserTriggerStyleBox TrigStyleBox(
196
    .MASTER_CLK(CLK_50MHZ), .MASTER_RST(MASTER_RST),
197
    .VALUE_OUT(TRIGGERSTYLE),
198
    .BUTTON_RISE(Lrise),
199
        .BUTTON_FALL(Lfall),
200
    .XCOORD(XCOORD),
201
        .YCOORD(YCOORD)
202
    );
203 2 smpickett
 
204
 
205
 
206 27 smpickett
 
207 2 smpickett
endmodule
208
 

powered by: WebSVN 2.1.0

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