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

Subversion Repositories pci

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

powered by: WebSVN 2.1.0

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