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

Subversion Repositories pci

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

powered by: WebSVN 2.1.0

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