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

Subversion Repositories pci

[/] [pci/] [tags/] [rel_7/] [rtl/] [verilog/] [pci_bridge32.v] - Blame information for rev 77

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

powered by: WebSVN 2.1.0

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