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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [boards/] [xilinx/] [s3adsp1800/] [rtl/] [verilog/] [orpsoc_top/] [orpsoc_top.v] - Blame information for rev 568

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 568 julius
//////////////////////////////////////////////////////////////////////
2
///                                                               //// 
3
/// ORPSoC top for Spartan 3A DSP 1800 Board                      ////
4
///                                                               ////
5
/// Instantiates modules, depending on ORPSoC defines file        ////
6
///                                                               ////
7
/// Julius Baxter, julius@opencores.org                           ////
8
///                                                               ////
9
//////////////////////////////////////////////////////////////////////
10
////                                                              ////
11
//// Copyright (C) 2009,2010,2011 Authors and OPENCORES.ORG       ////
12
////                                                              ////
13
//// This source file may be used and distributed without         ////
14
//// restriction provided that this copyright statement is not    ////
15
//// removed from the file and that any derivative work contains  ////
16
//// the original copyright notice and the associated disclaimer. ////
17
////                                                              ////
18
//// This source file is free software; you can redistribute it   ////
19
//// and/or modify it under the terms of the GNU Lesser General   ////
20
//// Public License as published by the Free Software Foundation; ////
21
//// either version 2.1 of the License, or (at your option) any   ////
22
//// later version.                                               ////
23
////                                                              ////
24
//// This source is distributed in the hope that it will be       ////
25
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
26
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
27
//// PURPOSE.  See the GNU Lesser General Public License for more ////
28
//// details.                                                     ////
29
////                                                              ////
30
//// You should have received a copy of the GNU Lesser General    ////
31
//// Public License along with this source; if not, download it   ////
32
//// from http://www.opencores.org/lgpl.shtml                     ////
33
////                                                              ////
34
//////////////////////////////////////////////////////////////////////
35
 
36
`include "orpsoc-defines.v"
37
`include "synthesis-defines.v"
38
module orpsoc_top
39
  (
40
`ifdef JTAG_DEBUG
41
    tdo_pad_o, tms_pad_i, tck_pad_i, tdi_pad_i,
42
`endif
43
`ifdef XILINX_DDR2
44
    ddr2_dq, ddr2_a, ddr2_ba, ddr2_cke, ddr2_cs_n, ddr2_ras_n, ddr2_cas_n,
45
    ddr2_we_n, ddr2_odt, ddr2_dm, ddr2_dqs, ddr2_dqs_n, ddr2_ck,
46
    ddr2_ck_n, ddr2_rst_dqs_div_in, ddr2_rst_dqs_div_out,
47
`endif
48
`ifdef UART0
49
    uart0_srx_pad_i, uart0_stx_pad_o,
50
    uart0_srx_expheader_pad_i, uart0_stx_expheader_pad_o,
51
`endif
52
`ifdef SPI0
53
    spi0_mosi_o, spi0_ss_o, spi0_sck_o, spi0_miso_i,
54
`endif
55
`ifdef I2C0
56
    i2c0_sda_io, i2c0_scl_io,
57
`endif
58
`ifdef GPIO0
59
    gpio0_io,
60
`endif
61
 
62
`ifdef ETH0
63
    eth0_tx_clk, eth0_tx_data, eth0_tx_en, eth0_tx_er,
64
    eth0_rx_clk, eth0_rx_data, eth0_dv, eth0_rx_er,
65
    eth0_col, eth0_crs,
66
    eth0_mdc_pad_o, eth0_md_pad_io,
67
 `ifdef ETH0_PHY_RST
68
    eth0_rst_n_o,
69
 `endif
70
`endif
71
 
72
    sys_clk_i,
73
 
74
    rst_n_pad_i
75
 
76
    );
77
 
78
`include "orpsoc-params.v"
79
 
80
   input sys_clk_i;
81
 
82
   input rst_n_pad_i;
83
 
84
`ifdef JTAG_DEBUG
85
   output tdo_pad_o;
86
   input  tms_pad_i;
87
   input  tck_pad_i;
88
   input  tdi_pad_i;
89
`endif
90
`ifdef XILINX_DDR2
91
   inout [31:0] ddr2_dq;
92
   output [12:0] ddr2_a;
93
   output [1:0]   ddr2_ba;
94
   output         ddr2_cke;
95
   output         ddr2_cs_n;
96
   output         ddr2_ras_n;
97
   output         ddr2_cas_n;
98
   output         ddr2_we_n;
99
   output         ddr2_odt;
100
   output [3:0]   ddr2_dm;
101
   inout [3:0]     ddr2_dqs;
102
   inout [3:0]     ddr2_dqs_n;
103
   output [1:0]   ddr2_ck;
104
   output [1:0]   ddr2_ck_n;
105
   input          ddr2_rst_dqs_div_in;
106
   output         ddr2_rst_dqs_div_out;
107
`endif
108
 
109
`ifdef UART0
110
   input         uart0_srx_pad_i;
111
   output        uart0_stx_pad_o;
112
   // Duplicates of the UART signals, this time to the USB debug cable
113
   input         uart0_srx_expheader_pad_i;
114
   output        uart0_stx_expheader_pad_o;
115
`endif
116
`ifdef SPI0
117
   output        spi0_mosi_o;
118
   output [spi0_ss_width-1:0] spi0_ss_o;
119
   output                     spi0_sck_o;
120
   input                      spi0_miso_i;
121
`endif
122
`ifdef I2C0
123
   inout                      i2c0_sda_io, i2c0_scl_io;
124
`endif
125
 
126
`ifdef GPIO0
127
   inout [gpio0_io_width-1:0] gpio0_io;
128
`endif
129
`ifdef ETH0
130
   input                      eth0_tx_clk;
131
   output [3:0]        eth0_tx_data;
132
   output                     eth0_tx_en;
133
   output                     eth0_tx_er;
134
   input                      eth0_rx_clk;
135
   input [3:0]                 eth0_rx_data;
136
   input                      eth0_dv;
137
   input                      eth0_rx_er;
138
   input                      eth0_col;
139
   input                      eth0_crs;
140
   output                     eth0_mdc_pad_o;
141
   inout                      eth0_md_pad_io;
142
 `ifdef ETH0_PHY_RST
143
   output                     eth0_rst_n_o;
144
 `endif
145
`endif //  `ifdef ETH0
146
 
147
   ////////////////////////////////////////////////////////////////////////
148
   //
149
   // Clock and reset generation module
150
   // 
151
   ////////////////////////////////////////////////////////////////////////
152
 
153
   //
154
   // Wires
155
   //
156
   wire                       wb_clk, wb_rst;
157
   wire                       clk133;
158
   wire                       dbg_tck;
159
 
160
 
161
   clkgen clkgen0
162
     (
163
      .sys_clk_i              (sys_clk_i),
164
 
165
      .wb_clk_o               (wb_clk),
166
      .wb_rst_o               (wb_rst),
167
 
168
`ifdef JTAG_DEBUG
169
      .tck_pad_i              (tck_pad_i),
170
      .dbg_tck_o              (dbg_tck),
171
`endif
172
`ifdef XILINX_DDR2
173
      .clk133_o               (clk133),
174
`endif
175
 
176
      // Asynchronous active low reset
177
      .rst_n_pad_i               (rst_n_pad_i)
178
      );
179
 
180
 
181
   ////////////////////////////////////////////////////////////////////////
182
   //
183
   // Arbiter
184
   // 
185
   ////////////////////////////////////////////////////////////////////////
186
 
187
   // Wire naming convention:
188
   // First: wishbone master or slave (wbm/wbs)
189
   // Second: Which bus it's on instruction or data (i/d)
190
   // Third: Between which module and the arbiter the wires are
191
   // Fourth: Signal name
192
   // Fifth: Direction relative to module (not bus/arbiter!)
193
   //        ie. wbm_d_or12_adr_o is address OUT from the or1200
194
 
195
   // OR1200 instruction bus wires
196
   wire [wb_aw-1:0]            wbm_i_or12_adr_o;
197
   wire [wb_dw-1:0]            wbm_i_or12_dat_o;
198
   wire [3:0]                  wbm_i_or12_sel_o;
199
   wire                       wbm_i_or12_we_o;
200
   wire                       wbm_i_or12_cyc_o;
201
   wire                       wbm_i_or12_stb_o;
202
   wire [2:0]                  wbm_i_or12_cti_o;
203
   wire [1:0]                  wbm_i_or12_bte_o;
204
 
205
   wire [wb_dw-1:0]            wbm_i_or12_dat_i;
206
   wire                       wbm_i_or12_ack_i;
207
   wire                       wbm_i_or12_err_i;
208
   wire                       wbm_i_or12_rty_i;
209
 
210
   // OR1200 data bus wires   
211
   wire [wb_aw-1:0]            wbm_d_or12_adr_o;
212
   wire [wb_dw-1:0]            wbm_d_or12_dat_o;
213
   wire [3:0]                  wbm_d_or12_sel_o;
214
   wire                       wbm_d_or12_we_o;
215
   wire                       wbm_d_or12_cyc_o;
216
   wire                       wbm_d_or12_stb_o;
217
   wire [2:0]                  wbm_d_or12_cti_o;
218
   wire [1:0]                  wbm_d_or12_bte_o;
219
 
220
   wire [wb_dw-1:0]            wbm_d_or12_dat_i;
221
   wire                       wbm_d_or12_ack_i;
222
   wire                       wbm_d_or12_err_i;
223
   wire                       wbm_d_or12_rty_i;
224
 
225
   // Debug interface bus wires   
226
   wire [wb_aw-1:0]            wbm_d_dbg_adr_o;
227
   wire [wb_dw-1:0]            wbm_d_dbg_dat_o;
228
   wire [3:0]                  wbm_d_dbg_sel_o;
229
   wire                       wbm_d_dbg_we_o;
230
   wire                       wbm_d_dbg_cyc_o;
231
   wire                       wbm_d_dbg_stb_o;
232
   wire [2:0]                  wbm_d_dbg_cti_o;
233
   wire [1:0]                  wbm_d_dbg_bte_o;
234
 
235
   wire [wb_dw-1:0]            wbm_d_dbg_dat_i;
236
   wire                       wbm_d_dbg_ack_i;
237
   wire                       wbm_d_dbg_err_i;
238
   wire                       wbm_d_dbg_rty_i;
239
 
240
   // Byte bus bridge master signals
241
   wire [wb_aw-1:0]            wbm_b_d_adr_o;
242
   wire [wb_dw-1:0]            wbm_b_d_dat_o;
243
   wire [3:0]                  wbm_b_d_sel_o;
244
   wire                       wbm_b_d_we_o;
245
   wire                       wbm_b_d_cyc_o;
246
   wire                       wbm_b_d_stb_o;
247
   wire [2:0]                  wbm_b_d_cti_o;
248
   wire [1:0]                  wbm_b_d_bte_o;
249
 
250
   wire [wb_dw-1:0]            wbm_b_d_dat_i;
251
   wire                       wbm_b_d_ack_i;
252
   wire                       wbm_b_d_err_i;
253
   wire                       wbm_b_d_rty_i;
254
 
255
   // Instruction bus slave wires //
256
 
257
   // rom0 instruction bus wires
258
   wire [31:0]                 wbs_i_rom0_adr_i;
259
   wire [wbs_i_rom0_data_width-1:0] wbs_i_rom0_dat_i;
260
   wire [3:0]                        wbs_i_rom0_sel_i;
261
   wire                             wbs_i_rom0_we_i;
262
   wire                             wbs_i_rom0_cyc_i;
263
   wire                             wbs_i_rom0_stb_i;
264
   wire [2:0]                        wbs_i_rom0_cti_i;
265
   wire [1:0]                        wbs_i_rom0_bte_i;
266
   wire [wbs_i_rom0_data_width-1:0] wbs_i_rom0_dat_o;
267
   wire                             wbs_i_rom0_ack_o;
268
   wire                             wbs_i_rom0_err_o;
269
   wire                             wbs_i_rom0_rty_o;
270
 
271
   // mc0 instruction bus wires
272
   wire [31:0]                       wbs_i_mc0_adr_i;
273
   wire [wbs_i_mc0_data_width-1:0]  wbs_i_mc0_dat_i;
274
   wire [3:0]                        wbs_i_mc0_sel_i;
275
   wire                             wbs_i_mc0_we_i;
276
   wire                             wbs_i_mc0_cyc_i;
277
   wire                             wbs_i_mc0_stb_i;
278
   wire [2:0]                        wbs_i_mc0_cti_i;
279
   wire [1:0]                        wbs_i_mc0_bte_i;
280
   wire [wbs_i_mc0_data_width-1:0]  wbs_i_mc0_dat_o;
281
   wire                             wbs_i_mc0_ack_o;
282
   wire                             wbs_i_mc0_err_o;
283
   wire                             wbs_i_mc0_rty_o;
284
 
285
   // Data bus slave wires //
286
 
287
   // mc0 data bus wires
288
   wire [31:0]                       wbs_d_mc0_adr_i;
289
   wire [wbs_d_mc0_data_width-1:0]  wbs_d_mc0_dat_i;
290
   wire [3:0]                        wbs_d_mc0_sel_i;
291
   wire                             wbs_d_mc0_we_i;
292
   wire                             wbs_d_mc0_cyc_i;
293
   wire                             wbs_d_mc0_stb_i;
294
   wire [2:0]                        wbs_d_mc0_cti_i;
295
   wire [1:0]                        wbs_d_mc0_bte_i;
296
   wire [wbs_d_mc0_data_width-1:0]  wbs_d_mc0_dat_o;
297
   wire                             wbs_d_mc0_ack_o;
298
   wire                             wbs_d_mc0_err_o;
299
   wire                             wbs_d_mc0_rty_o;
300
 
301
   // i2c0 wires
302
   wire [31:0]                       wbs_d_i2c0_adr_i;
303
   wire [wbs_d_i2c0_data_width-1:0] wbs_d_i2c0_dat_i;
304
   wire [3:0]                        wbs_d_i2c0_sel_i;
305
   wire                             wbs_d_i2c0_we_i;
306
   wire                             wbs_d_i2c0_cyc_i;
307
   wire                             wbs_d_i2c0_stb_i;
308
   wire [2:0]                        wbs_d_i2c0_cti_i;
309
   wire [1:0]                        wbs_d_i2c0_bte_i;
310
   wire [wbs_d_i2c0_data_width-1:0] wbs_d_i2c0_dat_o;
311
   wire                             wbs_d_i2c0_ack_o;
312
   wire                             wbs_d_i2c0_err_o;
313
   wire                             wbs_d_i2c0_rty_o;
314
 
315
   // i2c1 wires
316
   wire [31:0]                       wbs_d_i2c1_adr_i;
317
   wire [wbs_d_i2c1_data_width-1:0] wbs_d_i2c1_dat_i;
318
   wire [3:0]                        wbs_d_i2c1_sel_i;
319
   wire                             wbs_d_i2c1_we_i;
320
   wire                             wbs_d_i2c1_cyc_i;
321
   wire                             wbs_d_i2c1_stb_i;
322
   wire [2:0]                        wbs_d_i2c1_cti_i;
323
   wire [1:0]                        wbs_d_i2c1_bte_i;
324
   wire [wbs_d_i2c1_data_width-1:0] wbs_d_i2c1_dat_o;
325
   wire                             wbs_d_i2c1_ack_o;
326
   wire                             wbs_d_i2c1_err_o;
327
   wire                             wbs_d_i2c1_rty_o;
328
 
329
   // spi0 wires
330
   wire [31:0]                       wbs_d_spi0_adr_i;
331
   wire [wbs_d_spi0_data_width-1:0] wbs_d_spi0_dat_i;
332
   wire [3:0]                        wbs_d_spi0_sel_i;
333
   wire                             wbs_d_spi0_we_i;
334
   wire                             wbs_d_spi0_cyc_i;
335
   wire                             wbs_d_spi0_stb_i;
336
   wire [2:0]                        wbs_d_spi0_cti_i;
337
   wire [1:0]                        wbs_d_spi0_bte_i;
338
   wire [wbs_d_spi0_data_width-1:0] wbs_d_spi0_dat_o;
339
   wire                             wbs_d_spi0_ack_o;
340
   wire                             wbs_d_spi0_err_o;
341
   wire                             wbs_d_spi0_rty_o;
342
 
343
   // uart0 wires
344
   wire [31:0]                        wbs_d_uart0_adr_i;
345
   wire [wbs_d_uart0_data_width-1:0] wbs_d_uart0_dat_i;
346
   wire [3:0]                         wbs_d_uart0_sel_i;
347
   wire                              wbs_d_uart0_we_i;
348
   wire                              wbs_d_uart0_cyc_i;
349
   wire                              wbs_d_uart0_stb_i;
350
   wire [2:0]                         wbs_d_uart0_cti_i;
351
   wire [1:0]                         wbs_d_uart0_bte_i;
352
   wire [wbs_d_uart0_data_width-1:0] wbs_d_uart0_dat_o;
353
   wire                              wbs_d_uart0_ack_o;
354
   wire                              wbs_d_uart0_err_o;
355
   wire                              wbs_d_uart0_rty_o;
356
 
357
   // gpio0 wires
358
   wire [31:0]                        wbs_d_gpio0_adr_i;
359
   wire [wbs_d_gpio0_data_width-1:0] wbs_d_gpio0_dat_i;
360
   wire [3:0]                         wbs_d_gpio0_sel_i;
361
   wire                              wbs_d_gpio0_we_i;
362
   wire                              wbs_d_gpio0_cyc_i;
363
   wire                              wbs_d_gpio0_stb_i;
364
   wire [2:0]                         wbs_d_gpio0_cti_i;
365
   wire [1:0]                         wbs_d_gpio0_bte_i;
366
   wire [wbs_d_gpio0_data_width-1:0] wbs_d_gpio0_dat_o;
367
   wire                              wbs_d_gpio0_ack_o;
368
   wire                              wbs_d_gpio0_err_o;
369
   wire                              wbs_d_gpio0_rty_o;
370
 
371
   // eth0 slave wires
372
   wire [31:0]                             wbs_d_eth0_adr_i;
373
   wire [wbs_d_eth0_data_width-1:0]        wbs_d_eth0_dat_i;
374
   wire [3:0]                              wbs_d_eth0_sel_i;
375
   wire                                   wbs_d_eth0_we_i;
376
   wire                                   wbs_d_eth0_cyc_i;
377
   wire                                   wbs_d_eth0_stb_i;
378
   wire [2:0]                              wbs_d_eth0_cti_i;
379
   wire [1:0]                              wbs_d_eth0_bte_i;
380
   wire [wbs_d_eth0_data_width-1:0]        wbs_d_eth0_dat_o;
381
   wire                                   wbs_d_eth0_ack_o;
382
   wire                                   wbs_d_eth0_err_o;
383
   wire                                   wbs_d_eth0_rty_o;
384
 
385
   // eth0 master wires
386
   wire [wbm_eth0_addr_width-1:0]          wbm_eth0_adr_o;
387
   wire [wbm_eth0_data_width-1:0]          wbm_eth0_dat_o;
388
   wire [3:0]                              wbm_eth0_sel_o;
389
   wire                                   wbm_eth0_we_o;
390
   wire                                   wbm_eth0_cyc_o;
391
   wire                                   wbm_eth0_stb_o;
392
   wire [2:0]                              wbm_eth0_cti_o;
393
   wire [1:0]                              wbm_eth0_bte_o;
394
   wire [wbm_eth0_data_width-1:0]         wbm_eth0_dat_i;
395
   wire                                   wbm_eth0_ack_i;
396
   wire                                   wbm_eth0_err_i;
397
   wire                                   wbm_eth0_rty_i;
398
 
399
 
400
 
401
   //
402
   // Wishbone instruction bus arbiter
403
   //
404
 
405
   arbiter_ibus arbiter_ibus0
406
     (
407
      // Instruction Bus Master
408
      // Inputs to arbiter from master
409
      .wbm_adr_o                        (wbm_i_or12_adr_o),
410
      .wbm_dat_o                        (wbm_i_or12_dat_o),
411
      .wbm_sel_o                        (wbm_i_or12_sel_o),
412
      .wbm_we_o                         (wbm_i_or12_we_o),
413
      .wbm_cyc_o                        (wbm_i_or12_cyc_o),
414
      .wbm_stb_o                        (wbm_i_or12_stb_o),
415
      .wbm_cti_o                        (wbm_i_or12_cti_o),
416
      .wbm_bte_o                        (wbm_i_or12_bte_o),
417
      // Outputs to master from arbiter
418
      .wbm_dat_i                        (wbm_i_or12_dat_i),
419
      .wbm_ack_i                        (wbm_i_or12_ack_i),
420
      .wbm_err_i                        (wbm_i_or12_err_i),
421
      .wbm_rty_i                        (wbm_i_or12_rty_i),
422
 
423
      // Slave 0
424
      // Inputs to slave from arbiter
425
      .wbs0_adr_i                       (wbs_i_rom0_adr_i),
426
      .wbs0_dat_i                       (wbs_i_rom0_dat_i),
427
      .wbs0_sel_i                       (wbs_i_rom0_sel_i),
428
      .wbs0_we_i                        (wbs_i_rom0_we_i),
429
      .wbs0_cyc_i                       (wbs_i_rom0_cyc_i),
430
      .wbs0_stb_i                       (wbs_i_rom0_stb_i),
431
      .wbs0_cti_i                       (wbs_i_rom0_cti_i),
432
      .wbs0_bte_i                       (wbs_i_rom0_bte_i),
433
      // Outputs from slave to arbiter      
434
      .wbs0_dat_o                       (wbs_i_rom0_dat_o),
435
      .wbs0_ack_o                       (wbs_i_rom0_ack_o),
436
      .wbs0_err_o                       (wbs_i_rom0_err_o),
437
      .wbs0_rty_o                       (wbs_i_rom0_rty_o),
438
 
439
      // Slave 1
440
      // Inputs to slave from arbiter
441
      .wbs1_adr_i                       (wbs_i_mc0_adr_i),
442
      .wbs1_dat_i                       (wbs_i_mc0_dat_i),
443
      .wbs1_sel_i                       (wbs_i_mc0_sel_i),
444
      .wbs1_we_i                        (wbs_i_mc0_we_i),
445
      .wbs1_cyc_i                       (wbs_i_mc0_cyc_i),
446
      .wbs1_stb_i                       (wbs_i_mc0_stb_i),
447
      .wbs1_cti_i                       (wbs_i_mc0_cti_i),
448
      .wbs1_bte_i                       (wbs_i_mc0_bte_i),
449
      // Outputs from slave to arbiter
450
      .wbs1_dat_o                       (wbs_i_mc0_dat_o),
451
      .wbs1_ack_o                       (wbs_i_mc0_ack_o),
452
      .wbs1_err_o                       (wbs_i_mc0_err_o),
453
      .wbs1_rty_o                       (wbs_i_mc0_rty_o),
454
 
455
      // Clock, reset inputs
456
      .wb_clk                           (wb_clk),
457
      .wb_rst                           (wb_rst));
458
 
459
   defparam arbiter_ibus0.wb_addr_match_width = ibus_arb_addr_match_width;
460
 
461
   defparam arbiter_ibus0.slave0_adr = ibus_arb_slave0_adr; // FLASH ROM
462
   defparam arbiter_ibus0.slave1_adr = ibus_arb_slave1_adr; // Main memory
463
 
464
   //
465
   // Wishbone data bus arbiter
466
   //
467
 
468
   arbiter_dbus arbiter_dbus0
469
     (
470
      // Master 0
471
      // Inputs to arbiter from master
472
      .wbm0_adr_o                       (wbm_d_or12_adr_o),
473
      .wbm0_dat_o                       (wbm_d_or12_dat_o),
474
      .wbm0_sel_o                       (wbm_d_or12_sel_o),
475
      .wbm0_we_o                        (wbm_d_or12_we_o),
476
      .wbm0_cyc_o                       (wbm_d_or12_cyc_o),
477
      .wbm0_stb_o                       (wbm_d_or12_stb_o),
478
      .wbm0_cti_o                       (wbm_d_or12_cti_o),
479
      .wbm0_bte_o                       (wbm_d_or12_bte_o),
480
      // Outputs to master from arbiter
481
      .wbm0_dat_i                       (wbm_d_or12_dat_i),
482
      .wbm0_ack_i                       (wbm_d_or12_ack_i),
483
      .wbm0_err_i                       (wbm_d_or12_err_i),
484
      .wbm0_rty_i                       (wbm_d_or12_rty_i),
485
 
486
      // Master 0
487
      // Inputs to arbiter from master
488
      .wbm1_adr_o                       (wbm_d_dbg_adr_o),
489
      .wbm1_dat_o                       (wbm_d_dbg_dat_o),
490
      .wbm1_we_o                        (wbm_d_dbg_we_o),
491
      .wbm1_cyc_o                       (wbm_d_dbg_cyc_o),
492
      .wbm1_sel_o                       (wbm_d_dbg_sel_o),
493
      .wbm1_stb_o                       (wbm_d_dbg_stb_o),
494
      .wbm1_cti_o                       (wbm_d_dbg_cti_o),
495
      .wbm1_bte_o                       (wbm_d_dbg_bte_o),
496
      // Outputs to master from arbiter      
497
      .wbm1_dat_i                       (wbm_d_dbg_dat_i),
498
      .wbm1_ack_i                       (wbm_d_dbg_ack_i),
499
      .wbm1_err_i                       (wbm_d_dbg_err_i),
500
      .wbm1_rty_i                       (wbm_d_dbg_rty_i),
501
 
502
      // Slaves
503
 
504
      .wbs0_adr_i                       (wbs_d_mc0_adr_i),
505
      .wbs0_dat_i                       (wbs_d_mc0_dat_i),
506
      .wbs0_sel_i                       (wbs_d_mc0_sel_i),
507
      .wbs0_we_i                        (wbs_d_mc0_we_i),
508
      .wbs0_cyc_i                       (wbs_d_mc0_cyc_i),
509
      .wbs0_stb_i                       (wbs_d_mc0_stb_i),
510
      .wbs0_cti_i                       (wbs_d_mc0_cti_i),
511
      .wbs0_bte_i                       (wbs_d_mc0_bte_i),
512
      .wbs0_dat_o                       (wbs_d_mc0_dat_o),
513
      .wbs0_ack_o                       (wbs_d_mc0_ack_o),
514
      .wbs0_err_o                       (wbs_d_mc0_err_o),
515
      .wbs0_rty_o                       (wbs_d_mc0_rty_o),
516
 
517
      .wbs1_adr_i                       (wbs_d_eth0_adr_i),
518
      .wbs1_dat_i                       (wbs_d_eth0_dat_i),
519
      .wbs1_sel_i                       (wbs_d_eth0_sel_i),
520
      .wbs1_we_i                        (wbs_d_eth0_we_i),
521
      .wbs1_cyc_i                       (wbs_d_eth0_cyc_i),
522
      .wbs1_stb_i                       (wbs_d_eth0_stb_i),
523
      .wbs1_cti_i                       (wbs_d_eth0_cti_i),
524
      .wbs1_bte_i                       (wbs_d_eth0_bte_i),
525
      .wbs1_dat_o                       (wbs_d_eth0_dat_o),
526
      .wbs1_ack_o                       (wbs_d_eth0_ack_o),
527
      .wbs1_err_o                       (wbs_d_eth0_err_o),
528
      .wbs1_rty_o                       (wbs_d_eth0_rty_o),
529
 
530
      .wbs2_adr_i                       (wbm_b_d_adr_o),
531
      .wbs2_dat_i                       (wbm_b_d_dat_o),
532
      .wbs2_sel_i                       (wbm_b_d_sel_o),
533
      .wbs2_we_i                        (wbm_b_d_we_o),
534
      .wbs2_cyc_i                       (wbm_b_d_cyc_o),
535
      .wbs2_stb_i                       (wbm_b_d_stb_o),
536
      .wbs2_cti_i                       (wbm_b_d_cti_o),
537
      .wbs2_bte_i                       (wbm_b_d_bte_o),
538
      .wbs2_dat_o                       (wbm_b_d_dat_i),
539
      .wbs2_ack_o                       (wbm_b_d_ack_i),
540
      .wbs2_err_o                       (wbm_b_d_err_i),
541
      .wbs2_rty_o                       (wbm_b_d_rty_i),
542
 
543
      // Clock, reset inputs
544
      .wb_clk                   (wb_clk),
545
      .wb_rst                   (wb_rst));
546
 
547
   // These settings are from top level params file
548
   defparam arbiter_dbus0.wb_addr_match_width = dbus_arb_wb_addr_match_width;
549
   defparam arbiter_dbus0.wb_num_slaves = dbus_arb_wb_num_slaves;
550
   defparam arbiter_dbus0.slave0_adr = dbus_arb_slave0_adr;
551
   defparam arbiter_dbus0.slave1_adr = dbus_arb_slave1_adr;
552
 
553
   //
554
   // Wishbone byte-wide bus arbiter
555
   //   
556
 
557
   arbiter_bytebus arbiter_bytebus0
558
     (
559
 
560
      // Master 0
561
      // Inputs to arbiter from master
562
      .wbm0_adr_o                       (wbm_b_d_adr_o),
563
      .wbm0_dat_o                       (wbm_b_d_dat_o),
564
      .wbm0_sel_o                       (wbm_b_d_sel_o),
565
      .wbm0_we_o                        (wbm_b_d_we_o),
566
      .wbm0_cyc_o                       (wbm_b_d_cyc_o),
567
      .wbm0_stb_o                       (wbm_b_d_stb_o),
568
      .wbm0_cti_o                       (wbm_b_d_cti_o),
569
      .wbm0_bte_o                       (wbm_b_d_bte_o),
570
      // Outputs to master from arbiter
571
      .wbm0_dat_i                       (wbm_b_d_dat_i),
572
      .wbm0_ack_i                       (wbm_b_d_ack_i),
573
      .wbm0_err_i                       (wbm_b_d_err_i),
574
      .wbm0_rty_i                       (wbm_b_d_rty_i),
575
 
576
      // Byte bus slaves
577
 
578
      .wbs0_adr_i                       (wbs_d_uart0_adr_i),
579
      .wbs0_dat_i                       (wbs_d_uart0_dat_i),
580
      .wbs0_we_i                        (wbs_d_uart0_we_i),
581
      .wbs0_cyc_i                       (wbs_d_uart0_cyc_i),
582
      .wbs0_stb_i                       (wbs_d_uart0_stb_i),
583
      .wbs0_cti_i                       (wbs_d_uart0_cti_i),
584
      .wbs0_bte_i                       (wbs_d_uart0_bte_i),
585
      .wbs0_dat_o                       (wbs_d_uart0_dat_o),
586
      .wbs0_ack_o                       (wbs_d_uart0_ack_o),
587
      .wbs0_err_o                       (wbs_d_uart0_err_o),
588
      .wbs0_rty_o                       (wbs_d_uart0_rty_o),
589
 
590
      .wbs1_adr_i                       (wbs_d_gpio0_adr_i),
591
      .wbs1_dat_i                       (wbs_d_gpio0_dat_i),
592
      .wbs1_we_i                        (wbs_d_gpio0_we_i),
593
      .wbs1_cyc_i                       (wbs_d_gpio0_cyc_i),
594
      .wbs1_stb_i                       (wbs_d_gpio0_stb_i),
595
      .wbs1_cti_i                       (wbs_d_gpio0_cti_i),
596
      .wbs1_bte_i                       (wbs_d_gpio0_bte_i),
597
      .wbs1_dat_o                       (wbs_d_gpio0_dat_o),
598
      .wbs1_ack_o                       (wbs_d_gpio0_ack_o),
599
      .wbs1_err_o                       (wbs_d_gpio0_err_o),
600
      .wbs1_rty_o                       (wbs_d_gpio0_rty_o),
601
 
602
      .wbs2_adr_i                       (wbs_d_i2c0_adr_i),
603
      .wbs2_dat_i                       (wbs_d_i2c0_dat_i),
604
      .wbs2_we_i                        (wbs_d_i2c0_we_i),
605
      .wbs2_cyc_i                       (wbs_d_i2c0_cyc_i),
606
      .wbs2_stb_i                       (wbs_d_i2c0_stb_i),
607
      .wbs2_cti_i                       (wbs_d_i2c0_cti_i),
608
      .wbs2_bte_i                       (wbs_d_i2c0_bte_i),
609
      .wbs2_dat_o                       (wbs_d_i2c0_dat_o),
610
      .wbs2_ack_o                       (wbs_d_i2c0_ack_o),
611
      .wbs2_err_o                       (wbs_d_i2c0_err_o),
612
      .wbs2_rty_o                       (wbs_d_i2c0_rty_o),
613
 
614
      .wbs3_adr_i                       (),
615
      .wbs3_dat_i                       (),
616
      .wbs3_we_i                        (),
617
      .wbs3_cyc_i                       (),
618
      .wbs3_stb_i                       (),
619
      .wbs3_cti_i                       (),
620
      .wbs3_bte_i                       (),
621
      .wbs3_dat_o                       (32'd0),
622
      .wbs3_ack_o                       (1'b0),
623
      .wbs3_err_o                       (1'b0),
624
      .wbs3_rty_o                       (1'b0),
625
 
626
      .wbs4_adr_i                       (wbs_d_spi0_adr_i),
627
      .wbs4_dat_i                       (wbs_d_spi0_dat_i),
628
      .wbs4_we_i                        (wbs_d_spi0_we_i),
629
      .wbs4_cyc_i                       (wbs_d_spi0_cyc_i),
630
      .wbs4_stb_i                       (wbs_d_spi0_stb_i),
631
      .wbs4_cti_i                       (wbs_d_spi0_cti_i),
632
      .wbs4_bte_i                       (wbs_d_spi0_bte_i),
633
      .wbs4_dat_o                       (wbs_d_spi0_dat_o),
634
      .wbs4_ack_o                       (wbs_d_spi0_ack_o),
635
      .wbs4_err_o                       (wbs_d_spi0_err_o),
636
      .wbs4_rty_o                       (wbs_d_spi0_rty_o),
637
 
638
      // Clock, reset inputs
639
      .wb_clk                   (wb_clk),
640
      .wb_rst                   (wb_rst));
641
 
642
   defparam arbiter_bytebus0.wb_addr_match_width = bbus_arb_wb_addr_match_width;
643
   defparam arbiter_bytebus0.wb_num_slaves = bbus_arb_wb_num_slaves;
644
 
645
   defparam arbiter_bytebus0.slave0_adr = bbus_arb_slave0_adr;
646
   defparam arbiter_bytebus0.slave1_adr = bbus_arb_slave1_adr;
647
   defparam arbiter_bytebus0.slave2_adr = bbus_arb_slave2_adr;
648
   defparam arbiter_bytebus0.slave3_adr = bbus_arb_slave3_adr;
649
   defparam arbiter_bytebus0.slave4_adr = bbus_arb_slave4_adr;
650
 
651
 
652
`ifdef JTAG_DEBUG
653
   ////////////////////////////////////////////////////////////////////////
654
   //
655
   // JTAG TAP
656
   // 
657
   ////////////////////////////////////////////////////////////////////////
658
 
659
   //
660
   // Wires
661
   //
662
   wire                                   dbg_if_select;
663
   wire                                   dbg_if_tdo;
664
   wire                                   jtag_tap_tdo;
665
   wire                                   jtag_tap_shift_dr, jtag_tap_pause_dr,
666
                                          jtag_tap_upate_dr, jtag_tap_capture_dr;
667
   //
668
   // Instantiation
669
   //
670
 
671
   jtag_tap jtag_tap0
672
     (
673
      // Ports to pads
674
      .tdo_pad_o                        (tdo_pad_o),
675
      .tms_pad_i                        (tms_pad_i),
676
      .tck_pad_i                        (dbg_tck),
677
      .trst_pad_i                       (async_rst),
678
      .tdi_pad_i                        (tdi_pad_i),
679
 
680
      .tdo_padoe_o                      (tdo_padoe_o),
681
 
682
      .tdo_o                            (jtag_tap_tdo),
683
 
684
      .shift_dr_o                       (jtag_tap_shift_dr),
685
      .pause_dr_o                       (jtag_tap_pause_dr),
686
      .update_dr_o                      (jtag_tap_update_dr),
687
      .capture_dr_o                     (jtag_tap_capture_dr),
688
 
689
      .extest_select_o                  (),
690
      .sample_preload_select_o          (),
691
      .mbist_select_o                   (),
692
      .debug_select_o                   (dbg_if_select),
693
 
694
 
695
      .bs_chain_tdi_i                   (1'b0),
696
      .mbist_tdi_i                      (1'b0),
697
      .debug_tdi_i                      (dbg_if_tdo)
698
 
699
      );
700
 
701
   ////////////////////////////////////////////////////////////////////////
702
`endif //  `ifdef JTAG_DEBUG
703
 
704
   ////////////////////////////////////////////////////////////////////////
705
   //
706
   // OpenRISC processor
707
   // 
708
   ////////////////////////////////////////////////////////////////////////
709
 
710
   // 
711
   // Wires
712
   // 
713
 
714
   wire [30:0]                             or1200_pic_ints;
715
 
716
   wire [31:0]                             or1200_dbg_dat_i;
717
   wire [31:0]                             or1200_dbg_adr_i;
718
   wire                                   or1200_dbg_we_i;
719
   wire                                   or1200_dbg_stb_i;
720
   wire                                   or1200_dbg_ack_o;
721
   wire [31:0]                             or1200_dbg_dat_o;
722
 
723
   wire                                   or1200_dbg_stall_i;
724
   wire                                   or1200_dbg_ewt_i;
725
   wire [3:0]                              or1200_dbg_lss_o;
726
   wire [1:0]                              or1200_dbg_is_o;
727
   wire [10:0]                             or1200_dbg_wp_o;
728
   wire                                   or1200_dbg_bp_o;
729
   wire                                   or1200_dbg_rst;
730
 
731
   wire                                   or1200_clk, or1200_rst;
732
   wire                                   sig_tick;
733
 
734
   //
735
   // Assigns
736
   //
737
   assign or1200_clk = wb_clk;
738
   assign or1200_rst = wb_rst | or1200_dbg_rst;
739
 
740
   // 
741
   // Instantiation
742
   //    
743
   or1200_top or1200_top0
744
       (
745
        // Instruction bus, clocks, reset
746
        .iwb_clk_i                      (wb_clk),
747
        .iwb_rst_i                      (wb_rst),
748
        .iwb_ack_i                      (wbm_i_or12_ack_i),
749
        .iwb_err_i                      (wbm_i_or12_err_i),
750
        .iwb_rty_i                      (wbm_i_or12_rty_i),
751
        .iwb_dat_i                      (wbm_i_or12_dat_i),
752
 
753
        .iwb_cyc_o                      (wbm_i_or12_cyc_o),
754
        .iwb_adr_o                      (wbm_i_or12_adr_o),
755
        .iwb_stb_o                      (wbm_i_or12_stb_o),
756
        .iwb_we_o                               (wbm_i_or12_we_o),
757
        .iwb_sel_o                      (wbm_i_or12_sel_o),
758
        .iwb_dat_o                      (wbm_i_or12_dat_o),
759
        .iwb_cti_o                      (wbm_i_or12_cti_o),
760
        .iwb_bte_o                      (wbm_i_or12_bte_o),
761
 
762
        // Data bus, clocks, reset            
763
        .dwb_clk_i                      (wb_clk),
764
        .dwb_rst_i                      (wb_rst),
765
        .dwb_ack_i                      (wbm_d_or12_ack_i),
766
        .dwb_err_i                      (wbm_d_or12_err_i),
767
        .dwb_rty_i                      (wbm_d_or12_rty_i),
768
        .dwb_dat_i                      (wbm_d_or12_dat_i),
769
 
770
        .dwb_cyc_o                      (wbm_d_or12_cyc_o),
771
        .dwb_adr_o                      (wbm_d_or12_adr_o),
772
        .dwb_stb_o                      (wbm_d_or12_stb_o),
773
        .dwb_we_o                               (wbm_d_or12_we_o),
774
        .dwb_sel_o                      (wbm_d_or12_sel_o),
775
        .dwb_dat_o                      (wbm_d_or12_dat_o),
776
        .dwb_cti_o                      (wbm_d_or12_cti_o),
777
        .dwb_bte_o                      (wbm_d_or12_bte_o),
778
 
779
        // Debug interface ports
780
        .dbg_stall_i                    (or1200_dbg_stall_i),
781
        //.dbg_ewt_i                    (or1200_dbg_ewt_i),
782
        .dbg_ewt_i                      (1'b0),
783
        .dbg_lss_o                      (or1200_dbg_lss_o),
784
        .dbg_is_o                               (or1200_dbg_is_o),
785
        .dbg_wp_o                               (or1200_dbg_wp_o),
786
        .dbg_bp_o                               (or1200_dbg_bp_o),
787
 
788
        .dbg_adr_i                      (or1200_dbg_adr_i),
789
        .dbg_we_i                               (or1200_dbg_we_i ),
790
        .dbg_stb_i                      (or1200_dbg_stb_i),
791
        .dbg_dat_i                      (or1200_dbg_dat_i),
792
        .dbg_dat_o                      (or1200_dbg_dat_o),
793
        .dbg_ack_o                      (or1200_dbg_ack_o),
794
 
795
        .pm_clksd_o                     (),
796
        .pm_dc_gate_o                   (),
797
        .pm_ic_gate_o                   (),
798
        .pm_dmmu_gate_o                 (),
799
        .pm_immu_gate_o                 (),
800
        .pm_tt_gate_o                   (),
801
        .pm_cpu_gate_o                  (),
802
        .pm_wakeup_o                    (),
803
        .pm_lvolt_o                     (),
804
 
805
        // Core clocks, resets
806
        .clk_i                          (or1200_clk),
807
        .rst_i                          (or1200_rst),
808
 
809
        .clmode_i                               (2'b00),
810
        // Interrupts      
811
        .pic_ints_i                     (or1200_pic_ints),
812
        .sig_tick(sig_tick),
813
        /*
814
         .mbist_so_o                    (),
815
         .mbist_si_i                    (0),
816
         .mbist_ctrl_i                  (0),
817
         */
818
 
819
        .pm_cpustall_i                  (1'b0)
820
 
821
        );
822
 
823
   ////////////////////////////////////////////////////////////////////////
824
 
825
 
826
`ifdef JTAG_DEBUG
827
   ////////////////////////////////////////////////////////////////////////
828
         //
829
   // OR1200 Debug Interface
830
   // 
831
   ////////////////////////////////////////////////////////////////////////
832
 
833
   dbg_if dbg_if0
834
     (
835
      // OR1200 interface
836
      .cpu0_clk_i                       (or1200_clk),
837
      .cpu0_rst_o                       (or1200_dbg_rst),
838
      .cpu0_addr_o                      (or1200_dbg_adr_i),
839
      .cpu0_data_o                      (or1200_dbg_dat_i),
840
      .cpu0_stb_o                       (or1200_dbg_stb_i),
841
      .cpu0_we_o                        (or1200_dbg_we_i),
842
      .cpu0_data_i                      (or1200_dbg_dat_o),
843
      .cpu0_ack_i                       (or1200_dbg_ack_o),
844
 
845
 
846
      .cpu0_stall_o                     (or1200_dbg_stall_i),
847
      .cpu0_bp_i                        (or1200_dbg_bp_o),
848
 
849
      // TAP interface
850
      .tck_i                            (dbg_tck),
851
      .tdi_i                            (jtag_tap_tdo),
852
      .tdo_o                            (dbg_if_tdo),
853
      .rst_i                            (wb_rst),
854
      .shift_dr_i                       (jtag_tap_shift_dr),
855
      .pause_dr_i                       (jtag_tap_pause_dr),
856
      .update_dr_i                      (jtag_tap_update_dr),
857
      .debug_select_i                   (dbg_if_select),
858
 
859
      // Wishbone debug master
860
      .wb_clk_i                         (wb_clk),
861
      .wb_dat_i                         (wbm_d_dbg_dat_i),
862
      .wb_ack_i                         (wbm_d_dbg_ack_i),
863
      .wb_err_i                         (wbm_d_dbg_err_i),
864
      .wb_adr_o                         (wbm_d_dbg_adr_o),
865
      .wb_dat_o                         (wbm_d_dbg_dat_o),
866
      .wb_cyc_o                         (wbm_d_dbg_cyc_o),
867
      .wb_stb_o                         (wbm_d_dbg_stb_o),
868
      .wb_sel_o                         (wbm_d_dbg_sel_o),
869
      .wb_we_o                          (wbm_d_dbg_we_o ),
870
      .wb_cti_o                         (wbm_d_dbg_cti_o),
871
      .wb_cab_o                         (/*   UNUSED  */),
872
      .wb_bte_o                         (wbm_d_dbg_bte_o)
873
      );
874
 
875
   ////////////////////////////////////////////////////////////////////////   
876
`else // !`ifdef JTAG_DEBUG
877
 
878
   assign wbm_d_dbg_adr_o = 0;
879
   assign wbm_d_dbg_dat_o = 0;
880
   assign wbm_d_dbg_cyc_o = 0;
881
   assign wbm_d_dbg_stb_o = 0;
882
   assign wbm_d_dbg_sel_o = 0;
883
   assign wbm_d_dbg_we_o  = 0;
884
   assign wbm_d_dbg_cti_o = 0;
885
   assign wbm_d_dbg_bte_o = 0;
886
 
887
   assign or1200_dbg_adr_i = 0;
888
   assign or1200_dbg_dat_i = 0;
889
   assign or1200_dbg_stb_i = 0;
890
   assign or1200_dbg_we_i = 0;
891
   assign or1200_dbg_stall_i = 0;
892
 
893
   ////////////////////////////////////////////////////////////////////////   
894
`endif // !`ifdef JTAG_DEBUG
895
 
896
`ifdef XILINX_DDR2
897
   ////////////////////////////////////////////////////////////////////////
898
   //
899
   // Xilinx MIG DDR2 controller, Wishbone interface
900
   // 
901
   ////////////////////////////////////////////////////////////////////////
902
   xilinx_s3adsp_ddr2 xilinx_s3adsp_ddr2
903
     (
904
      .wbm0_adr_i                       (wbm_eth0_adr_o),
905
      .wbm0_bte_i                       (wbm_eth0_bte_o),
906
      .wbm0_cti_i                       (wbm_eth0_cti_o),
907
      .wbm0_cyc_i                       (wbm_eth0_cyc_o),
908
      .wbm0_dat_i                       (wbm_eth0_dat_o),
909
      .wbm0_sel_i                       (wbm_eth0_sel_o),
910
      .wbm0_stb_i                       (wbm_eth0_stb_o),
911
      .wbm0_we_i                        (wbm_eth0_we_o),
912
      .wbm0_ack_o                       (wbm_eth0_ack_i),
913
      .wbm0_err_o                       (wbm_eth0_err_i),
914
      .wbm0_rty_o                       (wbm_eth0_rty_i),
915
      .wbm0_dat_o                       (wbm_eth0_dat_i),
916
 
917
      .wbm1_adr_i                       (wbs_d_mc0_adr_i),
918
      .wbm1_bte_i                       (wbs_d_mc0_bte_i),
919
      .wbm1_cti_i                       (wbs_d_mc0_cti_i),
920
      .wbm1_cyc_i                       (wbs_d_mc0_cyc_i),
921
      .wbm1_dat_i                       (wbs_d_mc0_dat_i),
922
      .wbm1_sel_i                       (wbs_d_mc0_sel_i),
923
      .wbm1_stb_i                       (wbs_d_mc0_stb_i),
924
      .wbm1_we_i                        (wbs_d_mc0_we_i),
925
      .wbm1_ack_o                       (wbs_d_mc0_ack_o),
926
      .wbm1_err_o                       (wbs_d_mc0_err_o),
927
      .wbm1_rty_o                       (wbs_d_mc0_rty_o),
928
      .wbm1_dat_o                       (wbs_d_mc0_dat_o),
929
 
930
      .wbm2_adr_i                       (wbs_i_mc0_adr_i),
931
      .wbm2_bte_i                       (wbs_i_mc0_bte_i),
932
      .wbm2_cti_i                       (wbs_i_mc0_cti_i),
933
      .wbm2_cyc_i                       (wbs_i_mc0_cyc_i),
934
      .wbm2_dat_i                       (wbs_i_mc0_dat_i),
935
      .wbm2_sel_i                       (wbs_i_mc0_sel_i),
936
      .wbm2_stb_i                       (wbs_i_mc0_stb_i),
937
      .wbm2_we_i                        (wbs_i_mc0_we_i),
938
      .wbm2_ack_o                       (wbs_i_mc0_ack_o),
939
      .wbm2_err_o                       (wbs_i_mc0_err_o),
940
      .wbm2_rty_o                       (wbs_i_mc0_rty_o),
941
      .wbm2_dat_o                       (wbs_i_mc0_dat_o),
942
 
943
      .wb_clk                           (wb_clk),
944
      .wb_rst                           (wb_rst),
945
 
946
      .ddr2_dq                          (ddr2_dq),
947
      .ddr2_a                           (ddr2_a),
948
      .ddr2_ba                          (ddr2_ba),
949
      .ddr2_cke                         (ddr2_cke),
950
      .ddr2_cs_n                        (ddr2_cs_n),
951
      .ddr2_ras_n                       (ddr2_ras_n),
952
      .ddr2_cas_n                       (ddr2_cas_n),
953
      .ddr2_we_n                        (ddr2_we_n),
954
      .ddr2_odt                         (ddr2_odt),
955
      .ddr2_dm                          (ddr2_dm),
956
      .ddr2_dqs                         (ddr2_dqs),
957
      .ddr2_dqs_n                       (ddr2_dqs_n),
958
      .ddr2_ck                          (ddr2_ck),
959
      .ddr2_ck_n                        (ddr2_ck_n),
960
      .ddr2_rst_dqs_div_in              (ddr2_rst_dqs_div_in),
961
      .ddr2_rst_dqs_div_out             (ddr2_rst_dqs_div_out),
962
 
963
      .clk133_i                         (clk133)
964
      );
965
 
966
`endif
967
 
968
 
969
   ////////////////////////////////////////////////////////////////////////
970
   //
971
   // ROM
972
   // 
973
   ////////////////////////////////////////////////////////////////////////
974
 
975
   rom rom0
976
     (
977
      .wb_dat_o                         (wbs_i_rom0_dat_o),
978
      .wb_ack_o                         (wbs_i_rom0_ack_o),
979
      .wb_adr_i                         (wbs_i_rom0_adr_i[(wbs_i_rom0_addr_width+2)-1:2]),
980
      .wb_stb_i                         (wbs_i_rom0_stb_i),
981
      .wb_cyc_i                         (wbs_i_rom0_cyc_i),
982
      .wb_cti_i                         (wbs_i_rom0_cti_i),
983
      .wb_bte_i                         (wbs_i_rom0_bte_i),
984
      .wb_clk                           (wb_clk),
985
      .wb_rst                           (wb_rst));
986
 
987
   defparam rom0.addr_width = wbs_i_rom0_addr_width;
988
 
989
   assign wbs_i_rom0_err_o = 0;
990
   assign wbs_i_rom0_rty_o = 0;
991
 
992
   ////////////////////////////////////////////////////////////////////////
993
 
994
`ifdef RAM_WB
995
   ////////////////////////////////////////////////////////////////////////
996
   //
997
   // Generic RAM
998
   // 
999
   ////////////////////////////////////////////////////////////////////////
1000
 
1001
   ram_wb ram_wb0
1002
     (
1003
      // Wishbone slave interface 0
1004
      .wbm0_dat_i                       (wbs_i_mc0_dat_i),
1005
      .wbm0_adr_i                       (wbs_i_mc0_adr_i),
1006
      .wbm0_sel_i                       (wbs_i_mc0_sel_i),
1007
      .wbm0_cti_i                       (wbs_i_mc0_cti_i),
1008
      .wbm0_bte_i                       (wbs_i_mc0_bte_i),
1009
      .wbm0_we_i                        (wbs_i_mc0_we_i ),
1010
      .wbm0_cyc_i                       (wbs_i_mc0_cyc_i),
1011
      .wbm0_stb_i                       (wbs_i_mc0_stb_i),
1012
      .wbm0_dat_o                       (wbs_i_mc0_dat_o),
1013
      .wbm0_ack_o                       (wbs_i_mc0_ack_o),
1014
      .wbm0_err_o                       (wbs_i_mc0_err_o),
1015
      .wbm0_rty_o                       (wbs_i_mc0_rty_o),
1016
      // Wishbone slave interface 1
1017
      .wbm1_dat_i                       (wbs_d_mc0_dat_i),
1018
      .wbm1_adr_i                       (wbs_d_mc0_adr_i),
1019
      .wbm1_sel_i                       (wbs_d_mc0_sel_i),
1020
      .wbm1_cti_i                       (wbs_d_mc0_cti_i),
1021
      .wbm1_bte_i                       (wbs_d_mc0_bte_i),
1022
      .wbm1_we_i                        (wbs_d_mc0_we_i ),
1023
      .wbm1_cyc_i                       (wbs_d_mc0_cyc_i),
1024
      .wbm1_stb_i                       (wbs_d_mc0_stb_i),
1025
      .wbm1_dat_o                       (wbs_d_mc0_dat_o),
1026
      .wbm1_ack_o                       (wbs_d_mc0_ack_o),
1027
      .wbm1_err_o                       (wbs_d_mc0_err_o),
1028
      .wbm1_rty_o                       (wbs_d_mc0_rty_o),
1029
      // Wishbone slave interface 2
1030
      .wbm2_dat_i                       (wbm_eth0_dat_o),
1031
      .wbm2_adr_i                       (wbm_eth0_adr_o),
1032
      .wbm2_sel_i                       (wbm_eth0_sel_o),
1033
      .wbm2_cti_i                       (wbm_eth0_cti_o),
1034
      .wbm2_bte_i                       (wbm_eth0_bte_o),
1035
      .wbm2_we_i                        (wbm_eth0_we_o ),
1036
      .wbm2_cyc_i                       (wbm_eth0_cyc_o),
1037
      .wbm2_stb_i                       (wbm_eth0_stb_o),
1038
      .wbm2_dat_o                       (wbm_eth0_dat_i),
1039
      .wbm2_ack_o                       (wbm_eth0_ack_i),
1040
      .wbm2_err_o                       (wbm_eth0_err_i),
1041
      .wbm2_rty_o                       (wbm_eth0_rty_i),
1042
      // Clock, reset
1043
      .wb_clk_i                         (wb_clk),
1044
      .wb_rst_i                         (wb_rst));
1045
 
1046
   defparam ram_wb0.aw = wb_aw;
1047
   defparam ram_wb0.dw = wb_dw;
1048
 
1049
   defparam ram_wb0.mem_size_bytes = (8192*1024); // 8MB
1050
   defparam ram_wb0.mem_adr_width = 23; // log2(8192*1024)
1051
   ////////////////////////////////////////////////////////////////////////
1052
`endif //  `ifdef RAM_WB
1053
 
1054
 
1055
`ifdef ETH0
1056
 
1057
   //
1058
   // Wires
1059
   //
1060
   wire        eth0_irq;
1061
   wire [3:0]  eth0_mtxd;
1062
   wire        eth0_mtxen;
1063
   wire        eth0_mtxerr;
1064
   wire        eth0_mtx_clk;
1065
   wire        eth0_mrx_clk;
1066
   wire [3:0]  eth0_mrxd;
1067
   wire        eth0_mrxdv;
1068
   wire        eth0_mrxerr;
1069
   wire        eth0_mcoll;
1070
   wire        eth0_mcrs;
1071
   wire        eth0_speed;
1072
   wire        eth0_duplex;
1073
   wire        eth0_link;
1074
   // Management interface wires
1075
   wire        eth0_md_i;
1076
   wire        eth0_md_o;
1077
   wire        eth0_md_oe;
1078
 
1079
 
1080
   //
1081
   // assigns
1082
 
1083
   // Hook up MII wires
1084
   assign eth0_mtx_clk   = eth0_tx_clk;
1085
   assign eth0_tx_data   = eth0_mtxd[3:0];
1086
   assign eth0_tx_en     = eth0_mtxen;
1087
   assign eth0_tx_er     = eth0_mtxerr;
1088
   assign eth0_mrxd[3:0] = eth0_rx_data;
1089
   assign eth0_mrxdv     = eth0_dv;
1090
   assign eth0_mrxerr    = eth0_rx_er;
1091
   assign eth0_mrx_clk   = eth0_rx_clk;
1092
   assign eth0_mcoll     = eth0_col;
1093
   assign eth0_mcrs      = eth0_crs;
1094
 
1095
`ifdef XILINX
1096
   // Xilinx primitive for MDIO tristate
1097
   IOBUF iobuf_phy_smi_data
1098
     (
1099
      // Outputs
1100
      .O                                 (eth0_md_i),
1101
      // Inouts
1102
      .IO                                (eth0_md_pad_io),
1103
      // Inputs
1104
      .I                                 (eth0_md_o),
1105
      .T                                 (!eth0_md_oe));
1106
`else // !`ifdef XILINX
1107
 
1108
   // Generic technology tristate control for management interface
1109
   assign eth0_md_pad_io = eth0_md_oe ? eth0_md_o : 1'bz;
1110
   assign eth0_md_i = eth0_md_pad_io;
1111
 
1112
`endif // !`ifdef XILINX
1113
 
1114
`ifdef ETH0_PHY_RST
1115
   assign eth0_rst_n_o = !wb_rst;
1116
`endif
1117
 
1118
   ethmac ethmac0
1119
     (
1120
      // Wishbone Slave interface
1121
      .wb_clk_i         (wb_clk),
1122
      .wb_rst_i         (wb_rst),
1123
      .wb_dat_i         (wbs_d_eth0_dat_i[31:0]),
1124
      .wb_adr_i         (wbs_d_eth0_adr_i[wbs_d_eth0_addr_width-1:2]),
1125
      .wb_sel_i         (wbs_d_eth0_sel_i[3:0]),
1126
      .wb_we_i          (wbs_d_eth0_we_i),
1127
      .wb_cyc_i         (wbs_d_eth0_cyc_i),
1128
      .wb_stb_i         (wbs_d_eth0_stb_i),
1129
      .wb_dat_o         (wbs_d_eth0_dat_o[31:0]),
1130
      .wb_err_o         (wbs_d_eth0_err_o),
1131
      .wb_ack_o         (wbs_d_eth0_ack_o),
1132
      // Wishbone Master Interface
1133
      .m_wb_adr_o       (wbm_eth0_adr_o[31:0]),
1134
      .m_wb_sel_o       (wbm_eth0_sel_o[3:0]),
1135
      .m_wb_we_o        (wbm_eth0_we_o),
1136
      .m_wb_dat_o       (wbm_eth0_dat_o[31:0]),
1137
      .m_wb_cyc_o       (wbm_eth0_cyc_o),
1138
      .m_wb_stb_o       (wbm_eth0_stb_o),
1139
      .m_wb_cti_o       (wbm_eth0_cti_o[2:0]),
1140
      .m_wb_bte_o       (wbm_eth0_bte_o[1:0]),
1141
      .m_wb_dat_i       (wbm_eth0_dat_i[31:0]),
1142
      .m_wb_ack_i       (wbm_eth0_ack_i),
1143
      .m_wb_err_i       (wbm_eth0_err_i),
1144
 
1145
      // Ethernet MII interface
1146
      // Transmit
1147
      .mtxd_pad_o       (eth0_mtxd[3:0]),
1148
      .mtxen_pad_o      (eth0_mtxen),
1149
      .mtxerr_pad_o     (eth0_mtxerr),
1150
      .mtx_clk_pad_i    (eth0_mtx_clk),
1151
      // Receive
1152
      .mrx_clk_pad_i    (eth0_mrx_clk),
1153
      .mrxd_pad_i       (eth0_mrxd[3:0]),
1154
      .mrxdv_pad_i      (eth0_mrxdv),
1155
      .mrxerr_pad_i     (eth0_mrxerr),
1156
      .mcoll_pad_i      (eth0_mcoll),
1157
      .mcrs_pad_i       (eth0_mcrs),
1158
      // Management interface
1159
      .md_pad_i         (eth0_md_i),
1160
      .mdc_pad_o        (eth0_mdc_pad_o),
1161
      .md_pad_o         (eth0_md_o),
1162
      .md_padoe_o       (eth0_md_oe),
1163
 
1164
      // Processor interrupt
1165
      .int_o            (eth0_irq)
1166
 
1167
      /*
1168
       .mbist_so_o                      (),
1169
       .mbist_si_i                      (),
1170
       .mbist_ctrl_i                    ()
1171
       */
1172
 
1173
      );
1174
 
1175
   assign wbs_d_eth0_rty_o = 0;
1176
 
1177
`else
1178
   assign wbs_d_eth0_dat_o = 0;
1179
   assign wbs_d_eth0_err_o = 0;
1180
   assign wbs_d_eth0_ack_o = 0;
1181
   assign wbs_d_eth0_rty_o = 0;
1182
   assign wbm_eth0_adr_o = 0;
1183
   assign wbm_eth0_sel_o = 0;
1184
   assign wbm_eth0_we_o = 0;
1185
   assign wbm_eth0_dat_o = 0;
1186
   assign wbm_eth0_cyc_o = 0;
1187
   assign wbm_eth0_stb_o = 0;
1188
   assign wbm_eth0_cti_o = 0;
1189
   assign wbm_eth0_bte_o = 0;
1190
`endif
1191
 
1192
`ifdef UART0
1193
   ////////////////////////////////////////////////////////////////////////
1194
   //
1195
   // UART0
1196
   // 
1197
   ////////////////////////////////////////////////////////////////////////
1198
 
1199
   //
1200
   // Wires
1201
   //
1202
   wire        uart0_srx;
1203
   wire        uart0_stx;
1204
 
1205
   wire        uart0_irq;
1206
 
1207
   //
1208
   // Assigns
1209
   //
1210
   assign wbs_d_uart0_err_o = 0;
1211
   assign wbs_d_uart0_rty_o = 0;
1212
 
1213
   // Two UART lines coming to single one (ensure they go high when unconnected)
1214
   assign uart0_srx = uart0_srx_pad_i & uart0_srx_expheader_pad_i;
1215
   assign uart0_stx_pad_o = uart0_stx;
1216
   assign uart0_stx_expheader_pad_o = uart0_stx;
1217
 
1218
 
1219
   uart16550 uart16550_0
1220
     (
1221
      // Wishbone slave interface
1222
      .wb_clk_i                         (wb_clk),
1223
      .wb_rst_i                         (wb_rst),
1224
      .wb_adr_i                         (wbs_d_uart0_adr_i[uart0_addr_width-1:0]),
1225
      .wb_dat_i                         (wbs_d_uart0_dat_i),
1226
      .wb_we_i                          (wbs_d_uart0_we_i),
1227
      .wb_stb_i                         (wbs_d_uart0_stb_i),
1228
      .wb_cyc_i                         (wbs_d_uart0_cyc_i),
1229
      //.wb_sel_i                               (),
1230
      .wb_dat_o                         (wbs_d_uart0_dat_o),
1231
      .wb_ack_o                         (wbs_d_uart0_ack_o),
1232
 
1233
      .int_o                            (uart0_irq),
1234
      .stx_pad_o                        (uart0_stx),
1235
      .rts_pad_o                        (),
1236
      .dtr_pad_o                        (),
1237
      //      .baud_o                           (),
1238
      // Inputs
1239
      .srx_pad_i                        (uart0_srx),
1240
      .cts_pad_i                        (1'b0),
1241
      .dsr_pad_i                        (1'b0),
1242
      .ri_pad_i                         (1'b0),
1243
      .dcd_pad_i                        (1'b0));
1244
 
1245
   ////////////////////////////////////////////////////////////////////////          
1246
`else // !`ifdef UART0
1247
 
1248
   //
1249
   // Assigns
1250
   //
1251
   assign wbs_d_uart0_err_o = 0;
1252
   assign wbs_d_uart0_rty_o = 0;
1253
   assign wbs_d_uart0_ack_o = 0;
1254
   assign wbs_d_uart0_dat_o = 0;
1255
 
1256
   ////////////////////////////////////////////////////////////////////////       
1257
`endif // !`ifdef UART0
1258
 
1259
`ifdef SPI0
1260
   ////////////////////////////////////////////////////////////////////////
1261
   //
1262
   // SPI0 controller
1263
   // 
1264
   ////////////////////////////////////////////////////////////////////////
1265
 
1266
   //
1267
   // Wires
1268
   //
1269
   wire                              spi0_irq;
1270
 
1271
   //
1272
   // Assigns
1273
   //
1274
   assign wbs_d_spi0_err_o = 0;
1275
   assign wbs_d_spi0_rty_o = 0;
1276
   //assign spi0_hold_n_o = 1;
1277
   //assign spi0_w_n_o = 1;
1278
 
1279
 
1280
   simple_spi spi0
1281
     (
1282
      // Wishbone slave interface
1283
      .clk_i                            (wb_clk),
1284
      .rst_i                            (wb_rst),
1285
      .cyc_i                            (wbs_d_spi0_cyc_i),
1286
      .stb_i                            (wbs_d_spi0_stb_i),
1287
      .adr_i                            (wbs_d_spi0_adr_i[spi0_wb_adr_width-1:0]),
1288
      .we_i                             (wbs_d_spi0_we_i),
1289
      .dat_i                            (wbs_d_spi0_dat_i),
1290
      .dat_o                            (wbs_d_spi0_dat_o),
1291
      .ack_o                            (wbs_d_spi0_ack_o),
1292
      // SPI IRQ
1293
      .inta_o                           (spi0_irq),
1294
      // External SPI interface
1295
      .sck_o                            (spi0_sck_o),
1296
      .ss_o                             (spi0_ss_o),
1297
      .mosi_o                           (spi0_mosi_o),
1298
      .miso_i                           (spi0_miso_i)
1299
      );
1300
 
1301
   defparam spi0.slave_select_width = spi0_ss_width;
1302
 
1303
   ////////////////////////////////////////////////////////////////////////   
1304
`else // !`ifdef SPI0
1305
 
1306
   //
1307
   // Assigns
1308
   //
1309
   assign wbs_d_spi0_dat_o = 0;
1310
   assign wbs_d_spi0_ack_o = 0;
1311
   assign wbs_d_spi0_err_o = 0;
1312
   assign wbs_d_spi0_rty_o = 0;
1313
 
1314
   ////////////////////////////////////////////////////////////////////////
1315
`endif // !`ifdef SPI0   
1316
 
1317
 
1318
`ifdef I2C0
1319
   ////////////////////////////////////////////////////////////////////////
1320
   //
1321
   // i2c controller 0
1322
   // 
1323
   ////////////////////////////////////////////////////////////////////////
1324
 
1325
   //
1326
   // Wires
1327
   //
1328
   wire                              i2c0_irq;
1329
   wire                              scl0_pad_o;
1330
   wire                              scl0_padoen_o;
1331
   wire                              sda0_pad_o;
1332
   wire                              sda0_padoen_o;
1333
 
1334
  i2c_master_slave
1335
    #
1336
    (
1337
     .DEFAULT_SLAVE_ADDR(HV0_SADR)
1338
    )
1339
  i2c_master_slave0
1340
    (
1341
     .wb_clk_i                       (wb_clk),
1342
     .wb_rst_i                       (wb_rst),
1343
     .arst_i                         (wb_rst),
1344
     .wb_adr_i                       (wbs_d_i2c0_adr_i[i2c_0_wb_adr_width-1:0]),
1345
     .wb_dat_i                       (wbs_d_i2c0_dat_i),
1346
     .wb_we_i                        (wbs_d_i2c0_we_i ),
1347
     .wb_cyc_i                       (wbs_d_i2c0_cyc_i),
1348
     .wb_stb_i                       (wbs_d_i2c0_stb_i),
1349
     .wb_dat_o                       (wbs_d_i2c0_dat_o),
1350
     .wb_ack_o                       (wbs_d_i2c0_ack_o),
1351
     .scl_pad_i                      (i2c0_scl_io     ),
1352
     .scl_pad_o                      (scl0_pad_o         ),
1353
     .scl_padoen_o                   (scl0_padoen_o      ),
1354
     .sda_pad_i                      (i2c0_sda_io        ),
1355
     .sda_pad_o                      (sda0_pad_o         ),
1356
     .sda_padoen_o                   (sda0_padoen_o      ),
1357
 
1358
      // Interrupt
1359
     .wb_inta_o                      (i2c0_irq)
1360
 
1361
      );
1362
 
1363
   assign wbs_d_i2c0_err_o = 0;
1364
   assign wbs_d_i2c0_rty_o = 0;
1365
 
1366
   // i2c phy lines
1367
   assign i2c0_scl_io = scl0_padoen_o ? 1'bz : scl0_pad_o;
1368
   assign i2c0_sda_io = sda0_padoen_o ? 1'bz : sda0_pad_o;
1369
 
1370
 
1371
   ////////////////////////////////////////////////////////////////////////
1372
`else // !`ifdef I2C0
1373
 
1374
   assign wbs_d_i2c0_dat_o = 0;
1375
   assign wbs_d_i2c0_ack_o = 0;
1376
   assign wbs_d_i2c0_err_o = 0;
1377
   assign wbs_d_i2c0_rty_o = 0;
1378
 
1379
   ////////////////////////////////////////////////////////////////////////
1380
`endif // !`ifdef I2C0   
1381
 
1382
`ifdef GPIO0
1383
   ////////////////////////////////////////////////////////////////////////
1384
   //
1385
   // GPIO 0
1386
   // 
1387
   ////////////////////////////////////////////////////////////////////////
1388
 
1389
   gpio gpio0
1390
     (
1391
      // GPIO bus
1392
      .gpio_io                          (gpio0_io[gpio0_io_width-1:0]),
1393
      // Wishbone slave interface
1394
      .wb_adr_i                         (wbs_d_gpio0_adr_i[gpio0_wb_adr_width-1:0]),
1395
      .wb_dat_i                         (wbs_d_gpio0_dat_i),
1396
      .wb_we_i                          (wbs_d_gpio0_we_i),
1397
      .wb_cyc_i                         (wbs_d_gpio0_cyc_i),
1398
      .wb_stb_i                         (wbs_d_gpio0_stb_i),
1399
      .wb_cti_i                         (wbs_d_gpio0_cti_i),
1400
      .wb_bte_i                         (wbs_d_gpio0_bte_i),
1401
      .wb_dat_o                         (wbs_d_gpio0_dat_o),
1402
      .wb_ack_o                         (wbs_d_gpio0_ack_o),
1403
      .wb_err_o                         (wbs_d_gpio0_err_o),
1404
      .wb_rty_o                         (wbs_d_gpio0_rty_o),
1405
 
1406
      .wb_clk                           (wb_clk),
1407
      .wb_rst                           (wb_rst)
1408
      );
1409
 
1410
   defparam gpio0.gpio_io_width = gpio0_io_width;
1411
   defparam gpio0.gpio_dir_reset_val = gpio0_dir_reset_val;
1412
   defparam gpio0.gpio_o_reset_val = gpio0_o_reset_val;
1413
 
1414
   ////////////////////////////////////////////////////////////////////////
1415
`else // !`ifdef GPIO0
1416
   assign wbs_d_gpio0_dat_o = 0;
1417
   assign wbs_d_gpio0_ack_o = 0;
1418
   assign wbs_d_gpio0_err_o = 0;
1419
   assign wbs_d_gpio0_rty_o = 0;
1420
   ////////////////////////////////////////////////////////////////////////
1421
`endif // !`ifdef GPIO0
1422
 
1423
   ////////////////////////////////////////////////////////////////////////
1424
   //
1425
   // OR1200 Interrupt assignment
1426
   // 
1427
   ////////////////////////////////////////////////////////////////////////
1428
 
1429
   assign or1200_pic_ints[0] = 0; // Non-maskable inside OR1200
1430
   assign or1200_pic_ints[1] = 0; // Non-maskable inside OR1200
1431
`ifdef UART0
1432
   assign or1200_pic_ints[2] = uart0_irq;
1433
`else
1434
   assign or1200_pic_ints[2] = 0;
1435
`endif
1436
   assign or1200_pic_ints[3] = 0;
1437
`ifdef ETH0
1438
   assign or1200_pic_ints[4] = eth0_irq;
1439
`else
1440
   assign or1200_pic_ints[4] = 0;
1441
`endif
1442
   assign or1200_pic_ints[5] = 0;
1443
`ifdef SPI0
1444
   assign or1200_pic_ints[6] = spi0_irq;
1445
`else
1446
   assign or1200_pic_ints[6] = 0;
1447
`endif
1448
   assign or1200_pic_ints[7] = 0;
1449
   assign or1200_pic_ints[8] = 0;
1450
   assign or1200_pic_ints[9] = 0;
1451
`ifdef I2C0
1452
   assign or1200_pic_ints[10] = i2c0_irq;
1453
`else
1454
   assign or1200_pic_ints[10] = 0;
1455
`endif
1456
   assign or1200_pic_ints[11] = 0;
1457
   assign or1200_pic_ints[12] = 0;
1458
   assign or1200_pic_ints[13] = 0;
1459
   assign or1200_pic_ints[14] = 0;
1460
   assign or1200_pic_ints[15] = 0;
1461
   assign or1200_pic_ints[16] = 0;
1462
   assign or1200_pic_ints[17] = 0;
1463
   assign or1200_pic_ints[18] = 0;
1464
   assign or1200_pic_ints[19] = 0;
1465
   assign or1200_pic_ints[20] = 0;
1466
   assign or1200_pic_ints[21] = 0;
1467
   assign or1200_pic_ints[22] = 0;
1468
   assign or1200_pic_ints[23] = 0;
1469
   assign or1200_pic_ints[24] = 0;
1470
   assign or1200_pic_ints[25] = 0;
1471
   assign or1200_pic_ints[26] = 0;
1472
   assign or1200_pic_ints[27] = 0;
1473
   assign or1200_pic_ints[28] = 0;
1474
   assign or1200_pic_ints[29] = 0;
1475
   assign or1200_pic_ints[30] = 0;
1476
 
1477
endmodule // orpsoc_top
1478
 
1479
 

powered by: WebSVN 2.1.0

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