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

Subversion Repositories socgen

[/] [socgen/] [trunk/] [Projects/] [opencores.org/] [io/] [ip/] [io_module/] [sim/] [icarus/] [mouse_mouse/] [test_define] - Blame information for rev 131

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 131 jt_eaton
initial
2
 begin
3
 $display("              ");
4
 $display("          ===================================================");
5
 $display("%t  Test Start",$realtime);
6
 $display("          ===================================================");
7
 $display("              ");
8
 test.reading = 8'h00;
9
 
10
 test.cg.next(20);
11
 
12
 test.cg.next(10);
13
 fork
14
 begin
15
 
16
 
17
test.start   = 1'b1;
18
 test.bus.u_read(16'h8042, test.reading);
19
 while(test.start )
20
   begin
21
    test.bus.u_read(16'h8042, test.reading);
22
    if( test.reading & 8'h80)  test.start = 1;
23
    else                  test.start = 0;
24
    test.cg.next(100);
25
   end
26
 
27
// send ff to device
28
 test.bus.u_write(16'h8040, 8'hff);
29
 test.bus.u_write(16'h8044, 8'h02);
30
  test.cg.next(5000);
31
 test.bus.u_write(16'h8044, 8'h00);
32
 test.cg.next(1000);
33
 
34
 
35
 
36
// receive fa
37
test.start   = 1'b1;
38
 test.bus.u_read(16'h8042, test.reading);
39
 while(test.start )
40
   begin
41
    test.bus.u_read(16'h8042, test.reading);
42
    if( test.reading & 8'h40)  test.start = 0;
43
    test.cg.next(100);
44
   end
45
 test.bus.u_cmp(16'h8040, 8'hfa);
46
 test.cg.next(1000);
47
 
48
// receive aa
49
 test.start   = 1'b1;
50
 test.bus.u_read(16'h8042, test.reading);
51
 while(test.start )
52
   begin
53
    test.bus.u_read(16'h8042, test.reading);
54
    if( test.reading & 8'h40)  test.start = 0;
55
    test.cg.next(100);
56
   end
57
 test.bus.u_cmp(16'h8040, 8'haa);
58
 test.cg.next(1000);
59
 
60
// receive 00
61
 test.start   = 1'b1;
62
 test.bus.u_read(16'h8042, test.reading);
63
 while(test.start )
64
   begin
65
    test.bus.u_read(16'h8042, test.reading);
66
    if( test.reading & 8'h40)  test.start = 0;
67
    test.cg.next(100);
68
   end
69
 test.bus.u_cmp(16'h8040, 8'h00);
70
 test.cg.next(1000);
71
 
72
 
73
// send f3 to device
74
test.start   = 1'b1;
75
 test.bus.u_read(16'h8042, test.reading);
76
 while(test.start )
77
   begin
78
    test.bus.u_read(16'h8042, test.reading);
79
    if( test.reading & 8'h80)  test.start = 1;
80
    else                  test.start = 0;
81
    test.cg.next(100);
82
   end
83
 test.bus.u_write(16'h8040, 8'hf3);
84
 test.bus.u_write(16'h8044, 8'h02);
85
  test.cg.next(5000);
86
 test.bus.u_write(16'h8044, 8'h00);
87
 test.cg.next(100);
88
 
89
 
90
// send c8 to device
91
test.start   = 1'b1;
92
 test.bus.u_read(16'h8042, test.reading);
93
 while(test.start )
94
   begin
95
    test.bus.u_read(16'h8042, test.reading);
96
    if( test.reading & 8'h80)  test.start = 1;
97
    else                  test.start = 0;
98
    test.cg.next(100);
99
   end
100
 test.bus.u_write(16'h8040, 8'hc8);
101
 test.bus.u_write(16'h8044, 8'h02);
102
  test.cg.next(5000);
103
 test.bus.u_write(16'h8044, 8'h00);
104
 test.cg.next(100);
105
 
106
// send f3 to device
107
test.start   = 1'b1;
108
 test.bus.u_read(16'h8042, test.reading);
109
 while(test.start )
110
   begin
111
    test.bus.u_read(16'h8042, test.reading);
112
    if( test.reading & 8'h80)  test.start = 1;
113
    else                  test.start = 0;
114
    test.cg.next(100);
115
   end
116
 test.bus.u_write(16'h8040, 8'hf3);
117
 test.bus.u_write(16'h8044, 8'h02);
118
  test.cg.next(5000);
119
 test.bus.u_write(16'h8044, 8'h00);
120
 test.cg.next(100);
121
 
122
 
123
 
124
 
125
// send 64 to device
126
test.start   = 1'b1;
127
 test.bus.u_read(16'h8042, test.reading);
128
 while(test.start )
129
   begin
130
    test.bus.u_read(16'h8042, test.reading);
131
    if( test.reading & 8'h80)  test.start = 1;
132
    else                  test.start = 0;
133
    test.cg.next(100);
134
   end
135
 test.bus.u_write(16'h8040, 8'h64);
136
 test.bus.u_write(16'h8044, 8'h02);
137
  test.cg.next(5000);
138
 test.bus.u_write(16'h8044, 8'h00);
139
 test.cg.next(100);
140
 
141
 
142
 
143
// send f3 to device
144
test.start   = 1'b1;
145
 test.bus.u_read(16'h8042, test.reading);
146
 while(test.start )
147
   begin
148
    test.bus.u_read(16'h8042, test.reading);
149
    if( test.reading & 8'h80)  test.start = 1;
150
    else                  test.start = 0;
151
    test.cg.next(100);
152
   end
153
 test.bus.u_write(16'h8040, 8'hf3);
154
 test.bus.u_write(16'h8044, 8'h02);
155
  test.cg.next(5000);
156
 test.bus.u_write(16'h8044, 8'h00);
157
 test.cg.next(100);
158
 
159
 
160
 
161
// send 50 to device
162
test.start   = 1'b1;
163
 test.bus.u_read(16'h8042, test.reading);
164
 while(test.start )
165
   begin
166
    test.bus.u_read(16'h8042, test.reading);
167
    if( test.reading & 8'h80)  test.start = 1;
168
    else                  test.start = 0;
169
    test.cg.next(100);
170
   end
171
 test.bus.u_write(16'h8040, 8'h50);
172
 test.bus.u_write(16'h8044, 8'h02);
173
  test.cg.next(5000);
174
 test.bus.u_write(16'h8044, 8'h00);
175
 test.cg.next(100);
176
 
177
 test.cg.next(10000);
178
 
179
 
180
// send f2 to device
181
test.start   = 1'b1;
182
 test.bus.u_read(16'h8042, test.reading);
183
 while(test.start )
184
   begin
185
    test.bus.u_read(16'h8042, test.reading);
186
    if( test.reading & 8'h80)  test.start = 1;
187
    else                  test.start = 0;
188
    test.cg.next(100);
189
   end
190
 test.bus.u_write(16'h8040, 8'hf2);
191
 test.bus.u_write(16'h8044, 8'h02);
192
  test.cg.next(5000);
193
 test.bus.u_write(16'h8044, 8'h00);
194
 test.cg.next(100);
195
 
196
 
197
 
198
// receive fa
199
 test.start   = 1'b1;
200
 test.bus.u_read(16'h8042, test.reading);
201
 while(test.start )
202
   begin
203
    test.bus.u_read(16'h8042, test.reading);
204
    if( test.reading & 8'h40)  test.start = 0;
205
    test.cg.next(100);
206
   end
207
 test.bus.u_cmp(16'h8040, 8'hfa);
208
 test.cg.next(1000);
209
 
210
 
211
 
212
 
213
// send e8 to device
214
test.start   = 1'b1;
215
 test.bus.u_read(16'h8042, test.reading);
216
 while(test.start )
217
   begin
218
    test.bus.u_read(16'h8042, test.reading);
219
    if( test.reading & 8'h80)  test.start = 1;
220
    else                  test.start = 0;
221
    test.cg.next(100);
222
   end
223
 test.bus.u_write(16'h8040, 8'he8);
224
 test.bus.u_write(16'h8044, 8'h02);
225
  test.cg.next(5000);
226
 test.bus.u_write(16'h8044, 8'h00);
227
 test.cg.next(100);
228
 
229
 
230
 
231
// send 03 to device
232
test.start   = 1'b1;
233
 test.bus.u_read(16'h8042, test.reading);
234
 while(test.start )
235
   begin
236
    test.bus.u_read(16'h8042, test.reading);
237
    if( test.reading & 8'h80)  test.start = 1;
238
    else                  test.start = 0;
239
    test.cg.next(100);
240
   end
241
 test.bus.u_write(16'h8040, 8'h03);
242
 test.bus.u_write(16'h8044, 8'h02);
243
  test.cg.next(5000);
244
 test.bus.u_write(16'h8044, 8'h00);
245
 test.cg.next(100);
246
 
247
 
248
 
249
// send f3 to device
250
test.start   = 1'b1;
251
 test.bus.u_read(16'h8042, test.reading);
252
 while(test.start )
253
   begin
254
    test.bus.u_read(16'h8042, test.reading);
255
    if( test.reading & 8'h80)  test.start = 1;
256
    else                  test.start = 0;
257
    test.cg.next(100);
258
   end
259
 test.bus.u_write(16'h8040, 8'hf3);
260
 test.bus.u_write(16'h8044, 8'h02);
261
  test.cg.next(5000);
262
 test.bus.u_write(16'h8044, 8'h00);
263
 test.cg.next(100);
264
 
265
 
266
// send 28 to device
267
test.start   = 1'b1;
268
 test.bus.u_read(16'h8042, test.reading);
269
 while(test.start )
270
   begin
271
    test.bus.u_read(16'h8042, test.reading);
272
    if( test.reading & 8'h80)  test.start = 1;
273
    else                  test.start = 0;
274
    test.cg.next(100);
275
   end
276
 test.bus.u_write(16'h8040, 8'h28);
277
 test.bus.u_write(16'h8044, 8'h02);
278
  test.cg.next(5000);
279
 test.bus.u_write(16'h8044, 8'h00);
280
 test.cg.next(100);
281
 
282
// send f4 to device
283
test.start   = 1'b1;
284
 test.bus.u_read(16'h8042, test.reading);
285
 while(test.start )
286
   begin
287
    test.bus.u_read(16'h8042, test.reading);
288
    if( test.reading & 8'h80)  test.start = 1;
289
    else                  test.start = 0;
290
    test.cg.next(100);
291
   end
292
 test.bus.u_write(16'h8040, 8'hf4);
293
 test.bus.u_write(16'h8044, 8'h02);
294
  test.cg.next(5000);
295
 test.bus.u_write(16'h8044, 8'h00);
296
 test.cg.next(100);
297
 test.bus.u_write(16'h8044, 8'h01);
298
 
299
 
300
 test.cg.next(1000);
301
 
302
 
303
 end
304
 begin
305
 test.ps2_model.rcv_byte(8'hff,1'b1);
306
 test.cg.next(5000);
307
 test.ps2_model.send_byte(8'hfa);
308
 test.cg.next(20000);
309
 test.ps2_model.send_byte(8'haa);
310
 test.cg.next(20000);
311
 test.ps2_model.send_byte(8'h00);
312
 test.cg.next(2000);
313
 test.ps2_model.rcv_byte(8'hf3,1'b1);
314
 test.cg.next(2000);
315
 test.ps2_model.rcv_byte(8'hc8,1'b0);
316
 test.cg.next(2000);
317
 test.ps2_model.rcv_byte(8'hf3,1'b1);
318
 test.cg.next(2000);
319
 test.ps2_model.rcv_byte(8'h64,1'b0);
320
 test.cg.next(2000);
321
 test.ps2_model.rcv_byte(8'hf3,1'b1);
322
 test.cg.next(2000);
323
 test.ps2_model.rcv_byte(8'h50,1'b1);
324
 test.cg.next(2000);
325
 test.ps2_model.rcv_byte(8'hf2,1'b0);
326
 test.cg.next(5000);
327
 test.ps2_model.send_byte(8'hfa);
328
 test.cg.next(2000);
329
 test.ps2_model.rcv_byte(8'he8,1'b1);
330
 test.cg.next(2000);
331
 test.ps2_model.rcv_byte(8'h03,1'b1);
332
 test.cg.next(2000);
333
 test.ps2_model.rcv_byte(8'hf3,1'b1);
334
 test.cg.next(2000);
335
 test.ps2_model.rcv_byte(8'h28,1'b1);
336
 test.cg.next(2000);
337
 test.ps2_model.rcv_byte(8'hf4,1'b0);
338
 
339
// Now send mice packets
340
 test.ps2_model.send_byte(8'h12);
341
 test.cg.next(2000);
342
 test.ps2_model.send_byte(8'h34);
343
 test.cg.next(2000);
344
 test.ps2_model.send_byte(8'h56);
345
 test.cg.next(2000);
346
 
347
 test.ps2_model.send_byte(8'h78);
348
 test.cg.next(2000);
349
 test.ps2_model.send_byte(8'h9a);
350
 test.cg.next(2000);
351
 test.ps2_model.send_byte(8'hbc);
352
 test.cg.next(2000);
353
 
354
 test.ps2_model.send_byte(8'hde);
355
 test.cg.next(2000);
356
 test.ps2_model.send_byte(8'hf0);
357
 test.cg.next(2000);
358
 test.ps2_model.send_byte(8'h01);
359
 test.cg.next(2000);
360
 
361
 test.ps2_model.send_byte(8'h23);
362
 test.cg.next(2000);
363
 test.ps2_model.send_byte(8'h45);
364
 test.cg.next(2000);
365
 test.ps2_model.send_byte(8'h67);
366
 test.cg.next(2000);
367
 
368
 test.ps2_model.send_byte(8'h89);
369
 test.cg.next(2000);
370
 test.ps2_model.send_byte(8'hab);
371
 test.cg.next(2000);
372
 test.ps2_model.send_byte(8'hcd);
373
 test.cg.next(2000);
374
 
375
 
376
 end
377
 join
378
 
379
 
380
 
381
test.cg.exit;
382
end
383
 
384
 
385
 
386
 
387
 
388
 
389
 

powered by: WebSVN 2.1.0

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