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

Subversion Repositories wb_conbus

[/] [wb_conbus/] [trunk/] [bench/] [verilog/] [tb_wb_conbus_top.v] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 johny
/////////////////////////////////////////////////////////////////////
2
////                                                             ////
3
////  Top Level Test Bench                                       ////
4
////                                                             ////
5
////                                                             ////
6
////  Author: Rudolf Usselmann                                   ////
7
////          rudi@asics.ws                                      ////
8
////                                                             ////
9
////                                                             ////
10
////                                                             ////
11
/////////////////////////////////////////////////////////////////////
12
////                                                             ////
13
//// Copyright (C) 2000-2002 Rudolf Usselmann                    ////
14
////                         www.asics.ws                        ////
15
////                         rudi@asics.ws                       ////
16
////                                                             ////
17
//// This source file may be used and distributed without        ////
18
//// restriction provided that this copyright statement is not   ////
19
//// removed from the file and that any derivative work contains ////
20
//// the original copyright notice and the associated disclaimer.////
21
////                                                             ////
22
////     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
23
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
24
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
25
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
26
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
27
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
28
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
29
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
30
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
31
//// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
32
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
33
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
34
//// POSSIBILITY OF SUCH DAMAGE.                                 ////
35
////                                                             ////
36
/////////////////////////////////////////////////////////////////////
37
 
38
 
39
//
40
//
41
//  rewrite from test the wb_conbus module
42
//
43
//
44
 
45
 
46
`include "wb_conbus_defines.v"
47
 
48
module tb_wb_conbus;
49
 
50
reg             clk;
51
reg             rst;
52
 
53
// IO Prototypes
54
wire    [31:0]   m0_data_i;
55
wire    [31:0]   m0_data_o;
56
wire    [31:0]   m0_addr_i;
57
wire    [3:0]    m0_sel_i;
58
wire            m0_we_i;
59
wire            m0_cyc_i;
60
wire            m0_stb_i;
61
wire            m0_ack_o;
62
wire            m0_err_o;
63
wire            m0_rty_o;
64
wire    [31:0]   m1_data_i;
65
wire    [31:0]   m1_data_o;
66
wire    [31:0]   m1_addr_i;
67
wire    [3:0]    m1_sel_i;
68
wire            m1_we_i;
69
wire            m1_cyc_i;
70
wire            m1_stb_i;
71
wire            m1_ack_o;
72
wire            m1_err_o;
73
wire            m1_rty_o;
74
wire    [31:0]   m2_data_i;
75
wire    [31:0]   m2_data_o;
76
wire    [31:0]   m2_addr_i;
77
wire    [3:0]    m2_sel_i;
78
wire            m2_we_i;
79
wire            m2_cyc_i;
80
wire            m2_stb_i;
81
wire            m2_ack_o;
82
wire            m2_err_o;
83
wire            m2_rty_o;
84
wire    [31:0]   m3_data_i;
85
wire    [31:0]   m3_data_o;
86
wire    [31:0]   m3_addr_i;
87
wire    [3:0]    m3_sel_i;
88
wire            m3_we_i;
89
wire            m3_cyc_i;
90
wire            m3_stb_i;
91
wire            m3_ack_o;
92
wire            m3_err_o;
93
wire            m3_rty_o;
94
wire    [31:0]   m4_data_i;
95
wire    [31:0]   m4_data_o;
96
wire    [31:0]   m4_addr_i;
97
wire    [3:0]    m4_sel_i;
98
wire            m4_we_i;
99
wire            m4_cyc_i;
100
wire            m4_stb_i;
101
wire            m4_ack_o;
102
wire            m4_err_o;
103
wire            m4_rty_o;
104
wire    [31:0]   m5_data_i;
105
wire    [31:0]   m5_data_o;
106
wire    [31:0]   m5_addr_i;
107
wire    [3:0]    m5_sel_i;
108
wire            m5_we_i;
109
wire            m5_cyc_i;
110
wire            m5_stb_i;
111
wire            m5_ack_o;
112
wire            m5_err_o;
113
wire            m5_rty_o;
114
wire    [31:0]   m6_data_i;
115
wire    [31:0]   m6_data_o;
116
wire    [31:0]   m6_addr_i;
117
wire    [3:0]    m6_sel_i;
118
wire            m6_we_i;
119
wire            m6_cyc_i;
120
wire            m6_stb_i;
121
wire            m6_ack_o;
122
wire            m6_err_o;
123
wire            m6_rty_o;
124
wire    [31:0]   m7_data_i;
125
wire    [31:0]   m7_data_o;
126
wire    [31:0]   m7_addr_i;
127
wire    [3:0]    m7_sel_i;
128
wire            m7_we_i;
129
wire            m7_cyc_i;
130
wire            m7_stb_i;
131
wire            m7_ack_o;
132
wire            m7_err_o;
133
wire            m7_rty_o;
134
wire    [31:0]   s0_data_i;
135
wire    [31:0]   s0_data_o;
136
wire    [31:0]   s0_addr_o;
137
wire    [3:0]    s0_sel_o;
138
wire            s0_we_o;
139
wire            s0_cyc_o;
140
wire            s0_stb_o;
141
wire            s0_ack_i;
142
wire            s0_err_i;
143
wire            s0_rty_i;
144
wire    [31:0]   s1_data_i;
145
wire    [31:0]   s1_data_o;
146
wire    [31:0]   s1_addr_o;
147
wire    [3:0]    s1_sel_o;
148
wire            s1_we_o;
149
wire            s1_cyc_o;
150
wire            s1_stb_o;
151
wire            s1_ack_i;
152
wire            s1_err_i;
153
wire            s1_rty_i;
154
wire    [31:0]   s2_data_i;
155
wire    [31:0]   s2_data_o;
156
wire    [31:0]   s2_addr_o;
157
wire    [3:0]    s2_sel_o;
158
wire            s2_we_o;
159
wire            s2_cyc_o;
160
wire            s2_stb_o;
161
wire            s2_ack_i;
162
wire            s2_err_i;
163
wire            s2_rty_i;
164
wire    [31:0]   s3_data_i;
165
wire    [31:0]   s3_data_o;
166
wire    [31:0]   s3_addr_o;
167
wire    [3:0]    s3_sel_o;
168
wire            s3_we_o;
169
wire            s3_cyc_o;
170
wire            s3_stb_o;
171
wire            s3_ack_i;
172
wire            s3_err_i;
173
wire            s3_rty_i;
174
wire    [31:0]   s4_data_i;
175
wire    [31:0]   s4_data_o;
176
wire    [31:0]   s4_addr_o;
177
wire    [3:0]    s4_sel_o;
178
wire            s4_we_o;
179
wire            s4_cyc_o;
180
wire            s4_stb_o;
181
wire            s4_ack_i;
182
wire            s4_err_i;
183
wire            s4_rty_i;
184
wire    [31:0]   s5_data_i;
185
wire    [31:0]   s5_data_o;
186
wire    [31:0]   s5_addr_o;
187
wire    [3:0]    s5_sel_o;
188
wire            s5_we_o;
189
wire            s5_cyc_o;
190
wire            s5_stb_o;
191
wire            s5_ack_i;
192
wire            s5_err_i;
193
wire            s5_rty_i;
194
wire    [31:0]   s6_data_i;
195
wire    [31:0]   s6_data_o;
196
wire    [31:0]   s6_addr_o;
197
wire    [3:0]    s6_sel_o;
198
wire            s6_we_o;
199
wire            s6_cyc_o;
200
wire            s6_stb_o;
201
wire            s6_ack_i;
202
wire            s6_err_i;
203
wire            s6_rty_i;
204
wire    [31:0]   s7_data_i;
205
wire    [31:0]   s7_data_o;
206
wire    [31:0]   s7_addr_o;
207
wire    [3:0]    s7_sel_o;
208
wire            s7_we_o;
209
wire            s7_cyc_o;
210
wire            s7_stb_o;
211
wire            s7_ack_i;
212
wire            s7_err_i;
213
wire            s7_rty_i;
214
 
215
 
216
 
217
// Test Bench Variables
218
reg     [31:0]   wd_cnt;
219
integer         error_cnt;
220
integer         verbose;
221
 
222
// Misc Variables
223
 
224
/////////////////////////////////////////////////////////////////////
225
//
226
// Defines 
227
//
228
 
229
 
230
/////////////////////////////////////////////////////////////////////
231
//
232
// Simulation Initialization and Start up Section
233
//
234
 
235
 
236
initial
237
   begin
238
        $timeformat (-9, 1, " ns", 10);
239
 
240
        $display("\n\n");
241
        $display("*****************************************************");
242
        $display("* WISHBONE Connection Matrix Simulation started ... *");
243
        $display("*****************************************************");
244
        $display("\n");
245
 
246
`ifdef WAVES
247
        $shm_open("waves");
248
        $shm_probe("AS",test,"AS");
249
        $display("INFO: Signal dump enabled ...\n\n");
250
`endif
251
        wd_cnt = 0;
252
        error_cnt = 0;
253
        clk = 1;
254
        rst = 1;
255
        verbose = 1;
256
 
257
        repeat(5)       @(posedge clk);
258
        s0.delay = 1;
259
        s1.delay = 1;
260
        s2.delay = 1;
261
        s3.delay = 1;
262
        s4.delay = 1;
263
        s5.delay = 1;
264
        s6.delay = 1;
265
        s7.delay = 1;
266
 
267
        #1;
268
        rst = 0;
269
        repeat(5)       @(posedge clk);
270
 
271
        // HERE IS WHERE THE TEST CASES GO ...
272
 
273
if(1)   // Full Regression Run
274
   begin
275
        $display(" ......................................................");
276
        $display(" :                                                    :");
277
        $display(" :    Regression Run ...                              :");
278
        $display(" :....................................................:");
279
        verbose = 0;
280
 
281
        test_dp1;
282
//      test_rf;
283
//      test_arb1;
284
//      test_arb2;
285
        test_dp2;
286
 
287
   end
288
else
289
if(1)   // Debug Tests
290
   begin
291
        $display(" ......................................................");
292
        $display(" :                                                    :");
293
        $display(" :    Test Debug Testing ...                          :");
294
        $display(" :....................................................:");
295
 
296
        test_dp2;
297
 
298
   end
299
 
300
repeat(100)     @(posedge clk);
301
$finish;
302
end     // End of Initial
303
 
304
/////////////////////////////////////////////////////////////////////
305
//
306
// Clock Generation
307
//
308
 
309
always #5       clk = ~clk;
310
 
311
/////////////////////////////////////////////////////////////////////
312
//
313
// Watchdog Counter
314
//
315
 
316
always @(posedge clk)
317
        if(m0_ack_o | m1_ack_o | m2_ack_o | m3_ack_o |
318
                m4_ack_o | m5_ack_o | m6_ack_o | m7_ack_o)
319
                wd_cnt = 0;
320
        else
321
                wd_cnt = wd_cnt +1;
322
 
323
always @(wd_cnt)
324
        if(wd_cnt > 5000000)
325
           begin
326
                $display("\n*******************************************");
327
                $display("*** ERROR: Watchdog Counter Expired ... ***");
328
                $display("*******************************************\n");
329
                $finish;
330
           end
331
 
332
/////////////////////////////////////////////////////////////////////
333
//
334
// IO Monitors
335
//
336
 
337
/////////////////////////////////////////////////////////////////////
338
//
339
// WISHBONE Inter Connect
340
//
341
 
342
wb_conbus_top   #(4,
343
                4'h0,
344
                4,
345
                4'h1,
346
                4,
347
                4'h2,
348
                4'h3,
349
                4'h4,
350
                4'h5,
351
                4'h6,
352
                4'h7
353
                )
354
                conbus(
355
                .clk_i(         clk             ),
356
                .rst_i(         rst             ),
357
                .m0_dat_i(      m0_data_i       ),
358
                .m0_dat_o(      m0_data_o       ),
359
                .m0_adr_i(      m0_addr_i       ),
360
                .m0_sel_i(      m0_sel_i        ),
361
                .m0_we_i(       m0_we_i         ),
362
                .m0_cyc_i(      m0_cyc_i        ),
363
                .m0_stb_i(      m0_stb_i        ),
364
                .m0_ack_o(      m0_ack_o        ),
365
                .m0_err_o(      m0_err_o        ),
366
                .m0_rty_o(      m0_rty_o        ),
367
                .m1_dat_i(      m1_data_i       ),
368
                .m1_dat_o(      m1_data_o       ),
369
                .m1_adr_i(      m1_addr_i       ),
370
                .m1_sel_i(      m1_sel_i        ),
371
                .m1_we_i(       m1_we_i         ),
372
                .m1_cyc_i(      m1_cyc_i        ),
373
                .m1_stb_i(      m1_stb_i        ),
374
                .m1_ack_o(      m1_ack_o        ),
375
                .m1_err_o(      m1_err_o        ),
376
                .m1_rty_o(      m1_rty_o        ),
377
                .m2_dat_i(      m2_data_i       ),
378
                .m2_dat_o(      m2_data_o       ),
379
                .m2_adr_i(      m2_addr_i       ),
380
                .m2_sel_i(      m2_sel_i        ),
381
                .m2_we_i(       m2_we_i         ),
382
                .m2_cyc_i(      m2_cyc_i        ),
383
                .m2_stb_i(      m2_stb_i        ),
384
                .m2_ack_o(      m2_ack_o        ),
385
                .m2_err_o(      m2_err_o        ),
386
                .m2_rty_o(      m2_rty_o        ),
387
                .m3_dat_i(      m3_data_i       ),
388
                .m3_dat_o(      m3_data_o       ),
389
                .m3_adr_i(      m3_addr_i       ),
390
                .m3_sel_i(      m3_sel_i        ),
391
                .m3_we_i(       m3_we_i         ),
392
                .m3_cyc_i(      m3_cyc_i        ),
393
                .m3_stb_i(      m3_stb_i        ),
394
                .m3_ack_o(      m3_ack_o        ),
395
                .m3_err_o(      m3_err_o        ),
396
                .m3_rty_o(      m3_rty_o        ),
397
                .m4_dat_i(      m4_data_i       ),
398
                .m4_dat_o(      m4_data_o       ),
399
                .m4_adr_i(      m4_addr_i       ),
400
                .m4_sel_i(      m4_sel_i        ),
401
                .m4_we_i(       m4_we_i         ),
402
                .m4_cyc_i(      m4_cyc_i        ),
403
                .m4_stb_i(      m4_stb_i        ),
404
                .m4_ack_o(      m4_ack_o        ),
405
                .m4_err_o(      m4_err_o        ),
406
                .m4_rty_o(      m4_rty_o        ),
407
                .m5_dat_i(      m5_data_i       ),
408
                .m5_dat_o(      m5_data_o       ),
409
                .m5_adr_i(      m5_addr_i       ),
410
                .m5_sel_i(      m5_sel_i        ),
411
                .m5_we_i(       m5_we_i         ),
412
                .m5_cyc_i(      m5_cyc_i        ),
413
                .m5_stb_i(      m5_stb_i        ),
414
                .m5_ack_o(      m5_ack_o        ),
415
                .m5_err_o(      m5_err_o        ),
416
                .m5_rty_o(      m5_rty_o        ),
417
                .m6_dat_i(      m6_data_i       ),
418
                .m6_dat_o(      m6_data_o       ),
419
                .m6_adr_i(      m6_addr_i       ),
420
                .m6_sel_i(      m6_sel_i        ),
421
                .m6_we_i(       m6_we_i         ),
422
                .m6_cyc_i(      m6_cyc_i        ),
423
                .m6_stb_i(      m6_stb_i        ),
424
                .m6_ack_o(      m6_ack_o        ),
425
                .m6_err_o(      m6_err_o        ),
426
                .m6_rty_o(      m6_rty_o        ),
427
                .m7_dat_i(      m7_data_i       ),
428
                .m7_dat_o(      m7_data_o       ),
429
                .m7_adr_i(      m7_addr_i       ),
430
                .m7_sel_i(      m7_sel_i        ),
431
                .m7_we_i(       m7_we_i         ),
432
                .m7_cyc_i(      m7_cyc_i        ),
433
                .m7_stb_i(      m7_stb_i        ),
434
                .m7_ack_o(      m7_ack_o        ),
435
                .m7_err_o(      m7_err_o        ),
436
                .m7_rty_o(      m7_rty_o        ),
437
                .s0_dat_i(      s0_data_i       ),
438
                .s0_dat_o(      s0_data_o       ),
439
                .s0_adr_o(      s0_addr_o       ),
440
                .s0_sel_o(      s0_sel_o        ),
441
                .s0_we_o(       s0_we_o         ),
442
                .s0_cyc_o(      s0_cyc_o        ),
443
                .s0_stb_o(      s0_stb_o        ),
444
                .s0_ack_i(      s0_ack_i        ),
445
                .s0_err_i(      s0_err_i        ),
446
                .s0_rty_i(      s0_rty_i        ),
447
                .s1_dat_i(      s1_data_i       ),
448
                .s1_dat_o(      s1_data_o       ),
449
                .s1_adr_o(      s1_addr_o       ),
450
                .s1_sel_o(      s1_sel_o        ),
451
                .s1_we_o(       s1_we_o         ),
452
                .s1_cyc_o(      s1_cyc_o        ),
453
                .s1_stb_o(      s1_stb_o        ),
454
                .s1_ack_i(      s1_ack_i        ),
455
                .s1_err_i(      s1_err_i        ),
456
                .s1_rty_i(      s1_rty_i        ),
457
                .s2_dat_i(      s2_data_i       ),
458
                .s2_dat_o(      s2_data_o       ),
459
                .s2_adr_o(      s2_addr_o       ),
460
                .s2_sel_o(      s2_sel_o        ),
461
                .s2_we_o(       s2_we_o         ),
462
                .s2_cyc_o(      s2_cyc_o        ),
463
                .s2_stb_o(      s2_stb_o        ),
464
                .s2_ack_i(      s2_ack_i        ),
465
                .s2_err_i(      s2_err_i        ),
466
                .s2_rty_i(      s2_rty_i        ),
467
                .s3_dat_i(      s3_data_i       ),
468
                .s3_dat_o(      s3_data_o       ),
469
                .s3_adr_o(      s3_addr_o       ),
470
                .s3_sel_o(      s3_sel_o        ),
471
                .s3_we_o(       s3_we_o         ),
472
                .s3_cyc_o(      s3_cyc_o        ),
473
                .s3_stb_o(      s3_stb_o        ),
474
                .s3_ack_i(      s3_ack_i        ),
475
                .s3_err_i(      s3_err_i        ),
476
                .s3_rty_i(      s3_rty_i        ),
477
                .s4_dat_i(      s4_data_i       ),
478
                .s4_dat_o(      s4_data_o       ),
479
                .s4_adr_o(      s4_addr_o       ),
480
                .s4_sel_o(      s4_sel_o        ),
481
                .s4_we_o(       s4_we_o         ),
482
                .s4_cyc_o(      s4_cyc_o        ),
483
                .s4_stb_o(      s4_stb_o        ),
484
                .s4_ack_i(      s4_ack_i        ),
485
                .s4_err_i(      s4_err_i        ),
486
                .s4_rty_i(      s4_rty_i        ),
487
                .s5_dat_i(      s5_data_i       ),
488
                .s5_dat_o(      s5_data_o       ),
489
                .s5_adr_o(      s5_addr_o       ),
490
                .s5_sel_o(      s5_sel_o        ),
491
                .s5_we_o(       s5_we_o         ),
492
                .s5_cyc_o(      s5_cyc_o        ),
493
                .s5_stb_o(      s5_stb_o        ),
494
                .s5_ack_i(      s5_ack_i        ),
495
                .s5_err_i(      s5_err_i        ),
496
                .s5_rty_i(      s5_rty_i        ),
497
                .s6_dat_i(      s6_data_i       ),
498
                .s6_dat_o(      s6_data_o       ),
499
                .s6_adr_o(      s6_addr_o       ),
500
                .s6_sel_o(      s6_sel_o        ),
501
                .s6_we_o(       s6_we_o         ),
502
                .s6_cyc_o(      s6_cyc_o        ),
503
                .s6_stb_o(      s6_stb_o        ),
504
                .s6_ack_i(      s6_ack_i        ),
505
                .s6_err_i(      s6_err_i        ),
506
                .s6_rty_i(      s6_rty_i        ),
507
                .s7_dat_i(      s7_data_i       ),
508
                .s7_dat_o(      s7_data_o       ),
509
                .s7_adr_o(      s7_addr_o       ),
510
                .s7_sel_o(      s7_sel_o        ),
511
                .s7_we_o(       s7_we_o         ),
512
                .s7_cyc_o(      s7_cyc_o        ),
513
                .s7_stb_o(      s7_stb_o        ),
514
                .s7_ack_i(      s7_ack_i        ),
515
                .s7_err_i(      s7_err_i        ),
516
                .s7_rty_i(      s7_rty_i        )
517
                );
518
 
519
 
520
/////////////////////////////////////////////////////////////////////
521
//
522
// WISHBONE Master Models
523
//
524
 
525
wb_mast m0(     .clk(           clk             ),
526
                .rst(           ~rst            ),
527
                .adr(           m0_addr_i       ),
528
                .din(           m0_data_o       ),
529
                .dout(          m0_data_i       ),
530
                .cyc(           m0_cyc_i        ),
531
                .stb(           m0_stb_i        ),
532
                .sel(           m0_sel_i        ),
533
                .we(            m0_we_i         ),
534
                .ack(           m0_ack_o        ),
535
                .err(           m0_err_o        ),
536
                .rty(           m0_rty_o        )
537
                );
538
 
539
wb_mast m1(     .clk(           clk             ),
540
                .rst(           ~rst            ),
541
                .adr(           m1_addr_i       ),
542
                .din(           m1_data_o       ),
543
                .dout(          m1_data_i       ),
544
                .cyc(           m1_cyc_i        ),
545
                .stb(           m1_stb_i        ),
546
                .sel(           m1_sel_i        ),
547
                .we(            m1_we_i         ),
548
                .ack(           m1_ack_o        ),
549
                .err(           m1_err_o        ),
550
                .rty(           m1_rty_o        )
551
                );
552
 
553
wb_mast m2(     .clk(           clk             ),
554
                .rst(           ~rst            ),
555
                .adr(           m2_addr_i       ),
556
                .din(           m2_data_o       ),
557
                .dout(          m2_data_i       ),
558
                .cyc(           m2_cyc_i        ),
559
                .stb(           m2_stb_i        ),
560
                .sel(           m2_sel_i        ),
561
                .we(            m2_we_i         ),
562
                .ack(           m2_ack_o        ),
563
                .err(           m2_err_o        ),
564
                .rty(           m2_rty_o        )
565
                );
566
 
567
wb_mast m3(     .clk(           clk             ),
568
                .rst(           ~rst            ),
569
                .adr(           m3_addr_i       ),
570
                .din(           m3_data_o       ),
571
                .dout(          m3_data_i       ),
572
                .cyc(           m3_cyc_i        ),
573
                .stb(           m3_stb_i        ),
574
                .sel(           m3_sel_i        ),
575
                .we(            m3_we_i         ),
576
                .ack(           m3_ack_o        ),
577
                .err(           m3_err_o        ),
578
                .rty(           m3_rty_o        )
579
                );
580
 
581
wb_mast m4(     .clk(           clk             ),
582
                .rst(           ~rst            ),
583
                .adr(           m4_addr_i       ),
584
                .din(           m4_data_o       ),
585
                .dout(          m4_data_i       ),
586
                .cyc(           m4_cyc_i        ),
587
                .stb(           m4_stb_i        ),
588
                .sel(           m4_sel_i        ),
589
                .we(            m4_we_i         ),
590
                .ack(           m4_ack_o        ),
591
                .err(           m4_err_o        ),
592
                .rty(           m4_rty_o        )
593
                );
594
 
595
wb_mast m5(     .clk(           clk             ),
596
                .rst(           ~rst            ),
597
                .adr(           m5_addr_i       ),
598
                .din(           m5_data_o       ),
599
                .dout(          m5_data_i       ),
600
                .cyc(           m5_cyc_i        ),
601
                .stb(           m5_stb_i        ),
602
                .sel(           m5_sel_i        ),
603
                .we(            m5_we_i         ),
604
                .ack(           m5_ack_o        ),
605
                .err(           m5_err_o        ),
606
                .rty(           m5_rty_o        )
607
                );
608
 
609
wb_mast m6(     .clk(           clk             ),
610
                .rst(           ~rst            ),
611
                .adr(           m6_addr_i       ),
612
                .din(           m6_data_o       ),
613
                .dout(          m6_data_i       ),
614
                .cyc(           m6_cyc_i        ),
615
                .stb(           m6_stb_i        ),
616
                .sel(           m6_sel_i        ),
617
                .we(            m6_we_i         ),
618
                .ack(           m6_ack_o        ),
619
                .err(           m6_err_o        ),
620
                .rty(           m6_rty_o        )
621
                );
622
 
623
wb_mast m7(     .clk(           clk             ),
624
                .rst(           ~rst            ),
625
                .adr(           m7_addr_i       ),
626
                .din(           m7_data_o       ),
627
                .dout(          m7_data_i       ),
628
                .cyc(           m7_cyc_i        ),
629
                .stb(           m7_stb_i        ),
630
                .sel(           m7_sel_i        ),
631
                .we(            m7_we_i         ),
632
                .ack(           m7_ack_o        ),
633
                .err(           m7_err_o        ),
634
                .rty(           m7_rty_o        )
635
                );
636
 
637
 
638
/////////////////////////////////////////////////////////////////////
639
//
640
// WISHBONE Slave Models
641
//
642
 
643
wb_slv  s0(     .clk(           clk             ),
644
                .rst(           ~rst            ),
645
                .adr(           s0_addr_o       ),
646
                .din(           s0_data_o       ),
647
                .dout(          s0_data_i       ),
648
                .cyc(           s0_cyc_o        ),
649
                .stb(           s0_stb_o        ),
650
                .sel(           s0_sel_o        ),
651
                .we(            s0_we_o         ),
652
                .ack(           s0_ack_i        ),
653
                .err(           s0_err_i        ),
654
                .rty(           s0_rty_i        )
655
                );
656
 
657
wb_slv  s1(     .clk(           clk             ),
658
                .rst(           ~rst            ),
659
                .adr(           s1_addr_o       ),
660
                .din(           s1_data_o       ),
661
                .dout(          s1_data_i       ),
662
                .cyc(           s1_cyc_o        ),
663
                .stb(           s1_stb_o        ),
664
                .sel(           s1_sel_o        ),
665
                .we(            s1_we_o         ),
666
                .ack(           s1_ack_i        ),
667
                .err(           s1_err_i        ),
668
                .rty(           s1_rty_i        )
669
                );
670
 
671
wb_slv  s2(     .clk(           clk             ),
672
                .rst(           ~rst            ),
673
                .adr(           s2_addr_o       ),
674
                .din(           s2_data_o       ),
675
                .dout(          s2_data_i       ),
676
                .cyc(           s2_cyc_o        ),
677
                .stb(           s2_stb_o        ),
678
                .sel(           s2_sel_o        ),
679
                .we(            s2_we_o         ),
680
                .ack(           s2_ack_i        ),
681
                .err(           s2_err_i        ),
682
                .rty(           s2_rty_i        )
683
                );
684
 
685
wb_slv  s3(     .clk(           clk             ),
686
                .rst(           ~rst            ),
687
                .adr(           s3_addr_o       ),
688
                .din(           s3_data_o       ),
689
                .dout(          s3_data_i       ),
690
                .cyc(           s3_cyc_o        ),
691
                .stb(           s3_stb_o        ),
692
                .sel(           s3_sel_o        ),
693
                .we(            s3_we_o         ),
694
                .ack(           s3_ack_i        ),
695
                .err(           s3_err_i        ),
696
                .rty(           s3_rty_i        )
697
                );
698
 
699
wb_slv  s4(     .clk(           clk             ),
700
                .rst(           ~rst            ),
701
                .adr(           s4_addr_o       ),
702
                .din(           s4_data_o       ),
703
                .dout(          s4_data_i       ),
704
                .cyc(           s4_cyc_o        ),
705
                .stb(           s4_stb_o        ),
706
                .sel(           s4_sel_o        ),
707
                .we(            s4_we_o         ),
708
                .ack(           s4_ack_i        ),
709
                .err(           s4_err_i        ),
710
                .rty(           s4_rty_i        )
711
                );
712
 
713
wb_slv  s5(     .clk(           clk             ),
714
                .rst(           ~rst            ),
715
                .adr(           s5_addr_o       ),
716
                .din(           s5_data_o       ),
717
                .dout(          s5_data_i       ),
718
                .cyc(           s5_cyc_o        ),
719
                .stb(           s5_stb_o        ),
720
                .sel(           s5_sel_o        ),
721
                .we(            s5_we_o         ),
722
                .ack(           s5_ack_i        ),
723
                .err(           s5_err_i        ),
724
                .rty(           s5_rty_i        )
725
                );
726
 
727
wb_slv  s6(     .clk(           clk             ),
728
                .rst(           ~rst            ),
729
                .adr(           s6_addr_o       ),
730
                .din(           s6_data_o       ),
731
                .dout(          s6_data_i       ),
732
                .cyc(           s6_cyc_o        ),
733
                .stb(           s6_stb_o        ),
734
                .sel(           s6_sel_o        ),
735
                .we(            s6_we_o         ),
736
                .ack(           s6_ack_i        ),
737
                .err(           s6_err_i        ),
738
                .rty(           s6_rty_i        )
739
                );
740
 
741
wb_slv  s7(     .clk(           clk             ),
742
                .rst(           ~rst            ),
743
                .adr(           s7_addr_o       ),
744
                .din(           s7_data_o       ),
745
                .dout(          s7_data_i       ),
746
                .cyc(           s7_cyc_o        ),
747
                .stb(           s7_stb_o        ),
748
                .sel(           s7_sel_o        ),
749
                .we(            s7_we_o         ),
750
                .ack(           s7_ack_i        ),
751
                .err(           s7_err_i        ),
752
                .rty(           s7_rty_i        )
753
                );
754
 
755
 
756
`include "tests.v"
757
 
758
endmodule
759
 

powered by: WebSVN 2.1.0

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