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

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [soc/] [rtl/] [adv_debug_sys/] [Hardware/] [adv_dbg_if/] [bench/] [full_system/] [xsv_fpga_top.v] - Blame information for rev 21

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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