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

Subversion Repositories or1k

[/] [or1k/] [tags/] [first/] [orp/] [orp_soc/] [rtl/] [verilog/] [xsv_fpga_top.v] - Blame information for rev 769

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

Line No. Rev Author Line
1 746 lampret
//////////////////////////////////////////////////////////////////////
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: not supported by cvs2svn $
47
//
48
 
49
`include "xfpga_defines.v"
50
 
51
module xsv_fpga_top (
52
 
53
        //
54
        // Global signals
55
        //
56
        clk, rstn,
57
 
58
        //
59
        // Flash chip
60
        //
61
        flash_rstn, flash_cen, flash_oen, flash_wen,
62
        flash_rdy, flash_d, flash_a,
63
 
64
        //
65
        // SRAM right bank
66
        //
67
        sram_r_cen, sram_r_oen, sram_r0_wen,
68
        sram_r1_wen, sram_r_d, sram_r_a,
69
 
70
        //
71
        // SRAM left bank
72
        //
73
        sram_l_cen, sram_l_oen, sram_l0_wen,
74
        sram_l1_wen, sram_l_d, sram_l_a,
75
 
76
`ifdef APP_VGA_RAMDAC
77
 
78
        //
79
        // VGA RAMDAC
80
        //
81
        ramdac_pixclk, ramdac_hsyncn, ramdac_vsync, ramdac_blank,
82
        ramdac_p, ramdac_rdn, ramdac_wrn, ramdac_rs, ramdac_d,
83
`else
84
        //
85
        // VGA Direct
86
        //
87
        vga_blank, vga_pclk, vga_hsyncn, vga_vsyncn,
88
        vga_r, vga_g, vga_b,
89
 
90
`endif
91
 
92
        //
93
        // Stereo Codec
94
        //
95
        codec_mclk, codec_lrclk, codec_sclk,
96
        codec_sdin, codec_sdout,
97
 
98
        //
99
        // Ethernet
100
        //
101
        eth_col, eth_crs, eth_trste, eth_tx_clk,
102
        eth_tx_en, eth_tx_er, eth_txd, eth_rx_clk,
103
        eth_rx_dv, eth_rx_er, eth_rxd, eth_fds_mdint,
104
        eth_mdc, eth_mdio,
105
 
106
        //
107
        // Switches
108
        //
109
        sw,
110
 
111
        //
112
        // PS/2 keyboard
113
        //
114
        ps2_clk, ps2_data,
115
 
116
        //
117
        // CPLD
118
        //
119
        tdmfrm, tdmrx, tdmtx
120
);
121
 
122
//
123
// I/O Ports
124
//
125
 
126
//
127
// Global
128
//
129
input                   clk;
130
input                   rstn;
131
 
132
//
133
// Flash
134
//
135
output                  flash_rstn;
136
output                  flash_cen;
137
output                  flash_oen;
138
output                  flash_wen;
139
input                   flash_rdy;
140
inout   [7:0]            flash_d;
141
inout   [20:0]           flash_a;
142
 
143
//
144
// SRAM Right
145
//
146
output                  sram_r_cen;
147
output                  sram_r1_wen;
148
output                  sram_r0_wen;
149
output                  sram_r_oen;
150
output  [18:0]           sram_r_a;
151
inout   [15:0]           sram_r_d;
152
 
153
//
154
// SRAM Left
155
//
156
output                  sram_l_cen;
157
output                  sram_l0_wen;
158
output                  sram_l1_wen;
159
output                  sram_l_oen;
160
output  [18:0]           sram_l_a;
161
inout   [15:0]           sram_l_d;
162
 
163
`ifdef APP_VGA_RAMDAC
164
 
165
//
166
// VGA RAMDAC
167
//
168
output                  ramdac_pixclk;
169
output                  ramdac_hsyncn;
170
output                  ramdac_vsync;
171
output                  ramdac_blank;
172
output  [7:0]            ramdac_p;
173
output                  ramdac_rdn;
174
output                  ramdac_wrn;
175
output  [2:0]            ramdac_rs;
176
inout   [7:0]            ramdac_d;
177
 
178
`else
179
 
180
//
181
// VGA Direct
182
//
183
output                  vga_pclk;
184
output                  vga_blank;
185
output                  vga_hsyncn;
186
output                  vga_vsyncn;
187
output  [3:0]            vga_r;
188
output  [3:0]            vga_g;
189
output  [3:0]            vga_b;
190
 
191
`endif
192
 
193
//
194
// Stereo Codec
195
//
196
output                  codec_mclk;
197
output                  codec_lrclk;
198
output                  codec_sclk;
199
output                  codec_sdin;
200
input                   codec_sdout;
201
 
202
//
203
// Ethernet
204
//
205
output                  eth_tx_er;
206
input                   eth_tx_clk;
207
output                  eth_tx_en;
208
output  [3:0]            eth_txd;
209
input                   eth_rx_er;
210
input                   eth_rx_clk;
211
input                   eth_rx_dv;
212
input   [3:0]            eth_rxd;
213
input                   eth_col;
214
input                   eth_crs;
215
output                  eth_trste;
216
input                   eth_fds_mdint;
217
inout                   eth_mdio;
218
output                  eth_mdc;
219
 
220
//
221
// Switches
222
//
223
input   [2:1]           sw;
224
 
225
//
226
// PS/2 keyboard
227
//
228
inout                   ps2_clk;
229
inout                   ps2_data;
230
 
231
//
232
// CPLD TDM
233
//
234
input                   tdmfrm;
235
input                   tdmrx;
236
output                  tdmtx;
237
 
238
 
239
//
240
// Internal wires
241
//
242
 
243
//
244
// VGA core slave i/f wires
245
//
246
wire    [31:0]           wb_vs_adr_i;
247
wire    [31:0]           wb_vs_dat_i;
248
wire    [31:0]           wb_vs_dat_o;
249
wire    [3:0]            wb_vs_sel_i;
250
wire                    wb_vs_we_i;
251
wire                    wb_vs_stb_i;
252
wire                    wb_vs_cyc_i;
253
wire                    wb_vs_ack_o;
254
wire                    wb_vs_err_o;
255
 
256
//
257
// VGA core master i/f wires
258
//
259
wire    [31:0]           wb_vm_adr_o;
260
wire    [31:0]           wb_vm_dat_i;
261
wire    [3:0]            wb_vm_sel_o;
262
wire                    wb_vm_we_o;
263
wire                    wb_vm_stb_o;
264
wire                    wb_vm_cyc_o;
265
wire                    wb_vm_cab_o;
266
wire                    wb_vm_ack_i;
267
wire                    wb_vm_err_i;
268
 
269
//
270
// VGA CRT wires
271
//
272
wire    [4:0]            vga_r_int;
273
wire    [5:0]            vga_g_int;
274
wire    [4:0]            vga_b_int;
275
wire                    crt_hsync;
276
wire                    crt_vsync;
277
 
278
//
279
// Debug core master i/f wires
280
//
281
wire    [31:0]           wb_dm_adr_o;
282
wire    [31:0]           wb_dm_dat_i;
283
wire    [31:0]           wb_dm_dat_o;
284
wire    [3:0]            wb_dm_sel_o;
285
wire                    wb_dm_we_o;
286
wire                    wb_dm_stb_o;
287
wire                    wb_dm_cyc_o;
288
wire                    wb_dm_cab_o;
289
wire                    wb_dm_ack_i;
290
wire                    wb_dm_err_i;
291
 
292
//
293
// Debug <-> RISC wires
294
//
295
wire    [3:0]            dbg_lss;
296
wire    [1:0]            dbg_is;
297
wire    [10:0]           dbg_wp;
298
wire                    dbg_bp;
299
wire    [31:0]           dbg_dat_dbg;
300
wire    [31:0]           dbg_dat_risc;
301
wire    [31:0]           dbg_adr;
302
wire                    dbg_ewt;
303
wire                    dbg_stall;
304
wire    [2:0]            dbg_op;
305
 
306
//
307
// RISC instruction master i/f wires
308
//
309
wire    [31:0]           wb_rim_adr_o;
310
wire                    wb_rim_cyc_o;
311
wire    [31:0]           wb_rim_dat_i;
312
wire    [31:0]           wb_rim_dat_o;
313
wire    [3:0]            wb_rim_sel_o;
314
wire                    wb_rim_ack_i;
315
wire                    wb_rim_err_i;
316
wire                    wb_rim_rty_i;
317
wire                    wb_rim_we_o;
318
wire                    wb_rim_stb_o;
319
wire                    wb_rim_cab_o;
320
wire    [31:0]           wb_rif_adr;
321
reg                     prefix_flash;
322
 
323
//
324
// RISC data master i/f wires
325
//
326
wire    [31:0]           wb_rdm_adr_o;
327
wire                    wb_rdm_cyc_o;
328
wire    [31:0]           wb_rdm_dat_i;
329
wire    [31:0]           wb_rdm_dat_o;
330
wire    [3:0]            wb_rdm_sel_o;
331
wire                    wb_rdm_ack_i;
332
wire                    wb_rdm_err_i;
333
wire                    wb_rdm_rty_i;
334
wire                    wb_rdm_we_o;
335
wire                    wb_rdm_stb_o;
336
wire                    wb_rdm_cab_o;
337
 
338
 
339
//
340
// RISC misc
341
//
342
wire    [19:0]           pic_ints;
343
 
344
//
345
// SRAM controller slave i/f wires
346
//
347
wire    [31:0]           wb_ss_dat_i;
348
wire    [31:0]           wb_ss_dat_o;
349
wire    [31:0]           wb_ss_adr_i;
350
wire    [3:0]            wb_ss_sel_i;
351
wire                    wb_ss_we_i;
352
wire                    wb_ss_cyc_i;
353
wire                    wb_ss_stb_i;
354
wire                    wb_ss_ack_o;
355
wire                    wb_ss_err_o;
356
 
357
//
358
// SRAM external wires
359
//
360
wire    [15:0]           sram_r_d_o;
361
wire    [15:0]           sram_l_d_o;
362
wire                    sram_d_oe;
363
 
364
//
365
// Flash controller slave i/f wires
366
//
367
wire    [31:0]           wb_fs_dat_i;
368
wire    [31:0]           wb_fs_dat_o;
369
wire    [31:0]           wb_fs_adr_i;
370
wire    [3:0]            wb_fs_sel_i;
371
wire                    wb_fs_we_i;
372
wire                    wb_fs_cyc_i;
373
wire                    wb_fs_stb_i;
374
wire                    wb_fs_ack_o;
375
wire                    wb_fs_err_o;
376
 
377
//
378
// Audio core slave i/f wires
379
//
380
wire    [31:0]           wb_as_dat_i;
381
wire    [31:0]           wb_as_dat_o;
382
wire    [31:0]           wb_as_adr_i;
383
wire    [3:0]            wb_as_sel_i;
384
wire                    wb_as_we_i;
385
wire                    wb_as_cyc_i;
386
wire                    wb_as_stb_i;
387
wire                    wb_as_ack_o;
388
wire                    wb_as_err_o;
389
 
390
//
391
// Audio core master i/f wires
392
//
393
wire    [31:0]           wb_am_dat_o;
394
wire    [31:0]           wb_am_dat_i;
395
wire    [31:0]           wb_am_adr_o;
396
wire    [3:0]            wb_am_sel_o;
397
wire                    wb_am_we_o;
398
wire                    wb_am_cyc_o;
399
wire                    wb_am_stb_o;
400
wire                    wb_am_cab_o;
401
wire                    wb_am_ack_i;
402
wire                    wb_am_err_i;
403
 
404
//
405
// PS/2 core slave i/f wires
406
//
407
wire    [31:0]           wb_ps_dat_i;
408
wire    [31:0]           wb_ps_dat_o;
409
wire    [31:0]           wb_ps_adr_i;
410
wire    [3:0]            wb_ps_sel_i;
411
wire                    wb_ps_we_i;
412
wire                    wb_ps_cyc_i;
413
wire                    wb_ps_stb_i;
414
wire                    wb_ps_ack_o;
415
wire                    wb_ps_err_o;
416
 
417
//
418
// PS/2 external i/f wires
419
//
420
wire                    ps2_clk_o;
421
wire                    ps2_data_o;
422
wire                    ps2_clk_oe;
423
wire                    ps2_data_oe;
424
 
425
//
426
// Ethernet core master i/f wires
427
//
428
wire    [31:0]           wb_em_adr_o;
429
wire    [31:0]           wb_em_dat_i;
430
wire    [31:0]           wb_em_dat_o;
431
wire    [3:0]            wb_em_sel_o;
432
wire                    wb_em_we_o;
433
wire                    wb_em_stb_o;
434
wire                    wb_em_cyc_o;
435
wire                    wb_em_cab_o;
436
wire                    wb_em_ack_i;
437
wire                    wb_em_err_i;
438
 
439
//
440
// Ethernet core slave i/f wires
441
//
442
wire    [31:0]           wb_es_dat_i;
443
wire    [31:0]           wb_es_dat_o;
444
wire    [31:0]           wb_es_adr_i;
445
wire    [3:0]            wb_es_sel_i;
446
wire                    wb_es_we_i;
447
wire                    wb_es_cyc_i;
448
wire                    wb_es_stb_i;
449
wire                    wb_es_ack_o;
450
wire                    wb_es_err_o;
451
 
452
//
453
// Ethernet external i/f wires
454
//
455
wire                    eth_mdo;
456
wire                    eth_mdoen;
457
 
458
//
459
// UART16550 core slave i/f wires
460
//
461
wire    [31:0]           wb_us_dat_i;
462
wire    [31:0]           wb_us_dat_o;
463
wire    [31:0]           wb_us_adr_i;
464
wire    [3:0]            wb_us_sel_i;
465
wire                    wb_us_we_i;
466
wire                    wb_us_cyc_i;
467
wire                    wb_us_stb_i;
468
wire                    wb_us_ack_o;
469
wire                    wb_us_err_o;
470
 
471
//
472
// UART external i/f wires
473
//
474
wire                    uart_stx;
475
wire                    uart_srx;
476
 
477
//
478
// JTAG wires
479
//
480
wire                    jtag_tdi;
481
wire                    jtag_tms;
482
wire                    jtag_tck;
483
wire                    jtag_trst;
484
wire                    jtag_tdo;
485
 
486
//
487
// CPLD TDM wires
488
//
489
wire    [2:0]            tdm_out_unused;
490
 
491
//
492
// Reset debounce
493
//
494
reg                     rst_r;
495
reg                     wb_rst;
496
 
497
//
498
// Global clock
499
//
500
wire                    wb_clk;
501
 
502
//
503
// Reset debounce
504
//
505
always @(posedge wb_clk or negedge rstn)
506
        if (~rstn)
507
                rst_r <= 1'b1;
508
        else
509
                rst_r <= #1 1'b0;
510
 
511
//
512
// Reset debounce
513
//
514
always @(posedge wb_clk)
515
        wb_rst <= #1 rst_r;
516
 
517
//
518
// Some Xilinx P&R tools need this
519
//
520
`ifdef TARGET_VIRTEX
521
IBUFG IBUFG1 (
522
        .O      ( wb_clk ),
523
        .I      ( clk )
524
);
525
`else
526
assign wb_clk = clk;
527
`endif
528
 
529
//
530
// SRAM tri-state data
531
//
532
assign sram_r_d = sram_d_oe ? sram_r_d_o : 16'hzzzz;
533
assign sram_l_d = sram_d_oe ? sram_l_d_o : 16'hzzzz;
534
 
535
//
536
// Ethernet tri-state
537
//
538
assign eth_mdio = eth_mdoen ? 1'bz : eth_mdo;
539
assign eth_trste = 1'b0;
540
 
541
//
542
// PS/2 Keyboard tri-state
543
//
544
assign ps2_clk = ps2_clk_oe ? ps2_clk_o : 1'bz;
545
assign ps2_data = ps2_data_oe ? ps2_data_o : 1'bz;
546
 
547
//
548
// Unused interrupts
549
//
550
assign pic_ints[`APP_INT_RES1] = 'b0;
551
assign pic_ints[`APP_INT_RES2] = 'b0;
552
assign pic_ints[`APP_INT_RES3] = 'b0;
553
 
554
//
555
// Unused WISHBONE signals
556
//
557
assign wb_us_err_o = 1'b0;
558
assign wb_ps_err_o = 1'b0;
559
assign wb_em_cab_o = 1'b0;
560
assign wb_am_cab_o = 1'b0;
561
 
562
//
563
// RISC Instruction address for Flash
564
//
565
// Until first access to real Flash area,
566
// it is always prefixed with Flash area prefix.
567
// This way we have flash at base address 0x0
568
// during reset vector execution (boot). First
569
// access to real Flash area will automatically
570
// move SRAM to 0x0.
571
//
572
always @(posedge wb_clk or negedge rstn)
573
        if (!rstn)
574
                prefix_flash <= #1 1'b1;
575
        else if (wb_rim_cyc_o &&
576
                (wb_rim_adr_o[31:32-`APP_ADDR_DEC_W] == `APP_ADDR_FLASH))
577
                prefix_flash <= #1 1'b0;
578
assign wb_rif_adr = prefix_flash ? {`APP_ADDR_FLASH, wb_rim_adr_o[31-`APP_ADDR_DEC_W:0]}
579
                        : wb_rim_adr_o;
580
 
581
//
582
// Instantiation of the VGA CRT controller
583
//
584
ssvga_top ssvga_top (
585
 
586
    // Clock and reset
587
    .wb_clk_i   ( wb_clk ),
588
    .wb_rst_i   ( wb_rst ),
589
 
590
    // WISHBONE Master I/F
591
    .wbm_cyc_o  ( wb_vm_cyc_o ),
592
    .wbm_stb_o  ( wb_vm_stb_o ),
593
    .wbm_sel_o  ( wb_vm_sel_o ),
594
    .wbm_we_o   ( wb_vm_we_o ),
595
    .wbm_adr_o  ( wb_vm_adr_o ),
596
    .wbm_dat_o  ( ),
597
    .wbm_cab_o  ( wb_vm_cab_o ),
598
    .wbm_dat_i  ( wb_vm_dat_i ),
599
    .wbm_ack_i  ( wb_vm_ack_i ),
600
    .wbm_err_i  ( wb_vm_err_i ),
601
    .wbm_rty_i  ( 1'b0 ),
602
 
603
    // WISHBONE Slave I/F
604
    .wbs_cyc_i  ( wb_vs_cyc_i ),
605
    .wbs_stb_i  ( wb_vs_stb_i ),
606
    .wbs_sel_i  ( wb_vs_sel_i ),
607
    .wbs_we_i   ( wb_vs_we_i ),
608
    .wbs_adr_i  ( wb_vs_adr_i ),
609
    .wbs_dat_i  ( wb_vs_dat_i ),
610
    .wbs_cab_i  ( 1'b0 ),
611
    .wbs_dat_o  ( wb_vs_dat_o ),
612
    .wbs_ack_o  ( wb_vs_ack_o ),
613
    .wbs_err_o  ( wb_vs_err_o ),
614
    .wbs_rty_o  ( ),
615
 
616
    // Signals to VGA display
617
    .pad_hsync_o ( crt_hsync ),
618
    .pad_vsync_o ( crt_vsync ),
619
    .pad_rgb_o   ( {vga_r_int, vga_g_int, vga_b_int} ),
620
    .led_o       ( )
621
);
622
 
623
CRTC_IOB crt_out_reg (
624
    .reset_in   ( wb_rst ),
625
    .clk_in     ( wb_clk ),
626
    .hsync_in   ( crt_hsync ),
627
    .vsync_in   ( crt_vsync ),
628
    .rgb_in     ( {vga_r_int[4:1], vga_g_int[5:2], vga_b_int[4:1]} ),
629
    .hsync_out  ( vga_hsyncn ),
630
    .vsync_out  ( vga_vsyncn ),
631
    .rgb_out    ( {vga_r, vga_g, vga_b} )
632
);
633
 
634
 
635
//
636
// Instantiation of the Audio controller.
637
//
638
// This controller connects to AK4520A Codec chip.
639
//
640
audio_top audio_top (
641
 
642
        // WISHBONE common
643
        .wb_clk_i ( wb_clk ),
644
        .wb_rst_i ( wb_rst ),
645
 
646
        // WISHBONE slave
647
        .wb_dat_i ( wb_as_dat_i ),
648
        .wb_dat_o ( wb_as_dat_o ),
649
        .wb_adr_i ( wb_as_adr_i ),
650
        .wb_sel_i ( wb_as_sel_i ),
651
        .wb_we_i  ( wb_as_we_i  ),
652
        .wb_cyc_i ( wb_as_cyc_i ),
653
        .wb_stb_i ( wb_as_stb_i ),
654
        .wb_ack_o ( wb_as_ack_o ),
655
        .wb_err_o ( wb_as_err_o ),
656
 
657
        // WISHBONE master
658
        .m_wb_dat_o ( wb_am_dat_o ),
659
        .m_wb_dat_i ( wb_am_dat_i ),
660
        .m_wb_adr_o ( wb_am_adr_o ),
661
        .m_wb_sel_o ( wb_am_sel_o ),
662
        .m_wb_we_o  ( wb_am_we_o  ),
663
        .m_wb_cyc_o ( wb_am_cyc_o ),
664
        .m_wb_stb_o ( wb_am_stb_o ),
665
        .m_wb_ack_i ( wb_am_ack_i ),
666
        .m_wb_err_i ( wb_am_err_i ),
667
 
668
        // AK4520A CODEC interface
669
        .mclk     ( codec_mclk ),
670
        .lrclk    ( codec_lrclk ),
671
        .sclk     ( codec_sclk ),
672
        .sdin     ( codec_sdin ),
673
        .sdout    ( codec_sdout )
674
);
675
 
676
//
677
// Instantiation of the development i/f model
678
//
679
// Used only for simulations.
680
//
681
`ifdef DBG_IF_MODEL
682
dbg_if_model dbg_if_model  (
683
 
684
        // JTAG pins
685
        .tms_pad_i      ( jtag_tms ),
686
        .tck_pad_i      ( jtag_tck ),
687
        .trst_pad_i     ( jtag_trst ),
688
        .tdi_pad_i      ( jtag_tdi ),
689
        .tdo_pad_o      ( jtag_tdo ),
690
 
691
        // Boundary Scan signals
692
        .capture_dr_o   ( ),
693
        .shift_dr_o     ( ),
694
        .update_dr_o    ( ),
695
        .extest_selected_o ( ),
696
        .bs_chain_i     ( 1'b0 ),
697
 
698
        // RISC signals
699
        .risc_clk_i     ( wb_clk ),
700
        .risc_data_i    ( dbg_dat_risc ),
701
        .risc_data_o    ( dbg_dat_dbg ),
702
        .risc_addr_o    ( dbg_adr ),
703
        .wp_i           ( dbg_wp ),
704
        .bp_i           ( dbg_bp ),
705
        .opselect_o     ( dbg_op ),
706
        .lsstatus_i     ( dbg_lss ),
707
        .istatus_i      ( dbg_is ),
708
        .risc_stall_o   ( dbg_stall ),
709
        .reset_o        ( ),
710
 
711
        // WISHBONE common
712
        .wb_clk_i       ( wb_clk ),
713
        .wb_rst_i       ( wb_rst ),
714
 
715
        // WISHBONE master interface
716
        .wb_adr_o       ( wb_dm_adr_o ),
717
        .wb_dat_i       ( wb_dm_dat_i ),
718
        .wb_dat_o       ( wb_dm_dat_o ),
719
        .wb_sel_o       ( wb_dm_sel_o ),
720
        .wb_we_o        ( wb_dm_we_o  ),
721
        .wb_stb_o       ( wb_dm_stb_o ),
722
        .wb_cyc_o       ( wb_dm_cyc_o ),
723
        .wb_cab_o       ( wb_dm_cab_o ),
724
        .wb_ack_i       ( wb_dm_ack_i ),
725
        .wb_err_i       ( wb_dm_err_i )
726
);
727
`else
728
//
729
// Instantiation of the development i/f
730
//
731
dbg_top dbg_top  (
732
 
733
        // JTAG pins
734
        .tms_pad_i      ( jtag_tms ),
735
        .tck_pad_i      ( jtag_tck ),
736
        .trst_pad_i     ( jtag_trst ),
737
        .tdi_pad_i      ( jtag_tdi ),
738
        .tdo_pad_o      ( jtag_tdo ),
739
        .tdo_padoen_o   ( ),
740
 
741
        // Boundary Scan signals
742
        .capture_dr_o   ( ),
743
        .shift_dr_o     ( ),
744
        .update_dr_o    ( ),
745
        .extest_selected_o ( ),
746
        .bs_chain_i     ( 1'b0 ),
747
        .bs_chain_o     ( ),
748
 
749
        // RISC signals
750
        .risc_clk_i     ( wb_clk ),
751
        .risc_addr_o    ( dbg_adr ),
752
        .risc_data_i    ( dbg_dat_risc ),
753
        .risc_data_o    ( dbg_dat_dbg ),
754
        .wp_i           ( dbg_wp ),
755
        .bp_i           ( dbg_bp ),
756
        .opselect_o     ( dbg_op ),
757
        .lsstatus_i     ( dbg_lss ),
758
        .istatus_i      ( dbg_is ),
759
        .risc_stall_o   ( dbg_stall ),
760
        .reset_o        ( ),
761
 
762
        // WISHBONE common
763
        .wb_clk_i       ( wb_clk ),
764
        .wb_rst_i       ( wb_rst ),
765
 
766
        // WISHBONE master interface
767
        .wb_adr_o       ( wb_dm_adr_o ),
768
        .wb_dat_i       ( wb_dm_dat_i ),
769
        .wb_dat_o       ( wb_dm_dat_o ),
770
        .wb_sel_o       ( wb_dm_sel_o ),
771
        .wb_we_o        ( wb_dm_we_o  ),
772
        .wb_stb_o       ( wb_dm_stb_o ),
773
        .wb_cyc_o       ( wb_dm_cyc_o ),
774
        .wb_cab_o       ( wb_dm_cab_o ),
775
        .wb_ack_i       ( wb_dm_ack_i ),
776
        .wb_err_i       ( wb_dm_err_i )
777
);
778
`endif
779
 
780
//
781
// Instantiation of the OR1200 RISC
782
//
783
or1200_top or1200_top (
784
 
785
        // Common
786
        .rst_i          ( wb_rst ),
787
        .clk_i          ( clk ),
788
`ifdef OR1200_CLMODE_1TO2
789
        .clmode_i       ( 2'b01 ),
790
`else
791
`ifdef OR1200_CLMODE_1TO4
792
        .clmode_i       ( 2'b11 ),
793
`else
794
        .clmode_i       ( 2'b00 ),
795
`endif
796
`endif
797
 
798
        // WISHBONE Instruction Master
799
        .iwb_clk_i      ( wb_clk ),
800
        .iwb_rst_i      ( wb_rst ),
801
        .iwb_cyc_o      ( wb_rim_cyc_o ),
802
        .iwb_adr_o      ( wb_rim_adr_o ),
803
        .iwb_dat_i      ( wb_rim_dat_i ),
804
        .iwb_dat_o      ( wb_rim_dat_o ),
805
        .iwb_sel_o      ( wb_rim_sel_o ),
806
        .iwb_ack_i      ( wb_rim_ack_i ),
807
        .iwb_err_i      ( wb_rim_err_i ),
808
        .iwb_rty_i      ( wb_rim_rty_i ),
809
        .iwb_we_o       ( wb_rim_we_o  ),
810
        .iwb_stb_o      ( wb_rim_stb_o ),
811
        .iwb_cab_o      ( wb_rim_cab_o ),
812
 
813
        // WISHBONE Data Master
814
        .dwb_clk_i      ( wb_clk ),
815
        .dwb_rst_i      ( wb_rst ),
816
        .dwb_cyc_o      ( wb_rdm_cyc_o ),
817
        .dwb_adr_o      ( wb_rdm_adr_o ),
818
        .dwb_dat_i      ( wb_rdm_dat_i ),
819
        .dwb_dat_o      ( wb_rdm_dat_o ),
820
        .dwb_sel_o      ( wb_rdm_sel_o ),
821
        .dwb_ack_i      ( wb_rdm_ack_i ),
822
        .dwb_err_i      ( wb_rdm_err_i ),
823
        .dwb_rty_i      ( wb_rdm_rty_i ),
824
        .dwb_we_o       ( wb_rdm_we_o  ),
825
        .dwb_stb_o      ( wb_rdm_stb_o ),
826
        .dwb_cab_o      ( wb_rdm_cab_o ),
827
 
828
        // Debug
829
        .dbg_stall_i    ( dbg_stall ),
830
        .dbg_dat_i      ( dbg_dat_dbg ),
831
        .dbg_adr_i      ( dbg_adr ),
832
        .dbg_op_i       ( dbg_op ),
833
        .dbg_ewt_i      ( 1'b0 ),
834
        .dbg_lss_o      ( dbg_lss ),
835
        .dbg_is_o       ( dbg_is ),
836
        .dbg_wp_o       ( dbg_wp ),
837
        .dbg_bp_o       ( dbg_bp ),
838
        .dbg_dat_o      ( dbg_dat_risc ),
839
 
840
        // Power Management
841
        .pm_clksd_o     ( ),
842
        .pm_cpustall_i  ( 1'b0 ),
843
        .pm_dc_gate_o   ( ),
844
        .pm_ic_gate_o   ( ),
845
        .pm_dmmu_gate_o ( ),
846
        .pm_immu_gate_o ( ),
847
        .pm_tt_gate_o   ( ),
848
        .pm_cpu_gate_o  ( ),
849
        .pm_wakeup_o    ( ),
850
        .pm_lvolt_o     ( ),
851
 
852
        // Interrupts
853
        .pic_ints_i     ( pic_ints )
854
);
855
 
856
//
857
// Instantiation of the Flash controller
858
//
859
flash_top flash_top (
860
 
861
        // WISHBONE common
862
        .wb_clk_i       ( wb_clk ),
863
        .wb_rst_i       ( wb_rst ),
864
 
865
        // WISHBONE slave
866
        .wb_dat_i       ( wb_fs_dat_i ),
867
        .wb_dat_o       ( wb_fs_dat_o ),
868
        .wb_adr_i       ( wb_fs_adr_i ),
869
        .wb_sel_i       ( wb_fs_sel_i ),
870
        .wb_we_i        ( wb_fs_we_i  ),
871
        .wb_cyc_i       ( wb_fs_cyc_i ),
872
        .wb_stb_i       ( wb_fs_stb_i ),
873
        .wb_ack_o       ( wb_fs_ack_o ),
874
        .wb_err_o       ( wb_fs_err_o ),
875
 
876
        // Flash external
877
        .flash_rstn     ( flash_rstn ),
878
        .cen            ( flash_cen ),
879
        .oen            ( flash_oen ),
880
        .wen            ( flash_wen ),
881
        .rdy            ( flash_rdy ),
882
        .d              ( flash_d ),
883
        .a              ( flash_a ),
884
        .a_oe           ( )
885
);
886
 
887
//
888
// Instantiation of the SRAM controller
889
//
890
sram_top sram_top (
891
 
892
        // WISHBONE common
893
        .wb_clk_i       ( wb_clk ),
894
        .wb_rst_i       ( wb_rst ),
895
 
896
        // WISHBONE slave
897
        .wb_dat_i       ( wb_ss_dat_i ),
898
        .wb_dat_o       ( wb_ss_dat_o ),
899
        .wb_adr_i       ( wb_ss_adr_i ),
900
        .wb_sel_i       ( wb_ss_sel_i ),
901
        .wb_we_i        ( wb_ss_we_i  ),
902
        .wb_cyc_i       ( wb_ss_cyc_i ),
903
        .wb_stb_i       ( wb_ss_stb_i ),
904
        .wb_ack_o       ( wb_ss_ack_o ),
905
        .wb_err_o       ( wb_ss_err_o ),
906
 
907
        // SRAM external
908
        .r_cen          ( sram_r_cen ),
909
        .r0_wen         ( sram_r0_wen ),
910
        .r1_wen         ( sram_r1_wen ),
911
        .r_oen          ( sram_r_oen ),
912
        .r_a            ( sram_r_a ),
913
        .r_d_i          ( sram_r_d ),
914
        .r_d_o          ( sram_r_d_o ),
915
        .d_oe           ( sram_d_oe ),
916
        .l_cen          ( sram_l_cen ),
917
        .l0_wen         ( sram_l0_wen ),
918
        .l1_wen         ( sram_l1_wen ),
919
        .l_oen          ( sram_l_oen ),
920
        .l_a            ( sram_l_a ),
921
        .l_d_i          ( sram_l_d ),
922
        .l_d_o          ( sram_l_d_o )
923
);
924
 
925
//
926
// Instantiation of the UART16550
927
//
928
uart_top uart_top (
929
 
930
        // WISHBONE common
931
        .wb_clk_i       ( wb_clk ),
932
        .wb_rst_i       ( wb_rst ),
933
 
934
        // WISHBONE slave
935
        .wb_adr_i       ( wb_us_adr_i[4:0] ),
936
        .wb_dat_i       ( wb_us_dat_i ),
937
        .wb_dat_o       ( wb_us_dat_o ),
938
        .wb_we_i        ( wb_us_we_i  ),
939
        .wb_stb_i       ( wb_us_stb_i ),
940
        .wb_cyc_i       ( wb_us_cyc_i ),
941
        .wb_ack_o       ( wb_us_ack_o ),
942
        .wb_sel_i       ( wb_us_sel_i ),
943
 
944
        // Interrupt request
945
        .int_o          ( pic_ints[`APP_INT_UART] ),
946
 
947
        // UART signals
948
        // serial input/output
949
        .stx_pad_o      ( uart_stx ),
950
        .srx_pad_i      ( uart_srx ),
951
 
952
        // modem signals
953
        .rts_pad_o      ( ),
954
        .cts_pad_i      ( 1'b0 ),
955
        .dtr_pad_o      ( ),
956
        .dsr_pad_i      ( 1'b0 ),
957
        .ri_pad_i       ( 1'b0 ),
958
        .dcd_pad_i      ( 1'b0 )
959
);
960
 
961
//
962
// Instantiation of the Ethernet 10/100 MAC
963
//
964
eth_top eth_top (
965
 
966
        // WISHBONE common
967
        .wb_clk_i       ( wb_clk ),
968
        .wb_rst_i       ( wb_rst ),
969
 
970
        // WISHBONE slave
971
        .wb_dat_i       ( wb_es_dat_i ),
972
        .wb_dat_o       ( wb_es_dat_o ),
973
        .wb_adr_i       ( wb_es_adr_i[11:2] ),
974
        .wb_sel_i       ( wb_es_sel_i ),
975
        .wb_we_i        ( wb_es_we_i  ),
976
        .wb_cyc_i       ( wb_es_cyc_i ),
977
        .wb_stb_i       ( wb_es_stb_i ),
978
        .wb_ack_o       ( wb_es_ack_o ),
979
        .wb_err_o       ( wb_es_err_o ),
980
 
981
        // WISHBONE master
982
        .m_wb_adr_o     ( wb_em_adr_o ),
983
        .m_wb_sel_o     ( wb_em_sel_o ),
984
        .m_wb_we_o      ( wb_em_we_o  ),
985
        .m_wb_dat_o     ( wb_em_dat_o ),
986
        .m_wb_dat_i     ( wb_em_dat_i ),
987
        .m_wb_cyc_o     ( wb_em_cyc_o ),
988
        .m_wb_stb_o     ( wb_em_stb_o ),
989
        .m_wb_ack_i     ( wb_em_ack_i ),
990
        .m_wb_err_i     ( wb_em_err_i ),
991
 
992
        // TX
993
        .mtx_clk_pad_i  ( eth_tx_clk ),
994
        .mtxd_pad_o     ( eth_txd ),
995
        .mtxen_pad_o    ( eth_tx_en ),
996
        .mtxerr_pad_o   ( eth_tx_er ),
997
 
998
        // RX
999
        .mrx_clk_pad_i  ( eth_rx_clk ),
1000
        .mrxd_pad_i     ( eth_rxd ),
1001
        .mrxdv_pad_i    ( eth_rx_dv ),
1002
        .mrxerr_pad_i   ( eth_rx_er ),
1003
        .mcoll_pad_i    ( eth_col ),
1004
        .mcrs_pad_i     ( eth_crs ),
1005
 
1006
        // MIIM
1007
        .mdc_pad_o      ( eth_mdc ),
1008
        .md_pad_i       ( eth_mdio ),
1009
        .md_pad_o       ( eth_mdo ),
1010
        .md_padoen_o    ( eth_mdoen ),
1011
 
1012
        // Interrupt
1013
        .int_o          ( pic_ints[`APP_INT_ETH] )
1014
);
1015
 
1016
//
1017
// Instantiation of the PS/2 Keyboard Controller
1018
//
1019
ps2_top ps2_top (
1020
 
1021
        // WISHBONE common
1022
        .wb_clk_i       ( wb_clk ),
1023
        .wb_rst_i       ( wb_rst ),
1024
 
1025
        // WISHBONE slave
1026
        .wb_cyc_i       ( wb_ps_cyc_i ),
1027
        .wb_stb_i       ( wb_ps_stb_i ),
1028
        .wb_we_i        ( wb_ps_we_i  ),
1029
        .wb_sel_i       ( wb_ps_sel_i ),
1030
        .wb_adr_i       ( wb_ps_adr_i ),
1031
        .wb_dat_i       ( wb_ps_dat_i ),
1032
        .wb_dat_o       ( wb_ps_dat_o ),
1033
        .wb_ack_o       ( wb_ps_ack_o ),
1034
 
1035
        // Interrupt
1036
        .wb_int_o       ( pic_ints[`APP_INT_PS2] ),
1037
 
1038
        // PS/2 external wires
1039
        .ps2_kbd_clk_pad_i      ( ps2_clk ),
1040
        .ps2_kbd_data_pad_i     ( ps2_data ),
1041
        .ps2_kbd_clk_pad_o      ( ps2_clk_o ),
1042
        .ps2_kbd_data_pad_o     ( ps2_data_o ),
1043
        .ps2_kbd_clk_pad_oe_o   ( ps2_clk_oe ),
1044
        .ps2_kbd_data_pad_oe_o  ( ps2_data_oe )
1045
);
1046
 
1047
//
1048
// Instantiation of the CPLD TDM
1049
//
1050
// This small block connects XSV FPGA (xfpga_top)
1051
// with the CPLD. CPLD has connectiosn to the
1052
// RS232 PHY chip and to host PC (if you run OR1K
1053
// GDB debugger).
1054
//
1055
tdm_slave_if tdm_slave_if (
1056
        .clk    ( wb_clk ),
1057
        .rst    ( wb_rst ),
1058
        .tdmfrm ( tdmfrm ),
1059
        .tdmrx  ( tdmrx ),
1060
        .tdmtx  ( tdmtx ),
1061
        .din    ( { jtag_tdo, uart_stx, 6'b000_000 } ),
1062
        .dout   ( { jtag_tms, jtag_tck, jtag_trst, jtag_tdi, uart_srx, tdm_out_unused } )
1063
);
1064
 
1065
//
1066
// Instantiation of the Traffic COP
1067
//
1068
tc_top #(`APP_ADDR_DEC_W,
1069
         `APP_ADDR_SRAM,
1070
         `APP_ADDR_DEC_W,
1071
         `APP_ADDR_FLASH,
1072
         `APP_ADDR_DECP_W,
1073
         `APP_ADDR_PERIP,
1074
         `APP_ADDR_DEC_W,
1075
         `APP_ADDR_VGA,
1076
         `APP_ADDR_ETH,
1077
         `APP_ADDR_AUDIO,
1078
         `APP_ADDR_UART,
1079
         `APP_ADDR_PS2,
1080
         `APP_ADDR_RES1,
1081
         `APP_ADDR_RES2
1082
        ) tc_top (
1083
 
1084
        // WISHBONE common
1085
        .wb_clk_i       ( wb_clk ),
1086
        .wb_rst_i       ( wb_rst ),
1087
 
1088
        // WISHBONE Initiator 0
1089
        .i0_wb_cyc_i    ( wb_vm_cyc_o ),
1090
        .i0_wb_stb_i    ( wb_vm_stb_o ),
1091
        .i0_wb_cab_i    ( wb_vm_cab_o ),
1092
        .i0_wb_adr_i    ( wb_vm_adr_o ),
1093
        .i0_wb_sel_i    ( wb_vm_sel_o ),
1094
        .i0_wb_we_i     ( wb_vm_we_o  ),
1095
        .i0_wb_dat_i    ( 32'h0000_0000 ),
1096
        .i0_wb_dat_o    ( wb_vm_dat_i ),
1097
        .i0_wb_ack_o    ( wb_vm_ack_i ),
1098
        .i0_wb_err_o    ( wb_vm_err_i ),
1099
 
1100
        // WISHBONE Initiator 1
1101
        .i1_wb_cyc_i    ( wb_em_cyc_o ),
1102
        .i1_wb_stb_i    ( wb_em_stb_o ),
1103
        .i1_wb_cab_i    ( wb_em_cab_o ),
1104
        .i1_wb_adr_i    ( wb_em_adr_o ),
1105
        .i1_wb_sel_i    ( wb_em_sel_o ),
1106
        .i1_wb_we_i     ( wb_em_we_o  ),
1107
        .i1_wb_dat_i    ( wb_em_dat_o ),
1108
        .i1_wb_dat_o    ( wb_em_dat_i ),
1109
        .i1_wb_ack_o    ( wb_em_ack_i ),
1110
        .i1_wb_err_o    ( wb_em_err_i ),
1111
 
1112
        // WISHBONE Initiator 2
1113
        .i2_wb_cyc_i    ( wb_am_cyc_o ),
1114
        .i2_wb_stb_i    ( wb_am_stb_o ),
1115
        .i2_wb_cab_i    ( wb_am_cab_o ),
1116
        .i2_wb_adr_i    ( wb_am_adr_o ),
1117
        .i2_wb_sel_i    ( wb_am_sel_o ),
1118
        .i2_wb_we_i     ( wb_am_we_o  ),
1119
        .i2_wb_dat_i    ( wb_am_dat_o ),
1120
        .i2_wb_dat_o    ( wb_am_dat_i ),
1121
        .i2_wb_ack_o    ( wb_am_ack_i ),
1122
        .i2_wb_err_o    ( wb_am_err_i ),
1123
 
1124
        // WISHBONE Initiator 3
1125
        .i3_wb_cyc_i    ( wb_dm_cyc_o ),
1126
        .i3_wb_stb_i    ( wb_dm_stb_o ),
1127
        .i3_wb_cab_i    ( wb_dm_cab_o ),
1128
        .i3_wb_adr_i    ( wb_dm_adr_o ),
1129
        .i3_wb_sel_i    ( wb_dm_sel_o ),
1130
        .i3_wb_we_i     ( wb_dm_we_o  ),
1131
        .i3_wb_dat_i    ( wb_dm_dat_o ),
1132
        .i3_wb_dat_o    ( wb_dm_dat_i ),
1133
        .i3_wb_ack_o    ( wb_dm_ack_i ),
1134
        .i3_wb_err_o    ( wb_dm_err_i ),
1135
 
1136
        // WISHBONE Initiator 4
1137
        .i4_wb_cyc_i    ( wb_rdm_cyc_o ),
1138
        .i4_wb_stb_i    ( wb_rdm_stb_o ),
1139
        .i4_wb_cab_i    ( wb_rdm_cab_o ),
1140
        .i4_wb_adr_i    ( wb_rdm_adr_o ),
1141
        .i4_wb_sel_i    ( wb_rdm_sel_o ),
1142
        .i4_wb_we_i     ( wb_rdm_we_o  ),
1143
        .i4_wb_dat_i    ( wb_rdm_dat_o ),
1144
        .i4_wb_dat_o    ( wb_rdm_dat_i ),
1145
        .i4_wb_ack_o    ( wb_rdm_ack_i ),
1146
        .i4_wb_err_o    ( wb_rdm_err_i ),
1147
 
1148
        // WISHBONE Initiator 5
1149
        .i5_wb_cyc_i    ( wb_rim_cyc_o ),
1150
        .i5_wb_stb_i    ( wb_rim_stb_o ),
1151
        .i5_wb_cab_i    ( wb_rim_cab_o ),
1152
        .i5_wb_adr_i    ( wb_rif_adr ),
1153
        .i5_wb_sel_i    ( wb_rim_sel_o ),
1154
        .i5_wb_we_i     ( wb_rim_we_o  ),
1155
        .i5_wb_dat_i    ( wb_rim_dat_o ),
1156
        .i5_wb_dat_o    ( wb_rim_dat_i ),
1157
        .i5_wb_ack_o    ( wb_rim_ack_i ),
1158
        .i5_wb_err_o    ( wb_rim_err_i ),
1159
 
1160
        // WISHBONE Initiator 6
1161
        .i6_wb_cyc_i    ( 1'b0 ),
1162
        .i6_wb_stb_i    ( 1'b0 ),
1163
        .i6_wb_cab_i    ( 1'b0 ),
1164
        .i6_wb_adr_i    ( 32'h0000_0000 ),
1165
        .i6_wb_sel_i    ( 4'b0000 ),
1166
        .i6_wb_we_i     ( 1'b0 ),
1167
        .i6_wb_dat_i    ( 32'h0000_0000 ),
1168
        .i6_wb_dat_o    ( ),
1169
        .i6_wb_ack_o    ( ),
1170
        .i6_wb_err_o    ( ),
1171
 
1172
        // WISHBONE Initiator 7
1173
        .i7_wb_cyc_i    ( 1'b0 ),
1174
        .i7_wb_stb_i    ( 1'b0 ),
1175
        .i7_wb_cab_i    ( 1'b0 ),
1176
        .i7_wb_adr_i    ( 32'h0000_0000 ),
1177
        .i7_wb_sel_i    ( 4'b0000 ),
1178
        .i7_wb_we_i     ( 1'b0 ),
1179
        .i7_wb_dat_i    ( 32'h0000_0000 ),
1180
        .i7_wb_dat_o    ( ),
1181
        .i7_wb_ack_o    ( ),
1182
        .i7_wb_err_o    ( ),
1183
 
1184
        // WISHBONE Target 0
1185
        .t0_wb_cyc_o    ( wb_ss_cyc_i ),
1186
        .t0_wb_stb_o    ( wb_ss_stb_i ),
1187
        .t0_wb_cab_o    ( wb_ss_cab_i ),
1188
        .t0_wb_adr_o    ( wb_ss_adr_i ),
1189
        .t0_wb_sel_o    ( wb_ss_sel_i ),
1190
        .t0_wb_we_o     ( wb_ss_we_i  ),
1191
        .t0_wb_dat_o    ( wb_ss_dat_i ),
1192
        .t0_wb_dat_i    ( wb_ss_dat_o ),
1193
        .t0_wb_ack_i    ( wb_ss_ack_o ),
1194
        .t0_wb_err_i    ( wb_ss_err_o ),
1195
 
1196
        // WISHBONE Target 1
1197
        .t1_wb_cyc_o    ( wb_fs_cyc_i ),
1198
        .t1_wb_stb_o    ( wb_fs_stb_i ),
1199
        .t1_wb_cab_o    ( wb_fs_cab_i ),
1200
        .t1_wb_adr_o    ( wb_fs_adr_i ),
1201
        .t1_wb_sel_o    ( wb_fs_sel_i ),
1202
        .t1_wb_we_o     ( wb_fs_we_i  ),
1203
        .t1_wb_dat_o    ( wb_fs_dat_i ),
1204
        .t1_wb_dat_i    ( wb_fs_dat_o ),
1205
        .t1_wb_ack_i    ( wb_fs_ack_o ),
1206
        .t1_wb_err_i    ( wb_fs_err_o ),
1207
 
1208
        // WISHBONE Target 2
1209
        .t2_wb_cyc_o    ( wb_vs_cyc_i ),
1210
        .t2_wb_stb_o    ( wb_vs_stb_i ),
1211
        .t2_wb_cab_o    ( wb_vs_cab_i ),
1212
        .t2_wb_adr_o    ( wb_vs_adr_i ),
1213
        .t2_wb_sel_o    ( wb_vs_sel_i ),
1214
        .t2_wb_we_o     ( wb_vs_we_i  ),
1215
        .t2_wb_dat_o    ( wb_vs_dat_i ),
1216
        .t2_wb_dat_i    ( wb_vs_dat_o ),
1217
        .t2_wb_ack_i    ( wb_vs_ack_o ),
1218
        .t2_wb_err_i    ( wb_vs_err_o ),
1219
 
1220
        // WISHBONE Target 3
1221
        .t3_wb_cyc_o    ( wb_es_cyc_i ),
1222
        .t3_wb_stb_o    ( wb_es_stb_i ),
1223
        .t3_wb_cab_o    ( wb_es_cab_i ),
1224
        .t3_wb_adr_o    ( wb_es_adr_i ),
1225
        .t3_wb_sel_o    ( wb_es_sel_i ),
1226
        .t3_wb_we_o     ( wb_es_we_i  ),
1227
        .t3_wb_dat_o    ( wb_es_dat_i ),
1228
        .t3_wb_dat_i    ( wb_es_dat_o ),
1229
        .t3_wb_ack_i    ( wb_es_ack_o ),
1230
        .t3_wb_err_i    ( wb_es_err_o ),
1231
 
1232
        // WISHBONE Target 4
1233
        .t4_wb_cyc_o    ( wb_as_cyc_i ),
1234
        .t4_wb_stb_o    ( wb_as_stb_i ),
1235
        .t4_wb_cab_o    ( wb_as_cab_i ),
1236
        .t4_wb_adr_o    ( wb_as_adr_i ),
1237
        .t4_wb_sel_o    ( wb_as_sel_i ),
1238
        .t4_wb_we_o     ( wb_as_we_i  ),
1239
        .t4_wb_dat_o    ( wb_as_dat_i ),
1240
        .t4_wb_dat_i    ( wb_as_dat_o ),
1241
        .t4_wb_ack_i    ( wb_as_ack_o ),
1242
        .t4_wb_err_i    ( wb_as_err_o ),
1243
 
1244
        // WISHBONE Target 5
1245
        .t5_wb_cyc_o    ( wb_us_cyc_i ),
1246
        .t5_wb_stb_o    ( wb_us_stb_i ),
1247
        .t5_wb_cab_o    ( wb_us_cab_i ),
1248
        .t5_wb_adr_o    ( wb_us_adr_i ),
1249
        .t5_wb_sel_o    ( wb_us_sel_i ),
1250
        .t5_wb_we_o     ( wb_us_we_i  ),
1251
        .t5_wb_dat_o    ( wb_us_dat_i ),
1252
        .t5_wb_dat_i    ( wb_us_dat_o ),
1253
        .t5_wb_ack_i    ( wb_us_ack_o ),
1254
        .t5_wb_err_i    ( wb_us_err_o ),
1255
 
1256
        // WISHBONE Target 6
1257
        .t6_wb_cyc_o    ( wb_ps_cyc_i ),
1258
        .t6_wb_stb_o    ( wb_ps_stb_i ),
1259
        .t6_wb_cab_o    ( wb_ps_cab_i ),
1260
        .t6_wb_adr_o    ( wb_ps_adr_i ),
1261
        .t6_wb_sel_o    ( wb_ps_sel_i ),
1262
        .t6_wb_we_o     ( wb_ps_we_i  ),
1263
        .t6_wb_dat_o    ( wb_ps_dat_i ),
1264
        .t6_wb_dat_i    ( wb_ps_dat_o ),
1265
        .t6_wb_ack_i    ( wb_ps_ack_o ),
1266
        .t6_wb_err_i    ( wb_ps_err_o ),
1267
 
1268
        // WISHBONE Target 7
1269
        .t7_wb_cyc_o    ( ),
1270
        .t7_wb_stb_o    ( ),
1271
        .t7_wb_cab_o    ( ),
1272
        .t7_wb_adr_o    ( ),
1273
        .t7_wb_sel_o    ( ),
1274
        .t7_wb_we_o     ( ),
1275
        .t7_wb_dat_o    ( ),
1276
        .t7_wb_dat_i    ( 32'h0000_0000 ),
1277
        .t7_wb_ack_i    ( 1'b0 ),
1278
        .t7_wb_err_i    ( 1'b1 ),
1279
 
1280
        // WISHBONE Target 8
1281
        .t8_wb_cyc_o    ( ),
1282
        .t8_wb_stb_o    ( ),
1283
        .t8_wb_cab_o    ( ),
1284
        .t8_wb_adr_o    ( ),
1285
        .t8_wb_sel_o    ( ),
1286
        .t8_wb_we_o     ( ),
1287
        .t8_wb_dat_o    ( ),
1288
        .t8_wb_dat_i    ( 32'h0000_0000 ),
1289
        .t8_wb_ack_i    ( 1'b0 ),
1290
        .t8_wb_err_i    ( 1'b1 )
1291
);
1292
 
1293
endmodule

powered by: WebSVN 2.1.0

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