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

Subversion Repositories pci

[/] [pci/] [tags/] [asyst_2/] [rtl/] [verilog/] [pci_bridge32.v] - Blame information for rev 154

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 mihad
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
////  File name "pci_bridge32.v"                                  ////
4
////                                                              ////
5
////  This file is part of the "PCI bridge" project               ////
6
////  http://www.opencores.org/cores/pci/                         ////
7
////                                                              ////
8
////  Author(s):                                                  ////
9
////      - Miha Dolenc (mihad@opencores.org)                     ////
10
////      - Tadej Markovic (tadej@opencores.org)                  ////
11
////                                                              ////
12
////  All additional information is avaliable in the README       ////
13
////  file.                                                       ////
14
////                                                              ////
15
////                                                              ////
16
//////////////////////////////////////////////////////////////////////
17
////                                                              ////
18
//// Copyright (C) 2001 Miha Dolenc, mihad@opencores.org          ////
19
////                                                              ////
20
//// This source file may be used and distributed without         ////
21
//// restriction provided that this copyright statement is not    ////
22
//// removed from the file and that any derivative work contains  ////
23
//// the original copyright notice and the associated disclaimer. ////
24
////                                                              ////
25
//// This source file is free software; you can redistribute it   ////
26
//// and/or modify it under the terms of the GNU Lesser General   ////
27
//// Public License as published by the Free Software Foundation; ////
28
//// either version 2.1 of the License, or (at your option) any   ////
29
//// later version.                                               ////
30
////                                                              ////
31
//// This source is distributed in the hope that it will be       ////
32
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
33
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
34
//// PURPOSE.  See the GNU Lesser General Public License for more ////
35
//// details.                                                     ////
36
////                                                              ////
37
//// You should have received a copy of the GNU Lesser General    ////
38
//// Public License along with this source; if not, download it   ////
39
//// from http://www.opencores.org/lgpl.shtml                     ////
40
////                                                              ////
41
//////////////////////////////////////////////////////////////////////
42
//
43
// CVS Revision History
44
//
45
// $Log: not supported by cvs2svn $
46 132 mihad
// Revision 1.15  2003/12/10 12:02:54  mihad
47
// The wbs B3 to B2 translation logic had wrong reset wire connected!
48
//
49 130 mihad
// Revision 1.14  2003/12/09 09:33:57  simons
50
// Some warning cleanup.
51
//
52 128 simons
// Revision 1.13  2003/10/17 09:11:52  markom
53
// mbist signals updated according to newest convention
54
//
55 122 markom
// Revision 1.12  2003/08/21 20:49:03  tadejm
56
// Added signals for WB Master B3.
57
//
58 115 tadejm
// Revision 1.11  2003/08/08 16:36:33  tadejm
59
// Added 'three_left_out' to pci_pciw_fifo signaling three locations before full. Added comparison between current registered cbe and next unregistered cbe to signal wb_master whether it is allowed to performe burst or not. Due to this, I needed 'three_left_out' so that writing to pci_pciw_fifo can be registered, otherwise timing problems would occure.
60
//
61 108 tadejm
// Revision 1.10  2003/08/03 18:05:06  mihad
62
// Added limited WISHBONE B3 support for WISHBONE Slave Unit.
63
// Doesn't support full speed bursts yet.
64
//
65 106 mihad
// Revision 1.9  2003/01/27 16:49:31  mihad
66
// Changed module and file names. Updated scripts accordingly. FIFO synchronizations changed.
67
//
68 77 mihad
// Revision 1.8  2002/10/21 13:04:33  mihad
69
// Changed BIST signal names etc..
70
//
71 69 mihad
// Revision 1.7  2002/10/18 03:36:37  tadejm
72 122 markom
// Changed wrong signal name mbist_sen into mbist_ctrl_i.
73 69 mihad
//
74 68 tadejm
// Revision 1.6  2002/10/17 22:51:50  tadejm
75
// Changed BIST signals for RAMs.
76
//
77 67 tadejm
// Revision 1.5  2002/10/11 10:09:01  mihad
78
// Added additional testcase and changed rst name in BIST to trst
79
//
80 63 mihad
// Revision 1.4  2002/10/08 17:17:05  mihad
81
// Added BIST signals for RAMs.
82
//
83 62 mihad
// Revision 1.3  2002/02/01 15:25:12  mihad
84
// Repaired a few bugs, updated specification, added test bench files and design document
85
//
86 21 mihad
// Revision 1.2  2001/10/05 08:14:28  mihad
87
// Updated all files with inclusion of timescale file for simulation purposes.
88
//
89 6 mihad
// Revision 1.1.1.1  2001/10/02 15:33:46  mihad
90
// New project directory structure
91 2 mihad
//
92 6 mihad
//
93 2 mihad
 
94 21 mihad
`include "pci_constants.v"
95
 
96
// synopsys translate_off
97 6 mihad
`include "timescale.v"
98 21 mihad
// synopsys translate_on
99 2 mihad
 
100
// this is top level module of pci bridge core
101
// it instantiates and connects other lower level modules
102
// check polarity of PCI output enables in file out_reg.v and change it according to IO interface specification
103
 
104 77 mihad
module pci_bridge32
105 2 mihad
(
106
    // WISHBONE system signals
107 77 mihad
    wb_clk_i,
108
    wb_rst_i,
109
    wb_rst_o,
110
    wb_int_i,
111
    wb_int_o,
112 2 mihad
 
113
    // WISHBONE slave interface
114 77 mihad
    wbs_adr_i,
115
    wbs_dat_i,
116
    wbs_dat_o,
117
    wbs_sel_i,
118
    wbs_cyc_i,
119
    wbs_stb_i,
120
    wbs_we_i,
121 106 mihad
 
122
`ifdef PCI_WB_REV_B3
123
 
124
    wbs_cti_i,
125
    wbs_bte_i,
126
 
127
`else
128
 
129 77 mihad
    wbs_cab_i,
130 106 mihad
 
131
`endif
132
 
133 77 mihad
    wbs_ack_o,
134
    wbs_rty_o,
135
    wbs_err_o,
136 2 mihad
 
137
    // WISHBONE master interface
138 77 mihad
    wbm_adr_o,
139
    wbm_dat_i,
140
    wbm_dat_o,
141
    wbm_sel_o,
142
    wbm_cyc_o,
143
    wbm_stb_o,
144
    wbm_we_o,
145 115 tadejm
    wbm_cti_o,
146
    wbm_bte_o,
147 77 mihad
    wbm_ack_i,
148
    wbm_rty_i,
149
    wbm_err_i,
150 2 mihad
 
151
    // pci interface - system pins
152 77 mihad
    pci_clk_i,
153
    pci_rst_i,
154
    pci_rst_o,
155
    pci_inta_i,
156
    pci_inta_o,
157
    pci_rst_oe_o,
158
    pci_inta_oe_o,
159 2 mihad
 
160
    // arbitration pins
161 77 mihad
    pci_req_o,
162
    pci_req_oe_o,
163 2 mihad
 
164 77 mihad
    pci_gnt_i,
165 2 mihad
 
166
    // protocol pins
167 77 mihad
    pci_frame_i,
168
    pci_frame_o,
169 2 mihad
 
170 77 mihad
    pci_frame_oe_o,
171
    pci_irdy_oe_o,
172
    pci_devsel_oe_o,
173
    pci_trdy_oe_o,
174
    pci_stop_oe_o,
175
    pci_ad_oe_o,
176
    pci_cbe_oe_o,
177 2 mihad
 
178 77 mihad
    pci_irdy_i,
179
    pci_irdy_o,
180 2 mihad
 
181 77 mihad
    pci_idsel_i,
182 2 mihad
 
183 77 mihad
    pci_devsel_i,
184
    pci_devsel_o,
185 2 mihad
 
186 77 mihad
    pci_trdy_i,
187
    pci_trdy_o,
188 21 mihad
 
189 77 mihad
    pci_stop_i,
190
    pci_stop_o          ,
191 21 mihad
 
192
    // data transfer pins
193 77 mihad
    pci_ad_i,
194
    pci_ad_o,
195 21 mihad
 
196 77 mihad
    pci_cbe_i,
197
    pci_cbe_o,
198 2 mihad
 
199
    // parity generation and checking pins
200 77 mihad
    pci_par_i,
201
    pci_par_o,
202
    pci_par_oe_o,
203 2 mihad
 
204 77 mihad
    pci_perr_i,
205
    pci_perr_o,
206
    pci_perr_oe_o,
207 2 mihad
 
208
    // system error pin
209 77 mihad
    pci_serr_o,
210
    pci_serr_oe_o
211 62 mihad
 
212
`ifdef PCI_BIST
213
    ,
214
    // debug chain signals
215 122 markom
    mbist_si_i,       // bist scan serial in
216
    mbist_so_o,       // bist scan serial out
217
    mbist_ctrl_i        // bist chain shift control
218 62 mihad
`endif
219 130 mihad
 
220
`ifdef PCI_CPCI_HS_IMPLEMENT
221
    ,
222
    // Compact PCI Hot Swap signals
223
    pci_cpci_hs_enum_o      ,   //  ENUM# output with output enable (open drain)
224
    pci_cpci_hs_enum_oe_o   ,   //  ENUM# enum output enable
225
    pci_cpci_hs_led_o       ,   //  LED output with output enable (open drain)
226
    pci_cpci_hs_led_oe_o    ,   //  LED output enable
227
    pci_cpci_hs_es_i            //  ejector switch state indicator input
228
`endif
229 2 mihad
);
230
 
231
// WISHBONE system signals
232 77 mihad
input   wb_clk_i ;
233
input   wb_rst_i ;
234
output  wb_rst_o ;
235
input   wb_int_i ;
236
output  wb_int_o ;
237 2 mihad
 
238
// WISHBONE slave interface
239 77 mihad
input   [31:0]  wbs_adr_i ;
240
input   [31:0]  wbs_dat_i ;
241
output  [31:0]  wbs_dat_o ;
242
input   [3:0]   wbs_sel_i ;
243
input           wbs_cyc_i ;
244
input           wbs_stb_i ;
245
input           wbs_we_i ;
246 106 mihad
 
247
`ifdef PCI_WB_REV_B3
248
 
249
input [2:0] wbs_cti_i ;
250
input [1:0] wbs_bte_i ;
251
 
252
`else
253
 
254
input wbs_cab_i ;
255
 
256
`endif
257
 
258 77 mihad
output          wbs_ack_o ;
259
output          wbs_rty_o ;
260
output          wbs_err_o ;
261 2 mihad
 
262
// WISHBONE master interface
263 77 mihad
output  [31:0]  wbm_adr_o ;
264
input   [31:0]  wbm_dat_i ;
265
output  [31:0]  wbm_dat_o ;
266
output  [3:0]   wbm_sel_o ;
267
output          wbm_cyc_o ;
268
output          wbm_stb_o ;
269
output          wbm_we_o ;
270 115 tadejm
output  [2:0]   wbm_cti_o ;
271
output  [1:0]   wbm_bte_o ;
272 77 mihad
input           wbm_ack_i ;
273
input           wbm_rty_i ;
274
input           wbm_err_i ;
275 2 mihad
 
276
// pci interface - system pins
277 77 mihad
input   pci_clk_i ;
278
input   pci_rst_i ;
279
output  pci_rst_o ;
280
output  pci_rst_oe_o ;
281 2 mihad
 
282 77 mihad
input   pci_inta_i ;
283
output  pci_inta_o ;
284
output  pci_inta_oe_o ;
285 2 mihad
 
286
// arbitration pins
287 77 mihad
output  pci_req_o ;
288
output  pci_req_oe_o ;
289 2 mihad
 
290 77 mihad
input   pci_gnt_i ;
291 2 mihad
 
292
// protocol pins
293 77 mihad
input   pci_frame_i ;
294
output  pci_frame_o ;
295
output  pci_frame_oe_o ;
296
output  pci_irdy_oe_o ;
297
output  pci_devsel_oe_o ;
298
output  pci_trdy_oe_o ;
299
output  pci_stop_oe_o ;
300
output  [31:0] pci_ad_oe_o ;
301
output  [3:0]  pci_cbe_oe_o ;
302 2 mihad
 
303 77 mihad
input   pci_irdy_i ;
304
output  pci_irdy_o ;
305 2 mihad
 
306 77 mihad
input   pci_idsel_i ;
307 2 mihad
 
308 77 mihad
input   pci_devsel_i ;
309
output  pci_devsel_o ;
310 2 mihad
 
311 77 mihad
input   pci_trdy_i ;
312
output  pci_trdy_o ;
313 2 mihad
 
314 77 mihad
input   pci_stop_i ;
315
output  pci_stop_o ;
316 2 mihad
 
317 21 mihad
// data transfer pins
318 77 mihad
input   [31:0]  pci_ad_i ;
319
output  [31:0]  pci_ad_o ;
320 2 mihad
 
321 77 mihad
input   [3:0]   pci_cbe_i ;
322
output  [3:0]   pci_cbe_o ;
323 2 mihad
 
324
// parity generation and checking pins
325 77 mihad
input   pci_par_i ;
326
output  pci_par_o ;
327
output  pci_par_oe_o ;
328 2 mihad
 
329 77 mihad
input   pci_perr_i ;
330
output  pci_perr_o ;
331
output  pci_perr_oe_o ;
332 2 mihad
 
333
// system error pin
334 77 mihad
output  pci_serr_o ;
335
output  pci_serr_oe_o ;
336 2 mihad
 
337 62 mihad
`ifdef PCI_BIST
338
/*-----------------------------------------------------
339
BIST debug chain port signals
340
-----------------------------------------------------*/
341 122 markom
input   mbist_si_i;       // bist scan serial in
342
output  mbist_so_o;       // bist scan serial out
343
input [`PCI_MBIST_CTRL_WIDTH - 1:0] mbist_ctrl_i;       // bist chain shift control
344 62 mihad
`endif
345
 
346 130 mihad
`ifdef PCI_CPCI_HS_IMPLEMENT
347
    // Compact PCI Hot Swap signals
348
output  pci_cpci_hs_enum_o      ;   //  ENUM# output with output enable (open drain)
349
output  pci_cpci_hs_enum_oe_o   ;   //  ENUM# enum output enable
350
output  pci_cpci_hs_led_o       ;   //  LED output with output enable (open drain)
351
output  pci_cpci_hs_led_oe_o    ;   //  LED output enable
352
input   pci_cpci_hs_es_i        ;   //  ejector switch state indicator input
353
 
354
assign  pci_cpci_hs_enum_o = 1'b0   ;
355
assign  pci_cpci_hs_led_o  = 1'b0   ;
356
`endif
357
 
358 2 mihad
// declare clock and reset wires
359 77 mihad
wire pci_clk = pci_clk_i ;
360
wire wb_clk  = wb_clk_i ;
361 21 mihad
wire reset ; // assigned at pci bridge reset and interrupt logic
362 2 mihad
 
363 21 mihad
/*=========================================================================================================
364
First comes definition of all modules' outputs, so they can be assigned to any other module's input later
365
  in the file, when module is instantiated
366
=========================================================================================================*/
367
// PCI BRIDGE RESET AND INTERRUPT LOGIC OUTPUTS
368
wire    pci_reso_reset ;
369
wire    pci_reso_pci_rstn_out ;
370
wire    pci_reso_pci_rstn_en_out ;
371
wire    pci_reso_rst_o ;
372
wire    pci_into_pci_intan_out ;
373
wire    pci_into_pci_intan_en_out ;
374
wire    pci_into_int_o ;
375
wire    pci_into_conf_isr_int_prop_out ;
376 2 mihad
 
377 21 mihad
// assign pci bridge reset interrupt logic outputs to top outputs where possible
378
assign reset            = pci_reso_reset ;
379 77 mihad
assign pci_rst_o     = pci_reso_pci_rstn_out ;
380
assign pci_rst_oe_o  = pci_reso_pci_rstn_en_out ;
381
assign wb_rst_o         = pci_reso_rst_o ;
382
assign pci_inta_o    = pci_into_pci_intan_out ;
383
assign pci_inta_oe_o = pci_into_pci_intan_en_out ;
384
assign wb_int_o         = pci_into_int_o ;
385 2 mihad
 
386
// WISHBONE SLAVE UNIT OUTPUTS
387
wire    [31:0]  wbu_sdata_out ;
388
wire            wbu_ack_out ;
389
wire            wbu_rty_out ;
390
wire            wbu_err_out ;
391
wire            wbu_pciif_req_out ;
392
wire            wbu_pciif_frame_out ;
393
wire            wbu_pciif_frame_en_out ;
394
wire            wbu_pciif_irdy_out ;
395
wire            wbu_pciif_irdy_en_out ;
396
wire    [31:0]  wbu_pciif_ad_out ;
397
wire            wbu_pciif_ad_en_out ;
398
wire    [3:0]   wbu_pciif_cbe_out ;
399
wire            wbu_pciif_cbe_en_out ;
400
wire    [31:0]  wbu_err_addr_out ;
401
wire    [3:0]   wbu_err_bc_out ;
402
wire            wbu_err_signal_out ;
403
wire            wbu_err_source_out ;
404
wire            wbu_err_rty_exp_out ;
405
wire            wbu_tabort_rec_out ;
406
wire            wbu_mabort_rec_out ;
407
wire    [11:0]  wbu_conf_offset_out ;
408
wire            wbu_conf_renable_out ;
409
wire            wbu_conf_wenable_out ;
410
wire    [3:0]   wbu_conf_be_out ;
411
wire    [31:0]  wbu_conf_data_out ;
412
wire            wbu_del_read_comp_pending_out ;
413
wire            wbu_wbw_fifo_empty_out ;
414 21 mihad
wire            wbu_ad_load_out ;
415
wire            wbu_ad_load_on_transfer_out ;
416 2 mihad
wire            wbu_pciif_frame_load_out ;
417
 
418
// PCI TARGET UNIT OUTPUTS
419 21 mihad
wire    [31:0]  pciu_adr_out ;
420 2 mihad
wire    [31:0]  pciu_mdata_out ;
421
wire            pciu_cyc_out ;
422
wire            pciu_stb_out ;
423
wire            pciu_we_out ;
424 115 tadejm
wire    [2:0]   pciu_cti_out ;
425
wire    [1:0]   pciu_bte_out ;
426 2 mihad
wire    [3:0]   pciu_sel_out ;
427 21 mihad
wire            pciu_pciif_trdy_out ;
428
wire            pciu_pciif_stop_out ;
429
wire            pciu_pciif_devsel_out ;
430 2 mihad
wire            pciu_pciif_trdy_en_out ;
431
wire            pciu_pciif_stop_en_out ;
432
wire            pciu_pciif_devsel_en_out ;
433 21 mihad
wire            pciu_ad_load_out ;
434
wire            pciu_ad_load_on_transfer_out ;
435
wire   [31:0]   pciu_pciif_ad_out ;
436
wire            pciu_pciif_ad_en_out ;
437
wire            pciu_pciif_tabort_set_out ;
438 2 mihad
wire    [31:0]  pciu_err_addr_out ;
439
wire    [3:0]   pciu_err_bc_out ;
440
wire    [31:0]  pciu_err_data_out ;
441
wire    [3:0]   pciu_err_be_out ;
442
wire            pciu_err_signal_out ;
443
wire            pciu_err_source_out ;
444
wire            pciu_err_rty_exp_out ;
445
wire    [11:0]  pciu_conf_offset_out ;
446
wire            pciu_conf_renable_out ;
447
wire            pciu_conf_wenable_out ;
448
wire    [3:0]   pciu_conf_be_out ;
449
wire    [31:0]  pciu_conf_data_out ;
450 21 mihad
wire            pciu_pci_drcomp_pending_out ;
451
wire            pciu_pciw_fifo_empty_out ;
452 2 mihad
 
453
// assign pci target unit's outputs to top outputs where possible
454 77 mihad
assign wbm_adr_o    =   pciu_adr_out ;
455 115 tadejm
assign wbm_dat_o    =   pciu_mdata_out ;
456 77 mihad
assign wbm_cyc_o    =   pciu_cyc_out ;
457
assign wbm_stb_o    =   pciu_stb_out ;
458
assign wbm_we_o     =   pciu_we_out ;
459 115 tadejm
assign wbm_cti_o    =   pciu_cti_out ;
460
assign wbm_bte_o    =   pciu_bte_out ;
461 77 mihad
assign wbm_sel_o    =   pciu_sel_out ;
462 2 mihad
 
463
// CONFIGURATION SPACE OUTPUTS
464
wire    [31:0]  conf_w_data_out ;
465
wire    [31:0]  conf_r_data_out ;
466
wire            conf_serr_enable_out ;
467
wire            conf_perr_response_out ;
468
wire            conf_pci_master_enable_out ;
469
wire            conf_mem_space_enable_out ;
470
wire            conf_io_space_enable_out ;
471 21 mihad
wire    [7:0]   conf_cache_line_size_to_pci_out ;
472
wire    [7:0]   conf_cache_line_size_to_wb_out ;
473
wire            conf_cache_lsize_not_zero_to_wb_out ;
474 2 mihad
wire    [7:0]   conf_latency_tim_out ;
475
 
476 21 mihad
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ba0_out ;
477
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ba1_out ;
478
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ba2_out ;
479
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ba3_out ;
480
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ba4_out ;
481
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ba5_out ;
482
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ta0_out ;
483
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ta1_out ;
484
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ta2_out ;
485
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ta3_out ;
486
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ta4_out ;
487
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_ta5_out ;
488
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_am0_out ;
489
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_am1_out ;
490
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_am2_out ;
491
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_am3_out ;
492
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_am4_out ;
493
wire   [19:(20 - `PCI_NUM_OF_DEC_ADDR_LINES)]   conf_pci_am5_out ;
494
 
495 2 mihad
wire            conf_pci_mem_io0_out ;
496
wire            conf_pci_mem_io1_out ;
497
wire            conf_pci_mem_io2_out ;
498
wire            conf_pci_mem_io3_out ;
499
wire            conf_pci_mem_io4_out ;
500
wire            conf_pci_mem_io5_out ;
501
 
502
wire    [1:0]   conf_pci_img_ctrl0_out ;
503
wire    [1:0]   conf_pci_img_ctrl1_out ;
504
wire    [1:0]   conf_pci_img_ctrl2_out ;
505
wire    [1:0]   conf_pci_img_ctrl3_out ;
506
wire    [1:0]   conf_pci_img_ctrl4_out ;
507
wire    [1:0]   conf_pci_img_ctrl5_out ;
508
 
509 21 mihad
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ba0_out ;
510
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ba1_out ;
511
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ba2_out ;
512
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ba3_out ;
513
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ba4_out ;
514
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ba5_out ;
515 2 mihad
 
516
wire            conf_wb_mem_io0_out ;
517
wire            conf_wb_mem_io1_out ;
518
wire            conf_wb_mem_io2_out ;
519
wire            conf_wb_mem_io3_out ;
520
wire            conf_wb_mem_io4_out ;
521
wire            conf_wb_mem_io5_out ;
522
 
523 21 mihad
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_am0_out ;
524
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_am1_out ;
525
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_am2_out ;
526
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_am3_out ;
527
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_am4_out ;
528
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_am5_out ;
529
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ta0_out ;
530
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ta1_out ;
531
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ta2_out ;
532
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ta3_out ;
533
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ta4_out ;
534
wire    [19:(20 - `WB_NUM_OF_DEC_ADDR_LINES)]  conf_wb_ta5_out ;
535 2 mihad
wire    [2:0]   conf_wb_img_ctrl0_out ;
536
wire    [2:0]   conf_wb_img_ctrl1_out ;
537
wire    [2:0]   conf_wb_img_ctrl2_out ;
538
wire    [2:0]   conf_wb_img_ctrl3_out ;
539
wire    [2:0]   conf_wb_img_ctrl4_out ;
540
wire    [2:0]   conf_wb_img_ctrl5_out ;
541
wire    [23:0]  conf_ccyc_addr_out ;
542
wire            conf_soft_res_out ;
543 21 mihad
wire            conf_int_out ;
544 132 mihad
wire            conf_init_complete_out ;
545 2 mihad
 
546
// PCI IO MUX OUTPUTS
547
wire        pci_mux_frame_out ;
548
wire        pci_mux_irdy_out ;
549
wire        pci_mux_devsel_out ;
550
wire        pci_mux_trdy_out ;
551
wire        pci_mux_stop_out ;
552
wire [3:0]  pci_mux_cbe_out ;
553
wire [31:0] pci_mux_ad_out ;
554 21 mihad
wire        pci_mux_ad_load_out ;
555 2 mihad
 
556
wire [31:0] pci_mux_ad_en_out ;
557 21 mihad
wire        pci_mux_ad_en_unregistered_out ;
558 2 mihad
wire        pci_mux_frame_en_out ;
559
wire        pci_mux_irdy_en_out ;
560
wire        pci_mux_devsel_en_out ;
561
wire        pci_mux_trdy_en_out ;
562
wire        pci_mux_stop_en_out ;
563
wire [3:0]  pci_mux_cbe_en_out ;
564
 
565
wire        pci_mux_par_out ;
566
wire        pci_mux_par_en_out ;
567
wire        pci_mux_perr_out ;
568
wire        pci_mux_perr_en_out ;
569
wire        pci_mux_serr_out ;
570
wire        pci_mux_serr_en_out ;
571
 
572
wire        pci_mux_req_out ;
573
wire        pci_mux_req_en_out ;
574
 
575
// assign outputs to top level outputs
576
 
577 77 mihad
assign pci_ad_oe_o       = pci_mux_ad_en_out ;
578
assign pci_frame_oe_o   = pci_mux_frame_en_out ;
579
assign pci_irdy_oe_o    = pci_mux_irdy_en_out ;
580
assign pci_cbe_oe_o     = pci_mux_cbe_en_out ;
581 2 mihad
 
582 77 mihad
assign pci_par_o         =   pci_mux_par_out ;
583
assign pci_par_oe_o      =   pci_mux_par_en_out ;
584
assign pci_perr_o       =   pci_mux_perr_out ;
585
assign pci_perr_oe_o    =   pci_mux_perr_en_out ;
586
assign pci_serr_o       =   pci_mux_serr_out ;
587
assign pci_serr_oe_o    =   pci_mux_serr_en_out ;
588 2 mihad
 
589 77 mihad
assign pci_req_o        =   pci_mux_req_out ;
590
assign pci_req_oe_o     =   pci_mux_req_en_out ;
591 2 mihad
 
592 77 mihad
assign pci_trdy_oe_o    = pci_mux_trdy_en_out ;
593
assign pci_devsel_oe_o  = pci_mux_devsel_en_out ;
594
assign pci_stop_oe_o    = pci_mux_stop_en_out ;
595
assign pci_trdy_o       =  pci_mux_trdy_out ;
596
assign pci_devsel_o     = pci_mux_devsel_out ;
597
assign pci_stop_o       = pci_mux_stop_out ;
598 2 mihad
 
599 77 mihad
assign pci_ad_o          = pci_mux_ad_out ;
600
assign pci_frame_o      = pci_mux_frame_out ;
601
assign pci_irdy_o       = pci_mux_irdy_out ;
602
assign pci_cbe_o        = pci_mux_cbe_out ;
603 2 mihad
 
604
// duplicate output register's outputs
605
wire            out_bckp_frame_out ;
606
wire            out_bckp_irdy_out ;
607
wire            out_bckp_devsel_out ;
608
wire            out_bckp_trdy_out ;
609
wire            out_bckp_stop_out ;
610
wire    [3:0]   out_bckp_cbe_out ;
611
wire            out_bckp_cbe_en_out ;
612
wire    [31:0]  out_bckp_ad_out ;
613
wire            out_bckp_ad_en_out ;
614 21 mihad
wire            out_bckp_irdy_en_out ;
615 2 mihad
wire            out_bckp_frame_en_out ;
616
wire            out_bckp_tar_ad_en_out ;
617
wire            out_bckp_mas_ad_en_out ;
618
wire            out_bckp_trdy_en_out ;
619
 
620
wire            out_bckp_par_out ;
621
wire            out_bckp_par_en_out ;
622
wire            out_bckp_perr_out ;
623
wire            out_bckp_perr_en_out ;
624
wire            out_bckp_serr_out ;
625
wire            out_bckp_serr_en_out ;
626
 
627
 
628
// PARITY CHECKER OUTPUTS
629
wire    parchk_pci_par_out ;
630
wire    parchk_pci_par_en_out ;
631 21 mihad
wire    parchk_pci_perr_out ;
632 2 mihad
wire    parchk_pci_perr_en_out ;
633 21 mihad
wire    parchk_pci_serr_out ;
634 2 mihad
wire    parchk_pci_serr_en_out ;
635
wire    parchk_par_err_detect_out ;
636
wire    parchk_perr_mas_detect_out ;
637
wire    parchk_sig_serr_out ;
638
 
639
// input register outputs
640
wire            in_reg_gnt_out ;
641
wire            in_reg_frame_out ;
642
wire            in_reg_irdy_out ;
643
wire            in_reg_trdy_out ;
644
wire            in_reg_stop_out ;
645
wire            in_reg_devsel_out ;
646 21 mihad
wire            in_reg_idsel_out ;
647 2 mihad
wire    [31:0]  in_reg_ad_out ;
648
wire    [3:0]   in_reg_cbe_out ;
649
 
650 21 mihad
/*=========================================================================================================
651
Now comes definition of all modules' and their appropriate inputs
652
=========================================================================================================*/
653
// PCI BRIDGE RESET AND INTERRUPT LOGIC INPUTS
654 77 mihad
wire    pci_resi_rst_i                  = wb_rst_i ;
655
wire    pci_resi_pci_rstn_in            = pci_rst_i ;
656 21 mihad
wire    pci_resi_conf_soft_res_in       = conf_soft_res_out ;
657 77 mihad
wire    pci_inti_pci_intan_in           = pci_inta_i ;
658 21 mihad
wire    pci_inti_conf_int_in            = conf_int_out ;
659 77 mihad
wire    pci_inti_int_i                  = wb_int_i ;
660 132 mihad
wire    pci_into_init_complete_in       = conf_init_complete_out ;
661 2 mihad
 
662 77 mihad
pci_rst_int pci_resets_and_interrupts
663 21 mihad
(
664
    .clk_in                 (pci_clk),
665
    .rst_i                  (pci_resi_rst_i),
666
    .pci_rstn_in            (pci_resi_pci_rstn_in),
667
    .conf_soft_res_in       (pci_resi_conf_soft_res_in),
668
    .reset                  (pci_reso_reset),
669
    .pci_rstn_out           (pci_reso_pci_rstn_out),
670
    .pci_rstn_en_out        (pci_reso_pci_rstn_en_out),
671
    .rst_o                  (pci_reso_rst_o),
672
    .pci_intan_in           (pci_inti_pci_intan_in),
673
    .conf_int_in            (pci_inti_conf_int_in),
674
    .int_i                  (pci_inti_int_i),
675
    .pci_intan_out          (pci_into_pci_intan_out),
676
    .pci_intan_en_out       (pci_into_pci_intan_en_out),
677
    .int_o                  (pci_into_int_o),
678 132 mihad
    .conf_isr_int_prop_out  (pci_into_conf_isr_int_prop_out),
679
    .init_complete_in       (pci_into_init_complete_in)
680 21 mihad
);
681 2 mihad
 
682 106 mihad
 
683
`ifdef PCI_WB_REV_B3
684
 
685
wire            wbs_wbb3_2_wbb2_cyc_o   ;
686
wire            wbs_wbb3_2_wbb2_stb_o   ;
687
wire    [31:0]  wbs_wbb3_2_wbb2_adr_o   ;
688
wire    [31:0]  wbs_wbb3_2_wbb2_dat_i_o ;
689
wire    [31:0]  wbs_wbb3_2_wbb2_dat_o_o ;
690
wire            wbs_wbb3_2_wbb2_we_o    ;
691
wire    [ 3:0]  wbs_wbb3_2_wbb2_sel_o   ;
692
wire            wbs_wbb3_2_wbb2_ack_o   ;
693
wire            wbs_wbb3_2_wbb2_err_o   ;
694
wire            wbs_wbb3_2_wbb2_rty_o   ;
695
wire            wbs_wbb3_2_wbb2_cab_o   ;
696
 
697
// assign wishbone slave unit's outputs to top outputs where possible
698
assign wbs_dat_o    =   wbs_wbb3_2_wbb2_dat_o_o ;
699
assign wbs_ack_o    =   wbs_wbb3_2_wbb2_ack_o   ;
700
assign wbs_rty_o    =   wbs_wbb3_2_wbb2_rty_o   ;
701
assign wbs_err_o    =   wbs_wbb3_2_wbb2_err_o       ;
702
 
703
wire            wbs_wbb3_2_wbb2_cyc_i   =   wbs_cyc_i       ;
704
wire            wbs_wbb3_2_wbb2_stb_i   =   wbs_stb_i       ;
705
wire            wbs_wbb3_2_wbb2_we_i    =   wbs_we_i        ;
706
wire            wbs_wbb3_2_wbb2_ack_i   =   wbu_ack_out     ;
707
wire            wbs_wbb3_2_wbb2_err_i   =   wbu_err_out     ;
708
wire            wbs_wbb3_2_wbb2_rty_i   =   wbu_rty_out     ;
709
wire    [31:0]  wbs_wbb3_2_wbb2_adr_i   =   wbs_adr_i       ;
710
wire    [ 3:0]  wbs_wbb3_2_wbb2_sel_i   =   wbs_sel_i       ;
711
wire    [31:0]  wbs_wbb3_2_wbb2_dat_i_i =   wbs_dat_i       ;
712
wire    [31:0]  wbs_wbb3_2_wbb2_dat_o_i =   wbu_sdata_out   ;
713
wire    [ 2:0]  wbs_wbb3_2_wbb2_cti_i   =   wbs_cti_i       ;
714
wire    [ 1:0]  wbs_wbb3_2_wbb2_bte_i   =   wbs_bte_i       ;
715
 
716
pci_wbs_wbb3_2_wbb2 i_pci_wbs_wbb3_2_wbb2
717
(
718
    .wb_clk_i       (   wb_clk_i    )   ,
719 130 mihad
    .wb_rst_i       (   reset       )   ,
720 106 mihad
 
721
    .wbs_cyc_i      (   wbs_wbb3_2_wbb2_cyc_i   )   ,
722
    .wbs_cyc_o      (   wbs_wbb3_2_wbb2_cyc_o   )   ,
723
    .wbs_stb_i      (   wbs_wbb3_2_wbb2_stb_i   )   ,
724
    .wbs_stb_o      (   wbs_wbb3_2_wbb2_stb_o   )   ,
725
    .wbs_adr_i      (   wbs_wbb3_2_wbb2_adr_i   )   ,
726
    .wbs_adr_o      (   wbs_wbb3_2_wbb2_adr_o   )   ,
727
    .wbs_dat_i_i    (   wbs_wbb3_2_wbb2_dat_i_i )   ,
728
    .wbs_dat_i_o    (   wbs_wbb3_2_wbb2_dat_i_o )   ,
729
    .wbs_dat_o_i    (   wbs_wbb3_2_wbb2_dat_o_i )   ,
730
    .wbs_dat_o_o    (   wbs_wbb3_2_wbb2_dat_o_o )   ,
731
    .wbs_we_i       (   wbs_wbb3_2_wbb2_we_i    )   ,
732
    .wbs_we_o       (   wbs_wbb3_2_wbb2_we_o    )   ,
733
    .wbs_sel_i      (   wbs_wbb3_2_wbb2_sel_i   )   ,
734
    .wbs_sel_o      (   wbs_wbb3_2_wbb2_sel_o   )   ,
735
    .wbs_ack_i      (   wbs_wbb3_2_wbb2_ack_i   )   ,
736
    .wbs_ack_o      (   wbs_wbb3_2_wbb2_ack_o   )   ,
737
    .wbs_err_i      (   wbs_wbb3_2_wbb2_err_i   )   ,
738
    .wbs_err_o      (   wbs_wbb3_2_wbb2_err_o   )   ,
739
    .wbs_rty_i      (   wbs_wbb3_2_wbb2_rty_i   )   ,
740
    .wbs_rty_o      (   wbs_wbb3_2_wbb2_rty_o   )   ,
741
    .wbs_cti_i      (   wbs_wbb3_2_wbb2_cti_i   )   ,
742
    .wbs_bte_i      (   wbs_wbb3_2_wbb2_bte_i   )   ,
743
    .wbs_cab_o      (   wbs_wbb3_2_wbb2_cab_o   )
744
) ;
745
 
746 2 mihad
// WISHBONE SLAVE UNIT INPUTS
747 106 mihad
wire    [31:0]  wbu_addr_in     =   wbs_wbb3_2_wbb2_adr_o   ;
748
wire    [31:0]  wbu_sdata_in    =   wbs_wbb3_2_wbb2_dat_i_o ;
749
wire            wbu_cyc_in      =   wbs_wbb3_2_wbb2_cyc_o   ;
750
wire            wbu_stb_in      =   wbs_wbb3_2_wbb2_stb_o   ;
751
wire            wbu_we_in       =   wbs_wbb3_2_wbb2_we_o    ;
752
wire    [3:0]   wbu_sel_in      =   wbs_wbb3_2_wbb2_sel_o   ;
753
wire            wbu_cab_in      =   wbs_wbb3_2_wbb2_cab_o   ;
754
 
755
`else
756
 
757
// WISHBONE SLAVE UNIT INPUTS
758 77 mihad
wire    [31:0]  wbu_addr_in                     =   wbs_adr_i ;
759
wire    [31:0]  wbu_sdata_in                    =   wbs_dat_i ;
760
wire            wbu_cyc_in                      =   wbs_cyc_i ;
761
wire            wbu_stb_in                      =   wbs_stb_i ;
762
wire            wbu_we_in                       =   wbs_we_i ;
763
wire    [3:0]   wbu_sel_in                      =   wbs_sel_i ;
764
wire            wbu_cab_in                      =   wbs_cab_i ;
765 2 mihad
 
766 106 mihad
// assign wishbone slave unit's outputs to top outputs where possible
767
assign wbs_dat_o    =   wbu_sdata_out   ;
768
assign wbs_ack_o    =   wbu_ack_out     ;
769
assign wbs_rty_o    =   wbu_rty_out     ;
770
assign wbs_err_o    =   wbu_err_out     ;
771
 
772
`endif
773
 
774 2 mihad
wire    [5:0]   wbu_map_in                      =   {
775
                                                     conf_wb_mem_io5_out,
776
                                                     conf_wb_mem_io4_out,
777
                                                     conf_wb_mem_io3_out,
778
                                                     conf_wb_mem_io2_out,
779
                                                     conf_wb_mem_io1_out,
780
                                                     conf_wb_mem_io0_out
781
                                                    } ;
782
 
783
wire    [5:0]   wbu_pref_en_in                  =   {
784
                                                     conf_wb_img_ctrl5_out[1],
785
                                                     conf_wb_img_ctrl4_out[1],
786
                                                     conf_wb_img_ctrl3_out[1],
787
                                                     conf_wb_img_ctrl2_out[1],
788
                                                     conf_wb_img_ctrl1_out[1],
789
                                                     conf_wb_img_ctrl0_out[1]
790
                                                    };
791
wire    [5:0]   wbu_mrl_en_in                   =   {
792
                                                     conf_wb_img_ctrl5_out[0],
793
                                                     conf_wb_img_ctrl4_out[0],
794
                                                     conf_wb_img_ctrl3_out[0],
795
                                                     conf_wb_img_ctrl2_out[0],
796
                                                     conf_wb_img_ctrl1_out[0],
797
                                                     conf_wb_img_ctrl0_out[0]
798
                                                    };
799
 
800
wire    [5:0]   wbu_at_en_in                    =   {
801
                                                     conf_wb_img_ctrl5_out[2],
802
                                                     conf_wb_img_ctrl4_out[2],
803
                                                     conf_wb_img_ctrl3_out[2],
804
                                                     conf_wb_img_ctrl2_out[2],
805
                                                     conf_wb_img_ctrl1_out[2],
806
                                                     conf_wb_img_ctrl0_out[2]
807
                                                    } ;
808
 
809
wire            wbu_pci_drcomp_pending_in       =   pciu_pci_drcomp_pending_out ;
810
wire            wbu_pciw_empty_in               =   pciu_pciw_fifo_empty_out ;
811
 
812
`ifdef HOST
813
    wire    [31:0]  wbu_conf_data_in            =   conf_w_data_out ;
814
`else
815
`ifdef GUEST
816
    wire    [31:0]  wbu_conf_data_in            =   conf_r_data_out ;
817
`endif
818
`endif
819
 
820 21 mihad
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar0_in  =   conf_wb_ba0_out ;
821
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar1_in  =   conf_wb_ba1_out ;
822
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar2_in  =   conf_wb_ba2_out ;
823
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar3_in  =   conf_wb_ba3_out ;
824
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar4_in  =   conf_wb_ba4_out ;
825
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar5_in  =   conf_wb_ba5_out ;
826
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am0_in   =   conf_wb_am0_out ;
827
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am1_in   =   conf_wb_am1_out ;
828
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am2_in   =   conf_wb_am2_out ;
829
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am3_in   =   conf_wb_am3_out ;
830
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am4_in   =   conf_wb_am4_out ;
831
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am5_in   =   conf_wb_am5_out ;
832
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta0_in   =   conf_wb_ta0_out ;
833
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta1_in   =   conf_wb_ta1_out ;
834
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta2_in   =   conf_wb_ta2_out ;
835
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta3_in   =   conf_wb_ta3_out ;
836
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta4_in   =   conf_wb_ta4_out ;
837
wire   [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta5_in   =   conf_wb_ta5_out ;
838 2 mihad
 
839
wire    [23:0]  wbu_ccyc_addr_in                        =   conf_ccyc_addr_out ;
840
wire            wbu_master_enable_in                    =   conf_pci_master_enable_out ;
841 21 mihad
wire            wbu_cache_line_size_not_zero            =   conf_cache_lsize_not_zero_to_wb_out ;
842
wire    [7:0]   wbu_cache_line_size_in                  =   conf_cache_line_size_to_pci_out ;
843 2 mihad
 
844 77 mihad
wire            wbu_pciif_gnt_in                        = pci_gnt_i ;
845 2 mihad
wire            wbu_pciif_frame_in                      = in_reg_frame_out ;
846
wire            wbu_pciif_irdy_in                       = in_reg_irdy_out ;
847 77 mihad
wire            wbu_pciif_trdy_in                       = pci_trdy_i ;
848
wire            wbu_pciif_stop_in                       = pci_stop_i ;
849
wire            wbu_pciif_devsel_in                     = pci_devsel_i ;
850 2 mihad
wire    [31:0]  wbu_pciif_ad_reg_in                     = in_reg_ad_out ;
851
wire            wbu_pciif_trdy_reg_in                   = in_reg_trdy_out ;
852
wire            wbu_pciif_stop_reg_in                   = in_reg_stop_out ;
853
wire            wbu_pciif_devsel_reg_in                 = in_reg_devsel_out ;
854
 
855
 
856
wire    [7:0]   wbu_latency_tim_val_in                  = conf_latency_tim_out ;
857
 
858
wire            wbu_pciif_frame_en_in                   = out_bckp_frame_en_out ;
859
wire            wbu_pciif_frame_out_in                  = out_bckp_frame_out ;
860
 
861 77 mihad
pci_wb_slave_unit wishbone_slave_unit
862 2 mihad
(
863
    .reset_in                      (reset),
864
    .wb_clock_in                   (wb_clk),
865
    .pci_clock_in                  (pci_clk),
866
    .ADDR_I                        (wbu_addr_in),
867
    .SDATA_I                       (wbu_sdata_in),
868
    .SDATA_O                       (wbu_sdata_out),
869
    .CYC_I                         (wbu_cyc_in),
870
    .STB_I                         (wbu_stb_in),
871
    .WE_I                          (wbu_we_in),
872
    .SEL_I                         (wbu_sel_in),
873
    .ACK_O                         (wbu_ack_out),
874
    .RTY_O                         (wbu_rty_out),
875
    .ERR_O                         (wbu_err_out),
876
    .CAB_I                         (wbu_cab_in),
877
    .wbu_map_in                    (wbu_map_in),
878
    .wbu_pref_en_in                (wbu_pref_en_in),
879
    .wbu_mrl_en_in                 (wbu_mrl_en_in),
880
    .wbu_pci_drcomp_pending_in     (wbu_pci_drcomp_pending_in),
881
    .wbu_conf_data_in              (wbu_conf_data_in),
882
    .wbu_pciw_empty_in             (wbu_pciw_empty_in),
883
    .wbu_bar0_in                   (wbu_bar0_in),
884
    .wbu_bar1_in                   (wbu_bar1_in),
885
    .wbu_bar2_in                   (wbu_bar2_in),
886
    .wbu_bar3_in                   (wbu_bar3_in),
887
    .wbu_bar4_in                   (wbu_bar4_in),
888
    .wbu_bar5_in                   (wbu_bar5_in),
889
    .wbu_am0_in                    (wbu_am0_in),
890
    .wbu_am1_in                    (wbu_am1_in),
891
    .wbu_am2_in                    (wbu_am2_in),
892
    .wbu_am3_in                    (wbu_am3_in),
893
    .wbu_am4_in                    (wbu_am4_in),
894
    .wbu_am5_in                    (wbu_am5_in),
895
    .wbu_ta0_in                    (wbu_ta0_in),
896
    .wbu_ta1_in                    (wbu_ta1_in),
897
    .wbu_ta2_in                    (wbu_ta2_in),
898
    .wbu_ta3_in                    (wbu_ta3_in),
899
    .wbu_ta4_in                    (wbu_ta4_in),
900
    .wbu_ta5_in                    (wbu_ta5_in),
901
    .wbu_at_en_in                  (wbu_at_en_in),
902
    .wbu_ccyc_addr_in              (wbu_ccyc_addr_in),
903
    .wbu_master_enable_in          (wbu_master_enable_in),
904 21 mihad
    .wbu_cache_line_size_not_zero  (wbu_cache_line_size_not_zero),
905 2 mihad
    .wbu_cache_line_size_in        (wbu_cache_line_size_in),
906
    .wbu_pciif_gnt_in              (wbu_pciif_gnt_in),
907
    .wbu_pciif_frame_in            (wbu_pciif_frame_in),
908
    .wbu_pciif_frame_en_in         (wbu_pciif_frame_en_in),
909
    .wbu_pciif_frame_out_in        (wbu_pciif_frame_out_in),
910
    .wbu_pciif_irdy_in             (wbu_pciif_irdy_in),
911
    .wbu_pciif_trdy_in             (wbu_pciif_trdy_in),
912
    .wbu_pciif_stop_in             (wbu_pciif_stop_in),
913
    .wbu_pciif_devsel_in           (wbu_pciif_devsel_in),
914
    .wbu_pciif_ad_reg_in           (wbu_pciif_ad_reg_in),
915
    .wbu_pciif_req_out             (wbu_pciif_req_out),
916
    .wbu_pciif_frame_out           (wbu_pciif_frame_out),
917
    .wbu_pciif_frame_en_out        (wbu_pciif_frame_en_out),
918
    .wbu_pciif_frame_load_out      (wbu_pciif_frame_load_out),
919
    .wbu_pciif_irdy_out            (wbu_pciif_irdy_out),
920
    .wbu_pciif_irdy_en_out         (wbu_pciif_irdy_en_out),
921
    .wbu_pciif_ad_out              (wbu_pciif_ad_out),
922
    .wbu_pciif_ad_en_out           (wbu_pciif_ad_en_out),
923
    .wbu_pciif_cbe_out             (wbu_pciif_cbe_out),
924
    .wbu_pciif_cbe_en_out          (wbu_pciif_cbe_en_out),
925
    .wbu_err_addr_out              (wbu_err_addr_out),
926
    .wbu_err_bc_out                (wbu_err_bc_out),
927
    .wbu_err_signal_out            (wbu_err_signal_out),
928
    .wbu_err_source_out            (wbu_err_source_out),
929
    .wbu_err_rty_exp_out           (wbu_err_rty_exp_out),
930
    .wbu_tabort_rec_out            (wbu_tabort_rec_out),
931
    .wbu_mabort_rec_out            (wbu_mabort_rec_out),
932
    .wbu_conf_offset_out           (wbu_conf_offset_out),
933
    .wbu_conf_renable_out          (wbu_conf_renable_out),
934
    .wbu_conf_wenable_out          (wbu_conf_wenable_out),
935
    .wbu_conf_be_out               (wbu_conf_be_out),
936
    .wbu_conf_data_out             (wbu_conf_data_out),
937
    .wbu_del_read_comp_pending_out (wbu_del_read_comp_pending_out),
938
    .wbu_wbw_fifo_empty_out        (wbu_wbw_fifo_empty_out),
939
    .wbu_latency_tim_val_in        (wbu_latency_tim_val_in),
940 21 mihad
    .wbu_ad_load_out               (wbu_ad_load_out),
941
    .wbu_ad_load_on_transfer_out   (wbu_ad_load_on_transfer_out),
942 2 mihad
    .wbu_pciif_trdy_reg_in         (wbu_pciif_trdy_reg_in),
943
    .wbu_pciif_stop_reg_in         (wbu_pciif_stop_reg_in),
944
    .wbu_pciif_devsel_reg_in       (wbu_pciif_devsel_reg_in)
945 62 mihad
 
946
`ifdef PCI_BIST
947
    ,
948 122 markom
    .mbist_si_i       (mbist_si_i),
949
    .mbist_so_o       (mbist_so_o_internal),
950
    .mbist_ctrl_i       (mbist_ctrl_i)
951 62 mihad
`endif
952 2 mihad
);
953
 
954
// PCI TARGET UNIT INPUTS
955 77 mihad
wire    [31:0]  pciu_mdata_in                   =   wbm_dat_i ;
956
wire            pciu_ack_in                     =   wbm_ack_i ;
957
wire            pciu_rty_in                     =   wbm_rty_i ;
958
wire            pciu_err_in                     =   wbm_err_i ;
959 2 mihad
 
960
wire    [5:0]   pciu_map_in                     =   {
961
                                                     conf_pci_mem_io5_out,
962
                                                     conf_pci_mem_io4_out,
963
                                                     conf_pci_mem_io3_out,
964
                                                     conf_pci_mem_io2_out,
965
                                                     conf_pci_mem_io1_out,
966
                                                     conf_pci_mem_io0_out
967
                                                    } ;
968
 
969
wire    [5:0]   pciu_pref_en_in                 =   {
970
                                                     conf_pci_img_ctrl5_out[0],
971
                                                     conf_pci_img_ctrl4_out[0],
972
                                                     conf_pci_img_ctrl3_out[0],
973
                                                     conf_pci_img_ctrl2_out[0],
974
                                                     conf_pci_img_ctrl1_out[0],
975
                                                     conf_pci_img_ctrl0_out[0]
976
                                                    };
977
 
978
wire    [5:0]   pciu_at_en_in                   =   {
979
                                                     conf_pci_img_ctrl5_out[1],
980
                                                     conf_pci_img_ctrl4_out[1],
981
                                                     conf_pci_img_ctrl3_out[1],
982
                                                     conf_pci_img_ctrl2_out[1],
983
                                                     conf_pci_img_ctrl1_out[1],
984
                                                     conf_pci_img_ctrl0_out[1]
985
                                                    } ;
986
 
987 21 mihad
wire            pciu_mem_enable_in              =   conf_mem_space_enable_out ;
988
wire            pciu_io_enable_in               =   conf_io_space_enable_out ;
989 2 mihad
 
990
wire            pciu_wbw_fifo_empty_in          =   wbu_wbw_fifo_empty_out ;
991 21 mihad
wire                    pciu_wbu_del_read_comp_pending_in       =       wbu_del_read_comp_pending_out ;
992
wire            pciu_wbu_frame_en_in            =   out_bckp_frame_en_out ;
993 2 mihad
 
994
`ifdef HOST
995
    wire    [31:0]  pciu_conf_data_in           =   conf_r_data_out ;
996
`else
997
`ifdef GUEST
998
    wire    [31:0]  pciu_conf_data_in           =   conf_w_data_out ;
999
`endif
1000
`endif
1001
 
1002 21 mihad
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_bar0_in =   conf_pci_ba0_out ;
1003
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_bar1_in =   conf_pci_ba1_out ;
1004
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_bar2_in =   conf_pci_ba2_out ;
1005
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_bar3_in =   conf_pci_ba3_out ;
1006
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_bar4_in =   conf_pci_ba4_out ;
1007
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_bar5_in =   conf_pci_ba5_out ;
1008
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_am0_in  =   conf_pci_am0_out ;
1009
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_am1_in  =   conf_pci_am1_out ;
1010
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_am2_in  =   conf_pci_am2_out ;
1011
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_am3_in  =   conf_pci_am3_out ;
1012
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_am4_in  =   conf_pci_am4_out ;
1013
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_am5_in  =   conf_pci_am5_out ;
1014
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_ta0_in  =   conf_pci_ta0_out ;
1015
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_ta1_in  =   conf_pci_ta1_out ;
1016
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_ta2_in  =   conf_pci_ta2_out ;
1017
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_ta3_in  =   conf_pci_ta3_out ;
1018
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_ta4_in  =   conf_pci_ta4_out ;
1019
wire   [(`PCI_NUM_OF_DEC_ADDR_LINES - 1):0] pciu_ta5_in  =   conf_pci_ta5_out ;
1020 2 mihad
 
1021 21 mihad
wire    [7:0]   pciu_cache_line_size_in                 =   conf_cache_line_size_to_wb_out ;
1022
wire            pciu_cache_lsize_not_zero_in            =   conf_cache_lsize_not_zero_to_wb_out ;
1023 2 mihad
 
1024 77 mihad
wire            pciu_pciif_frame_in                     =   pci_frame_i ;
1025
wire            pciu_pciif_irdy_in                      =   pci_irdy_i ;
1026
wire            pciu_pciif_idsel_in                     =   pci_idsel_i ;
1027 21 mihad
wire            pciu_pciif_frame_reg_in                 =   in_reg_frame_out ;
1028
wire            pciu_pciif_irdy_reg_in                  =   in_reg_irdy_out ;
1029
wire            pciu_pciif_idsel_reg_in                 =   in_reg_idsel_out ;
1030
wire    [31:0]  pciu_pciif_ad_reg_in                    =   in_reg_ad_out ;
1031
wire    [3:0]   pciu_pciif_cbe_reg_in                   =   in_reg_cbe_out ;
1032 108 tadejm
wire    [3:0]   pciu_pciif_cbe_in                       =   pci_cbe_i ;
1033 2 mihad
 
1034 21 mihad
wire            pciu_pciif_bckp_trdy_en_in              =   out_bckp_trdy_en_out ;
1035
wire            pciu_pciif_bckp_devsel_in               =   out_bckp_devsel_out ;
1036
wire            pciu_pciif_bckp_trdy_in                 =   out_bckp_trdy_out ;
1037
wire            pciu_pciif_bckp_stop_in                 =   out_bckp_stop_out ;
1038
wire            pciu_pciif_trdy_reg_in                  =   in_reg_trdy_out ;
1039
wire            pciu_pciif_stop_reg_in                  =   in_reg_stop_out ;
1040 2 mihad
 
1041 77 mihad
pci_target_unit pci_target_unit
1042 2 mihad
(
1043
    .reset_in                       (reset),
1044
    .wb_clock_in                    (wb_clk),
1045
    .pci_clock_in                   (pci_clk),
1046 115 tadejm
    .pciu_wbm_adr_o                 (pciu_adr_out),
1047
    .pciu_wbm_dat_o                 (pciu_mdata_out),
1048
    .pciu_wbm_dat_i                 (pciu_mdata_in),
1049
    .pciu_wbm_cyc_o                 (pciu_cyc_out),
1050
    .pciu_wbm_stb_o                 (pciu_stb_out),
1051
    .pciu_wbm_we_o                  (pciu_we_out),
1052
    .pciu_wbm_cti_o                 (pciu_cti_out),
1053
    .pciu_wbm_bte_o                 (pciu_bte_out),
1054
    .pciu_wbm_sel_o                 (pciu_sel_out),
1055
    .pciu_wbm_ack_i                 (pciu_ack_in),
1056
    .pciu_wbm_rty_i                 (pciu_rty_in),
1057
    .pciu_wbm_err_i                 (pciu_err_in),
1058 21 mihad
    .pciu_mem_enable_in             (pciu_mem_enable_in),
1059
    .pciu_io_enable_in              (pciu_io_enable_in),
1060
    .pciu_map_in                    (pciu_map_in),
1061
    .pciu_pref_en_in                (pciu_pref_en_in),
1062
    .pciu_conf_data_in              (pciu_conf_data_in),
1063
    .pciu_wbw_fifo_empty_in         (pciu_wbw_fifo_empty_in),
1064
    .pciu_wbu_del_read_comp_pending_in  (pciu_wbu_del_read_comp_pending_in),
1065
    .pciu_wbu_frame_en_in           (pciu_wbu_frame_en_in),
1066
    .pciu_bar0_in                   (pciu_bar0_in),
1067
    .pciu_bar1_in                   (pciu_bar1_in),
1068
    .pciu_bar2_in                   (pciu_bar2_in),
1069
    .pciu_bar3_in                   (pciu_bar3_in),
1070
    .pciu_bar4_in                   (pciu_bar4_in),
1071
    .pciu_bar5_in                   (pciu_bar5_in),
1072
    .pciu_am0_in                    (pciu_am0_in),
1073
    .pciu_am1_in                    (pciu_am1_in),
1074
    .pciu_am2_in                    (pciu_am2_in),
1075
    .pciu_am3_in                    (pciu_am3_in),
1076
    .pciu_am4_in                    (pciu_am4_in),
1077
    .pciu_am5_in                    (pciu_am5_in),
1078
    .pciu_ta0_in                    (pciu_ta0_in),
1079
    .pciu_ta1_in                    (pciu_ta1_in),
1080
    .pciu_ta2_in                    (pciu_ta2_in),
1081
    .pciu_ta3_in                    (pciu_ta3_in),
1082
    .pciu_ta4_in                    (pciu_ta4_in),
1083
    .pciu_ta5_in                    (pciu_ta5_in),
1084
    .pciu_at_en_in                  (pciu_at_en_in),
1085
    .pciu_cache_line_size_in        (pciu_cache_line_size_in),
1086
    .pciu_cache_lsize_not_zero_in   (pciu_cache_lsize_not_zero_in),
1087
    .pciu_pciif_frame_in            (pciu_pciif_frame_in),
1088
    .pciu_pciif_irdy_in             (pciu_pciif_irdy_in),
1089
    .pciu_pciif_idsel_in            (pciu_pciif_idsel_in),
1090
    .pciu_pciif_frame_reg_in        (pciu_pciif_frame_reg_in),
1091
    .pciu_pciif_irdy_reg_in         (pciu_pciif_irdy_reg_in),
1092
    .pciu_pciif_idsel_reg_in        (pciu_pciif_idsel_reg_in),
1093
    .pciu_pciif_ad_reg_in           (pciu_pciif_ad_reg_in),
1094
    .pciu_pciif_cbe_reg_in          (pciu_pciif_cbe_reg_in),
1095 108 tadejm
    .pciu_pciif_cbe_in              (pciu_pciif_cbe_in),
1096 21 mihad
    .pciu_pciif_bckp_trdy_en_in     (pciu_pciif_bckp_trdy_en_in),
1097
    .pciu_pciif_bckp_devsel_in      (pciu_pciif_bckp_devsel_in),
1098
    .pciu_pciif_bckp_trdy_in        (pciu_pciif_bckp_trdy_in),
1099
    .pciu_pciif_bckp_stop_in        (pciu_pciif_bckp_stop_in),
1100
    .pciu_pciif_trdy_reg_in         (pciu_pciif_trdy_reg_in),
1101
    .pciu_pciif_stop_reg_in         (pciu_pciif_stop_reg_in),
1102
    .pciu_pciif_trdy_out            (pciu_pciif_trdy_out),
1103
    .pciu_pciif_stop_out            (pciu_pciif_stop_out),
1104
    .pciu_pciif_devsel_out          (pciu_pciif_devsel_out),
1105
    .pciu_pciif_trdy_en_out         (pciu_pciif_trdy_en_out),
1106
    .pciu_pciif_stop_en_out         (pciu_pciif_stop_en_out),
1107
    .pciu_pciif_devsel_en_out       (pciu_pciif_devsel_en_out),
1108
    .pciu_ad_load_out               (pciu_ad_load_out),
1109
    .pciu_ad_load_on_transfer_out   (pciu_ad_load_on_transfer_out),
1110
    .pciu_pciif_ad_out              (pciu_pciif_ad_out),
1111
    .pciu_pciif_ad_en_out           (pciu_pciif_ad_en_out),
1112
    .pciu_pciif_tabort_set_out      (pciu_pciif_tabort_set_out),
1113
    .pciu_err_addr_out              (pciu_err_addr_out),
1114
    .pciu_err_bc_out                (pciu_err_bc_out),
1115
    .pciu_err_data_out              (pciu_err_data_out),
1116
    .pciu_err_be_out                (pciu_err_be_out),
1117
    .pciu_err_signal_out            (pciu_err_signal_out),
1118
    .pciu_err_source_out            (pciu_err_source_out),
1119
    .pciu_err_rty_exp_out           (pciu_err_rty_exp_out),
1120
    .pciu_conf_offset_out           (pciu_conf_offset_out),
1121
    .pciu_conf_renable_out          (pciu_conf_renable_out),
1122
    .pciu_conf_wenable_out          (pciu_conf_wenable_out),
1123
    .pciu_conf_be_out               (pciu_conf_be_out),
1124
    .pciu_conf_data_out             (pciu_conf_data_out),
1125
    .pciu_pci_drcomp_pending_out    (pciu_pci_drcomp_pending_out),
1126
    .pciu_pciw_fifo_empty_out       (pciu_pciw_fifo_empty_out)
1127 62 mihad
 
1128
`ifdef PCI_BIST
1129
    ,
1130 122 markom
    .mbist_si_i       (mbist_so_o_internal),
1131
    .mbist_so_o       (mbist_so_o),
1132
    .mbist_ctrl_i       (mbist_ctrl_i)
1133 62 mihad
`endif
1134 2 mihad
);
1135
 
1136
 
1137
// CONFIGURATION SPACE INPUTS
1138
`ifdef HOST
1139
 
1140
    wire    [11:0]  conf_w_addr_in          =       wbu_conf_offset_out ;
1141
    wire    [31:0]  conf_w_data_in          =       wbu_conf_data_out ;
1142
    wire            conf_w_we_in            =       wbu_conf_wenable_out ;
1143
    wire            conf_w_re_in            =       wbu_conf_renable_out ;
1144
    wire    [3:0]   conf_w_be_in            =       wbu_conf_be_out     ;
1145
    wire            conf_w_clock            =       wb_clk ;
1146 21 mihad
    wire    [11:0]  conf_r_addr_in          =       pciu_conf_offset_out ;
1147
    wire            conf_r_re_in            =       pciu_conf_renable_out ;
1148 2 mihad
 
1149
`else
1150
`ifdef GUEST
1151
 
1152
    wire    [11:0]  conf_r_addr_in          =       wbu_conf_offset_out ;
1153
    wire            conf_r_re_in            =       wbu_conf_renable_out ;
1154
    wire            conf_w_clock            =       pci_clk ;
1155 21 mihad
    wire    [11:0]  conf_w_addr_in          =       pciu_conf_offset_out ;
1156
    wire    [31:0]  conf_w_data_in          =       pciu_conf_data_out ;
1157
    wire            conf_w_we_in            =       pciu_conf_wenable_out ;
1158
    wire            conf_w_re_in            =       pciu_conf_renable_out ;
1159
    wire    [3:0]   conf_w_be_in            =       pciu_conf_be_out ;
1160 2 mihad
 
1161
`endif
1162
`endif
1163
 
1164
 
1165
wire            conf_perr_in                            =   parchk_par_err_detect_out ;
1166
wire            conf_serr_in                            =   parchk_sig_serr_out ;
1167
wire            conf_master_abort_recv_in               =   wbu_mabort_rec_out ;
1168
wire            conf_target_abort_recv_in               =   wbu_tabort_rec_out ;
1169
wire            conf_target_abort_set_in                =   pciu_pciif_tabort_set_out ;
1170
 
1171
wire            conf_master_data_par_err_in             =   parchk_perr_mas_detect_out ;
1172
 
1173
wire    [3:0]   conf_pci_err_be_in      = pciu_err_be_out ;
1174 21 mihad
wire    [3:0]   conf_pci_err_bc_in      = pciu_err_bc_out;
1175
wire            conf_pci_err_es_in      = pciu_err_source_out ;
1176 2 mihad
wire            conf_pci_err_rty_exp_in = pciu_err_rty_exp_out ;
1177
wire            conf_pci_err_sig_in     = pciu_err_signal_out ;
1178
wire    [31:0]  conf_pci_err_addr_in    = pciu_err_addr_out ;
1179
wire    [31:0]  conf_pci_err_data_in    = pciu_err_data_out ;
1180
 
1181
wire    [3:0]   conf_wb_err_be_in       =   out_bckp_cbe_out ;
1182
wire    [3:0]   conf_wb_err_bc_in       =   wbu_err_bc_out ;
1183
wire            conf_wb_err_rty_exp_in  =   wbu_err_rty_exp_out ;
1184
wire            conf_wb_err_es_in       =   wbu_err_source_out ;
1185
wire            conf_wb_err_sig_in      =   wbu_err_signal_out ;
1186
wire    [31:0]  conf_wb_err_addr_in     =   wbu_err_addr_out ;
1187
wire    [31:0]  conf_wb_err_data_in     =   out_bckp_ad_out ;
1188
 
1189 21 mihad
wire            conf_isr_int_prop_in    =   pci_into_conf_isr_int_prop_out ;
1190
wire            conf_par_err_int_in     =   parchk_perr_mas_detect_out ;
1191
wire            conf_sys_err_int_in     =   parchk_sig_serr_out ;
1192 2 mihad
 
1193 77 mihad
pci_conf_space configuration(
1194 21 mihad
                                .reset                      (reset),
1195
                                .pci_clk                    (pci_clk),
1196
                                .wb_clk                     (wb_clk),
1197
                                .w_conf_address_in          (conf_w_addr_in),
1198
                                .w_conf_data_in             (conf_w_data_in),
1199
                                .w_conf_data_out            (conf_w_data_out),
1200
                                .r_conf_address_in          (conf_r_addr_in),
1201
                                .r_conf_data_out            (conf_r_data_out),
1202
                                .w_we                       (conf_w_we_in),
1203
                                .w_re                       (conf_w_re_in),
1204
                                .r_re                       (conf_r_re_in),
1205
                                .w_byte_en                  (conf_w_be_in),
1206
                                .w_clock                    (conf_w_clock),
1207
                                .serr_enable                (conf_serr_enable_out),
1208
                                .perr_response              (conf_perr_response_out),
1209
                                .pci_master_enable          (conf_pci_master_enable_out),
1210
                                .memory_space_enable        (conf_mem_space_enable_out),
1211
                                .io_space_enable            (conf_io_space_enable_out),
1212
                                .perr_in                    (conf_perr_in),
1213
                                .serr_in                    (conf_serr_in),
1214
                                .master_abort_recv          (conf_master_abort_recv_in),
1215
                                .target_abort_recv          (conf_target_abort_recv_in),
1216
                                .target_abort_set           (conf_target_abort_set_in),
1217
                                .master_data_par_err        (conf_master_data_par_err_in),
1218
                                .cache_line_size_to_pci     (conf_cache_line_size_to_pci_out),
1219
                                .cache_line_size_to_wb      (conf_cache_line_size_to_wb_out),
1220
                                .cache_lsize_not_zero_to_wb (conf_cache_lsize_not_zero_to_wb_out),
1221
                                .latency_tim                (conf_latency_tim_out),
1222
                                .pci_base_addr0             (conf_pci_ba0_out),
1223
                                .pci_base_addr1             (conf_pci_ba1_out),
1224
                                .pci_base_addr2             (conf_pci_ba2_out),
1225
                                .pci_base_addr3             (conf_pci_ba3_out),
1226
                                .pci_base_addr4             (conf_pci_ba4_out),
1227
                                .pci_base_addr5             (conf_pci_ba5_out),
1228
                                .pci_memory_io0             (conf_pci_mem_io0_out),
1229
                                .pci_memory_io1             (conf_pci_mem_io1_out),
1230
                                .pci_memory_io2             (conf_pci_mem_io2_out),
1231
                                .pci_memory_io3             (conf_pci_mem_io3_out),
1232
                                .pci_memory_io4             (conf_pci_mem_io4_out),
1233
                                .pci_memory_io5             (conf_pci_mem_io5_out),
1234
                                .pci_addr_mask0             (conf_pci_am0_out),
1235
                                .pci_addr_mask1             (conf_pci_am1_out),
1236
                                .pci_addr_mask2             (conf_pci_am2_out),
1237
                                .pci_addr_mask3             (conf_pci_am3_out),
1238
                                .pci_addr_mask4             (conf_pci_am4_out),
1239
                                .pci_addr_mask5             (conf_pci_am5_out),
1240
                                .pci_tran_addr0             (conf_pci_ta0_out),
1241
                                .pci_tran_addr1             (conf_pci_ta1_out),
1242
                                .pci_tran_addr2             (conf_pci_ta2_out),
1243
                                .pci_tran_addr3             (conf_pci_ta3_out),
1244
                                .pci_tran_addr4             (conf_pci_ta4_out),
1245
                                .pci_tran_addr5             (conf_pci_ta5_out),
1246
                                .pci_img_ctrl0              (conf_pci_img_ctrl0_out),
1247
                                .pci_img_ctrl1              (conf_pci_img_ctrl1_out),
1248
                                .pci_img_ctrl2              (conf_pci_img_ctrl2_out),
1249
                                .pci_img_ctrl3              (conf_pci_img_ctrl3_out),
1250
                                .pci_img_ctrl4              (conf_pci_img_ctrl4_out),
1251
                                .pci_img_ctrl5              (conf_pci_img_ctrl5_out),
1252
                                .pci_error_be               (conf_pci_err_be_in),
1253
                                .pci_error_bc               (conf_pci_err_bc_in),
1254
                                .pci_error_rty_exp          (conf_pci_err_rty_exp_in),
1255
                                .pci_error_es               (conf_pci_err_es_in),
1256
                                .pci_error_sig              (conf_pci_err_sig_in),
1257
                                .pci_error_addr             (conf_pci_err_addr_in),
1258
                                .pci_error_data             (conf_pci_err_data_in),
1259
                                .wb_base_addr0              (conf_wb_ba0_out),
1260
                                .wb_base_addr1              (conf_wb_ba1_out),
1261
                                .wb_base_addr2              (conf_wb_ba2_out),
1262
                                .wb_base_addr3              (conf_wb_ba3_out),
1263
                                .wb_base_addr4              (conf_wb_ba4_out),
1264
                                .wb_base_addr5              (conf_wb_ba5_out),
1265
                                .wb_memory_io0              (conf_wb_mem_io0_out),
1266
                                .wb_memory_io1              (conf_wb_mem_io1_out),
1267
                                .wb_memory_io2              (conf_wb_mem_io2_out),
1268
                                .wb_memory_io3              (conf_wb_mem_io3_out),
1269
                                .wb_memory_io4              (conf_wb_mem_io4_out),
1270
                                .wb_memory_io5              (conf_wb_mem_io5_out),
1271
                                .wb_addr_mask0              (conf_wb_am0_out),
1272
                                .wb_addr_mask1              (conf_wb_am1_out),
1273
                                .wb_addr_mask2              (conf_wb_am2_out),
1274
                                .wb_addr_mask3              (conf_wb_am3_out),
1275
                                .wb_addr_mask4              (conf_wb_am4_out),
1276
                                .wb_addr_mask5              (conf_wb_am5_out),
1277
                                .wb_tran_addr0              (conf_wb_ta0_out),
1278
                                .wb_tran_addr1              (conf_wb_ta1_out),
1279
                                .wb_tran_addr2              (conf_wb_ta2_out),
1280
                                .wb_tran_addr3              (conf_wb_ta3_out),
1281
                                .wb_tran_addr4              (conf_wb_ta4_out),
1282
                                .wb_tran_addr5              (conf_wb_ta5_out),
1283
                                .wb_img_ctrl0               (conf_wb_img_ctrl0_out),
1284
                                .wb_img_ctrl1               (conf_wb_img_ctrl1_out),
1285
                                .wb_img_ctrl2               (conf_wb_img_ctrl2_out),
1286
                                .wb_img_ctrl3               (conf_wb_img_ctrl3_out),
1287
                                .wb_img_ctrl4               (conf_wb_img_ctrl4_out),
1288
                                .wb_img_ctrl5               (conf_wb_img_ctrl5_out),
1289
                                .wb_error_be                (conf_wb_err_be_in),
1290
                                .wb_error_bc                (conf_wb_err_bc_in),
1291
                                .wb_error_rty_exp           (conf_wb_err_rty_exp_in),
1292
                                .wb_error_es                (conf_wb_err_es_in),
1293
                                .wb_error_sig               (conf_wb_err_sig_in),
1294
                                .wb_error_addr              (conf_wb_err_addr_in),
1295
                                .wb_error_data              (conf_wb_err_data_in),
1296
                                .config_addr                (conf_ccyc_addr_out),
1297
                                .icr_soft_res               (conf_soft_res_out),
1298
                                .int_out                    (conf_int_out),
1299
                                .isr_int_prop               (conf_isr_int_prop_in),
1300
                                .isr_par_err_int            (conf_par_err_int_in),
1301 132 mihad
                                .isr_sys_err_int            (conf_sys_err_int_in),
1302 130 mihad
 
1303 132 mihad
                                .init_complete              (conf_init_complete_out)
1304
 
1305 130 mihad
                            `ifdef PCI_CPCI_HS_IMPLEMENT
1306
                                ,
1307
                                .pci_cpci_hs_enum_oe_o      (pci_cpci_hs_enum_oe_o) ,
1308
                                .pci_cpci_hs_led_oe_o       (pci_cpci_hs_led_oe_o ) ,
1309
                                .pci_cpci_hs_es_i           (pci_cpci_hs_es_i)
1310
                            `endif
1311 2 mihad
                            ) ;
1312
 
1313
// pci data io multiplexer inputs
1314 21 mihad
wire            pci_mux_tar_ad_en_in            = pciu_pciif_ad_en_out ;
1315
wire            pci_mux_tar_ad_en_reg_in        = out_bckp_tar_ad_en_out ;
1316
wire    [31:0]  pci_mux_tar_ad_in               = pciu_pciif_ad_out ;
1317
wire            pci_mux_devsel_in               = pciu_pciif_devsel_out ;
1318
wire            pci_mux_devsel_en_in            = pciu_pciif_devsel_en_out ;
1319
wire            pci_mux_trdy_in                 = pciu_pciif_trdy_out ;
1320
wire            pci_mux_trdy_en_in              = pciu_pciif_trdy_en_out ;
1321
wire            pci_mux_stop_in                 = pciu_pciif_stop_out ;
1322
wire            pci_mux_stop_en_in              = pciu_pciif_stop_en_out ;
1323
wire            pci_mux_tar_load_in             = pciu_ad_load_out ;
1324
wire            pci_mux_tar_load_on_transfer_in = pciu_ad_load_on_transfer_out ;
1325 2 mihad
 
1326
wire            pci_mux_mas_ad_en_in    = wbu_pciif_ad_en_out ;
1327
wire    [31:0]  pci_mux_mas_ad_in       = wbu_pciif_ad_out ;
1328
 
1329 21 mihad
wire            pci_mux_frame_in                = wbu_pciif_frame_out ;
1330
wire            pci_mux_frame_en_in             = wbu_pciif_frame_en_out ;
1331
wire            pci_mux_irdy_in                 = wbu_pciif_irdy_out;
1332
wire            pci_mux_irdy_en_in              = wbu_pciif_irdy_en_out;
1333
wire            pci_mux_mas_load_in             = wbu_ad_load_out ;
1334
wire            pci_mux_mas_load_on_transfer_in = wbu_ad_load_on_transfer_out ;
1335
wire [3:0]      pci_mux_cbe_in                  = wbu_pciif_cbe_out ;
1336
wire            pci_mux_cbe_en_in               = wbu_pciif_cbe_en_out ;
1337 2 mihad
 
1338
wire            pci_mux_par_in              = parchk_pci_par_out ;
1339 21 mihad
wire            pci_mux_par_en_in           = parchk_pci_par_en_out ;
1340 2 mihad
wire            pci_mux_perr_in             = parchk_pci_perr_out ;
1341
wire            pci_mux_perr_en_in          = parchk_pci_perr_en_out ;
1342
wire            pci_mux_serr_in             = parchk_pci_serr_out ;
1343
wire            pci_mux_serr_en_in          = parchk_pci_serr_en_out;
1344
 
1345 21 mihad
wire            pci_mux_req_in              =   wbu_pciif_req_out ;
1346 2 mihad
wire            pci_mux_frame_load_in       =   wbu_pciif_frame_load_out ;
1347
 
1348 77 mihad
wire            pci_mux_pci_irdy_in         =   pci_irdy_i ;
1349
wire            pci_mux_pci_trdy_in         =   pci_trdy_i ;
1350
wire            pci_mux_pci_frame_in        =   pci_frame_i ;
1351
wire            pci_mux_pci_stop_in         =   pci_stop_i ;
1352 21 mihad
 
1353 132 mihad
wire            pci_mux_init_complete_in    =   conf_init_complete_out ;
1354
 
1355 77 mihad
pci_io_mux pci_io_mux
1356 2 mihad
(
1357 21 mihad
    .reset_in                   (reset),
1358
    .clk_in                     (pci_clk),
1359
    .frame_in                   (pci_mux_frame_in),
1360
    .frame_en_in                (pci_mux_frame_en_in),
1361
    .frame_load_in              (pci_mux_frame_load_in),
1362
    .irdy_in                    (pci_mux_irdy_in),
1363
    .irdy_en_in                 (pci_mux_irdy_en_in),
1364
    .devsel_in                  (pci_mux_devsel_in),
1365
    .devsel_en_in               (pci_mux_devsel_en_in),
1366
    .trdy_in                    (pci_mux_trdy_in),
1367
    .trdy_en_in                 (pci_mux_trdy_en_in),
1368
    .stop_in                    (pci_mux_stop_in),
1369
    .stop_en_in                 (pci_mux_stop_en_in),
1370
    .master_load_in             (pci_mux_mas_load_in),
1371
    .master_load_on_transfer_in (pci_mux_mas_load_on_transfer_in),
1372
    .target_load_in             (pci_mux_tar_load_in),
1373
    .target_load_on_transfer_in (pci_mux_tar_load_on_transfer_in),
1374
    .cbe_in                     (pci_mux_cbe_in),
1375
    .cbe_en_in                  (pci_mux_cbe_en_in),
1376
    .mas_ad_in                  (pci_mux_mas_ad_in),
1377
    .tar_ad_in                  (pci_mux_tar_ad_in),
1378 2 mihad
 
1379 21 mihad
    .mas_ad_en_in               (pci_mux_mas_ad_en_in),
1380
    .tar_ad_en_in               (pci_mux_tar_ad_en_in),
1381
    .tar_ad_en_reg_in           (pci_mux_tar_ad_en_reg_in),
1382 2 mihad
 
1383 21 mihad
    .par_in                     (pci_mux_par_in),
1384
    .par_en_in                  (pci_mux_par_en_in),
1385
    .perr_in                    (pci_mux_perr_in),
1386
    .perr_en_in                 (pci_mux_perr_en_in),
1387
    .serr_in                    (pci_mux_serr_in),
1388
    .serr_en_in                 (pci_mux_serr_en_in),
1389 2 mihad
 
1390 21 mihad
    .frame_en_out               (pci_mux_frame_en_out),
1391
    .irdy_en_out                (pci_mux_irdy_en_out),
1392
    .devsel_en_out              (pci_mux_devsel_en_out),
1393
    .trdy_en_out                (pci_mux_trdy_en_out),
1394
    .stop_en_out                (pci_mux_stop_en_out),
1395
    .cbe_en_out                 (pci_mux_cbe_en_out),
1396
    .ad_en_out                  (pci_mux_ad_en_out),
1397 2 mihad
 
1398 21 mihad
    .frame_out                  (pci_mux_frame_out),
1399
    .irdy_out                   (pci_mux_irdy_out),
1400
    .devsel_out                 (pci_mux_devsel_out),
1401
    .trdy_out                   (pci_mux_trdy_out),
1402
    .stop_out                   (pci_mux_stop_out),
1403
    .cbe_out                    (pci_mux_cbe_out),
1404
    .ad_out                     (pci_mux_ad_out),
1405
    .ad_load_out                (pci_mux_ad_load_out),
1406
 
1407
    .par_out                    (pci_mux_par_out),
1408
    .par_en_out                 (pci_mux_par_en_out),
1409
    .perr_out                   (pci_mux_perr_out),
1410
    .perr_en_out                (pci_mux_perr_en_out),
1411
    .serr_out                   (pci_mux_serr_out),
1412
    .serr_en_out                (pci_mux_serr_en_out),
1413
    .req_in                     (pci_mux_req_in),
1414
    .req_out                    (pci_mux_req_out),
1415
    .req_en_out                 (pci_mux_req_en_out),
1416
    .pci_irdy_in                (pci_mux_pci_irdy_in),
1417
    .pci_trdy_in                (pci_mux_pci_trdy_in),
1418
    .pci_frame_in               (pci_mux_pci_frame_in),
1419
    .pci_stop_in                (pci_mux_pci_stop_in),
1420 132 mihad
    .ad_en_unregistered_out     (pci_mux_ad_en_unregistered_out),
1421
 
1422
    .init_complete_in           (pci_mux_init_complete_in)
1423 2 mihad
);
1424
 
1425 77 mihad
pci_cur_out_reg output_backup
1426 2 mihad
(
1427 21 mihad
    .reset_in               (reset),
1428
    .clk_in                 (pci_clk),
1429
    .frame_in               (pci_mux_frame_in),
1430
    .frame_en_in            (pci_mux_frame_en_in),
1431
    .frame_load_in          (pci_mux_frame_load_in),
1432
    .irdy_in                (pci_mux_irdy_in),
1433
    .irdy_en_in             (pci_mux_irdy_en_in),
1434
    .devsel_in              (pci_mux_devsel_in),
1435
    .trdy_in                (pci_mux_trdy_in),
1436
    .trdy_en_in             (pci_mux_trdy_en_in),
1437
    .stop_in                (pci_mux_stop_in),
1438
    .ad_load_in             (pci_mux_ad_load_out),
1439
    .cbe_in                 (pci_mux_cbe_in),
1440
    .cbe_en_in              (pci_mux_cbe_en_in),
1441
    .mas_ad_in              (pci_mux_mas_ad_in),
1442
    .tar_ad_in              (pci_mux_tar_ad_in),
1443 2 mihad
 
1444 21 mihad
    .mas_ad_en_in           (pci_mux_mas_ad_en_in),
1445
    .tar_ad_en_in           (pci_mux_tar_ad_en_in),
1446
    .ad_en_unregistered_in  (pci_mux_ad_en_unregistered_out),
1447
 
1448
    .par_in                 (pci_mux_par_in),
1449
    .par_en_in              (pci_mux_par_en_in),
1450
    .perr_in                (pci_mux_perr_in),
1451
    .perr_en_in             (pci_mux_perr_en_in),
1452
    .serr_in                (pci_mux_serr_in),
1453
    .serr_en_in             (pci_mux_serr_en_in),
1454
 
1455
    .frame_out              (out_bckp_frame_out),
1456
    .frame_en_out           (out_bckp_frame_en_out),
1457
    .irdy_out               (out_bckp_irdy_out),
1458
    .irdy_en_out            (out_bckp_irdy_en_out),
1459
    .devsel_out             (out_bckp_devsel_out),
1460
    .trdy_out               (out_bckp_trdy_out),
1461
    .trdy_en_out            (out_bckp_trdy_en_out),
1462
    .stop_out               (out_bckp_stop_out),
1463
    .cbe_out                (out_bckp_cbe_out),
1464
    .ad_out                 (out_bckp_ad_out),
1465
    .ad_en_out              (out_bckp_ad_en_out),
1466
    .cbe_en_out             (out_bckp_cbe_en_out),
1467
    .tar_ad_en_out          (out_bckp_tar_ad_en_out),
1468
    .mas_ad_en_out          (out_bckp_mas_ad_en_out),
1469
 
1470
    .par_out                (out_bckp_par_out),
1471
    .par_en_out             (out_bckp_par_en_out),
1472
    .perr_out               (out_bckp_perr_out),
1473
    .perr_en_out            (out_bckp_perr_en_out),
1474
    .serr_out               (out_bckp_serr_out),
1475
    .serr_en_out            (out_bckp_serr_en_out)
1476 2 mihad
) ;
1477
 
1478
// PARITY CHECKER INPUTS
1479 77 mihad
wire            parchk_pci_par_in               =   pci_par_i ;
1480
wire            parchk_pci_perr_in              =   pci_perr_i ;
1481 2 mihad
wire            parchk_pci_frame_reg_in         =   in_reg_frame_out ;
1482 21 mihad
wire            parchk_pci_frame_en_in          =   out_bckp_frame_en_out ;
1483 2 mihad
wire            parchk_pci_irdy_en_in           =   out_bckp_irdy_en_out ;
1484 21 mihad
wire            parchk_pci_irdy_reg_in          =   in_reg_irdy_out ;
1485
wire            parchk_pci_trdy_reg_in          =   in_reg_trdy_out ;
1486 2 mihad
 
1487
 
1488 21 mihad
wire            parchk_pci_trdy_en_in           =   out_bckp_trdy_en_out ;
1489 2 mihad
 
1490
 
1491 21 mihad
wire    [31:0]  parchk_pci_ad_out_in            =   out_bckp_ad_out ;
1492 2 mihad
wire    [31:0]  parchk_pci_ad_reg_in            =   in_reg_ad_out ;
1493 77 mihad
wire    [3:0]   parchk_pci_cbe_in_in            =   pci_cbe_i ;
1494 21 mihad
wire    [3:0]   parchk_pci_cbe_reg_in           =   in_reg_cbe_out ;
1495 2 mihad
wire    [3:0]   parchk_pci_cbe_out_in           =   out_bckp_cbe_out ;
1496
wire            parchk_pci_ad_en_in             =   out_bckp_ad_en_out ;
1497
wire            parchk_par_err_response_in      =   conf_perr_response_out ;
1498
wire            parchk_serr_enable_in           =   conf_serr_enable_out ;
1499
 
1500
wire            parchk_pci_perr_out_in          =   out_bckp_perr_out ;
1501
wire            parchk_pci_serr_en_in           =   out_bckp_serr_en_out ;
1502
wire            parchk_pci_serr_out_in          =   out_bckp_serr_out ;
1503
wire            parchk_pci_cbe_en_in            =   out_bckp_cbe_en_out ;
1504
 
1505
wire            parchk_pci_par_en_in            =   out_bckp_par_en_out ;
1506
 
1507 77 mihad
pci_parity_check parity_checker
1508 2 mihad
(
1509
    .reset_in               (reset),
1510
    .clk_in                 (pci_clk),
1511
    .pci_par_in             (parchk_pci_par_in),
1512
    .pci_par_out            (parchk_pci_par_out),
1513
    .pci_par_en_out         (parchk_pci_par_en_out),
1514
    .pci_par_en_in          (parchk_pci_par_en_in),
1515
    .pci_perr_in            (parchk_pci_perr_in),
1516
    .pci_perr_out           (parchk_pci_perr_out),
1517
    .pci_perr_en_out        (parchk_pci_perr_en_out),
1518
    .pci_perr_out_in        (parchk_pci_perr_out_in),
1519
    .pci_serr_out           (parchk_pci_serr_out),
1520
    .pci_serr_out_in        (parchk_pci_serr_out_in),
1521
    .pci_serr_en_out        (parchk_pci_serr_en_out),
1522
    .pci_serr_en_in         (parchk_pci_serr_en_in),
1523
    .pci_frame_reg_in       (parchk_pci_frame_reg_in),
1524
    .pci_frame_en_in        (parchk_pci_frame_en_in),
1525
    .pci_irdy_en_in         (parchk_pci_irdy_en_in),
1526
    .pci_irdy_reg_in        (parchk_pci_irdy_reg_in),
1527
    .pci_trdy_reg_in        (parchk_pci_trdy_reg_in),
1528
    .pci_trdy_en_in         (parchk_pci_trdy_en_in),
1529
    .pci_ad_out_in          (parchk_pci_ad_out_in),
1530
    .pci_ad_reg_in          (parchk_pci_ad_reg_in),
1531
    .pci_cbe_in_in          (parchk_pci_cbe_in_in),
1532 21 mihad
    .pci_cbe_reg_in         (parchk_pci_cbe_reg_in),
1533 2 mihad
    .pci_cbe_en_in          (parchk_pci_cbe_en_in),
1534
    .pci_cbe_out_in         (parchk_pci_cbe_out_in),
1535
    .pci_ad_en_in           (parchk_pci_ad_en_in),
1536
    .par_err_response_in    (parchk_par_err_response_in),
1537
    .par_err_detect_out     (parchk_par_err_detect_out),
1538
    .perr_mas_detect_out    (parchk_perr_mas_detect_out),
1539
    .serr_enable_in         (parchk_serr_enable_in),
1540
    .sig_serr_out           (parchk_sig_serr_out)
1541
);
1542
 
1543 77 mihad
wire            in_reg_gnt_in    = pci_gnt_i ;
1544
wire            in_reg_frame_in  = pci_frame_i ;
1545
wire            in_reg_irdy_in   = pci_irdy_i ;
1546
wire            in_reg_trdy_in   = pci_trdy_i ;
1547
wire            in_reg_stop_in   = pci_stop_i ;
1548
wire            in_reg_devsel_in = pci_devsel_i ;
1549
wire            in_reg_idsel_in  = pci_idsel_i ;
1550
wire    [31:0]  in_reg_ad_in     = pci_ad_i ;
1551
wire    [3:0]   in_reg_cbe_in    = pci_cbe_i ;
1552 2 mihad
 
1553 77 mihad
pci_in_reg input_register
1554 2 mihad
(
1555 132 mihad
    .reset_in           (reset),
1556
    .clk_in             (pci_clk),
1557
    .init_complete_in   (conf_init_complete_out),
1558 21 mihad
 
1559 2 mihad
    .pci_gnt_in     (in_reg_gnt_in),
1560
    .pci_frame_in   (in_reg_frame_in),
1561
    .pci_irdy_in    (in_reg_irdy_in),
1562
    .pci_trdy_in    (in_reg_trdy_in),
1563
    .pci_stop_in    (in_reg_stop_in),
1564
    .pci_devsel_in  (in_reg_devsel_in),
1565 21 mihad
    .pci_idsel_in   (in_reg_idsel_in),
1566 2 mihad
    .pci_ad_in      (in_reg_ad_in),
1567
    .pci_cbe_in     (in_reg_cbe_in),
1568 21 mihad
 
1569 2 mihad
    .pci_gnt_reg_out    (in_reg_gnt_out),
1570
    .pci_frame_reg_out  (in_reg_frame_out),
1571
    .pci_irdy_reg_out   (in_reg_irdy_out),
1572
    .pci_trdy_reg_out   (in_reg_trdy_out),
1573
    .pci_stop_reg_out   (in_reg_stop_out),
1574
    .pci_devsel_reg_out (in_reg_devsel_out),
1575 21 mihad
    .pci_idsel_reg_out  (in_reg_idsel_out),
1576 2 mihad
    .pci_ad_reg_out     (in_reg_ad_out),
1577
    .pci_cbe_reg_out    (in_reg_cbe_out)
1578
);
1579
 
1580 21 mihad
endmodule

powered by: WebSVN 2.1.0

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