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

Subversion Repositories ao486

[/] [ao486/] [trunk/] [sim/] [iverilog/] [vga/] [tb_vga.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 alfik
`timescale 1ps/1ps
2
 
3
module tb_vga();
4
 
5
reg clk_26;
6
reg rst_n;
7
 
8
reg [3:0] io_b_address;
9
reg       io_b_write;
10
reg [7:0] io_b_writedata;
11
 
12
reg [3:0] io_c_address;
13
reg       io_c_write;
14
reg [7:0] io_c_writedata;
15
 
16
reg [3:0] io_d_address;
17
reg       io_d_write;
18
reg [7:0] io_d_writedata;
19
 
20
reg [16:0] mem_address;
21
reg        mem_write;
22
reg [7:0]  mem_writedata;
23
 
24
vga vga_inst(
25
 
26
    .clk_26             (clk_26),
27
    .rst_n              (rst_n),
28
 
29
    //avalon slave for system overlay
30
    .sys_address        (8'd0),     //input [7:0]
31
    .sys_read           (1'd0),     //input
32
    .sys_readdata       (),         //output [15:0]
33
    .sys_write          (1'd0),     //input
34
    .sys_writedata      (32'd0),    //input
35
 
36
    //avalon slave vga io
37
    .io_b_address       (io_b_address),     //input [3:0]
38
    .io_b_read          (1'b0),     //input
39
    .io_b_readdata      (),         //output [7:0]
40
    .io_b_write         (io_b_write),     //input
41
    .io_b_writedata     (io_b_writedata),     //input [7:0]
42
 
43
    //avalon slave vga io
44
    .io_c_address       (io_c_address),     //input [3:0]
45
    .io_c_read          (1'b0),     //input
46
    .io_c_readdata      (),         //output [7:0]
47
    .io_c_write         (io_c_write),     //input
48
    .io_c_writedata     (io_c_writedata),     //input [7:0]
49
 
50
    //avalon slave vga io
51
    .io_d_address       (io_d_address),     //input [3:0]
52
    .io_d_read          (1'b0),     //input
53
    .io_d_readdata      (),         //output [7:0]
54
    .io_d_write         (io_d_write),     //input
55
    .io_d_writedata     (io_d_writedata),     //input [7:0]
56
 
57
    //avalon slave vga memory
58
    .mem_address        (mem_address),    //input [16:0]
59
    .mem_read           (1'b0),     //input
60
    .mem_readdata       (),         //output [7:0]
61
    .mem_write          (mem_write),     //input
62
    .mem_writedata      (mem_writedata),     //input [7:0]
63
 
64
    //vga
65
    .vga_clock      (), //output
66
    .vga_sync_n     (), //output
67
    .vga_blank_n    (), //output
68
    .vga_horiz_sync (), //output
69
    .vga_vert_sync  (), //output
70
 
71
    .vga_r          (), //output [7:0]
72
    .vga_g          (), //output [7:0]
73
    .vga_b          () //output [7:0]
74
);
75
 
76
initial begin
77
    clk_26 = 1'b0;
78
    forever #5 clk_26 = ~clk_26;
79
end
80
 
81
integer finished = 0;
82
 
83
`define WRITE_B(addr, data) \
84
    io_b_write = 1'b1;      \
85
    io_b_address = addr;    \
86
    io_b_writedata = data;  \
87
    #10                     \
88
    io_b_write = 1'b0;
89
 
90
`define WRITE_C(addr, data) \
91
    io_c_write = 1'b1;      \
92
    io_c_address = addr;    \
93
    io_c_writedata = data;  \
94
    #10                     \
95
    io_c_write = 1'b0;
96
 
97
`define WRITE_D(addr, data) \
98
    io_d_write = 1'b1;      \
99
    io_d_address = addr;    \
100
    io_d_writedata = data;  \
101
    #10                     \
102
    io_d_write = 1'b0;
103
 
104
`define WRITE_MEM(addr, data) \
105
    mem_write = 1'b1;      \
106
    mem_address = addr;    \
107
    mem_writedata = data;  \
108
    #10                     \
109
    mem_write = 1'b0;
110
 
111
reg [255:0] dumpfile_name;
112
initial begin
113
    if( $value$plusargs("dumpfile=%s", dumpfile_name) == 0 ) begin
114
        dumpfile_name = "default.vcd";
115
    end
116
 
117
    $dumpfile(dumpfile_name);
118
    $dumpvars(0);
119
    $dumpon();
120
 
121
    $display("START");
122
 
123
    //--------------------------------------------------------------------------
124
 
125
    io_c_write = 1'b0;
126
    io_c_address = 4'h0;
127
    io_c_writedata = 8'h00;
128
 
129
    io_b_write = 1'b0;
130
    io_b_address = 4'h0;
131
    io_b_writedata = 8'h00;
132
 
133
    io_d_write = 1'b0;
134
    io_d_address = 4'h0;
135
    io_d_writedata = 8'h00;
136
 
137
    mem_write     = 1'b0;
138
    mem_writedata = 8'h00;
139
    mem_address   = 17'h00000;
140
 
141
 
142
    rst_n = 1'b0;
143
    #10 rst_n = 1'b1;
144
 
145
    #10;
146
 
147
    // write color to dac
148
    `WRITE_C(4'h8, 8'h1)
149
 
150
    `WRITE_C(4'h9, 8'h00)
151
    `WRITE_C(4'h9, 8'h01)
152
    `WRITE_C(4'h9, 8'h00)
153
 
154
    `WRITE_C(4'h9, 8'h00)
155
    `WRITE_C(4'h9, 8'h02)
156
    `WRITE_C(4'h9, 8'h00)
157
 
158
    `WRITE_C(4'h9, 8'h00)
159
    `WRITE_C(4'h9, 8'h03)
160
    `WRITE_C(4'h9, 8'h00)
161
 
162
    `WRITE_C(4'h9, 8'h00)
163
    `WRITE_C(4'h9, 8'h04)
164
    `WRITE_C(4'h9, 8'h00)
165
 
166
    `WRITE_C(4'h9, 8'h00)
167
    `WRITE_C(4'h9, 8'h05)
168
    `WRITE_C(4'h9, 8'h00)
169
 
170
    `WRITE_C(4'h9, 8'h00)
171
    `WRITE_C(4'h9, 8'h06)
172
    `WRITE_C(4'h9, 8'h00)
173
 
174
    `WRITE_C(4'h9, 8'h00)
175
    `WRITE_C(4'h9, 8'h07)
176
    `WRITE_C(4'h9, 8'h00)
177
 
178
    `WRITE_C(4'h9, 8'h00)
179
    `WRITE_C(4'h9, 8'h08)
180
    `WRITE_C(4'h9, 8'h00)
181
 
182
    `WRITE_C(4'h9, 8'h00)
183
    `WRITE_C(4'h9, 8'h09)
184
    `WRITE_C(4'h9, 8'h00)
185
 
186
    `WRITE_C(4'h9, 8'h00)
187
    `WRITE_C(4'h9, 8'h0a)
188
    `WRITE_C(4'h9, 8'h00)
189
 
190
    `WRITE_C(4'h9, 8'h00)
191
    `WRITE_C(4'h9, 8'h0b)
192
    `WRITE_C(4'h9, 8'h00)
193
 
194
    `WRITE_C(4'h9, 8'h00)
195
    `WRITE_C(4'h9, 8'h0c)
196
    `WRITE_C(4'h9, 8'h00)
197
 
198
    `WRITE_C(4'h9, 8'h00)
199
    `WRITE_C(4'h9, 8'h0d)
200
    `WRITE_C(4'h9, 8'h00)
201
 
202
    `WRITE_C(4'h9, 8'h00)
203
    `WRITE_C(4'h9, 8'h0e)
204
    `WRITE_C(4'h9, 8'h00)
205
 
206
    `WRITE_C(4'h9, 8'h00)
207
    `WRITE_C(4'h9, 8'h0f)
208
    `WRITE_C(4'h9, 8'h00)
209
 
210
    `WRITE_C(4'h9, 8'h00)
211
    `WRITE_C(4'h9, 8'h10)
212
    `WRITE_C(4'h9, 8'h00)
213
 
214
    `WRITE_C(4'h9, 8'h00)
215
    `WRITE_C(4'h9, 8'h11)
216
    `WRITE_C(4'h9, 8'h00)
217
 
218
    `WRITE_C(4'h9, 8'h00)
219
    `WRITE_C(4'h9, 8'h12)
220
    `WRITE_C(4'h9, 8'h00)
221
 
222
    `WRITE_C(4'h9, 8'h00)
223
    `WRITE_C(4'h9, 8'h13)
224
    `WRITE_C(4'h9, 8'h00)
225
 
226
    `WRITE_C(4'h9, 8'h00)
227
    `WRITE_C(4'h9, 8'h14)
228
    `WRITE_C(4'h9, 8'h00)
229
 
230
    `WRITE_C(4'h9, 8'h00)
231
    `WRITE_C(4'h9, 8'h15)
232
    `WRITE_C(4'h9, 8'h00)
233
 
234
    `WRITE_C(4'h9, 8'h00)
235
    `WRITE_C(4'h9, 8'h16)
236
    `WRITE_C(4'h9, 8'h00)
237
 
238
    `WRITE_C(4'h9, 8'h00)
239
    `WRITE_C(4'h9, 8'h17)
240
    `WRITE_C(4'h9, 8'h00)
241
 
242
    //TEST mode 0x13
243
 
244
    //write pixel in mode 0x13
245
    //`WRITE_MEM(17'h0013F, 8'h01)
246
 
247
 
248
    //TEST mode 0x01
249
    /*
250
    //disable chained mode and odd/even mode
251
    `WRITE_C(4'h4, 8'h04);
252
    `WRITE_C(4'h5, 8'h06);
253
 
254
    //enable page 2 write
255
    `WRITE_C(4'h4, 8'h02)
256
    `WRITE_C(4'h5, 8'h04)
257
 
258
    //load font data
259
    `WRITE_MEM(17'h0, 8'h81);
260
    `WRITE_MEM(17'h1, 8'h99);
261
 
262
    //load sequencer
263
    `WRITE_C(4, 1)
264
        `WRITE_C(5, 8'h08)
265
    `WRITE_C(4, 2)
266
        `WRITE_C(5, 8'h03)
267
    `WRITE_C(4, 3)
268
        `WRITE_C(5, 8'h00)
269
    `WRITE_C(4, 4)
270
        `WRITE_C(5, 8'h02)
271
 
272
     //load misc
273
    `WRITE_C(2, 8'h67)
274
 
275
    //load crtc -- disable protect
276
    `WRITE_D(4, 5'h11)
277
    `WRITE_D(5, 8'h8E & 8'h7F);
278
 
279
    `WRITE_D(4, 5'h00)
280
        `WRITE_D(5, 8'h2d)
281
    `WRITE_D(4, 5'h01)
282
        `WRITE_D(5, 8'h27)
283
    `WRITE_D(4, 5'h02)
284
        `WRITE_D(5, 8'h28)
285
    `WRITE_D(4, 5'h03)
286
        `WRITE_D(5, 8'h90)
287
    `WRITE_D(4, 5'h04)
288
        `WRITE_D(5, 8'h2b)
289
    `WRITE_D(4, 5'h05)
290
        `WRITE_D(5, 8'ha0)
291
    `WRITE_D(4, 5'h06)
292
        `WRITE_D(5, 8'hbf)
293
    `WRITE_D(4, 5'h07)
294
        `WRITE_D(5, 8'h1f)
295
    `WRITE_D(4, 5'h08)
296
        `WRITE_D(5, 8'h00)
297
    `WRITE_D(4, 5'h09)
298
        `WRITE_D(5, 8'h4f)
299
    `WRITE_D(4, 5'h0A)
300
        `WRITE_D(5, 8'h0d)
301
    `WRITE_D(4, 5'h0B)
302
        `WRITE_D(5, 8'h0e)
303
    `WRITE_D(4, 5'h0C)
304
        `WRITE_D(5, 8'h00)
305
    `WRITE_D(4, 5'h0D)
306
        `WRITE_D(5, 8'h00)
307
    `WRITE_D(4, 5'h0E)
308
        `WRITE_D(5, 8'h00)
309
    `WRITE_D(4, 5'h0F)
310
        `WRITE_D(5, 8'h00)
311
    `WRITE_D(4, 5'h10)
312
        `WRITE_D(5, 8'h9c)
313
    `WRITE_D(4, 5'h11)
314
        `WRITE_D(5, 8'h8e)
315
    `WRITE_D(4, 5'h12)
316
        `WRITE_D(5, 8'h8f)
317
    `WRITE_D(4, 5'h13)
318
        `WRITE_D(5, 8'h14)
319
    `WRITE_D(4, 5'h14)
320
        `WRITE_D(5, 8'h1f)
321
    `WRITE_D(4, 5'h15)
322
        `WRITE_D(5, 8'h96)
323
    `WRITE_D(4, 5'h16)
324
        `WRITE_D(5, 8'hb9)
325
    `WRITE_D(4, 5'h17)
326
        `WRITE_D(5, 8'ha3)
327
    `WRITE_D(4, 5'h18)
328
        `WRITE_D(5, 8'hff)
329
 
330
    //load attrib
331
    `WRITE_C(0, 8'h20 | 8'h00)
332
        `WRITE_C(0, 8'h00)
333
    `WRITE_C(0, 8'h20 | 8'h01)
334
        `WRITE_C(0, 8'h01)
335
    `WRITE_C(0, 8'h20 | 8'h02)
336
        `WRITE_C(0, 8'h02)
337
    `WRITE_C(0, 8'h20 | 8'h03)
338
        `WRITE_C(0, 8'h03)
339
    `WRITE_C(0, 8'h20 | 8'h04)
340
        `WRITE_C(0, 8'h04)
341
    `WRITE_C(0, 8'h20 | 8'h05)
342
        `WRITE_C(0, 8'h05)
343
    `WRITE_C(0, 8'h20 | 8'h06)
344
        `WRITE_C(0, 8'h06)
345
    `WRITE_C(0, 8'h20 | 8'h07)
346
        `WRITE_C(0, 8'h07)
347
    `WRITE_C(0, 8'h20 | 8'h08)
348
        `WRITE_C(0, 8'h38)
349
    `WRITE_C(0, 8'h20 | 8'h09)
350
        `WRITE_C(0, 8'h39)
351
    `WRITE_C(0, 8'h20 | 8'h0A)
352
        `WRITE_C(0, 8'h3a)
353
    `WRITE_C(0, 8'h20 | 8'h0B)
354
        `WRITE_C(0, 8'h3b)
355
    `WRITE_C(0, 8'h20 | 8'h0C)
356
        `WRITE_C(0, 8'h3c)
357
    `WRITE_C(0, 8'h20 | 8'h0D)
358
        `WRITE_C(0, 8'h3d)
359
    `WRITE_C(0, 8'h20 | 8'h0E)
360
        `WRITE_C(0, 8'h3e)
361
    `WRITE_C(0, 8'h20 | 8'h0F)
362
        `WRITE_C(0, 8'h3f)
363
    `WRITE_C(0, 8'h20 | 8'h10)
364
        `WRITE_C(0, 8'h0c)
365
    `WRITE_C(0, 8'h20 | 8'h11)
366
        `WRITE_C(0, 8'h00)
367
    `WRITE_C(0, 8'h20 | 8'h12)
368
        `WRITE_C(0, 8'h0f)
369
    `WRITE_C(0, 8'h20 | 8'h13)
370
        `WRITE_C(0, 8'h08)
371
 
372
    //load graphic
373
    `WRITE_C(8'hE, 0)
374
        `WRITE_C(8'hF, 8'h00)
375
    `WRITE_C(8'hE, 1)
376
        `WRITE_C(8'hF, 8'h00)
377
    `WRITE_C(8'hE, 2)
378
        `WRITE_C(8'hF, 8'h00)
379
    `WRITE_C(8'hE, 3)
380
        `WRITE_C(8'hF, 8'h00)
381
    `WRITE_C(8'hE, 4)
382
        `WRITE_C(8'hF, 8'h00)
383
    `WRITE_C(8'hE, 5)
384
        `WRITE_C(8'hF, 8'h10)
385
    `WRITE_C(8'hE, 6)
386
        `WRITE_C(8'hF, 8'h0e)
387
    `WRITE_C(8'hE, 7)
388
        `WRITE_C(8'hF, 8'h0f)
389
    `WRITE_C(8'hE, 8)
390
        `WRITE_C(8'hF, 8'hff)
391
 
392
    `WRITE_MEM(17'h18001, 8'h01)
393
 
394
    `WRITE_MEM(17'h1804f, 8'h01)
395
    */
396
 
397
    //test mode 0x07
398
    /*
399
    //disable chained mode and odd/even mode
400
    `WRITE_C(4'h4, 8'h04);
401
    `WRITE_C(4'h5, 8'h06);
402
 
403
    //enable page 2 write
404
    `WRITE_C(4'h4, 8'h02)
405
    `WRITE_C(4'h5, 8'h04)
406
 
407
    //load font data
408
    `WRITE_MEM(17'h0, 8'h81);
409
    `WRITE_MEM(17'h1, 8'h99);
410
 
411
    //load sequencer
412
    `WRITE_C(4, 1)
413
        `WRITE_C(5, 8'h00)
414
    `WRITE_C(4, 2)
415
        `WRITE_C(5, 8'h03)
416
    `WRITE_C(4, 3)
417
        `WRITE_C(5, 8'h00)
418
    `WRITE_C(4, 4)
419
        `WRITE_C(5, 8'h02)
420
 
421
     //load misc
422
    `WRITE_C(2, 8'h66)
423
 
424
    //load crtc -- disable protect
425
    `WRITE_B(4, 5'h11)
426
    `WRITE_B(5, 8'h8E & 8'h7F);
427
 
428
    `WRITE_B(4, 5'h00)
429
        `WRITE_B(5, 8'h5f)
430
    `WRITE_B(4, 5'h01)
431
        `WRITE_B(5, 8'h4f)
432
    `WRITE_B(4, 5'h02)
433
        `WRITE_B(5, 8'h50)
434
    `WRITE_B(4, 5'h03)
435
        `WRITE_B(5, 8'h82)
436
    `WRITE_B(4, 5'h04)
437
        `WRITE_B(5, 8'h55)
438
    `WRITE_B(4, 5'h05)
439
        `WRITE_B(5, 8'h81)
440
    `WRITE_B(4, 5'h06)
441
        `WRITE_B(5, 8'hbf)
442
    `WRITE_B(4, 5'h07)
443
        `WRITE_B(5, 8'h1f)
444
    `WRITE_B(4, 5'h08)
445
        `WRITE_B(5, 8'h00)
446
    `WRITE_B(4, 5'h09)
447
        `WRITE_B(5, 8'h4f)
448
    `WRITE_B(4, 5'h0A)
449
        `WRITE_B(5, 8'h0d)
450
    `WRITE_B(4, 5'h0B)
451
        `WRITE_B(5, 8'h0e)
452
    `WRITE_B(4, 5'h0C)
453
        `WRITE_B(5, 8'h00)
454
    `WRITE_B(4, 5'h0D)
455
        `WRITE_B(5, 8'h00)
456
    `WRITE_B(4, 5'h0E)
457
        `WRITE_B(5, 8'h00)
458
    `WRITE_B(4, 5'h0F)
459
        `WRITE_B(5, 8'h00)
460
    `WRITE_B(4, 5'h10)
461
        `WRITE_B(5, 8'h9c)
462
    `WRITE_B(4, 5'h11)
463
        `WRITE_B(5, 8'h8e)
464
    `WRITE_B(4, 5'h12)
465
        `WRITE_B(5, 8'h8f)
466
    `WRITE_B(4, 5'h13)
467
        `WRITE_B(5, 8'h28)
468
    `WRITE_B(4, 5'h14)
469
        `WRITE_B(5, 8'h0f)
470
    `WRITE_B(4, 5'h15)
471
        `WRITE_B(5, 8'h96)
472
    `WRITE_B(4, 5'h16)
473
        `WRITE_B(5, 8'hb9)
474
    `WRITE_B(4, 5'h17)
475
        `WRITE_B(5, 8'ha3)
476
    `WRITE_B(4, 5'h18)
477
        `WRITE_B(5, 8'hff)
478
 
479
    //load attrib
480
    `WRITE_C(0, 8'h20 | 8'h00)
481
        `WRITE_C(0, 8'h00)
482
    `WRITE_C(0, 8'h20 | 8'h01)
483
        `WRITE_C(0, 8'h08)
484
    `WRITE_C(0, 8'h20 | 8'h02)
485
        `WRITE_C(0, 8'h08)
486
    `WRITE_C(0, 8'h20 | 8'h03)
487
        `WRITE_C(0, 8'h08)
488
    `WRITE_C(0, 8'h20 | 8'h04)
489
        `WRITE_C(0, 8'h08)
490
    `WRITE_C(0, 8'h20 | 8'h05)
491
        `WRITE_C(0, 8'h08)
492
    `WRITE_C(0, 8'h20 | 8'h06)
493
        `WRITE_C(0, 8'h08)
494
    `WRITE_C(0, 8'h20 | 8'h07)
495
        `WRITE_C(0, 8'h08)
496
    `WRITE_C(0, 8'h20 | 8'h08)
497
        `WRITE_C(0, 8'h10)
498
    `WRITE_C(0, 8'h20 | 8'h09)
499
        `WRITE_C(0, 8'h18)
500
    `WRITE_C(0, 8'h20 | 8'h0A)
501
        `WRITE_C(0, 8'h18)
502
    `WRITE_C(0, 8'h20 | 8'h0B)
503
        `WRITE_C(0, 8'h18)
504
    `WRITE_C(0, 8'h20 | 8'h0C)
505
        `WRITE_C(0, 8'h18)
506
    `WRITE_C(0, 8'h20 | 8'h0D)
507
        `WRITE_C(0, 8'h18)
508
    `WRITE_C(0, 8'h20 | 8'h0E)
509
        `WRITE_C(0, 8'h18)
510
    `WRITE_C(0, 8'h20 | 8'h0F)
511
        `WRITE_C(0, 8'h18)
512
    `WRITE_C(0, 8'h20 | 8'h10)
513
        `WRITE_C(0, 8'h0e)
514
    `WRITE_C(0, 8'h20 | 8'h11)
515
        `WRITE_C(0, 8'h00)
516
    `WRITE_C(0, 8'h20 | 8'h12)
517
        `WRITE_C(0, 8'h0f)
518
    `WRITE_C(0, 8'h20 | 8'h13)
519
        `WRITE_C(0, 8'h08)
520
 
521
    //load graphic
522
    `WRITE_C(8'hE, 0)
523
        `WRITE_C(8'hF, 8'h00)
524
    `WRITE_C(8'hE, 1)
525
        `WRITE_C(8'hF, 8'h00)
526
    `WRITE_C(8'hE, 2)
527
        `WRITE_C(8'hF, 8'h00)
528
    `WRITE_C(8'hE, 3)
529
        `WRITE_C(8'hF, 8'h00)
530
    `WRITE_C(8'hE, 4)
531
        `WRITE_C(8'hF, 8'h00)
532
    `WRITE_C(8'hE, 5)
533
        `WRITE_C(8'hF, 8'h10)
534
    `WRITE_C(8'hE, 6)
535
        `WRITE_C(8'hF, 8'h0a)
536
    `WRITE_C(8'hE, 7)
537
        `WRITE_C(8'hF, 8'h0f)
538
    `WRITE_C(8'hE, 8)
539
        `WRITE_C(8'hF, 8'hff)
540
 
541
    `WRITE_MEM(17'h10001, 8'h01)
542
 
543
    `WRITE_MEM(17'h1009f, 8'h01)
544
    */
545
 
546
    //test mode 0x04
547
 
548
    `WRITE_C(4, 1)
549
        `WRITE_C(5, 8'h09)
550
    `WRITE_C(4, 2)
551
        `WRITE_C(5, 8'h03)
552
    `WRITE_C(4, 3)
553
        `WRITE_C(5, 8'h00)
554
    `WRITE_C(4, 4)
555
        `WRITE_C(5, 8'h02)
556
 
557
     //load misc
558
    `WRITE_C(2, 8'h63)
559
 
560
    //load crtc -- disable protect
561
    `WRITE_D(4, 5'h11)
562
    `WRITE_D(5, 8'h8E & 8'h7F);
563
 
564
    `WRITE_D(4, 5'h00)
565
        `WRITE_D(5, 8'h2d)
566
    `WRITE_D(4, 5'h01)
567
        `WRITE_D(5, 8'h27)
568
    `WRITE_D(4, 5'h02)
569
        `WRITE_D(5, 8'h28)
570
    `WRITE_D(4, 5'h03)
571
        `WRITE_D(5, 8'h90)
572
    `WRITE_D(4, 5'h04)
573
        `WRITE_D(5, 8'h2b)
574
    `WRITE_D(4, 5'h05)
575
        `WRITE_D(5, 8'h80)
576
    `WRITE_D(4, 5'h06)
577
        `WRITE_D(5, 8'hbf)
578
    `WRITE_D(4, 5'h07)
579
        `WRITE_D(5, 8'h1f)
580
    `WRITE_D(4, 5'h08)
581
        `WRITE_D(5, 8'h00)
582
    `WRITE_D(4, 5'h09)
583
        `WRITE_D(5, 8'hc1)
584
    `WRITE_D(4, 5'h0A)
585
        `WRITE_D(5, 8'h00)
586
    `WRITE_D(4, 5'h0B)
587
        `WRITE_D(5, 8'h00)
588
    `WRITE_D(4, 5'h0C)
589
        `WRITE_D(5, 8'h00)
590
    `WRITE_D(4, 5'h0D)
591
        `WRITE_D(5, 8'h00)
592
    `WRITE_D(4, 5'h0E)
593
        `WRITE_D(5, 8'h00)
594
    `WRITE_D(4, 5'h0F)
595
        `WRITE_D(5, 8'h00)
596
    `WRITE_D(4, 5'h10)
597
        `WRITE_D(5, 8'h9c)
598
    `WRITE_D(4, 5'h11)
599
        `WRITE_D(5, 8'h8e)
600
    `WRITE_D(4, 5'h12)
601
        `WRITE_D(5, 8'h8f)
602
    `WRITE_D(4, 5'h13)
603
        `WRITE_D(5, 8'h14)
604
    `WRITE_D(4, 5'h14)
605
        `WRITE_D(5, 8'h00)
606
    `WRITE_D(4, 5'h15)
607
        `WRITE_D(5, 8'h96)
608
    `WRITE_D(4, 5'h16)
609
        `WRITE_D(5, 8'hb9)
610
    `WRITE_D(4, 5'h17)
611
        `WRITE_D(5, 8'ha2)
612
    `WRITE_D(4, 5'h18)
613
        `WRITE_D(5, 8'hff)
614
 
615
 
616
    //load attrib
617
    `WRITE_C(0, 8'h20 | 8'h00)
618
        `WRITE_C(0, 8'h00)
619
    `WRITE_C(0, 8'h20 | 8'h01)
620
        `WRITE_C(0, 8'h13)
621
    `WRITE_C(0, 8'h20 | 8'h02)
622
        `WRITE_C(0, 8'h15)
623
    `WRITE_C(0, 8'h20 | 8'h03)
624
        `WRITE_C(0, 8'h17)
625
    `WRITE_C(0, 8'h20 | 8'h04)
626
        `WRITE_C(0, 8'h02)
627
    `WRITE_C(0, 8'h20 | 8'h05)
628
        `WRITE_C(0, 8'h04)
629
    `WRITE_C(0, 8'h20 | 8'h06)
630
        `WRITE_C(0, 8'h06)
631
    `WRITE_C(0, 8'h20 | 8'h07)
632
        `WRITE_C(0, 8'h07)
633
    `WRITE_C(0, 8'h20 | 8'h08)
634
        `WRITE_C(0, 8'h10)
635
    `WRITE_C(0, 8'h20 | 8'h09)
636
        `WRITE_C(0, 8'h11)
637
    `WRITE_C(0, 8'h20 | 8'h0A)
638
        `WRITE_C(0, 8'h12)
639
    `WRITE_C(0, 8'h20 | 8'h0B)
640
        `WRITE_C(0, 8'h13)
641
    `WRITE_C(0, 8'h20 | 8'h0C)
642
        `WRITE_C(0, 8'h14)
643
    `WRITE_C(0, 8'h20 | 8'h0D)
644
        `WRITE_C(0, 8'h15)
645
    `WRITE_C(0, 8'h20 | 8'h0E)
646
        `WRITE_C(0, 8'h16)
647
    `WRITE_C(0, 8'h20 | 8'h0F)
648
        `WRITE_C(0, 8'h17)
649
    `WRITE_C(0, 8'h20 | 8'h10)
650
        `WRITE_C(0, 8'h01)
651
    `WRITE_C(0, 8'h20 | 8'h11)
652
        `WRITE_C(0, 8'h00)
653
    `WRITE_C(0, 8'h20 | 8'h12)
654
        `WRITE_C(0, 8'h03)
655
    `WRITE_C(0, 8'h20 | 8'h13)
656
        `WRITE_C(0, 8'h00)
657
 
658
    //load graphic
659
    `WRITE_C(8'hE, 0)
660
        `WRITE_C(8'hF, 8'h00)
661
    `WRITE_C(8'hE, 1)
662
        `WRITE_C(8'hF, 8'h00)
663
    `WRITE_C(8'hE, 2)
664
        `WRITE_C(8'hF, 8'h00)
665
    `WRITE_C(8'hE, 3)
666
        `WRITE_C(8'hF, 8'h00)
667
    `WRITE_C(8'hE, 4)
668
        `WRITE_C(8'hF, 8'h00)
669
    `WRITE_C(8'hE, 5)
670
        `WRITE_C(8'hF, 8'h30)
671
    `WRITE_C(8'hE, 6)
672
        `WRITE_C(8'hF, 8'h0f)
673
    `WRITE_C(8'hE, 7)
674
        `WRITE_C(8'hF, 8'h0f)
675
    `WRITE_C(8'hE, 8)
676
        `WRITE_C(8'hF, 8'hff)
677
 
678
    `WRITE_MEM(17'h18000, 8'hC0 | 8'h20 | 8'h04 | 8'h3);
679
 
680
    `WRITE_MEM(17'h1804f, 8'hC0 | 8'h20 | 8'h04 | 8'h3);
681
 
682
    while(finished == 0) begin
683
        if($time > 5000000) $finish_and_return(-1);
684
        #10;
685
 
686
        //$dumpflush();
687
    end
688
 
689
    #60;
690
 
691
    $dumpoff();
692
    $finish_and_return(0);
693
end
694
 
695
 
696
endmodule

powered by: WebSVN 2.1.0

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