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

Subversion Repositories adv_debug_sys

[/] [adv_debug_sys/] [tags/] [ADS_RELEASE_1_2_0/] [Hardware/] [adv_dbg_if/] [bench/] [full_system/] [xsv_fpga_top.v] - Blame information for rev 38

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

Line No. Rev Author Line
1 3 nyawn
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
////  OR1K test application for XESS XSV board, Top Level         ////
4
////                                                              ////
5
////  This file is part of the OR1K test application              ////
6
////  http://www.opencores.org/cores/or1k/                        ////
7
////                                                              ////
8
////  Description                                                 ////
9
////  Top level instantiating all the blocks.                     ////
10
////                                                              ////
11
////  To Do:                                                      ////
12
////   - nothing really                                           ////
13
////                                                              ////
14
////  Author(s):                                                  ////
15
////      - Damjan Lampret, lampret@opencores.org                 ////
16
////                                                              ////
17
//////////////////////////////////////////////////////////////////////
18
////                                                              ////
19
//// Copyright (C) 2001 Authors                                   ////
20
////                                                              ////
21
//// This source file may be used and distributed without         ////
22
//// restriction provided that this copyright statement is not    ////
23
//// removed from the file and that any derivative work contains  ////
24
//// the original copyright notice and the associated disclaimer. ////
25
////                                                              ////
26
//// This source file is free software; you can redistribute it   ////
27
//// and/or modify it under the terms of the GNU Lesser General   ////
28
//// Public License as published by the Free Software Foundation; ////
29
//// either version 2.1 of the License, or (at your option) any   ////
30
//// later version.                                               ////
31
////                                                              ////
32
//// This source is distributed in the hope that it will be       ////
33
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
34
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
35
//// PURPOSE.  See the GNU Lesser General Public License for more ////
36
//// details.                                                     ////
37
////                                                              ////
38
//// You should have received a copy of the GNU Lesser General    ////
39
//// Public License along with this source; if not, download it   ////
40
//// from http://www.opencores.org/lgpl.shtml                     ////
41
////                                                              ////
42
//////////////////////////////////////////////////////////////////////
43
//
44
// CVS Revision History
45
//
46
// $Log: xsv_fpga_top.v,v $
47
// Revision 1.3  2008/07/11 08:22:17  Nathan
48
// Added code to make the native TAP simulate a Xilinx BSCAN device, and code to simulate the behavior of the xilinx_internal_jtag module.  The adv_dbg_module should get inputs that emulate the xilinx_internal_jtag device outputs.
49
//
50
// Revision 1.10  2004/04/05 08:44:35  lampret
51
// Merged branch_qmem into main tree.
52
//
53
// Revision 1.8  2003/04/07 21:05:58  lampret
54
// WB = 1/2 RISC clock test code enabled.
55
//
56
// Revision 1.7  2003/04/07 01:28:17  lampret
57
// Adding OR1200_CLMODE_1TO2 test code.
58
//
59
// Revision 1.6  2002/08/12 05:35:12  lampret
60
// rty_i are unused - tied to zero.
61
//
62
// Revision 1.5  2002/03/29 20:58:51  lampret
63
// Changed hardcoded address for fake MC to use a define.
64
//
65
// Revision 1.4  2002/03/29 16:30:47  lampret
66
// Fixed port names that changed.
67
//
68
// Revision 1.3  2002/03/29 15:50:03  lampret
69
// Added response from memory controller (addr 0x60000000)
70
//
71
// Revision 1.2  2002/03/21 17:39:16  lampret
72
// Fixed some typos
73
//
74
//
75
 
76
`include "xsv_fpga_defines.v"
77
//`include "bench_defines.v"
78
 
79
module xsv_fpga_top (
80
 
81
        //
82
        // Global signals
83
        //
84
        //clk,
85
        //rstn,
86
 
87
        // UART signals
88
        uart_stx, uart_srx
89
 
90
        // SDRAM signals
91
        /*
92
        sdram_clk_i, sdram_addr_o, sdram_ba_o, sdram_dqm_o,
93
        sdram_we_o, sdram_cas_o, sdram_ras_o,
94
        sdram_cke_o, sdram_cs_o, sdram_data_io
95
        */
96
);
97
 
98
//
99
// I/O Ports
100
//
101
 
102
//
103
// Global
104
//
105
//input                 clk;
106
//input                 rstn;
107
 
108
// UART
109
input uart_srx;
110
output uart_stx;
111
 
112
// SDRAM
113
/*
114
input sdram_clk_i;
115
output [11:0] sdram_addr_o;
116
output [1:0] sdram_ba_o;
117
output [3:0] sdram_dqm_o;
118
output sdram_we_o;
119
output sdram_cas_o;
120
output sdram_ras_o;
121
output sdram_cke_o;
122
output sdram_cs_o;
123
inout [31:0] sdram_data_io;
124
*/
125
 
126
//
127
// Internal wires
128
//
129
 
130
wire clk;
131
wire rstn;
132
 
133
//
134
// Debug core master i/f wires
135
//
136
wire    [31:0]           wb_dm_adr_o;
137
wire    [31:0]           wb_dm_dat_i;
138
wire    [31:0]           wb_dm_dat_o;
139
wire    [3:0]            wb_dm_sel_o;
140
wire                    wb_dm_we_o;
141
wire                    wb_dm_stb_o;
142
wire                    wb_dm_cyc_o;
143
wire                    wb_dm_cab_o;
144
wire                    wb_dm_ack_i;
145
wire                    wb_dm_err_i;
146
 
147
//
148
// Debug <-> RISC wires
149
//
150
wire    [3:0]            dbg_lss;
151
wire    [1:0]            dbg_is;
152
wire    [10:0]   dbg_wp;
153
wire                    dbg_bp;
154
wire    [31:0]   dbg_dat_dbg;
155
wire    [31:0]   dbg_dat_risc;
156
wire    [31:0]   dbg_adr;
157
wire                    dbg_ewt;
158
wire                    dbg_stall;
159
wire                    dbg_we;
160
wire                    dbg_stb;
161
wire                    dbg_ack;
162
wire     dbg_cpu0_rst;
163
 
164
//
165
// TAP<->dbg_interface
166
//      
167
wire debug_rst;
168
wire debug_select;
169
wire debug_tdi;
170
wire debug_tdo;
171
wire shift_dr;
172
wire pause_dr;
173
wire update_dr;
174
wire capture_dr;
175
wire drck;  // To emulate the BSCAN_VIRTEX/SPARTAN devices
176
 
177
//
178
// RISC instruction master i/f wires
179
//
180
wire    [31:0]           wb_rim_adr_o;
181
wire                    wb_rim_cyc_o;
182
wire    [31:0]           wb_rim_dat_i;
183
wire    [31:0]           wb_rim_dat_o;
184
wire    [3:0]            wb_rim_sel_o;
185
wire                    wb_rim_ack_i;
186
wire                    wb_rim_err_i;
187
wire                    wb_rim_rty_i = 1'b0;
188
wire                    wb_rim_we_o;
189
wire                    wb_rim_stb_o;
190
wire                    wb_rim_cab_o;
191
//wire  [31:0]          wb_rif_adr;
192
//reg                   prefix_flash;
193
 
194
//
195
// RISC data master i/f wires
196
//
197
wire    [31:0]           wb_rdm_adr_o;
198
wire                    wb_rdm_cyc_o;
199
wire    [31:0]           wb_rdm_dat_i;
200
wire    [31:0]           wb_rdm_dat_o;
201
wire    [3:0]            wb_rdm_sel_o;
202
wire                    wb_rdm_ack_i;
203
wire                    wb_rdm_err_i;
204
wire                    wb_rdm_rty_i = 1'b0;
205
wire                    wb_rdm_we_o;
206
wire                    wb_rdm_stb_o;
207
wire                    wb_rdm_cab_o;
208
 
209
//
210
// RISC misc
211
//
212
//wire  [19:0]          pic_ints;
213
 
214
//
215
// SRAM controller slave i/f wires
216
//
217
wire    [31:0]           wb_ss_dat_i;
218
wire    [31:0]           wb_ss_dat_o;
219
wire    [31:0]           wb_ss_adr_i;
220
wire    [3:0]            wb_ss_sel_i;
221
wire                    wb_ss_we_i;
222
wire                    wb_ss_cyc_i;
223
wire                    wb_ss_stb_i;
224
wire                    wb_ss_ack_o;
225
wire                    wb_ss_err_o;
226
 
227
 
228
//
229
// UART16550 core slave i/f wires
230
//
231
wire    [31:0]           wb_us_dat_i;
232
wire    [31:0]           wb_us_dat_o;
233
wire    [31:0]           wb_us_adr_i;
234
wire    [3:0]            wb_us_sel_i;
235
wire                    wb_us_we_i;
236
wire                    wb_us_cyc_i;
237
wire                    wb_us_stb_i;
238
wire                    wb_us_ack_o;
239
wire                    wb_us_err_o;
240
 
241
//
242
// UART external i/f wires
243
//
244
wire                    uart_stx;
245
wire                    uart_srx;
246
 
247
 
248
//
249
// Memory controller core slave i/f wires
250
//
251
/*
252
wire    [31:0]          wb_mem_dat_i;
253
wire    [31:0]          wb_mem_dat_o;
254
wire    [31:0]          wb_mem_adr_i;
255
wire    [3:0]           wb_mem_sel_i;
256
wire                    wb_mem_we_i;
257
wire                    wb_mem_cyc_i;
258
wire                    wb_mem_stb_i;
259
wire                    wb_mem_ack_o;
260
wire                    wb_mem_err_o;
261
 
262
// Internal mem control wires
263
wire [7:0] mc_cs;
264
wire [12:0] mc_addr_o;
265
 
266
 
267
// Memory control external wires
268
wire sdram_clk_i;
269
wire [11:0] sdram_addr_o;
270
wire [1:0] sdram_ba_o;
271
wire [3:0] sdram_dqm_o;
272
wire sdram_we_o;
273
wire sdram_cas_o;
274
wire sdram_ras_o;
275
wire sdram_cke_o;
276
wire sdram_cs_o;
277
wire [31:0] sdram_data_io;
278
*/
279
 
280
//
281
// JTAG wires
282
//
283
wire                    jtag_tdi;
284
wire                    jtag_tms;
285
wire                    jtag_tck;
286
wire                    jtag_trst;
287
wire                    jtag_tdo;
288
 
289
 
290
//
291
// Reset debounce
292
//
293
reg      rstn_debounce;
294
wire     rst_r;
295
reg      wb_rst;
296
reg      cpu_rst;
297
 
298
//
299
// Global clock
300
//
301
`ifdef OR1200_CLMODE_1TO2
302
reg                     wb_clk;
303
`else
304
wire                    wb_clk;
305
`endif
306
 
307
//
308
// Reset debounce
309
//
310
always @(posedge wb_clk or negedge rstn)
311
        if (~rstn)
312
                rstn_debounce <= 1'b0;
313
        else
314
                rstn_debounce <= #1 1'b1;
315
 
316
assign rst_r = ~rstn_debounce;
317
//assign dbg_trst = rstn_debounce & jtag_trst;
318
 
319
//
320
// Reset debounce
321
//
322
always @(posedge wb_clk)
323
        wb_rst <= #1 rst_r;
324
 
325
always @ (posedge wb_clk)
326
        cpu_rst <= dbg_cpu0_rst | rst_r;
327
 
328
//
329
// This is purely for testing 1/2 WB clock
330
// This should never be used when implementing in
331
// an FPGA. It is used only for simulation regressions.
332
//
333
`ifdef OR1200_CLMODE_1TO2
334
initial wb_clk = 0;
335
always @(posedge clk)
336
        wb_clk = ~wb_clk;
337
`else
338
//
339
// Some Xilinx P&R tools need this
340
//
341
`ifdef TARGET_VIRTEX
342
IBUFG IBUFG1 (
343
        .O      ( wb_clk ),
344
        .I      ( clk )
345
);
346
`else
347
assign wb_clk = clk;
348
`endif
349
`endif // OR1200_CLMODE_1TO2
350
 
351
//
352
// Unused WISHBONE signals
353
//
354
assign wb_us_err_o = 1'b0;
355
 
356
 
357
assign jtag_tvref = 1'b1;
358
assign jtag_tgnd = 1'b0;
359
 
360
// JTAG / adv. debug control testbench
361
adv_debug_tb tb (
362
 
363
.jtag_tck_o(jtag_tck),
364
.jtag_tms_o(jtag_tms),
365
.jtag_tdo_o(jtag_tdi),
366
.jtag_tdi_i(jtag_tdo),
367
 
368
.wb_clk_o(clk),
369
.sys_rstn_o(rstn)
370
);
371
 
372
//
373
// JTAG TAP controller instantiation
374
//
375
tap_top tap (
376
                // JTAG pads
377
                .tms_pad_i(jtag_tms),
378
                .tck_pad_i(jtag_tck),
379
                .trstn_pad_i(1'b1),
380
                .tdi_pad_i(jtag_tdi),
381
                .tdo_pad_o(jtag_tdo),
382
                .tdo_padoe_o(),
383
 
384
                // TAP states
385
                                   .test_logic_reset_o(debug_rst),
386
                                   .run_test_idle_o(),
387
                .shift_dr_o(shift_dr),
388
                .pause_dr_o(),
389
                .update_dr_o(update_dr),
390
                .capture_dr_o(capture_dr),
391
 
392
                // Select signals for boundary scan or mbist
393
                .extest_select_o(),
394
                .sample_preload_select_o(),
395
                .mbist_select_o(),
396
                .debug_select_o(debug_select),
397
 
398
                // TDO signal that is connected to TDI of sub-modules.
399
                .tdo_o(debug_tdi),
400
 
401
                // TDI signals from sub-modules
402
                .debug_tdi_i(debug_tdo),    // from debug module
403
                .bs_chain_tdi_i(1'b0), // from Boundary Scan Chain
404
                .mbist_tdi_i(1'b0)     // from Mbist Chain
405
              );
406
 
407
// This is taken from the xilinx bscan_virtex4.v module
408
// It simulates the DRCK output of a BSCAN_* block
409
assign drck = ((debug_select & !shift_dr & !capture_dr) ||
410
               (debug_select & shift_dr & jtag_tck) ||
411
               (debug_select & capture_dr & jtag_tck));
412
 
413
reg xshift;
414
reg xcapture;
415
reg xupdate;
416
reg xselect;
417
 
418
// TAP state outputs are also delayed half a cycle.
419
always @(negedge jtag_tck)
420
begin
421
   xshift = shift_dr;
422
   xcapture = capture_dr;
423
   xupdate = update_dr;
424
   xselect = debug_select;
425
end
426
 
427
//////////////////////////////////////////               
428
 
429
 
430
wire tck2;
431
assign tck2 = (drck & !xupdate);
432
 
433
reg update2;
434
 
435
always @ (posedge xupdate or posedge xcapture or negedge xselect)
436
begin
437
   if(xupdate) update2 <= 1'b1;
438
   else if(xcapture) update2 <= 1'b0;
439
   else if(!xselect) update2 <= 1'b0;
440
end
441
 
442
//
443
// Instantiation of the development i/f
444
//
445
dbg_top dbg_top  (
446
 
447
        // JTAG pins
448
        .tck_i  ( tck2 ),
449
        .tdi_i  ( debug_tdi ),
450
        .tdo_o  ( debug_tdo ),
451
        .rst_i  ( debug_rst ),
452
 
453
     // TAP states
454
     .shift_dr_i( xshift ),
455
     .pause_dr_i( pause_dr ),
456
     .update_dr_i( update2 ),
457
     .capture_dr_i (xcapture),
458
 
459
     // Instructions
460
     .debug_select_i( xselect ),
461
 
462
        // RISC signals
463
        .cpu0_clk_i             ( wb_clk ),
464
        .cpu0_addr_o    ( dbg_adr ),
465
        .cpu0_data_i    ( dbg_dat_risc ),
466
        .cpu0_data_o    ( dbg_dat_dbg ),
467
        .cpu0_bp_i              ( dbg_bp ),
468
        .cpu0_stall_o   ( dbg_stall ),
469
        .cpu0_stb_o     ( dbg_stb ),
470
        .cpu0_we_o              ( dbg_we ),
471
        .cpu0_ack_i     ( dbg_ack ),
472
        .cpu0_rst_o             ( dbg_cpu0_rst),
473
 
474
        // WISHBONE common
475
        .wb_clk_i       ( wb_clk ),
476
 
477
        // WISHBONE master interface
478
        .wb_adr_o       ( wb_dm_adr_o ),
479
        .wb_dat_o       ( wb_dm_dat_o ),
480
        .wb_dat_i       ( wb_dm_dat_i ),
481
        .wb_cyc_o       ( wb_dm_cyc_o ),
482
        .wb_stb_o       ( wb_dm_stb_o ),
483
        .wb_sel_o       ( wb_dm_sel_o ),
484
        .wb_we_o        ( wb_dm_we_o  ),
485
        .wb_ack_i       ( wb_dm_ack_i ),
486
        .wb_cab_o       ( wb_dm_cab_o ),
487
        .wb_err_i       ( wb_dm_err_i ),
488
        .wb_cti_o   (),
489
        .wb_bte_o   ()
490
);
491
 
492
 
493
//
494
// Instantiation of the OR1200 RISC
495
//
496
or1200_top or1200_top (
497
 
498
        // Common
499
        .rst_i          ( cpu_rst ),
500
        .clk_i          ( clk ),
501
`ifdef OR1200_CLMODE_1TO2
502
        .clmode_i       ( 2'b01 ),
503
`else
504
`ifdef OR1200_CLMODE_1TO4
505
        .clmode_i       ( 2'b11 ),
506
`else
507
        .clmode_i       ( 2'b00 ),
508
`endif
509
`endif
510
 
511
        // WISHBONE Instruction Master
512
        .iwb_clk_i      ( wb_clk ),
513
        .iwb_rst_i      ( wb_rst ),
514
        .iwb_cyc_o      ( wb_rim_cyc_o ),
515
        .iwb_adr_o      ( wb_rim_adr_o ),
516
        .iwb_dat_i      ( wb_rim_dat_i ),
517
        .iwb_dat_o      ( wb_rim_dat_o ),
518
        .iwb_sel_o      ( wb_rim_sel_o ),
519
        .iwb_ack_i      ( wb_rim_ack_i ),
520
        .iwb_err_i      ( wb_rim_err_i ),
521
        .iwb_rty_i      ( wb_rim_rty_i ),
522
        .iwb_we_o       ( wb_rim_we_o  ),
523
        .iwb_stb_o      ( wb_rim_stb_o ),
524
        .iwb_cab_o      ( wb_rim_cab_o ),
525
 
526
        // WISHBONE Data Master
527
        .dwb_clk_i      ( wb_clk ),
528
        .dwb_rst_i      ( wb_rst ),
529
        .dwb_cyc_o      ( wb_rdm_cyc_o ),
530
        .dwb_adr_o      ( wb_rdm_adr_o ),
531
        .dwb_dat_i      ( wb_rdm_dat_i ),
532
        .dwb_dat_o      ( wb_rdm_dat_o ),
533
        .dwb_sel_o      ( wb_rdm_sel_o ),
534
        .dwb_ack_i      ( wb_rdm_ack_i ),
535
        .dwb_err_i      ( wb_rdm_err_i ),
536
        .dwb_rty_i      ( wb_rdm_rty_i ),
537
        .dwb_we_o       ( wb_rdm_we_o  ),
538
        .dwb_stb_o      ( wb_rdm_stb_o ),
539
        .dwb_cab_o      ( wb_rdm_cab_o ),
540
 
541
        // Debug
542
        .dbg_stall_i    ( dbg_stall ),  // Set to 1'b0 if debug is absent / broken
543
        .dbg_dat_i      ( dbg_dat_dbg ),
544
        .dbg_adr_i      ( dbg_adr ),
545
        .dbg_ewt_i      ( 1'b0 ),
546
        .dbg_lss_o      ( ),
547
        .dbg_is_o       ( ),
548
        .dbg_wp_o       ( ),
549
        .dbg_bp_o       ( dbg_bp ),
550
        .dbg_dat_o      ( dbg_dat_risc ),
551
        .dbg_ack_o      ( dbg_ack ),
552
        .dbg_stb_i      ( dbg_stb ),
553
        .dbg_we_i       ( dbg_we ),
554
 
555
        // Power Management
556
        .pm_clksd_o     ( ),
557
        .pm_cpustall_i  ( 1'b0 ),
558
        .pm_dc_gate_o   ( ),
559
        .pm_ic_gate_o   ( ),
560
        .pm_dmmu_gate_o ( ),
561
        .pm_immu_gate_o ( ),
562
        .pm_tt_gate_o   ( ),
563
        .pm_cpu_gate_o  ( ),
564
        .pm_wakeup_o    ( ),
565
        .pm_lvolt_o     ( ),
566
 
567
        // Interrupts
568
        .pic_ints_i     (20'b0)
569
);
570
 
571
 
572
//
573
// Instantiation of the On-chip RAM controller
574
//
575
onchip_ram_top  #(
576
        .dwidth  (32),
577
        .size_bytes(16384)
578
        ) onchip_ram_top (
579
 
580
        // WISHBONE common
581
        .wb_clk_i       ( wb_clk ),
582
        .wb_rst_i       ( wb_rst ),
583
 
584
        // WISHBONE slave
585
        .wb_dat_i       ( wb_ss_dat_i ),
586
        .wb_dat_o       ( wb_ss_dat_o ),
587
        .wb_adr_i       ( wb_ss_adr_i ),
588
        .wb_sel_i       ( wb_ss_sel_i ),
589
        .wb_we_i        ( wb_ss_we_i  ),
590
        .wb_cyc_i       ( wb_ss_cyc_i ),
591
        .wb_stb_i       ( wb_ss_stb_i ),
592
        .wb_ack_o       ( wb_ss_ack_o ),
593
        .wb_err_o       ( wb_ss_err_o )
594
);
595
 
596
//
597
// Instantiation of the UART16550
598
//
599
uart_top uart_top (
600
 
601
        // WISHBONE common
602
        .wb_clk_i       ( wb_clk ),
603
        .wb_rst_i       ( wb_rst ),
604
 
605
        // WISHBONE slave
606
        .wb_adr_i       ( wb_us_adr_i[4:0] ),
607
        .wb_dat_i       ( wb_us_dat_i ),
608
        .wb_dat_o       ( wb_us_dat_o ),
609
        .wb_we_i        ( wb_us_we_i  ),
610
        .wb_stb_i       ( wb_us_stb_i ),
611
        .wb_cyc_i       ( wb_us_cyc_i ),
612
        .wb_ack_o       ( wb_us_ack_o ),
613
        .wb_sel_i       ( wb_us_sel_i ),
614
 
615
        // Interrupt request
616
        .int_o          ( ),
617
 
618
        // UART signals
619
        // serial input/output
620
        .stx_pad_o      ( uart_stx ),
621
        .srx_pad_i      ( uart_srx ),
622
 
623
        // modem signals
624
        .rts_pad_o      ( ),
625
        .cts_pad_i      ( 1'b0 ),
626
        .dtr_pad_o      ( ),
627
        .dsr_pad_i      ( 1'b0 ),
628
        .ri_pad_i       ( 1'b0 ),
629
        .dcd_pad_i      ( 1'b0 )
630
);
631
 
632
/*
633
mc_wrapper mc_wrapper (
634
        .clk_i ( wb_clk ),
635
        .rst_i ( wb_rst ),
636
        .clk_mem_i ( sdram_clk_i ),
637
 
638
        .wb_data_i ( wb_mem_dat_i ),
639
        .wb_data_o ( wb_mem_dat_o ),
640
        .wb_addr_i ( wb_mem_adr_i ),
641
        .wb_sel_i ( wb_mem_sel_i ),
642
        .wb_we_i ( wb_mem_we_i ),
643
        .wb_cyc_i ( wb_mem_cyc_i ),
644
        .wb_stb_i ( wb_mem_stb_i ),
645
        .wb_ack_o ( wb_mem_ack_o ),
646
        .wb_err_o ( wb_mem_err_o ),
647
 
648
        .susp_req_i ( 1'b0 ),
649
        .resume_req_i ( 1'b0 ),
650
        .suspended_o (),
651
        .poc_o ( ),  // This is an output so the rest of the system can configure itself
652
 
653
        .sdram_addr_o ( mc_addr_o ),
654
        .sdram_ba_o ( sdram_ba_o ),
655
        .sdram_cas_n_o ( sdram_cas_o ),
656
        .sdram_ras_n_o ( sdram_ras_o ),
657
        .sdram_cke_n_o ( sdram_cke_o ),
658
 
659
        .mc_dqm_o ( sdram_dqm_o  ),
660
        .mc_we_n_o ( sdram_we_o ),
661
        .mc_oe_n_o ( ),
662
        .mc_data_io ( sdram_data_io ),
663
        .mc_parity_io ( ),
664
        .mc_cs_n_o ( mc_cs )
665
        );
666
 
667
assign sdram_cs_o = mc_cs[0];
668
assign sdram_addr_o = mc_addr_o[11:0];
669
*/
670
 
671
//
672
// Instantiation of the Traffic COP
673
//
674
wb_conbus_top #(.s0_addr_w  (`APP_ADDR_DEC_W),
675
         .s0_addr    (`APP_ADDR_SDRAM),
676
         .s1_addr_w  (`APP_ADDR_DEC2_W),
677
         .s1_addr    (`APP_ADDR_OCRAM),
678
         .s27_addr_w (`APP_ADDR_DECP_W),
679
         .s2_addr    (`APP_ADDR_VGA),
680
         .s3_addr    (`APP_ADDR_ETH),
681
         .s4_addr    (`APP_ADDR_AUDIO),
682
         .s5_addr    (`APP_ADDR_UART),
683
         .s6_addr    (`APP_ADDR_PS2),
684
         .s7_addr    (`APP_ADDR_RES1)
685
        ) tc_top (
686
 
687
        // WISHBONE common
688
        .clk_i  ( wb_clk ),
689
        .rst_i  ( wb_rst ),
690
 
691
        // WISHBONE Initiator 0
692
        .m0_cyc_i       ( 1'b0 ),
693
        .m0_stb_i       ( 1'b0 ),
694
        .m0_cab_i       ( 1'b0 ),
695
        .m0_adr_i       ( 32'h0000_0000 ),
696
        .m0_sel_i       ( 4'b0000 ),
697
        .m0_we_i        ( 1'b0 ),
698
        .m0_dat_i       ( 32'h0000_0000 ),
699
        .m0_dat_o       ( ),
700
        .m0_ack_o       ( ),
701
        .m0_err_o       ( ),
702
 
703
        // WISHBONE Initiator 1
704
        .m1_cyc_i       ( 1'b0 ),
705
        .m1_stb_i       ( 1'b0 ),
706
        .m1_cab_i       ( 1'b0 ),
707
        .m1_adr_i       ( 32'h0000_0000 ),
708
        .m1_sel_i       ( 4'b0000 ),
709
        .m1_we_i        ( 1'b0 ),
710
        .m1_dat_i       ( 32'h0000_0000 ),
711
        .m1_dat_o       ( ),
712
        .m1_ack_o       ( ),
713
        .m1_err_o       ( ),
714
 
715
        // WISHBONE Initiator 2
716
        .m2_cyc_i       ( 1'b0 ),
717
        .m2_stb_i       ( 1'b0 ),
718
        .m2_cab_i       ( 1'b0 ),
719
        .m2_adr_i       ( 32'h0000_0000 ),
720
        .m2_sel_i       ( 4'b0000 ),
721
        .m2_we_i        ( 1'b0 ),
722
        .m2_dat_i       ( 32'h0000_0000 ),
723
        .m2_dat_o       ( ),
724
        .m2_ack_o       ( ),
725
        .m2_err_o       ( ),
726
 
727
        // WISHBONE Initiator 3
728
        .m3_cyc_i       ( wb_dm_cyc_o ),
729
        .m3_stb_i       ( wb_dm_stb_o ),
730
        .m3_cab_i       ( wb_dm_cab_o ),
731
        .m3_adr_i       ( wb_dm_adr_o ),
732
        .m3_sel_i       ( wb_dm_sel_o ),
733
        .m3_we_i        ( wb_dm_we_o  ),
734
        .m3_dat_i       ( wb_dm_dat_o ),
735
        .m3_dat_o       ( wb_dm_dat_i ),
736
        .m3_ack_o       ( wb_dm_ack_i ),
737
        .m3_err_o       ( wb_dm_err_i ),
738
 
739
        // WISHBONE Initiator 4
740
        .m4_cyc_i       ( wb_rdm_cyc_o ),
741
        .m4_stb_i       ( wb_rdm_stb_o ),
742
        .m4_cab_i       ( wb_rdm_cab_o ),
743
        .m4_adr_i       ( wb_rdm_adr_o ),
744
        .m4_sel_i       ( wb_rdm_sel_o ),
745
        .m4_we_i        ( wb_rdm_we_o  ),
746
        .m4_dat_i       ( wb_rdm_dat_o ),
747
        .m4_dat_o       ( wb_rdm_dat_i ),
748
        .m4_ack_o       ( wb_rdm_ack_i ),
749
        .m4_err_o       ( wb_rdm_err_i ),
750
 
751
        // WISHBONE Initiator 5
752
        .m5_cyc_i       ( wb_rim_cyc_o ),
753
        .m5_stb_i       ( wb_rim_stb_o ),
754
        .m5_cab_i       ( wb_rim_cab_o ),
755
        .m5_adr_i       ( wb_rim_adr_o ),
756
        .m5_sel_i       ( wb_rim_sel_o ),
757
        .m5_we_i        ( wb_rim_we_o  ),
758
        .m5_dat_i       ( wb_rim_dat_o ),
759
        .m5_dat_o       ( wb_rim_dat_i ),
760
        .m5_ack_o       ( wb_rim_ack_i ),
761
        .m5_err_o       ( wb_rim_err_i ),
762
 
763
        // WISHBONE Initiator 6
764
        .m6_cyc_i       ( 1'b0 ),
765
        .m6_stb_i       ( 1'b0 ),
766
        .m6_cab_i       ( 1'b0 ),
767
        .m6_adr_i       ( 32'h0000_0000 ),
768
        .m6_sel_i       ( 4'b0000 ),
769
        .m6_we_i        ( 1'b0 ),
770
        .m6_dat_i       ( 32'h0000_0000 ),
771
        .m6_dat_o       ( ),
772
        .m6_ack_o       ( ),
773
        .m6_err_o       ( ),
774
 
775
        // WISHBONE Initiator 7
776
        .m7_cyc_i       ( 1'b0 ),
777
        .m7_stb_i       ( 1'b0 ),
778
        .m7_cab_i       ( 1'b0 ),
779
        .m7_adr_i       ( 32'h0000_0000 ),
780
        .m7_sel_i       ( 4'b0000 ),
781
        .m7_we_i        ( 1'b0 ),
782
        .m7_dat_i       ( 32'h0000_0000 ),
783
        .m7_dat_o       ( ),
784
        .m7_ack_o       ( ),
785
        .m7_err_o       ( ),
786
 
787
        // WISHBONE Target 0
788
        .s0_cyc_o       ( ),
789
        .s0_stb_o       ( ),
790
        .s0_cab_o       ( ),
791
        .s0_adr_o       ( ),
792
        .s0_sel_o       ( ),
793
        .s0_we_o        ( ),
794
        .s0_dat_o       ( ),
795
        .s0_dat_i       ( 32'h0000_0000 ),
796
        .s0_ack_i       ( 1'b0 ),
797
        .s0_err_i       ( 1'b0 ),
798
        .s0_rty_i ( 1'b0 ),
799
        /*
800
        .s0_cyc_o       ( wb_mem_cyc_i ),
801
        .s0_stb_o       ( wb_mem_stb_i ),
802
        .s0_cab_o       ( wb_mem_cab_i ),
803
        .s0_adr_o       ( wb_mem_adr_i ),
804
        .s0_sel_o       ( wb_mem_sel_i ),
805
        .s0_we_o        ( wb_mem_we_i ),
806
        .s0_dat_o       ( wb_mem_dat_i ),
807
        .s0_dat_i       ( wb_mem_dat_o ),
808
        .s0_ack_i       ( wb_mem_ack_o ),
809
        .s0_err_i       ( wb_mem_err_o ),
810
        .s0_rty_i ( 1'b0),
811
        */
812
 
813
        // WISHBONE Target 1
814
        .s1_cyc_o       ( wb_ss_cyc_i ),
815
        .s1_stb_o       ( wb_ss_stb_i ),
816
        .s1_cab_o       ( wb_ss_cab_i ),
817
        .s1_adr_o       ( wb_ss_adr_i ),
818
        .s1_sel_o       ( wb_ss_sel_i ),
819
        .s1_we_o        ( wb_ss_we_i  ),
820
        .s1_dat_o       ( wb_ss_dat_i ),
821
        .s1_dat_i       ( wb_ss_dat_o ),
822
        .s1_ack_i       ( wb_ss_ack_o ),
823
        .s1_err_i       ( wb_ss_err_o ),
824
        .s1_rty_i ( 1'b0 ),
825
 
826
        // WISHBONE Target 2
827
        .s2_cyc_o       ( ),
828
        .s2_stb_o       ( ),
829
        .s2_cab_o       ( ),
830
        .s2_adr_o       ( ),
831
        .s2_sel_o       ( ),
832
        .s2_we_o        ( ),
833
        .s2_dat_o       ( ),
834
        .s2_dat_i       ( 32'h0000_0000 ),
835
        .s2_ack_i       ( 1'b0 ),
836
        .s2_err_i       ( 1'b0 ),
837
        .s2_rty_i ( 1'b0 ),
838
 
839
        // WISHBONE Target 3
840
        .s3_cyc_o       ( ),
841
        .s3_stb_o       ( ),
842
        .s3_cab_o       ( ),
843
        .s3_adr_o       ( ),
844
        .s3_sel_o       ( ),
845
        .s3_we_o        ( ),
846
        .s3_dat_o       ( ),
847
        .s3_dat_i       ( 32'h0000_0000 ),
848
        .s3_ack_i       ( 1'b0 ),
849
        .s3_err_i       ( 1'b0 ),
850
        .s3_rty_i ( 1'b0),
851
 
852
        // WISHBONE Target 4
853
        .s4_cyc_o       ( ),
854
        .s4_stb_o       ( ),
855
        .s4_cab_o       ( ),
856
        .s4_adr_o       ( ),
857
        .s4_sel_o       ( ),
858
        .s4_we_o        ( ),
859
        .s4_dat_o       ( ),
860
        .s4_dat_i       ( 32'h0000_0000 ),
861
        .s4_ack_i       ( 1'b0 ),
862
        .s4_err_i       ( 1'b0 ),
863
        .s4_rty_i ( 1'b0),
864
 
865
        // WISHBONE Target 5
866
        .s5_cyc_o       ( wb_us_cyc_i ),
867
        .s5_stb_o       ( wb_us_stb_i ),
868
        .s5_cab_o       ( wb_us_cab_i ),
869
        .s5_adr_o       ( wb_us_adr_i ),
870
        .s5_sel_o       ( wb_us_sel_i ),
871
        .s5_we_o        ( wb_us_we_i  ),
872
        .s5_dat_o       ( wb_us_dat_i ),
873
        .s5_dat_i       ( wb_us_dat_o ),
874
        .s5_ack_i       ( wb_us_ack_o ),
875
        .s5_err_i       ( wb_us_err_o ),
876
        .s5_rty_i ( 1'b0 ),
877
 
878
        // WISHBONE Target 6
879
        .s6_cyc_o       ( ),
880
        .s6_stb_o       ( ),
881
        .s6_cab_o       ( ),
882
        .s6_adr_o       ( ),
883
        .s6_sel_o       ( ),
884
        .s6_we_o        ( ),
885
        .s6_dat_o       ( ),
886
        .s6_dat_i       ( 32'h0000_0000 ),
887
        .s6_ack_i       ( 1'b0 ),
888
        .s6_err_i       ( 1'b0 ),
889
        .s6_rty_i ( 1'b0),
890
 
891
        // WISHBONE Target 7
892
        .s7_cyc_o       ( ),
893
        .s7_stb_o       ( ),
894
        .s7_cab_o       ( ),
895
        .s7_adr_o       ( ),
896
        .s7_sel_o       ( ),
897
        .s7_we_o        ( ),
898
        .s7_dat_o       ( ),
899
        .s7_dat_i       ( 32'h0000_0000 ),
900
        .s7_ack_i       ( 1'b0 ),
901
        .s7_err_i       ( 1'b0 ),
902
        .s7_rty_i ( 1'b0)
903
 
904
);
905
 
906
//initial begin
907
//  $dumpvars(0);
908
//  $dumpfile("dump.vcd");
909
//end
910
 
911
endmodule

powered by: WebSVN 2.1.0

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