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 6

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

powered by: WebSVN 2.1.0

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