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

Subversion Repositories pcie_sg_dma

[/] [pcie_sg_dma/] [branches/] [Virtex6/] [ML605_ISE13.3/] [ipcore_dir_ISE13.3/] [v6_pcie_v1_7_x4/] [source/] [v6_pcie_v1_7_x4.vhd] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 barabba
-------------------------------------------------------------------------------
2
--
3
-- (c) Copyright 2009-2011 Xilinx, Inc. All rights reserved.
4
--
5
-- This file contains confidential and proprietary information
6
-- of Xilinx, Inc. and is protected under U.S. and
7
-- international copyright and other intellectual property
8
-- laws.
9
--
10
-- DISCLAIMER
11
-- This disclaimer is not a license and does not grant any
12
-- rights to the materials distributed herewith. Except as
13
-- otherwise provided in a valid license issued to you by
14
-- Xilinx, and to the maximum extent permitted by applicable
15
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
16
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
17
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
18
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
19
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
20
-- (2) Xilinx shall not be liable (whether in contract or tort,
21
-- including negligence, or under any other theory of
22
-- liability) for any loss or damage of any kind or nature
23
-- related to, arising under or in connection with these
24
-- materials, including for any direct, or any indirect,
25
-- special, incidental, or consequential loss or damage
26
-- (including loss of data, profits, goodwill, or any type of
27
-- loss or damage suffered as a result of any action brought
28
-- by a third party) even if such damage or loss was
29
-- reasonably foreseeable or Xilinx had been advised of the
30
-- possibility of the same.
31
--
32
-- CRITICAL APPLICATIONS
33
-- Xilinx products are not designed or intended to be fail-
34
-- safe, or for use in any application requiring fail-safe
35
-- performance, such as life-support or safety devices or
36
-- systems, Class III medical devices, nuclear facilities,
37
-- applications related to the deployment of airbags, or any
38
-- other applications that could lead to death, personal
39
-- injury, or severe property or environmental damage
40
-- (individually and collectively, "Critical
41
-- Applications"). Customer assumes the sole risk and
42
-- liability of any use of Xilinx products in Critical
43
-- Applications, subject only to applicable laws and
44
-- regulations governing limitations on product liability.
45
--
46
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
47
-- PART OF THIS FILE AT ALL TIMES.
48
--
49
-------------------------------------------------------------------------------
50
-- Project    : Virtex-6 Integrated Block for PCI Express
51
-- File       : v6_pcie_v1_7_x4.vhd
52
-- Version    : 1.7
53
-- Description: Virtex6 solution wrapper : Endpoint for PCI Express
54
--
55
--
56
--
57
--------------------------------------------------------------------------------
58
 
59
library ieee;
60
   use ieee.std_logic_1164.all;
61
   use ieee.std_logic_unsigned.all;
62
 
63
library unisim;
64
use unisim.vcomponents.all;
65
 
66
entity v6_pcie_v1_7_x4 is
67
   generic (
68
   PCIE_DRP_ENABLE                              : boolean := FALSE;
69
   ALLOW_X8_GEN2                                : boolean := FALSE;
70
   BAR0                                         : bit_vector := X"FFFF0000";
71
   BAR1                                         : bit_vector := X"FFF00000";
72
   BAR2                                         : bit_vector := X"FFFFF000";
73
   BAR3                                         : bit_vector := X"00000000";
74
   BAR4                                         : bit_vector := X"00000000";
75
   BAR5                                         : bit_vector := X"00000000";
76
 
77
   CARDBUS_CIS_POINTER                          : bit_vector := X"00000000";
78
   CLASS_CODE                                   : bit_vector := X"050000";
79
   CMD_INTX_IMPLEMENTED                         : boolean    := TRUE;
80
   CPL_TIMEOUT_DISABLE_SUPPORTED                : boolean    := FALSE;
81
   CPL_TIMEOUT_RANGES_SUPPORTED                 : bit_vector := X"2";
82
 
83
   DEV_CAP_ENDPOINT_L0S_LATENCY                 : integer    := 7;
84
   DEV_CAP_ENDPOINT_L1_LATENCY                  : integer    := 7;
85
   DEV_CAP_EXT_TAG_SUPPORTED                    : boolean    := FALSE;
86
   DEV_CAP_MAX_PAYLOAD_SUPPORTED                : integer    := 2;
87
   DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT            : integer    := 0;
88
   DEVICE_ID                                    : bit_vector := X"6014";
89
 
90
   DISABLE_LANE_REVERSAL                        : boolean    := TRUE;
91
   DISABLE_SCRAMBLING                           : boolean    := FALSE;
92
   DSN_BASE_PTR                                 : bit_vector := X"100";
93
   DSN_CAP_NEXTPTR                              : bit_vector := X"000";
94
   DSN_CAP_ON                                   : boolean    := TRUE;
95
 
96
   ENABLE_MSG_ROUTE                             : bit_vector := "00000000000";
97
   ENABLE_RX_TD_ECRC_TRIM                       : boolean    := TRUE;
98
   EXPANSION_ROM                                : bit_vector := X"00000000";
99
   EXT_CFG_CAP_PTR                              : bit_vector := X"3F";
100
   EXT_CFG_XP_CAP_PTR                           : bit_vector := X"3FF";
101
   HEADER_TYPE                                  : bit_vector := X"00";
102
   INTERRUPT_PIN                                : bit_vector := X"1";
103
 
104
   LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP       : boolean    := FALSE;
105
   LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP     : boolean    := FALSE;
106
   LINK_CAP_MAX_LINK_SPEED                      : bit_vector := X"1";
107
   LINK_CAP_MAX_LINK_WIDTH                      : bit_vector := X"04";
108
   LINK_CAP_MAX_LINK_WIDTH_int                  : integer    := 4;
109
   LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE         : boolean    := FALSE;
110
 
111
   LINK_CTRL2_DEEMPHASIS                        : boolean    := FALSE;
112
   LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE       : boolean    := FALSE;
113
   LINK_CTRL2_TARGET_LINK_SPEED                 : bit_vector := X"0";
114
   LINK_STATUS_SLOT_CLOCK_CONFIG                : boolean    := FALSE;
115
 
116
   LL_ACK_TIMEOUT                               : bit_vector := X"0000";
117
   LL_ACK_TIMEOUT_EN                            : boolean    := FALSE;
118
   LL_ACK_TIMEOUT_FUNC                          : integer    := 0;
119
   LL_REPLAY_TIMEOUT                            : bit_vector := X"0026";
120
   LL_REPLAY_TIMEOUT_EN                         : boolean    := FALSE;
121
   LL_REPLAY_TIMEOUT_FUNC                       : integer    := 1;
122
 
123
   LTSSM_MAX_LINK_WIDTH                         : bit_vector := X"04";
124
   MSI_CAP_MULTIMSGCAP                          : integer    := 0;
125
   MSI_CAP_MULTIMSG_EXTENSION                   : integer    := 0;
126
   MSI_CAP_ON                                   : boolean    := TRUE;
127
   MSI_CAP_PER_VECTOR_MASKING_CAPABLE           : boolean    := FALSE;
128
   MSI_CAP_64_BIT_ADDR_CAPABLE                  : boolean    := TRUE;
129
 
130
   MSIX_CAP_ON                                  : boolean    := FALSE;
131
   MSIX_CAP_PBA_BIR                             : integer    := 0;
132
   MSIX_CAP_PBA_OFFSET                          : bit_vector := X"0";
133
   MSIX_CAP_TABLE_BIR                           : integer    := 0;
134
   MSIX_CAP_TABLE_OFFSET                        : bit_vector := X"0";
135
   MSIX_CAP_TABLE_SIZE                          : bit_vector := X"000";
136
 
137
   PCIE_CAP_DEVICE_PORT_TYPE                    : bit_vector := X"0";
138
   PCIE_CAP_INT_MSG_NUM                         : bit_vector := X"1";
139
   PCIE_CAP_NEXTPTR                             : bit_vector := X"00";
140
   PIPE_PIPELINE_STAGES                         : integer    := 0;                -- 0 - 0 stages; 1 - 1 stage; 2 - 2 stages
141
 
142
   PM_CAP_DSI                                   : boolean    := FALSE;
143
   PM_CAP_D1SUPPORT                             : boolean    := FALSE;
144
   PM_CAP_D2SUPPORT                             : boolean    := FALSE;
145
   PM_CAP_NEXTPTR                               : bit_vector := X"48";
146
   PM_CAP_PMESUPPORT                            : bit_vector := X"0F";
147
   PM_CSR_NOSOFTRST                             : boolean    := TRUE;
148
 
149
   PM_DATA_SCALE0                               : bit_vector := X"0";
150
   PM_DATA_SCALE1                               : bit_vector := X"0";
151
   PM_DATA_SCALE2                               : bit_vector := X"0";
152
   PM_DATA_SCALE3                               : bit_vector := X"0";
153
   PM_DATA_SCALE4                               : bit_vector := X"0";
154
   PM_DATA_SCALE5                               : bit_vector := X"0";
155
   PM_DATA_SCALE6                               : bit_vector := X"0";
156
   PM_DATA_SCALE7                               : bit_vector := X"0";
157
 
158
   PM_DATA0                                     : bit_vector := X"00";
159
   PM_DATA1                                     : bit_vector := X"00";
160
   PM_DATA2                                     : bit_vector := X"00";
161
   PM_DATA3                                     : bit_vector := X"00";
162
   PM_DATA4                                     : bit_vector := X"00";
163
   PM_DATA5                                     : bit_vector := X"00";
164
   PM_DATA6                                     : bit_vector := X"00";
165
   PM_DATA7                                     : bit_vector := X"00";
166
 
167
   REF_CLK_FREQ                                 : integer    := 0;                        -- 0 - 100 MHz; 1 - 125 MHz; 2 - 250 MHz
168
   REVISION_ID                                  : bit_vector := X"06";
169
   SPARE_BIT0                                   : integer    := 0;
170
   SUBSYSTEM_ID                                 : bit_vector := X"ABB3";
171
   SUBSYSTEM_VENDOR_ID                          : bit_vector := X"0084";
172
 
173
   TL_RX_RAM_RADDR_LATENCY                      : integer    := 0;
174
   TL_RX_RAM_RDATA_LATENCY                      : integer    := 2;
175
   TL_RX_RAM_WRITE_LATENCY                      : integer    := 0;
176
   TL_TX_RAM_RADDR_LATENCY                      : integer    := 0;
177
   TL_TX_RAM_RDATA_LATENCY                      : integer    := 2;
178
   TL_TX_RAM_WRITE_LATENCY                      : integer    := 0;
179
 
180
   UPCONFIG_CAPABLE                             : boolean    := TRUE;
181
   USER_CLK_FREQ                                : integer    := 2;
182
   VC_BASE_PTR                                  : bit_vector := X"0";
183
   VC_CAP_NEXTPTR                               : bit_vector := X"000";
184
   VC_CAP_ON                                    : boolean    := FALSE;
185
   VC_CAP_REJECT_SNOOP_TRANSACTIONS             : boolean    := FALSE;
186
 
187
   VC0_CPL_INFINITE                             : boolean    := TRUE;
188
   VC0_RX_RAM_LIMIT                             : bit_vector := X"7FF";
189
   VC0_TOTAL_CREDITS_CD                         : integer    := 308;
190
   VC0_TOTAL_CREDITS_CH                         : integer    := 36;
191
   VC0_TOTAL_CREDITS_NPH                        : integer    := 12;
192
   VC0_TOTAL_CREDITS_PD                         : integer    := 308;
193
   VC0_TOTAL_CREDITS_PH                         : integer    := 32;
194
   VC0_TX_LASTPACKET                            : integer    := 29;
195
 
196
   VENDOR_ID                                    : bit_vector := X"10EE";
197
   VSEC_BASE_PTR                                : bit_vector := X"0";
198
   VSEC_CAP_NEXTPTR                             : bit_vector := X"000";
199
   VSEC_CAP_ON                                  : boolean    := FALSE;
200
 
201
   AER_BASE_PTR                                 : bit_vector := X"128";
202
   AER_CAP_ECRC_CHECK_CAPABLE                   : boolean    := FALSE;
203
   AER_CAP_ECRC_GEN_CAPABLE                     : boolean    := FALSE;
204
   AER_CAP_ID                                   : bit_vector := X"0001";
205
   AER_CAP_INT_MSG_NUM_MSI                      : bit_vector := X"0a";
206
   AER_CAP_INT_MSG_NUM_MSIX                     : bit_vector := X"15";
207
   AER_CAP_NEXTPTR                              : bit_vector := X"160";
208
   AER_CAP_ON                                   : boolean    := FALSE;
209
   AER_CAP_PERMIT_ROOTERR_UPDATE                : boolean    := TRUE;
210
   AER_CAP_VERSION                              : bit_vector := X"1";
211
 
212
   CAPABILITIES_PTR                             : bit_vector := X"40";
213
   CRM_MODULE_RSTS                              : bit_vector := X"00";
214
   DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE          : boolean    := TRUE;
215
   DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE          : boolean    := TRUE;
216
   DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE         : boolean    := FALSE;
217
   DEV_CAP_ROLE_BASED_ERROR                     : boolean    := TRUE;
218
   DEV_CAP_RSVD_14_12                           : integer    := 0;
219
   DEV_CAP_RSVD_17_16                           : integer    := 0;
220
   DEV_CAP_RSVD_31_29                           : integer    := 0;
221
   DEV_CONTROL_AUX_POWER_SUPPORTED              : boolean    := FALSE;
222
 
223
   DISABLE_ASPM_L1_TIMER                        : boolean    := FALSE;
224
   DISABLE_BAR_FILTERING                        : boolean    := FALSE;
225
   DISABLE_ID_CHECK                             : boolean    := FALSE;
226
   DISABLE_RX_TC_FILTER                         : boolean    := FALSE;
227
   DNSTREAM_LINK_NUM                            : bit_vector := X"00";
228
 
229
   DSN_CAP_ID                                   : bit_vector := X"0003";
230
   DSN_CAP_VERSION                              : bit_vector := X"1";
231
   ENTER_RVRY_EI_L0                             : boolean    := TRUE;
232
   INFER_EI                                     : bit_vector := X"0c";
233
   IS_SWITCH                                    : boolean    := FALSE;
234
 
235
   LAST_CONFIG_DWORD                            : bit_vector := X"3FF";
236
   LINK_CAP_ASPM_SUPPORT                        : integer    := 1;
237
   LINK_CAP_CLOCK_POWER_MANAGEMENT              : boolean    := FALSE;
238
   LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1        : integer    := 7;
239
   LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2        : integer    := 7;
240
   LINK_CAP_L0S_EXIT_LATENCY_GEN1               : integer    := 7;
241
   LINK_CAP_L0S_EXIT_LATENCY_GEN2               : integer    := 7;
242
   LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1         : integer    := 7;
243
   LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2         : integer    := 7;
244
   LINK_CAP_L1_EXIT_LATENCY_GEN1                : integer    := 7;
245
   LINK_CAP_L1_EXIT_LATENCY_GEN2                : integer    := 7;
246
   LINK_CAP_RSVD_23_22                          : integer    := 0;
247
   LINK_CONTROL_RCB                             : integer    := 0;
248
 
249
   MSI_BASE_PTR                                 : bit_vector := X"48";
250
   MSI_CAP_ID                                   : bit_vector := X"05";
251
   MSI_CAP_NEXTPTR                              : bit_vector := X"60";
252
   MSIX_BASE_PTR                                : bit_vector := X"9c";
253
   MSIX_CAP_ID                                  : bit_vector := X"11";
254
   MSIX_CAP_NEXTPTR                             : bit_vector := X"00";
255
   N_FTS_COMCLK_GEN1                            : integer    := 255;
256
   N_FTS_COMCLK_GEN2                            : integer    := 254;
257
   N_FTS_GEN1                                   : integer    := 255;
258
   N_FTS_GEN2                                   : integer    := 255;
259
 
260
   PCIE_BASE_PTR                                : bit_vector := X"60";
261
   PCIE_CAP_CAPABILITY_ID                       : bit_vector := X"10";
262
   PCIE_CAP_CAPABILITY_VERSION                  : bit_vector := X"2";
263
   PCIE_CAP_ON                                  : boolean    := TRUE;
264
   PCIE_CAP_RSVD_15_14                          : integer    := 0;
265
   PCIE_CAP_SLOT_IMPLEMENTED                    : boolean    := FALSE;
266
   PCIE_REVISION                                : integer    := 2;
267
   PGL0_LANE                                    : integer    := 0;
268
   PGL1_LANE                                    : integer    := 1;
269
   PGL2_LANE                                    : integer    := 2;
270
   PGL3_LANE                                    : integer    := 3;
271
   PGL4_LANE                                    : integer    := 4;
272
   PGL5_LANE                                    : integer    := 5;
273
   PGL6_LANE                                    : integer    := 6;
274
   PGL7_LANE                                    : integer    := 7;
275
   PL_AUTO_CONFIG                               : integer    := 0;
276
   PL_FAST_TRAIN                                : boolean    := FALSE;
277
 
278
   PM_BASE_PTR                                  : bit_vector := X"40";
279
   PM_CAP_AUXCURRENT                            : integer    := 0;
280
   PM_CAP_ID                                    : bit_vector := X"01";
281
   PM_CAP_ON                                    : boolean    := TRUE;
282
   PM_CAP_PME_CLOCK                             : boolean    := FALSE;
283
   PM_CAP_RSVD_04                               : integer    := 0;
284
   PM_CAP_VERSION                               : integer    := 3;
285
   PM_CSR_BPCCEN                                : boolean    := FALSE;
286
   PM_CSR_B2B3                                  : boolean    := FALSE;
287
 
288
   RECRC_CHK                                    : integer    := 0;
289
   RECRC_CHK_TRIM                               : boolean    := FALSE;
290
   ROOT_CAP_CRS_SW_VISIBILITY                   : boolean    := FALSE;
291
   SELECT_DLL_IF                                : boolean    := FALSE;
292
   SLOT_CAP_ATT_BUTTON_PRESENT                  : boolean    := FALSE;
293
   SLOT_CAP_ATT_INDICATOR_PRESENT               : boolean    := FALSE;
294
   SLOT_CAP_ELEC_INTERLOCK_PRESENT              : boolean    := FALSE;
295
   SLOT_CAP_HOTPLUG_CAPABLE                     : boolean    := FALSE;
296
   SLOT_CAP_HOTPLUG_SURPRISE                    : boolean    := FALSE;
297
   SLOT_CAP_MRL_SENSOR_PRESENT                  : boolean    := FALSE;
298
   SLOT_CAP_NO_CMD_COMPLETED_SUPPORT            : boolean    := FALSE;
299
   SLOT_CAP_PHYSICAL_SLOT_NUM                   : bit_vector := X"0000";
300
   SLOT_CAP_POWER_CONTROLLER_PRESENT            : boolean    := FALSE;
301
   SLOT_CAP_POWER_INDICATOR_PRESENT             : boolean    := FALSE;
302
   SLOT_CAP_SLOT_POWER_LIMIT_SCALE              : integer    := 0;
303
   SLOT_CAP_SLOT_POWER_LIMIT_VALUE              : bit_vector := X"00";
304
   SPARE_BIT1                                   : integer    := 0;
305
   SPARE_BIT2                                   : integer    := 0;
306
   SPARE_BIT3                                   : integer    := 0;
307
   SPARE_BIT4                                   : integer    := 0;
308
   SPARE_BIT5                                   : integer    := 0;
309
   SPARE_BIT6                                   : integer    := 0;
310
   SPARE_BIT7                                   : integer    := 0;
311
   SPARE_BIT8                                   : integer    := 0;
312
   SPARE_BYTE0                                  : bit_vector := X"00";
313
   SPARE_BYTE1                                  : bit_vector := X"00";
314
   SPARE_BYTE2                                  : bit_vector := X"00";
315
   SPARE_BYTE3                                  : bit_vector := X"00";
316
   SPARE_WORD0                                  : bit_vector := X"00000000";
317
   SPARE_WORD1                                  : bit_vector := X"00000000";
318
   SPARE_WORD2                                  : bit_vector := X"00000000";
319
   SPARE_WORD3                                  : bit_vector := X"00000000";
320
 
321
   TL_RBYPASS                                   : boolean    := FALSE;
322
   TL_TFC_DISABLE                               : boolean    := FALSE;
323
   TL_TX_CHECKS_DISABLE                         : boolean    := FALSE;
324
   EXIT_LOOPBACK_ON_EI                          : boolean    := TRUE;
325
   UPSTREAM_FACING                              : boolean    := TRUE;
326
   UR_INV_REQ                                   : boolean    := TRUE;
327
 
328
   VC_CAP_ID                                    : bit_vector := X"0002";
329
   VC_CAP_VERSION                               : bit_vector := X"1";
330
   VSEC_CAP_HDR_ID                              : bit_vector := X"1234";
331
   VSEC_CAP_HDR_LENGTH                          : bit_vector := X"018";
332
   VSEC_CAP_HDR_REVISION                        : bit_vector := X"1";
333
   VSEC_CAP_ID                                  : bit_vector := X"000b";
334
   VSEC_CAP_IS_LINK_VISIBLE                     : boolean    := TRUE;
335
   VSEC_CAP_VERSION                             : bit_vector := X"1"
336
      );
337
   port (
338
      ---------------------------------------------------------
339
      -- 1. PCI Express (pci_exp) Interface
340
      ---------------------------------------------------------
341
 
342
      -- Tx
343
      pci_exp_txp                               : out std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
344
      pci_exp_txn                               : out std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
345
 
346
      -- Rx
347
      pci_exp_rxp                               : in std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
348
      pci_exp_rxn                               : in std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
349
 
350
      ---------------------------------------------------------
351
      -- 2. Transaction (TRN) Interface
352
      ---------------------------------------------------------
353
 
354
      -- Common
355
      trn_clk                                   : out std_logic;
356
      trn_reset_n                               : out std_logic;
357
      trn_lnk_up_n                              : out std_logic;
358
 
359
      -- Tx
360
 
361
      trn_tbuf_av                               : out std_logic_vector(5 downto 0);
362
      trn_tcfg_req_n                            : out std_logic;
363
      trn_terr_drop_n                           : out std_logic;
364
 
365
      trn_tdst_rdy_n                            : out std_logic;
366
      trn_td                                    : in std_logic_vector(63 downto 0);
367
      trn_trem_n                                : in std_logic;
368
      trn_tsof_n                                : in std_logic;
369
      trn_teof_n                                : in std_logic;
370
      trn_tsrc_rdy_n                            : in std_logic;
371
      trn_tsrc_dsc_n                            : in std_logic;
372
 
373
      trn_terrfwd_n                             : in std_logic;
374
      trn_tcfg_gnt_n                            : in std_logic;
375
 
376
      trn_tstr_n                                : in std_logic;
377
 
378
      -- Rx
379
      trn_rd                                    : out std_logic_vector(63 downto 0);
380
      trn_rrem_n                                : out std_logic;
381
      trn_rsof_n                                : out std_logic;
382
      trn_reof_n                                : out std_logic;
383
      trn_rsrc_rdy_n                            : out std_logic;
384
      trn_rsrc_dsc_n                            : out std_logic;
385
      trn_rerrfwd_n                             : out std_logic;
386
      trn_rbar_hit_n                            : out std_logic_vector(6 downto 0);
387
      trn_rdst_rdy_n                            : in std_logic;
388
      trn_rnp_ok_n                              : in std_logic;
389
 
390
      -- Flow Control
391
      trn_fc_cpld                               : out std_logic_vector(11 downto 0);
392
      trn_fc_cplh                               : out std_logic_vector(7 downto 0);
393
      trn_fc_npd                                : out std_logic_vector(11 downto 0);
394
      trn_fc_nph                                : out std_logic_vector(7 downto 0);
395
      trn_fc_pd                                 : out std_logic_vector(11 downto 0);
396
      trn_fc_ph                                 : out std_logic_vector(7 downto 0);
397
      trn_fc_sel                                : in std_logic_vector(2 downto 0);
398
 
399
      ---------------------------------------------------------
400
      -- 3. Configuration (CFG) Interface
401
      ---------------------------------------------------------
402
 
403
      cfg_do                                    : out std_logic_vector(31 downto 0);
404
      cfg_rd_wr_done_n                          : out std_logic;
405
      cfg_di                                    : in std_logic_vector(31 downto 0);
406
      cfg_byte_en_n                             : in std_logic_vector(3 downto 0);
407
      cfg_dwaddr                                : in std_logic_vector(9 downto 0);
408
      cfg_wr_en_n                               : in std_logic;
409
      cfg_rd_en_n                               : in std_logic;
410
 
411
      cfg_err_cor_n                             : in std_logic;
412
      cfg_err_ur_n                              : in std_logic;
413
      cfg_err_ecrc_n                            : in std_logic;
414
      cfg_err_cpl_timeout_n                     : in std_logic;
415
      cfg_err_cpl_abort_n                       : in std_logic;
416
      cfg_err_cpl_unexpect_n                    : in std_logic;
417
      cfg_err_posted_n                          : in std_logic;
418
      cfg_err_locked_n                          : in std_logic;
419
      cfg_err_tlp_cpl_header                    : in std_logic_vector(47 downto 0);
420
      cfg_err_cpl_rdy_n                         : out std_logic;
421
      cfg_interrupt_n                           : in std_logic;
422
      cfg_interrupt_rdy_n                       : out std_logic;
423
      cfg_interrupt_assert_n                    : in std_logic;
424
      cfg_interrupt_di                          : in std_logic_vector(7 downto 0);
425
      cfg_interrupt_do                          : out std_logic_vector(7 downto 0);
426
      cfg_interrupt_mmenable                    : out std_logic_vector(2 downto 0);
427
      cfg_interrupt_msienable                   : out std_logic;
428
      cfg_interrupt_msixenable                  : out std_logic;
429
      cfg_interrupt_msixfm                      : out std_logic;
430
      cfg_turnoff_ok_n                          : in std_logic;
431
      cfg_to_turnoff_n                          : out std_logic;
432
      cfg_trn_pending_n                         : in std_logic;
433
      cfg_pm_wake_n                             : in std_logic;
434
      cfg_bus_number                            : out std_logic_vector(7 downto 0);
435
      cfg_device_number                         : out std_logic_vector(4 downto 0);
436
      cfg_function_number                       : out std_logic_vector(2 downto 0);
437
      cfg_status                                : out std_logic_vector(15 downto 0);
438
      cfg_command                               : out std_logic_vector(15 downto 0);
439
      cfg_dstatus                               : out std_logic_vector(15 downto 0);
440
      cfg_dcommand                              : out std_logic_vector(15 downto 0);
441
      cfg_lstatus                               : out std_logic_vector(15 downto 0);
442
      cfg_lcommand                              : out std_logic_vector(15 downto 0);
443
      cfg_dcommand2                             : out std_logic_vector(15 downto 0);
444
      cfg_pcie_link_state_n                     : out std_logic_vector(2 downto 0);
445
      cfg_dsn                                   : in std_logic_vector(63 downto 0);
446
      cfg_pmcsr_pme_en                          : out std_logic;
447
      cfg_pmcsr_pme_status                      : out std_logic;
448
      cfg_pmcsr_powerstate                      : out std_logic_vector(1 downto 0);
449
 
450
      ---------------------------------------------------------
451
      -- 4. Physical Layer Control and Status (PL) Interface
452
      ---------------------------------------------------------
453
 
454
      pl_initial_link_width                     : out std_logic_vector(2 downto 0);
455
      pl_lane_reversal_mode                     : out std_logic_vector(1 downto 0);
456
      pl_link_gen2_capable                      : out std_logic;
457
      pl_link_partner_gen2_supported            : out std_logic;
458
      pl_link_upcfg_capable                     : out std_logic;
459
      pl_ltssm_state                            : out std_logic_vector(5 downto 0);
460
      pl_received_hot_rst                       : out std_logic;
461
      pl_sel_link_rate                          : out std_logic;
462
      pl_sel_link_width                         : out std_logic_vector(1 downto 0);
463
      pl_directed_link_auton                    : in std_logic;
464
      pl_directed_link_change                   : in std_logic_vector(1 downto 0);
465
      pl_directed_link_speed                    : in std_logic;
466
      pl_directed_link_width                    : in std_logic_vector(1 downto 0);
467
      pl_upstream_prefer_deemph                 : in std_logic;
468
 
469
  ---------------------------------------------------------
470
  -- 5. System  (SYS) Interface
471
  ---------------------------------------------------------
472
 
473
      sys_clk                                   : in std_logic;
474
      sys_reset_n                               : in std_logic
475
   );
476
end v6_pcie_v1_7_x4;
477
 
478
architecture v6_pcie of v6_pcie_v1_7_x4 is
479
 
480
   attribute CORE_GENERATION_INFO : string;
481
   attribute CORE_GENERATION_INFO of v6_pcie : ARCHITECTURE is
482
        "v6_pcie_v1_7_x4,v6_pcie_v1_7,{LINK_CAP_MAX_LINK_SPEED=1,LINK_CAP_MAX_LINK_WIDTH=04,PCIE_CAP_DEVICE_PORT_TYPE=0000,DEV_CAP_MAX_PAYLOAD_SUPPORTED=2,USER_CLK_FREQ=2,REF_CLK_FREQ=0,MSI_CAP_ON=TRUE,MSI_CAP_MULTIMSGCAP=0,MSI_CAP_MULTIMSG_EXTENSION=0,MSIX_CAP_ON=FALSE,TL_TX_RAM_RADDR_LATENCY=0,TL_TX_RAM_RDATA_LATENCY=2,TL_RX_RAM_RADDR_LATENCY=0,TL_RX_RAM_RDATA_LATENCY=2,TL_RX_RAM_WRITE_LATENCY=0,VC0_TX_LASTPACKET=29,VC0_RX_RAM_LIMIT=7FF,VC0_TOTAL_CREDITS_PH=32,VC0_TOTAL_CREDITS_PD=308,VC0_TOTAL_CREDITS_NPH=12,VC0_TOTAL_CREDITS_CH=36,VC0_TOTAL_CREDITS_CD=308,VC0_CPL_INFINITE=TRUE,DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT=0,DEV_CAP_EXT_TAG_SUPPORTED=FALSE,LINK_STATUS_SLOT_CLOCK_CONFIG=FALSE,ENABLE_RX_TD_ECRC_TRIM=TRUE,DISABLE_LANE_REVERSAL=TRUE,DISABLE_SCRAMBLING=FALSE,DSN_CAP_ON=TRUE,PIPE_PIPELINE_STAGES=0,REVISION_ID=06,VC_CAP_ON=FALSE}";
483
 
484
 
485
  component pcie_reset_delay_v6
486
    generic (
487
      PL_FAST_TRAIN : boolean;
488
      REF_CLK_FREQ  : integer);
489
    port (
490
      ref_clk             : in  std_logic;
491
      sys_reset_n         : in  std_logic;
492
      delayed_sys_reset_n : out std_logic);
493
  end component;
494
 
495
  component pcie_clocking_v6
496
    generic (
497
      CAP_LINK_WIDTH : integer;
498
      CAP_LINK_SPEED : integer;
499
      REF_CLK_FREQ   : integer;
500
      USER_CLK_FREQ  : integer);
501
    port (
502
      sys_clk       : in  std_logic;
503
      gt_pll_lock   : in  std_logic;
504
      sel_lnk_rate  : in  std_logic;
505
      sel_lnk_width : in  std_logic_vector(1 downto 0);
506
      sys_clk_bufg  : out std_logic;
507
      pipe_clk      : out std_logic;
508
      user_clk      : out std_logic;
509
      block_clk     : out std_logic;
510
      drp_clk       : out std_logic;
511
      clock_locked  : out std_logic);
512
  end component;
513
 
514
  component pcie_2_0_v6
515
    generic (
516
      REF_CLK_FREQ                             : integer;
517
      PIPE_PIPELINE_STAGES                     : integer;
518
      LINK_CAP_MAX_LINK_WIDTH_int              : integer;
519
      AER_BASE_PTR                             : bit_vector;
520
      AER_CAP_ECRC_CHECK_CAPABLE               : boolean;
521
      AER_CAP_ECRC_GEN_CAPABLE                 : boolean;
522
      AER_CAP_ID                               : bit_vector;
523
      AER_CAP_INT_MSG_NUM_MSI                  : bit_vector;
524
      AER_CAP_INT_MSG_NUM_MSIX                 : bit_vector;
525
      AER_CAP_NEXTPTR                          : bit_vector;
526
      AER_CAP_ON                               : boolean;
527
      AER_CAP_PERMIT_ROOTERR_UPDATE            : boolean;
528
      AER_CAP_VERSION                          : bit_vector;
529
      ALLOW_X8_GEN2                            : boolean;
530
      BAR0                                     : bit_vector;
531
      BAR1                                     : bit_vector;
532
      BAR2                                     : bit_vector;
533
      BAR3                                     : bit_vector;
534
      BAR4                                     : bit_vector;
535
      BAR5                                     : bit_vector;
536
      CAPABILITIES_PTR                         : bit_vector;
537
      CARDBUS_CIS_POINTER                      : bit_vector;
538
      CLASS_CODE                               : bit_vector;
539
      CMD_INTX_IMPLEMENTED                     : boolean;
540
      CPL_TIMEOUT_DISABLE_SUPPORTED            : boolean;
541
      CPL_TIMEOUT_RANGES_SUPPORTED             : bit_vector;
542
      CRM_MODULE_RSTS                          : bit_vector;
543
      DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE      : boolean;
544
      DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE      : boolean;
545
      DEV_CAP_ENDPOINT_L0S_LATENCY             : integer;
546
      DEV_CAP_ENDPOINT_L1_LATENCY              : integer;
547
      DEV_CAP_EXT_TAG_SUPPORTED                : boolean;
548
      DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE     : boolean;
549
      DEV_CAP_MAX_PAYLOAD_SUPPORTED            : integer;
550
      DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT        : integer;
551
      DEV_CAP_ROLE_BASED_ERROR                 : boolean;
552
      DEV_CAP_RSVD_14_12                       : integer;
553
      DEV_CAP_RSVD_17_16                       : integer;
554
      DEV_CAP_RSVD_31_29                       : integer;
555
      DEV_CONTROL_AUX_POWER_SUPPORTED          : boolean;
556
      DEVICE_ID                                : bit_vector;
557
      DISABLE_ASPM_L1_TIMER                    : boolean;
558
      DISABLE_BAR_FILTERING                    : boolean;
559
      DISABLE_ID_CHECK                         : boolean;
560
      DISABLE_LANE_REVERSAL                    : boolean;
561
      DISABLE_RX_TC_FILTER                     : boolean;
562
      DISABLE_SCRAMBLING                       : boolean;
563
      DNSTREAM_LINK_NUM                        : bit_vector;
564
      DSN_BASE_PTR                             : bit_vector;
565
      DSN_CAP_ID                               : bit_vector;
566
      DSN_CAP_NEXTPTR                          : bit_vector;
567
      DSN_CAP_ON                               : boolean;
568
      DSN_CAP_VERSION                          : bit_vector;
569
      ENABLE_MSG_ROUTE                         : bit_vector;
570
      ENABLE_RX_TD_ECRC_TRIM                   : boolean;
571
      ENTER_RVRY_EI_L0                         : boolean;
572
      EXPANSION_ROM                            : bit_vector;
573
      EXT_CFG_CAP_PTR                          : bit_vector;
574
      EXT_CFG_XP_CAP_PTR                       : bit_vector;
575
      HEADER_TYPE                              : bit_vector;
576
      INFER_EI                                 : bit_vector;
577
      INTERRUPT_PIN                            : bit_vector;
578
      IS_SWITCH                                : boolean;
579
      LAST_CONFIG_DWORD                        : bit_vector;
580
      LINK_CAP_ASPM_SUPPORT                    : integer;
581
      LINK_CAP_CLOCK_POWER_MANAGEMENT          : boolean;
582
      LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP   : boolean;
583
      LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1    : integer;
584
      LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2    : integer;
585
      LINK_CAP_L0S_EXIT_LATENCY_GEN1           : integer;
586
      LINK_CAP_L0S_EXIT_LATENCY_GEN2           : integer;
587
      LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1     : integer;
588
      LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2     : integer;
589
      LINK_CAP_L1_EXIT_LATENCY_GEN1            : integer;
590
      LINK_CAP_L1_EXIT_LATENCY_GEN2            : integer;
591
      LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP : boolean;
592
      LINK_CAP_MAX_LINK_SPEED                  : bit_vector;
593
      LINK_CAP_MAX_LINK_WIDTH                  : bit_vector;
594
      LINK_CAP_RSVD_23_22                      : integer;
595
      LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE     : boolean;
596
      LINK_CONTROL_RCB                         : integer;
597
      LINK_CTRL2_DEEMPHASIS                    : boolean;
598
      LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE   : boolean;
599
      LINK_CTRL2_TARGET_LINK_SPEED             : bit_vector;
600
      LINK_STATUS_SLOT_CLOCK_CONFIG            : boolean;
601
      LL_ACK_TIMEOUT                           : bit_vector;
602
      LL_ACK_TIMEOUT_EN                        : boolean;
603
      LL_ACK_TIMEOUT_FUNC                      : integer;
604
      LL_REPLAY_TIMEOUT                        : bit_vector;
605
      LL_REPLAY_TIMEOUT_EN                     : boolean;
606
      LL_REPLAY_TIMEOUT_FUNC                   : integer;
607
      LTSSM_MAX_LINK_WIDTH                     : bit_vector;
608
      MSI_BASE_PTR                             : bit_vector;
609
      MSI_CAP_ID                               : bit_vector;
610
      MSI_CAP_MULTIMSGCAP                      : integer;
611
      MSI_CAP_MULTIMSG_EXTENSION               : integer;
612
      MSI_CAP_NEXTPTR                          : bit_vector;
613
      MSI_CAP_ON                               : boolean;
614
      MSI_CAP_PER_VECTOR_MASKING_CAPABLE       : boolean;
615
      MSI_CAP_64_BIT_ADDR_CAPABLE              : boolean;
616
      MSIX_BASE_PTR                            : bit_vector;
617
      MSIX_CAP_ID                              : bit_vector;
618
      MSIX_CAP_NEXTPTR                         : bit_vector;
619
      MSIX_CAP_ON                              : boolean;
620
      MSIX_CAP_PBA_BIR                         : integer;
621
      MSIX_CAP_PBA_OFFSET                      : bit_vector;
622
      MSIX_CAP_TABLE_BIR                       : integer;
623
      MSIX_CAP_TABLE_OFFSET                    : bit_vector;
624
      MSIX_CAP_TABLE_SIZE                      : bit_vector;
625
      N_FTS_COMCLK_GEN1                        : integer;
626
      N_FTS_COMCLK_GEN2                        : integer;
627
      N_FTS_GEN1                               : integer;
628
      N_FTS_GEN2                               : integer;
629
      PCIE_BASE_PTR                            : bit_vector;
630
      PCIE_CAP_CAPABILITY_ID                   : bit_vector;
631
      PCIE_CAP_CAPABILITY_VERSION              : bit_vector;
632
      PCIE_CAP_DEVICE_PORT_TYPE                : bit_vector;
633
      PCIE_CAP_INT_MSG_NUM                     : bit_vector;
634
      PCIE_CAP_NEXTPTR                         : bit_vector;
635
      PCIE_CAP_ON                              : boolean;
636
      PCIE_CAP_RSVD_15_14                      : integer;
637
      PCIE_CAP_SLOT_IMPLEMENTED                : boolean;
638
      PCIE_REVISION                            : integer;
639
      PGL0_LANE                                : integer;
640
      PGL1_LANE                                : integer;
641
      PGL2_LANE                                : integer;
642
      PGL3_LANE                                : integer;
643
      PGL4_LANE                                : integer;
644
      PGL5_LANE                                : integer;
645
      PGL6_LANE                                : integer;
646
      PGL7_LANE                                : integer;
647
      PL_AUTO_CONFIG                           : integer;
648
      PL_FAST_TRAIN                            : boolean;
649
      PM_BASE_PTR                              : bit_vector;
650
      PM_CAP_AUXCURRENT                        : integer;
651
      PM_CAP_DSI                               : boolean;
652
      PM_CAP_D1SUPPORT                         : boolean;
653
      PM_CAP_D2SUPPORT                         : boolean;
654
      PM_CAP_ID                                : bit_vector;
655
      PM_CAP_NEXTPTR                           : bit_vector;
656
      PM_CAP_ON                                : boolean;
657
      PM_CAP_PME_CLOCK                         : boolean;
658
      PM_CAP_PMESUPPORT                        : bit_vector;
659
      PM_CAP_RSVD_04                           : integer;
660
      PM_CAP_VERSION                           : integer;
661
      PM_CSR_BPCCEN                            : boolean;
662
      PM_CSR_B2B3                              : boolean;
663
      PM_CSR_NOSOFTRST                         : boolean;
664
      PM_DATA0                                 : bit_vector;
665
      PM_DATA1                                 : bit_vector;
666
      PM_DATA2                                 : bit_vector;
667
      PM_DATA3                                 : bit_vector;
668
      PM_DATA4                                 : bit_vector;
669
      PM_DATA5                                 : bit_vector;
670
      PM_DATA6                                 : bit_vector;
671
      PM_DATA7                                 : bit_vector;
672
      PM_DATA_SCALE0                           : bit_vector;
673
      PM_DATA_SCALE1                           : bit_vector;
674
      PM_DATA_SCALE2                           : bit_vector;
675
      PM_DATA_SCALE3                           : bit_vector;
676
      PM_DATA_SCALE4                           : bit_vector;
677
      PM_DATA_SCALE5                           : bit_vector;
678
      PM_DATA_SCALE6                           : bit_vector;
679
      PM_DATA_SCALE7                           : bit_vector;
680
      RECRC_CHK                                : integer;
681
      RECRC_CHK_TRIM                           : boolean;
682
      REVISION_ID                              : bit_vector;
683
      ROOT_CAP_CRS_SW_VISIBILITY               : boolean;
684
      SELECT_DLL_IF                            : boolean;
685
      SLOT_CAP_ATT_BUTTON_PRESENT              : boolean;
686
      SLOT_CAP_ATT_INDICATOR_PRESENT           : boolean;
687
      SLOT_CAP_ELEC_INTERLOCK_PRESENT          : boolean;
688
      SLOT_CAP_HOTPLUG_CAPABLE                 : boolean;
689
      SLOT_CAP_HOTPLUG_SURPRISE                : boolean;
690
      SLOT_CAP_MRL_SENSOR_PRESENT              : boolean;
691
      SLOT_CAP_NO_CMD_COMPLETED_SUPPORT        : boolean;
692
      SLOT_CAP_PHYSICAL_SLOT_NUM               : bit_vector;
693
      SLOT_CAP_POWER_CONTROLLER_PRESENT        : boolean;
694
      SLOT_CAP_POWER_INDICATOR_PRESENT         : boolean;
695
      SLOT_CAP_SLOT_POWER_LIMIT_SCALE          : integer;
696
      SLOT_CAP_SLOT_POWER_LIMIT_VALUE          : bit_vector;
697
      SPARE_BIT0                               : integer;
698
      SPARE_BIT1                               : integer;
699
      SPARE_BIT2                               : integer;
700
      SPARE_BIT3                               : integer;
701
      SPARE_BIT4                               : integer;
702
      SPARE_BIT5                               : integer;
703
      SPARE_BIT6                               : integer;
704
      SPARE_BIT7                               : integer;
705
      SPARE_BIT8                               : integer;
706
      SPARE_BYTE0                              : bit_vector;
707
      SPARE_BYTE1                              : bit_vector;
708
      SPARE_BYTE2                              : bit_vector;
709
      SPARE_BYTE3                              : bit_vector;
710
      SPARE_WORD0                              : bit_vector;
711
      SPARE_WORD1                              : bit_vector;
712
      SPARE_WORD2                              : bit_vector;
713
      SPARE_WORD3                              : bit_vector;
714
      SUBSYSTEM_ID                             : bit_vector;
715
      SUBSYSTEM_VENDOR_ID                      : bit_vector;
716
      TL_RBYPASS                               : boolean;
717
      TL_RX_RAM_RADDR_LATENCY                  : integer;
718
      TL_RX_RAM_RDATA_LATENCY                  : integer;
719
      TL_RX_RAM_WRITE_LATENCY                  : integer;
720
      TL_TFC_DISABLE                           : boolean;
721
      TL_TX_CHECKS_DISABLE                     : boolean;
722
      TL_TX_RAM_RADDR_LATENCY                  : integer;
723
      TL_TX_RAM_RDATA_LATENCY                  : integer;
724
      TL_TX_RAM_WRITE_LATENCY                  : integer;
725
      UPCONFIG_CAPABLE                         : boolean;
726
      UPSTREAM_FACING                          : boolean;
727
      UR_INV_REQ                               : boolean;
728
      USER_CLK_FREQ                            : integer;
729
      EXIT_LOOPBACK_ON_EI                      : boolean;
730
      VC_BASE_PTR                              : bit_vector;
731
      VC_CAP_ID                                : bit_vector;
732
      VC_CAP_NEXTPTR                           : bit_vector;
733
      VC_CAP_ON                                : boolean;
734
      VC_CAP_REJECT_SNOOP_TRANSACTIONS         : boolean;
735
      VC_CAP_VERSION                           : bit_vector;
736
      VC0_CPL_INFINITE                         : boolean;
737
      VC0_RX_RAM_LIMIT                         : bit_vector;
738
      VC0_TOTAL_CREDITS_CD                     : integer;
739
      VC0_TOTAL_CREDITS_CH                     : integer;
740
      VC0_TOTAL_CREDITS_NPH                    : integer;
741
      VC0_TOTAL_CREDITS_PD                     : integer;
742
      VC0_TOTAL_CREDITS_PH                     : integer;
743
      VC0_TX_LASTPACKET                        : integer;
744
      VENDOR_ID                                : bit_vector;
745
      VSEC_BASE_PTR                            : bit_vector;
746
      VSEC_CAP_HDR_ID                          : bit_vector;
747
      VSEC_CAP_HDR_LENGTH                      : bit_vector;
748
      VSEC_CAP_HDR_REVISION                    : bit_vector;
749
      VSEC_CAP_ID                              : bit_vector;
750
      VSEC_CAP_IS_LINK_VISIBLE                 : boolean;
751
      VSEC_CAP_NEXTPTR                         : bit_vector;
752
      VSEC_CAP_ON                              : boolean;
753
      VSEC_CAP_VERSION                         : bit_vector);
754
    port (
755
      PCIEXPRXN                           : in  std_logic_vector(3 downto 0);
756
      PCIEXPRXP                           : in  std_logic_vector(3 downto 0);
757
      PCIEXPTXN                           : out std_logic_vector(3 downto 0);
758
      PCIEXPTXP                           : out std_logic_vector(3 downto 0);
759
      SYSCLK                              : in  std_logic;
760
      FUNDRSTN                            : in  std_logic;
761
      TRNLNKUPN                           : out std_logic;
762
      TRNCLK                              : out std_logic;
763
      PHYRDYN                             : out std_logic;
764
      USERRSTN                            : out std_logic;
765
      RECEIVEDFUNCLVLRSTN                 : out std_logic;
766
      LNKCLKEN                            : out std_logic;
767
      SYSRSTN                             : in  std_logic;
768
      PLRSTN                              : in  std_logic;
769
      DLRSTN                              : in  std_logic;
770
      TLRSTN                              : in  std_logic;
771
      FUNCLVLRSTN                         : in  std_logic;
772
      CMRSTN                              : in  std_logic;
773
      CMSTICKYRSTN                        : in  std_logic;
774
      TRNRBARHITN                         : out std_logic_vector(6 downto 0);
775
      TRNRD                               : out std_logic_vector(63 downto 0);
776
      TRNRECRCERRN                        : out std_logic;
777
      TRNREOFN                            : out std_logic;
778
      TRNRERRFWDN                         : out std_logic;
779
      TRNRREMN                            : out std_logic;
780
      TRNRSOFN                            : out std_logic;
781
      TRNRSRCDSCN                         : out std_logic;
782
      TRNRSRCRDYN                         : out std_logic;
783
      TRNRDSTRDYN                         : in  std_logic;
784
      TRNRNPOKN                           : in  std_logic;
785
      TRNTBUFAV                           : out std_logic_vector(5 downto 0);
786
      TRNTCFGREQN                         : out std_logic;
787
      TRNTDLLPDSTRDYN                     : out std_logic;
788
      TRNTDSTRDYN                         : out std_logic;
789
      TRNTERRDROPN                        : out std_logic;
790
      TRNTCFGGNTN                         : in  std_logic;
791
      TRNTD                               : in  std_logic_vector(63 downto 0);
792
      TRNTDLLPDATA                        : in  std_logic_vector(31 downto 0);
793
      TRNTDLLPSRCRDYN                     : in  std_logic;
794
      TRNTECRCGENN                        : in  std_logic;
795
      TRNTEOFN                            : in  std_logic;
796
      TRNTERRFWDN                         : in  std_logic;
797
      TRNTREMN                            : in  std_logic;
798
      TRNTSOFN                            : in  std_logic;
799
      TRNTSRCDSCN                         : in  std_logic;
800
      TRNTSRCRDYN                         : in  std_logic;
801
      TRNTSTRN                            : in  std_logic;
802
      TRNFCCPLD                           : out std_logic_vector(11 downto 0);
803
      TRNFCCPLH                           : out std_logic_vector(7 downto 0);
804
      TRNFCNPD                            : out std_logic_vector(11 downto 0);
805
      TRNFCNPH                            : out std_logic_vector(7 downto 0);
806
      TRNFCPD                             : out std_logic_vector(11 downto 0);
807
      TRNFCPH                             : out std_logic_vector(7 downto 0);
808
      TRNFCSEL                            : in  std_logic_vector(2 downto 0);
809
      CFGAERECRCCHECKEN                   : out std_logic;
810
      CFGAERECRCGENEN                     : out std_logic;
811
      CFGCOMMANDBUSMASTERENABLE           : out std_logic;
812
      CFGCOMMANDINTERRUPTDISABLE          : out std_logic;
813
      CFGCOMMANDIOENABLE                  : out std_logic;
814
      CFGCOMMANDMEMENABLE                 : out std_logic;
815
      CFGCOMMANDSERREN                    : out std_logic;
816
      CFGDEVCONTROLAUXPOWEREN             : out std_logic;
817
      CFGDEVCONTROLCORRERRREPORTINGEN     : out std_logic;
818
      CFGDEVCONTROLENABLERO               : out std_logic;
819
      CFGDEVCONTROLEXTTAGEN               : out std_logic;
820
      CFGDEVCONTROLFATALERRREPORTINGEN    : out std_logic;
821
      CFGDEVCONTROLMAXPAYLOAD             : out std_logic_vector(2 downto 0);
822
      CFGDEVCONTROLMAXREADREQ             : out std_logic_vector(2 downto 0);
823
      CFGDEVCONTROLNONFATALREPORTINGEN    : out std_logic;
824
      CFGDEVCONTROLNOSNOOPEN              : out std_logic;
825
      CFGDEVCONTROLPHANTOMEN              : out std_logic;
826
      CFGDEVCONTROLURERRREPORTINGEN       : out std_logic;
827
      CFGDEVCONTROL2CPLTIMEOUTDIS         : out std_logic;
828
      CFGDEVCONTROL2CPLTIMEOUTVAL         : out std_logic_vector(3 downto 0);
829
      CFGDEVSTATUSCORRERRDETECTED         : out std_logic;
830
      CFGDEVSTATUSFATALERRDETECTED        : out std_logic;
831
      CFGDEVSTATUSNONFATALERRDETECTED     : out std_logic;
832
      CFGDEVSTATUSURDETECTED              : out std_logic;
833
      CFGDO                               : out std_logic_vector(31 downto 0);
834
      CFGERRAERHEADERLOGSETN              : out std_logic;
835
      CFGERRCPLRDYN                       : out std_logic;
836
      CFGINTERRUPTDO                      : out std_logic_vector(7 downto 0);
837
      CFGINTERRUPTMMENABLE                : out std_logic_vector(2 downto 0);
838
      CFGINTERRUPTMSIENABLE               : out std_logic;
839
      CFGINTERRUPTMSIXENABLE              : out std_logic;
840
      CFGINTERRUPTMSIXFM                  : out std_logic;
841
      CFGINTERRUPTRDYN                    : out std_logic;
842
      CFGLINKCONTROLRCB                   : out std_logic;
843
      CFGLINKCONTROLASPMCONTROL           : out std_logic_vector(1 downto 0);
844
      CFGLINKCONTROLAUTOBANDWIDTHINTEN    : out std_logic;
845
      CFGLINKCONTROLBANDWIDTHINTEN        : out std_logic;
846
      CFGLINKCONTROLCLOCKPMEN             : out std_logic;
847
      CFGLINKCONTROLCOMMONCLOCK           : out std_logic;
848
      CFGLINKCONTROLEXTENDEDSYNC          : out std_logic;
849
      CFGLINKCONTROLHWAUTOWIDTHDIS        : out std_logic;
850
      CFGLINKCONTROLLINKDISABLE           : out std_logic;
851
      CFGLINKCONTROLRETRAINLINK           : out std_logic;
852
      CFGLINKSTATUSAUTOBANDWIDTHSTATUS    : out std_logic;
853
      CFGLINKSTATUSBANDWITHSTATUS         : out std_logic;
854
      CFGLINKSTATUSCURRENTSPEED           : out std_logic_vector(1 downto 0);
855
      CFGLINKSTATUSDLLACTIVE              : out std_logic;
856
      CFGLINKSTATUSLINKTRAINING           : out std_logic;
857
      CFGLINKSTATUSNEGOTIATEDWIDTH        : out std_logic_vector(3 downto 0);
858
      CFGMSGDATA                          : out std_logic_vector(15 downto 0);
859
      CFGMSGRECEIVED                      : out std_logic;
860
      CFGMSGRECEIVEDASSERTINTA            : out std_logic;
861
      CFGMSGRECEIVEDASSERTINTB            : out std_logic;
862
      CFGMSGRECEIVEDASSERTINTC            : out std_logic;
863
      CFGMSGRECEIVEDASSERTINTD            : out std_logic;
864
      CFGMSGRECEIVEDDEASSERTINTA          : out std_logic;
865
      CFGMSGRECEIVEDDEASSERTINTB          : out std_logic;
866
      CFGMSGRECEIVEDDEASSERTINTC          : out std_logic;
867
      CFGMSGRECEIVEDDEASSERTINTD          : out std_logic;
868
      CFGMSGRECEIVEDERRCOR                : out std_logic;
869
      CFGMSGRECEIVEDERRFATAL              : out std_logic;
870
      CFGMSGRECEIVEDERRNONFATAL           : out std_logic;
871
      CFGMSGRECEIVEDPMASNAK               : out std_logic;
872
      CFGMSGRECEIVEDPMETO                 : out std_logic;
873
      CFGMSGRECEIVEDPMETOACK              : out std_logic;
874
      CFGMSGRECEIVEDPMPME                 : out std_logic;
875
      CFGMSGRECEIVEDSETSLOTPOWERLIMIT     : out std_logic;
876
      CFGMSGRECEIVEDUNLOCK                : out std_logic;
877
      CFGPCIELINKSTATE                    : out std_logic_vector(2 downto 0);
878
      CFGPMCSRPMEEN                       : out std_logic;
879
      CFGPMCSRPMESTATUS                   : out std_logic;
880
      CFGPMCSRPOWERSTATE                  : out std_logic_vector(1 downto 0);
881
      CFGPMRCVASREQL1N                    : out std_logic;
882
      CFGPMRCVENTERL1N                    : out std_logic;
883
      CFGPMRCVENTERL23N                   : out std_logic;
884
      CFGPMRCVREQACKN                     : out std_logic;
885
      CFGRDWRDONEN                        : out std_logic;
886
      CFGSLOTCONTROLELECTROMECHILCTLPULSE : out std_logic;
887
      CFGTRANSACTION                      : out std_logic;
888
      CFGTRANSACTIONADDR                  : out std_logic_vector(6 downto 0);
889
      CFGTRANSACTIONTYPE                  : out std_logic;
890
      CFGVCTCVCMAP                        : out std_logic_vector(6 downto 0);
891
      CFGBYTEENN                          : in  std_logic_vector(3 downto 0);
892
      CFGDI                               : in  std_logic_vector(31 downto 0);
893
      CFGDSBUSNUMBER                      : in  std_logic_vector(7 downto 0);
894
      CFGDSDEVICENUMBER                   : in  std_logic_vector(4 downto 0);
895
      CFGDSFUNCTIONNUMBER                 : in  std_logic_vector(2 downto 0);
896
      CFGDSN                              : in  std_logic_vector(63 downto 0);
897
      CFGDWADDR                           : in  std_logic_vector(9 downto 0);
898
      CFGERRACSN                          : in  std_logic;
899
      CFGERRAERHEADERLOG                  : in  std_logic_vector(127 downto 0);
900
      CFGERRCORN                          : in  std_logic;
901
      CFGERRCPLABORTN                     : in  std_logic;
902
      CFGERRCPLTIMEOUTN                   : in  std_logic;
903
      CFGERRCPLUNEXPECTN                  : in  std_logic;
904
      CFGERRECRCN                         : in  std_logic;
905
      CFGERRLOCKEDN                       : in  std_logic;
906
      CFGERRPOSTEDN                       : in  std_logic;
907
      CFGERRTLPCPLHEADER                  : in  std_logic_vector(47 downto 0);
908
      CFGERRURN                           : in  std_logic;
909
      CFGINTERRUPTASSERTN                 : in  std_logic;
910
      CFGINTERRUPTDI                      : in  std_logic_vector(7 downto 0);
911
      CFGINTERRUPTN                       : in  std_logic;
912
      CFGPMDIRECTASPML1N                  : in  std_logic;
913
      CFGPMSENDPMACKN                     : in  std_logic;
914
      CFGPMSENDPMETON                     : in  std_logic;
915
      CFGPMSENDPMNAKN                     : in  std_logic;
916
      CFGPMTURNOFFOKN                     : in  std_logic;
917
      CFGPMWAKEN                          : in  std_logic;
918
      CFGPORTNUMBER                       : in  std_logic_vector(7 downto 0);
919
      CFGRDENN                            : in  std_logic;
920
      CFGTRNPENDINGN                      : in  std_logic;
921
      CFGWRENN                            : in  std_logic;
922
      CFGWRREADONLYN                      : in  std_logic;
923
      CFGWRRW1CASRWN                      : in  std_logic;
924
      PLINITIALLINKWIDTH                  : out std_logic_vector(2 downto 0);
925
      PLLANEREVERSALMODE                  : out std_logic_vector(1 downto 0);
926
      PLLINKGEN2CAP                       : out std_logic;
927
      PLLINKPARTNERGEN2SUPPORTED          : out std_logic;
928
      PLLINKUPCFGCAP                      : out std_logic;
929
      PLLTSSMSTATE                        : out std_logic_vector(5 downto 0);
930
      PLPHYLNKUPN                         : out std_logic;
931
      PLRECEIVEDHOTRST                    : out std_logic;
932
      PLRXPMSTATE                         : out std_logic_vector(1 downto 0);
933
      PLSELLNKRATE                        : out std_logic;
934
      PLSELLNKWIDTH                       : out std_logic_vector(1 downto 0);
935
      PLTXPMSTATE                         : out std_logic_vector(2 downto 0);
936
      PLDIRECTEDLINKAUTON                 : in  std_logic;
937
      PLDIRECTEDLINKCHANGE                : in  std_logic_vector(1 downto 0);
938
      PLDIRECTEDLINKSPEED                 : in  std_logic;
939
      PLDIRECTEDLINKWIDTH                 : in  std_logic_vector(1 downto 0);
940
      PLDOWNSTREAMDEEMPHSOURCE            : in  std_logic;
941
      PLUPSTREAMPREFERDEEMPH              : in  std_logic;
942
      PLTRANSMITHOTRST                    : in  std_logic;
943
      DBGSCLRA                            : out std_logic;
944
      DBGSCLRB                            : out std_logic;
945
      DBGSCLRC                            : out std_logic;
946
      DBGSCLRD                            : out std_logic;
947
      DBGSCLRE                            : out std_logic;
948
      DBGSCLRF                            : out std_logic;
949
      DBGSCLRG                            : out std_logic;
950
      DBGSCLRH                            : out std_logic;
951
      DBGSCLRI                            : out std_logic;
952
      DBGSCLRJ                            : out std_logic;
953
      DBGSCLRK                            : out std_logic;
954
      DBGVECA                             : out std_logic_vector(63 downto 0);
955
      DBGVECB                             : out std_logic_vector(63 downto 0);
956
      DBGVECC                             : out std_logic_vector(11 downto 0);
957
      PLDBGVEC                            : out std_logic_vector(11 downto 0);
958
      DBGMODE                             : in  std_logic_vector(1 downto 0);
959
      DBGSUBMODE                          : in  std_logic;
960
      PLDBGMODE                           : in  std_logic_vector(2 downto 0);
961
      PCIEDRPDO                           : out std_logic_vector(15 downto 0);
962
      PCIEDRPDRDY                         : out std_logic;
963
      PCIEDRPCLK                          : in  std_logic;
964
      PCIEDRPDADDR                        : in  std_logic_vector(8 downto 0);
965
      PCIEDRPDEN                          : in  std_logic;
966
      PCIEDRPDI                           : in  std_logic_vector(15 downto 0);
967
      PCIEDRPDWE                          : in  std_logic;
968
      GTPLLLOCK                           : out std_logic;
969
      PIPECLK                             : in  std_logic;
970
      USERCLK                             : in  std_logic;
971
      DRPCLK                              : in  std_logic;
972
      CLOCKLOCKED                         : in  std_logic;
973
      TxOutClk                            : out std_logic);
974
  end component;
975
 
976
  FUNCTION to_integer (
977
      val_in    : bit_vector) RETURN integer IS
978
 
979
      CONSTANT vctr   : bit_vector(val_in'high-val_in'low DOWNTO 0) := val_in;
980
      VARIABLE ret    : integer := 0;
981
   BEGIN
982
      FOR index IN vctr'RANGE LOOP
983
         IF (vctr(index) = '1') THEN
984
            ret := ret + (2**index);
985
         END IF;
986
      END LOOP;
987
      RETURN(ret);
988
   END to_integer;
989
 
990
   FUNCTION to_stdlogic (
991
      in_val      : IN boolean) RETURN std_logic IS
992
   BEGIN
993
      IF (in_val) THEN
994
         RETURN('1');
995
      ELSE
996
         RETURN('0');
997
      END IF;
998
   END to_stdlogic;
999
 
1000
  function pad_gen (
1001
    in_vec   : bit_vector;
1002
    op_len   : integer)
1003
    return bit_vector is
1004
   variable ret : bit_vector(op_len-1 downto 0) := (others => '0');
1005
   constant len : integer := in_vec'length;  -- length of input vector
1006
  begin  -- pad_gen
1007
    for i in 0 to op_len-1 loop
1008
      if (i < len) then
1009
        ret(i) := in_vec(len-i-1);
1010
      else
1011
        ret(i) := '0';
1012
      end if;
1013
    end loop;  -- i
1014
    return ret;
1015
  end pad_gen;
1016
 
1017
   constant LINK_CAP_MAX_LINK_SPEED_int : integer := to_integer(LINK_CAP_MAX_LINK_SPEED);
1018
 
1019
   signal rx_func_level_reset_n                       : std_logic;
1020
   signal cfg_msg_received                            : std_logic;
1021
   signal cfg_msg_received_pme_to                     : std_logic;
1022
 
1023
   signal cfg_cmd_bme                                 : std_logic;
1024
   signal cfg_cmd_intdis                              : std_logic;
1025
   signal cfg_cmd_io_en                               : std_logic;
1026
   signal cfg_cmd_mem_en                              : std_logic;
1027
   signal cfg_cmd_serr_en                             : std_logic;
1028
   signal cfg_dev_control_aux_power_en                : std_logic;
1029
   signal cfg_dev_control_corr_err_reporting_en       : std_logic;
1030
   signal cfg_dev_control_enable_relaxed_order        : std_logic;
1031
   signal cfg_dev_control_ext_tag_en                  : std_logic;
1032
   signal cfg_dev_control_fatal_err_reporting_en      : std_logic;
1033
   signal cfg_dev_control_maxpayload                  : std_logic_vector(2 downto 0);
1034
   signal cfg_dev_control_max_read_req                : std_logic_vector(2 downto 0);
1035
   signal cfg_dev_control_non_fatal_reporting_en      : std_logic;
1036
   signal cfg_dev_control_nosnoop_en                  : std_logic;
1037
   signal cfg_dev_control_phantom_en                  : std_logic;
1038
   signal cfg_dev_control_ur_err_reporting_en         : std_logic;
1039
   signal cfg_dev_control2_cpltimeout_dis             : std_logic;
1040
   signal cfg_dev_control2_cpltimeout_val             : std_logic_vector(3 downto 0);
1041
   signal cfg_dev_status_corr_err_detected            : std_logic;
1042
   signal cfg_dev_status_fatal_err_detected           : std_logic;
1043
   signal cfg_dev_status_nonfatal_err_detected        : std_logic;
1044
   signal cfg_dev_status_ur_detected                  : std_logic;
1045
   signal cfg_link_control_auto_bandwidth_int_en      : std_logic;
1046
   signal cfg_link_control_bandwidth_int_en           : std_logic;
1047
   signal cfg_link_control_hw_auto_width_dis          : std_logic;
1048
   signal cfg_link_control_clock_pm_en                : std_logic;
1049
   signal cfg_link_control_extended_sync              : std_logic;
1050
   signal cfg_link_control_common_clock               : std_logic;
1051
   signal cfg_link_control_retrain_link               : std_logic;
1052
   signal cfg_link_control_linkdisable                : std_logic;
1053
   signal cfg_link_control_rcb                        : std_logic;
1054
   signal cfg_link_control_aspm_control               : std_logic_vector(1 downto 0);
1055
   signal cfg_link_status_autobandwidth_status        : std_logic;
1056
   signal cfg_link_status_bandwidth_status            : std_logic;
1057
   signal cfg_link_status_dll_active                  : std_logic;
1058
   signal cfg_link_status_link_training               : std_logic;
1059
   signal cfg_link_status_negotiated_link_width       : std_logic_vector(3 downto 0);
1060
   signal cfg_link_status_current_speed               : std_logic_vector(1 downto 0);
1061
   signal cfg_msg_data                                : std_logic_vector(15 downto 0);
1062
 
1063
   signal sys_reset_n_d                               : std_logic;
1064
   signal phy_rdy_n                                   : std_logic;
1065
 
1066
   signal trn_lnk_up_n_int                            : std_logic;
1067
   signal trn_lnk_up_n_int1                           : std_logic;
1068
 
1069
   signal trn_reset_n_int                             : std_logic;
1070
   signal trn_reset_n_int1                            : std_logic;
1071
 
1072
   signal TxOutClk                                    : std_logic;
1073
   signal TxOutClk_bufg                               : std_logic;
1074
 
1075
   signal cfg_bus_number_d                            : std_logic_vector(7 downto 0);
1076
   signal cfg_device_number_d                         : std_logic_vector(4 downto 0);
1077
   signal cfg_function_number_d                       : std_logic_vector(2 downto 0);
1078
 
1079
   -- assigns to outputs
1080
 
1081
   signal gt_pll_lock                                 : std_logic;
1082
 
1083
   signal pipe_clk                                    : std_logic;
1084
   signal user_clk                                    : std_logic;
1085
   signal clock_locked                                : std_logic;
1086
 
1087
   signal drp_clk                                     : std_logic;
1088
 
1089
   -- X-HDL generated signals
1090
 
1091
   signal v6pcie47 : std_logic;
1092
   signal v6pcie48 : std_logic;
1093
   signal v6pcie49 : std_logic;
1094
   signal v6pcie50 : std_logic;
1095
   signal v6pcie51 : std_logic;
1096
 
1097
   -- Declare intermediate signals for referenced outputs
1098
   signal pci_exp_txp_v6pcie14                        : std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
1099
   signal pci_exp_txn_v6pcie13                        : std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
1100
   signal trn_clk_v6pcie26                            : std_logic;
1101
   signal trn_reset_n_v6pcie38                        : std_logic;
1102
   signal trn_lnk_up_n_v6pcie33                       : std_logic;
1103
   signal trn_tbuf_av_v6pcie43                        : std_logic_vector(5 downto 0);
1104
   signal trn_tcfg_req_n_v6pcie44                     : std_logic;
1105
   signal trn_terr_drop_n_v6pcie46                    : std_logic;
1106
   signal trn_tdst_rdy_n_v6pcie45                     : std_logic;
1107
   signal trn_rd_v6pcie35                             : std_logic_vector(63 downto 0);
1108
   signal trn_rrem_n_v6pcie39                         : std_logic;
1109
   signal trn_rsof_n_v6pcie40                         : std_logic;
1110
   signal trn_reof_n_v6pcie36                         : std_logic;
1111
   signal trn_rsrc_rdy_n_v6pcie42                     : std_logic;
1112
   signal trn_rsrc_dsc_n_v6pcie41                     : std_logic;
1113
   signal trn_rerrfwd_n_v6pcie37                      : std_logic;
1114
   signal trn_rbar_hit_n_v6pcie34                     : std_logic_vector(6 downto 0);
1115
   signal trn_fc_cpld_v6pcie27                        : std_logic_vector(11 downto 0);
1116
   signal trn_fc_cplh_v6pcie28                        : std_logic_vector(7 downto 0);
1117
   signal trn_fc_npd_v6pcie29                         : std_logic_vector(11 downto 0);
1118
   signal trn_fc_nph_v6pcie30                         : std_logic_vector(7 downto 0);
1119
   signal trn_fc_pd_v6pcie31                          : std_logic_vector(11 downto 0);
1120
   signal trn_fc_ph_v6pcie32                          : std_logic_vector(7 downto 0);
1121
   signal cfg_do_v6pcie0                              : std_logic_vector(31 downto 0);
1122
   signal cfg_rd_wr_done_n_v6pcie12                   : std_logic;
1123
   signal cfg_err_cpl_rdy_n_v6pcie1                   : std_logic;
1124
   signal cfg_interrupt_rdy_n_v6pcie7                 : std_logic;
1125
   signal cfg_interrupt_do_v6pcie2                    : std_logic_vector(7 downto 0);
1126
   signal cfg_interrupt_mmenable_v6pcie3              : std_logic_vector(2 downto 0);
1127
   signal cfg_interrupt_msienable_v6pcie4             : std_logic;
1128
   signal cfg_interrupt_msixenable_v6pcie5            : std_logic;
1129
   signal cfg_interrupt_msixfm_v6pcie6                : std_logic;
1130
   signal cfg_pcie_link_state_n_v6pcie8               : std_logic_vector(2 downto 0);
1131
   signal cfg_pmcsr_pme_en_v6pcie9                    : std_logic;
1132
   signal cfg_pmcsr_pme_status_v6pcie10               : std_logic;
1133
   signal cfg_pmcsr_powerstate_v6pcie11               : std_logic_vector(1 downto 0);
1134
   signal pl_initial_link_width_v6pcie17              : std_logic_vector(2 downto 0);
1135
   signal pl_lane_reversal_mode_v6pcie18              : std_logic_vector(1 downto 0);
1136
   signal pl_link_gen2_capable_v6pcie19               : std_logic;
1137
   signal pl_link_partner_gen2_supported_v6pcie20     : std_logic;
1138
   signal pl_link_upcfg_capable_v6pcie21              : std_logic;
1139
   signal pl_ltssm_state_v6pcie22                     : std_logic_vector(5 downto 0);
1140
   signal pl_received_hot_rst_v6pcie23                : std_logic;
1141
   signal pl_sel_link_rate_v6pcie24                   : std_logic;
1142
   signal pl_sel_link_width_v6pcie25                  : std_logic_vector(1 downto 0);
1143
   signal LINK_STATUS_SLOT_CLOCK_CONFIG_lstatus       : std_logic;
1144
 
1145
begin
1146
   -- Drive referenced outputs
1147
   pci_exp_txp <= pci_exp_txp_v6pcie14;
1148
   pci_exp_txn <= pci_exp_txn_v6pcie13;
1149
   trn_clk <= trn_clk_v6pcie26;
1150
   trn_reset_n <= trn_reset_n_v6pcie38;
1151
   trn_lnk_up_n <= trn_lnk_up_n_v6pcie33;
1152
   trn_tbuf_av <= trn_tbuf_av_v6pcie43;
1153
   trn_tcfg_req_n <= trn_tcfg_req_n_v6pcie44;
1154
   trn_terr_drop_n <= trn_terr_drop_n_v6pcie46;
1155
   trn_tdst_rdy_n <= trn_tdst_rdy_n_v6pcie45;
1156
   trn_rd <= trn_rd_v6pcie35;
1157
   trn_rrem_n <= trn_rrem_n_v6pcie39;
1158
   trn_rsof_n <= trn_rsof_n_v6pcie40;
1159
   trn_reof_n <= trn_reof_n_v6pcie36;
1160
   trn_rsrc_rdy_n <= trn_rsrc_rdy_n_v6pcie42;
1161
   trn_rsrc_dsc_n <= trn_rsrc_dsc_n_v6pcie41;
1162
   trn_rerrfwd_n <= trn_rerrfwd_n_v6pcie37;
1163
   trn_rbar_hit_n <= trn_rbar_hit_n_v6pcie34;
1164
   trn_fc_cpld <= trn_fc_cpld_v6pcie27;
1165
   trn_fc_cplh <= trn_fc_cplh_v6pcie28;
1166
   trn_fc_npd <= trn_fc_npd_v6pcie29;
1167
   trn_fc_nph <= trn_fc_nph_v6pcie30;
1168
   trn_fc_pd <= trn_fc_pd_v6pcie31;
1169
   trn_fc_ph <= trn_fc_ph_v6pcie32;
1170
   cfg_do <= cfg_do_v6pcie0;
1171
   cfg_rd_wr_done_n <= cfg_rd_wr_done_n_v6pcie12;
1172
   cfg_err_cpl_rdy_n <= cfg_err_cpl_rdy_n_v6pcie1;
1173
   cfg_interrupt_rdy_n <= cfg_interrupt_rdy_n_v6pcie7;
1174
   cfg_interrupt_do <= cfg_interrupt_do_v6pcie2;
1175
   cfg_interrupt_mmenable <= cfg_interrupt_mmenable_v6pcie3;
1176
   cfg_interrupt_msienable <= cfg_interrupt_msienable_v6pcie4;
1177
   cfg_interrupt_msixenable <= cfg_interrupt_msixenable_v6pcie5;
1178
   cfg_interrupt_msixfm <= cfg_interrupt_msixfm_v6pcie6;
1179
   cfg_pcie_link_state_n <= cfg_pcie_link_state_n_v6pcie8;
1180
   cfg_pmcsr_pme_en <= cfg_pmcsr_pme_en_v6pcie9;
1181
   cfg_pmcsr_pme_status <= cfg_pmcsr_pme_status_v6pcie10;
1182
   cfg_pmcsr_powerstate <= cfg_pmcsr_powerstate_v6pcie11;
1183
   pl_initial_link_width <= pl_initial_link_width_v6pcie17;
1184
   pl_lane_reversal_mode <= pl_lane_reversal_mode_v6pcie18;
1185
   pl_link_gen2_capable <= pl_link_gen2_capable_v6pcie19;
1186
   pl_link_partner_gen2_supported <= pl_link_partner_gen2_supported_v6pcie20;
1187
   pl_link_upcfg_capable <= pl_link_upcfg_capable_v6pcie21;
1188
   pl_ltssm_state <= pl_ltssm_state_v6pcie22;
1189
   pl_received_hot_rst <= pl_received_hot_rst_v6pcie23;
1190
   pl_sel_link_rate <= pl_sel_link_rate_v6pcie24;
1191
   pl_sel_link_width <= pl_sel_link_width_v6pcie25;
1192
 
1193
   cfg_to_turnoff_n <= not(cfg_msg_received_pme_to);
1194
 
1195
   cfg_status <= "0000000000000000";
1196
 
1197
   cfg_command <= ("00000" & cfg_cmd_intdis & '0' & cfg_cmd_serr_en & "00000" & cfg_cmd_bme & cfg_cmd_mem_en & cfg_cmd_io_en);
1198
 
1199
   cfg_dstatus <= ("0000000000" & not(cfg_trn_pending_n) & '0' & cfg_dev_status_ur_detected & cfg_dev_status_fatal_err_detected & cfg_dev_status_nonfatal_err_detected & cfg_dev_status_corr_err_detected);
1200
 
1201
   cfg_dcommand <= ('0' & cfg_dev_control_max_read_req & cfg_dev_control_nosnoop_en & cfg_dev_control_aux_power_en & cfg_dev_control_phantom_en & cfg_dev_control_ext_tag_en & cfg_dev_control_maxpayload & cfg_dev_control_enable_relaxed_order & cfg_dev_control_ur_err_reporting_en & cfg_dev_control_fatal_err_reporting_en & cfg_dev_control_non_fatal_reporting_en & cfg_dev_control_corr_err_reporting_en);
1202
 
1203
   LINK_STATUS_SLOT_CLOCK_CONFIG_lstatus <=   to_stdlogic(LINK_STATUS_SLOT_CLOCK_CONFIG);
1204
 
1205
   cfg_lstatus <= (cfg_link_status_autobandwidth_status & cfg_link_status_bandwidth_status & cfg_link_status_dll_active & LINK_STATUS_SLOT_CLOCK_CONFIG_lstatus & cfg_link_status_link_training & '0' & ("00" & cfg_link_status_negotiated_link_width) & ("00" & cfg_link_status_current_speed));
1206
 
1207
   cfg_lcommand <= ("0000" & (cfg_link_control_auto_bandwidth_int_en & cfg_link_control_bandwidth_int_en & cfg_link_control_hw_auto_width_dis & cfg_link_control_clock_pm_en & cfg_link_control_extended_sync & cfg_link_control_common_clock & cfg_link_control_retrain_link & cfg_link_control_linkdisable & cfg_link_control_rcb & '0' & cfg_link_control_aspm_control));
1208
 
1209
   cfg_bus_number <= cfg_bus_number_d;
1210
 
1211
   cfg_device_number <= cfg_device_number_d;
1212
 
1213
   cfg_function_number <= cfg_function_number_d;
1214
 
1215
   cfg_dcommand2 <= ("00000000000" & cfg_dev_control2_cpltimeout_dis & cfg_dev_control2_cpltimeout_val);
1216
 
1217
   -- Capture Bus/Device/Function number
1218
 
1219
   process (trn_clk_v6pcie26)
1220
   begin
1221
      if (trn_clk_v6pcie26'event and trn_clk_v6pcie26 = '1') then
1222
         if (trn_lnk_up_n_v6pcie33 = '1') then
1223
            cfg_bus_number_d <= "00000000";
1224
         elsif ((not(cfg_msg_received)) = '1') then
1225
            cfg_bus_number_d <= cfg_msg_data(15 downto 8);
1226
         end if;
1227
      end if;
1228
   end process;
1229
 
1230
   process (trn_clk_v6pcie26)
1231
   begin
1232
      if (trn_clk_v6pcie26'event and trn_clk_v6pcie26 = '1') then
1233
         if (trn_lnk_up_n_v6pcie33 = '1') then
1234
            cfg_device_number_d <= "00000";
1235
         elsif ((not(cfg_msg_received)) = '1') then
1236
            cfg_device_number_d <= cfg_msg_data(7 downto 3);
1237
         end if;
1238
      end if;
1239
   end process;
1240
 
1241
   process (trn_clk_v6pcie26)
1242
   begin
1243
      if (trn_clk_v6pcie26'event and trn_clk_v6pcie26 = '1') then
1244
         if (trn_lnk_up_n_v6pcie33 = '1') then
1245
            cfg_function_number_d <= "000";
1246
         elsif ((not(cfg_msg_received)) = '1') then
1247
            cfg_function_number_d <= cfg_msg_data(2 downto 0);
1248
         end if;
1249
      end if;
1250
   end process;
1251
 
1252
 
1253
 
1254
   -- Generate trn_lnk_up_n
1255
 
1256
   trn_lnk_up_n_i : FDCP
1257
      generic map (
1258
         INIT  => '1'
1259
      )
1260
      port map (
1261
         Q    => trn_lnk_up_n_v6pcie33,
1262
         D    => trn_lnk_up_n_int1,
1263
         C    => trn_clk_v6pcie26,
1264
         CLR  => '0',
1265
         PRE  => '0'
1266
      );
1267
 
1268
 
1269
   trn_lnk_up_n_int_i : FDCP
1270
      generic map (
1271
         INIT  => '1'
1272
      )
1273
      port map (
1274
         Q    => trn_lnk_up_n_int1,
1275
         D    => trn_lnk_up_n_int,
1276
         C    => trn_clk_v6pcie26,
1277
         CLR  => '0',
1278
         PRE  => '0'
1279
      );
1280
 
1281
 
1282
   v6pcie47 <= trn_reset_n_int1 and not(phy_rdy_n);
1283
   v6pcie48 <= not(sys_reset_n_d);
1284
 
1285
   -- Generate trn_reset_n
1286
 
1287
   trn_reset_n_i : FDCP
1288
      generic map (
1289
         INIT  => '0'
1290
      )
1291
      port map (
1292
         Q    => trn_reset_n_v6pcie38,
1293
         D    => v6pcie47,
1294
         C    => trn_clk_v6pcie26,
1295
         CLR  => v6pcie48,
1296
         PRE  => '0'
1297
      );
1298
 
1299
 
1300
   v6pcie49 <= trn_reset_n_int and not(phy_rdy_n);
1301
   v6pcie50 <= not(sys_reset_n_d);
1302
   trn_reset_n_int_i : FDCP
1303
      generic map (
1304
         INIT  => '0'
1305
      )
1306
      port map (
1307
         Q    => trn_reset_n_int1,
1308
         D    => v6pcie49,
1309
         C    => trn_clk_v6pcie26,
1310
         CLR  => v6pcie50,
1311
         PRE  => '0'
1312
      );
1313
 
1314
 
1315
   ---------------------------------------------------------
1316
   -- PCI Express Reset Delay Module
1317
   ---------------------------------------------------------
1318
 
1319
   pcie_reset_delay_i : pcie_reset_delay_v6
1320
      generic map (
1321
         PL_FAST_TRAIN  => PL_FAST_TRAIN,
1322
         REF_CLK_FREQ   => REF_CLK_FREQ
1323
      )
1324
      port map (
1325
         ref_clk              => TxOutClk_bufg,
1326
         sys_reset_n          => sys_reset_n,
1327
         delayed_sys_reset_n  => sys_reset_n_d
1328
      );
1329
 
1330
 
1331
   ---------------------------------------------------------
1332
   -- PCI Express Clocking Module
1333
   ---------------------------------------------------------
1334
 
1335
   pcie_clocking_i : pcie_clocking_v6
1336
      generic map (
1337
         CAP_LINK_WIDTH  => LINK_CAP_MAX_LINK_WIDTH_int,
1338
         CAP_LINK_SPEED  => LINK_CAP_MAX_LINK_SPEED_int,
1339
         REF_CLK_FREQ    => REF_CLK_FREQ,
1340
         USER_CLK_FREQ   => USER_CLK_FREQ
1341
      )
1342
      port map (
1343
         sys_clk        => TxOutClk,
1344
         gt_pll_lock    => gt_pll_lock,
1345
         sel_lnk_rate   => pl_sel_link_rate_v6pcie24,
1346
         sel_lnk_width  => pl_sel_link_width_v6pcie25,
1347
         sys_clk_bufg   => TxOutClk_bufg,
1348
         pipe_clk       => pipe_clk,
1349
         user_clk       => user_clk,
1350
         block_clk      => open,
1351
         drp_clk        => drp_clk,
1352
         clock_locked   => clock_locked
1353
      );
1354
 
1355
 
1356
   v6pcie51 <= not(phy_rdy_n);
1357
 
1358
   ---------------------------------------------------------
1359
   -- Virtex6 PCI Express Block Module
1360
   ---------------------------------------------------------
1361
 
1362
   pcie_2_0_i : pcie_2_0_v6
1363
      generic map (
1364
         REF_CLK_FREQ                              => REF_CLK_FREQ,
1365
         PIPE_PIPELINE_STAGES                      => PIPE_PIPELINE_STAGES,
1366
         LINK_CAP_MAX_LINK_WIDTH_int               => LINK_CAP_MAX_LINK_WIDTH_int,
1367
         AER_BASE_PTR                              => AER_BASE_PTR,
1368
         AER_CAP_ECRC_CHECK_CAPABLE                => AER_CAP_ECRC_CHECK_CAPABLE,
1369
         AER_CAP_ECRC_GEN_CAPABLE                  => AER_CAP_ECRC_GEN_CAPABLE,
1370
         AER_CAP_ID                                => AER_CAP_ID,
1371
         AER_CAP_INT_MSG_NUM_MSI                   => AER_CAP_INT_MSG_NUM_MSI,
1372
         AER_CAP_INT_MSG_NUM_MSIX                  => AER_CAP_INT_MSG_NUM_MSIX,
1373
         AER_CAP_NEXTPTR                           => AER_CAP_NEXTPTR,
1374
         AER_CAP_ON                                => AER_CAP_ON,
1375
         AER_CAP_PERMIT_ROOTERR_UPDATE             => AER_CAP_PERMIT_ROOTERR_UPDATE,
1376
         AER_CAP_VERSION                           => AER_CAP_VERSION,
1377
         ALLOW_X8_GEN2                             => ALLOW_X8_GEN2,
1378
         BAR0                                      => pad_gen(BAR0, 32),
1379
         BAR1                                      => pad_gen(BAR1, 32),
1380
         BAR2                                      => pad_gen(BAR2, 32),
1381
         BAR3                                      => pad_gen(BAR3, 32),
1382
         BAR4                                      => pad_gen(BAR4, 32),
1383
         BAR5                                      => pad_gen(BAR5, 32),
1384
         CAPABILITIES_PTR                          => CAPABILITIES_PTR,
1385
         CARDBUS_CIS_POINTER                       => pad_gen(CARDBUS_CIS_POINTER, 32),
1386
         CLASS_CODE                                => pad_gen(CLASS_CODE, 24),
1387
         CMD_INTX_IMPLEMENTED                      => CMD_INTX_IMPLEMENTED,
1388
         CPL_TIMEOUT_DISABLE_SUPPORTED             => CPL_TIMEOUT_DISABLE_SUPPORTED,
1389
         CPL_TIMEOUT_RANGES_SUPPORTED              => pad_gen(CPL_TIMEOUT_RANGES_SUPPORTED, 4),
1390
         CRM_MODULE_RSTS                           => CRM_MODULE_RSTS,
1391
         DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE       => DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE,
1392
         DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE       => DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE,
1393
         DEV_CAP_ENDPOINT_L0S_LATENCY              => DEV_CAP_ENDPOINT_L0S_LATENCY,
1394
         DEV_CAP_ENDPOINT_L1_LATENCY               => DEV_CAP_ENDPOINT_L1_LATENCY,
1395
         DEV_CAP_EXT_TAG_SUPPORTED                 => DEV_CAP_EXT_TAG_SUPPORTED,
1396
         DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE      => DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE,
1397
         DEV_CAP_MAX_PAYLOAD_SUPPORTED             => DEV_CAP_MAX_PAYLOAD_SUPPORTED,
1398
         DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT         => DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT,
1399
         DEV_CAP_ROLE_BASED_ERROR                  => DEV_CAP_ROLE_BASED_ERROR,
1400
         DEV_CAP_RSVD_14_12                        => DEV_CAP_RSVD_14_12,
1401
         DEV_CAP_RSVD_17_16                        => DEV_CAP_RSVD_17_16,
1402
         DEV_CAP_RSVD_31_29                        => DEV_CAP_RSVD_31_29,
1403
         DEV_CONTROL_AUX_POWER_SUPPORTED           => DEV_CONTROL_AUX_POWER_SUPPORTED,
1404
         DEVICE_ID                                 => pad_gen(DEVICE_ID, 16),
1405
         DISABLE_ASPM_L1_TIMER                     => DISABLE_ASPM_L1_TIMER,
1406
         DISABLE_BAR_FILTERING                     => DISABLE_BAR_FILTERING,
1407
         DISABLE_ID_CHECK                          => DISABLE_ID_CHECK,
1408
         DISABLE_LANE_REVERSAL                     => DISABLE_LANE_REVERSAL,
1409
         DISABLE_RX_TC_FILTER                      => DISABLE_RX_TC_FILTER,
1410
         DISABLE_SCRAMBLING                        => DISABLE_SCRAMBLING,
1411
         DNSTREAM_LINK_NUM                         => DNSTREAM_LINK_NUM,
1412
         DSN_BASE_PTR                              => pad_gen(DSN_BASE_PTR, 12),
1413
         DSN_CAP_ID                                => DSN_CAP_ID,
1414
         DSN_CAP_NEXTPTR                           => pad_gen(DSN_CAP_NEXTPTR, 12),
1415
         DSN_CAP_ON                                => DSN_CAP_ON,
1416
         DSN_CAP_VERSION                           => DSN_CAP_VERSION,
1417
         ENABLE_MSG_ROUTE                          => pad_gen(ENABLE_MSG_ROUTE, 11),
1418
         ENABLE_RX_TD_ECRC_TRIM                    => ENABLE_RX_TD_ECRC_TRIM,
1419
         ENTER_RVRY_EI_L0                          => ENTER_RVRY_EI_L0,
1420
         EXPANSION_ROM                             => pad_gen(EXPANSION_ROM, 32),
1421
         EXT_CFG_CAP_PTR                           => EXT_CFG_CAP_PTR,
1422
         EXT_CFG_XP_CAP_PTR                        => pad_gen(EXT_CFG_XP_CAP_PTR, 10),
1423
         HEADER_TYPE                               => pad_gen(HEADER_TYPE, 8),
1424
         INFER_EI                                  => INFER_EI,
1425
         INTERRUPT_PIN                             => pad_gen(INTERRUPT_PIN, 8),
1426
         IS_SWITCH                                 => IS_SWITCH,
1427
         LAST_CONFIG_DWORD                         => LAST_CONFIG_DWORD,
1428
         LINK_CAP_ASPM_SUPPORT                     => LINK_CAP_ASPM_SUPPORT,
1429
         LINK_CAP_CLOCK_POWER_MANAGEMENT           => LINK_CAP_CLOCK_POWER_MANAGEMENT,
1430
         LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP    => LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP,
1431
         LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP  => LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP,
1432
         LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1     => LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1,
1433
         LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2     => LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2,
1434
         LINK_CAP_L0S_EXIT_LATENCY_GEN1            => LINK_CAP_L0S_EXIT_LATENCY_GEN1,
1435
         LINK_CAP_L0S_EXIT_LATENCY_GEN2            => LINK_CAP_L0S_EXIT_LATENCY_GEN2,
1436
         LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1      => LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1,
1437
         LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2      => LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2,
1438
         LINK_CAP_L1_EXIT_LATENCY_GEN1             => LINK_CAP_L1_EXIT_LATENCY_GEN1,
1439
         LINK_CAP_L1_EXIT_LATENCY_GEN2             => LINK_CAP_L1_EXIT_LATENCY_GEN2,
1440
         LINK_CAP_MAX_LINK_SPEED                   => pad_gen(LINK_CAP_MAX_LINK_SPEED, 4),
1441
         LINK_CAP_MAX_LINK_WIDTH                   => pad_gen(LINK_CAP_MAX_LINK_WIDTH, 6),
1442
         LINK_CAP_RSVD_23_22                       => LINK_CAP_RSVD_23_22,
1443
         LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE      => LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE,
1444
         LINK_CONTROL_RCB                          => LINK_CONTROL_RCB,
1445
         LINK_CTRL2_DEEMPHASIS                     => LINK_CTRL2_DEEMPHASIS,
1446
         LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE    => LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE,
1447
         LINK_CTRL2_TARGET_LINK_SPEED              => pad_gen(LINK_CTRL2_TARGET_LINK_SPEED, 4),
1448
         LINK_STATUS_SLOT_CLOCK_CONFIG             => LINK_STATUS_SLOT_CLOCK_CONFIG,
1449
         LL_ACK_TIMEOUT                            => pad_gen(LL_ACK_TIMEOUT, 15),
1450
         LL_ACK_TIMEOUT_EN                         => LL_ACK_TIMEOUT_EN,
1451
         LL_ACK_TIMEOUT_FUNC                       => LL_ACK_TIMEOUT_FUNC,
1452
         LL_REPLAY_TIMEOUT                         => pad_gen(LL_REPLAY_TIMEOUT, 15),
1453
         LL_REPLAY_TIMEOUT_EN                      => LL_REPLAY_TIMEOUT_EN,
1454
         LL_REPLAY_TIMEOUT_FUNC                    => LL_REPLAY_TIMEOUT_FUNC,
1455
         LTSSM_MAX_LINK_WIDTH                      => pad_gen(LTSSM_MAX_LINK_WIDTH, 6),
1456
         MSI_BASE_PTR                              => MSI_BASE_PTR,
1457
         MSI_CAP_ID                                => MSI_CAP_ID,
1458
         MSI_CAP_MULTIMSGCAP                       => MSI_CAP_MULTIMSGCAP,
1459
         MSI_CAP_MULTIMSG_EXTENSION                => MSI_CAP_MULTIMSG_EXTENSION,
1460
         MSI_CAP_NEXTPTR                           => MSI_CAP_NEXTPTR,
1461
         MSI_CAP_ON                                => MSI_CAP_ON,
1462
         MSI_CAP_PER_VECTOR_MASKING_CAPABLE        => MSI_CAP_PER_VECTOR_MASKING_CAPABLE,
1463
         MSI_CAP_64_BIT_ADDR_CAPABLE               => MSI_CAP_64_BIT_ADDR_CAPABLE,
1464
         MSIX_BASE_PTR                             => MSIX_BASE_PTR,
1465
         MSIX_CAP_ID                               => MSIX_CAP_ID,
1466
         MSIX_CAP_NEXTPTR                          => MSIX_CAP_NEXTPTR,
1467
         MSIX_CAP_ON                               => MSIX_CAP_ON,
1468
         MSIX_CAP_PBA_BIR                          => MSIX_CAP_PBA_BIR,
1469
         MSIX_CAP_PBA_OFFSET                       => pad_gen(MSIX_CAP_PBA_OFFSET, 29),
1470
         MSIX_CAP_TABLE_BIR                        => MSIX_CAP_TABLE_BIR,
1471
         MSIX_CAP_TABLE_OFFSET                     => pad_gen(MSIX_CAP_TABLE_OFFSET, 29),
1472
         MSIX_CAP_TABLE_SIZE                       => pad_gen(MSIX_CAP_TABLE_SIZE, 11),
1473
         N_FTS_COMCLK_GEN1                         => N_FTS_COMCLK_GEN1,
1474
         N_FTS_COMCLK_GEN2                         => N_FTS_COMCLK_GEN2,
1475
         N_FTS_GEN1                                => N_FTS_GEN1,
1476
         N_FTS_GEN2                                => N_FTS_GEN2,
1477
         PCIE_BASE_PTR                             => PCIE_BASE_PTR,
1478
         PCIE_CAP_CAPABILITY_ID                    => PCIE_CAP_CAPABILITY_ID,
1479
         PCIE_CAP_CAPABILITY_VERSION               => PCIE_CAP_CAPABILITY_VERSION,
1480
         PCIE_CAP_DEVICE_PORT_TYPE                 => pad_gen(PCIE_CAP_DEVICE_PORT_TYPE, 4),
1481
         PCIE_CAP_INT_MSG_NUM                      => pad_gen(PCIE_CAP_INT_MSG_NUM, 5),
1482
         PCIE_CAP_NEXTPTR                          => pad_gen(PCIE_CAP_NEXTPTR, 8),
1483
         PCIE_CAP_ON                               => PCIE_CAP_ON,
1484
         PCIE_CAP_RSVD_15_14                       => PCIE_CAP_RSVD_15_14,
1485
         PCIE_CAP_SLOT_IMPLEMENTED                 => PCIE_CAP_SLOT_IMPLEMENTED,
1486
         PCIE_REVISION                             => PCIE_REVISION,
1487
         PGL0_LANE                                 => PGL0_LANE,
1488
         PGL1_LANE                                 => PGL1_LANE,
1489
         PGL2_LANE                                 => PGL2_LANE,
1490
         PGL3_LANE                                 => PGL3_LANE,
1491
         PGL4_LANE                                 => PGL4_LANE,
1492
         PGL5_LANE                                 => PGL5_LANE,
1493
         PGL6_LANE                                 => PGL6_LANE,
1494
         PGL7_LANE                                 => PGL7_LANE,
1495
         PL_AUTO_CONFIG                            => PL_AUTO_CONFIG,
1496
         PL_FAST_TRAIN                             => PL_FAST_TRAIN,
1497
         PM_BASE_PTR                               => PM_BASE_PTR,
1498
         PM_CAP_AUXCURRENT                         => PM_CAP_AUXCURRENT,
1499
         PM_CAP_DSI                                => PM_CAP_DSI,
1500
         PM_CAP_D1SUPPORT                          => PM_CAP_D1SUPPORT,
1501
         PM_CAP_D2SUPPORT                          => PM_CAP_D2SUPPORT,
1502
         PM_CAP_ID                                 => PM_CAP_ID,
1503
         PM_CAP_NEXTPTR                            => PM_CAP_NEXTPTR,
1504
         PM_CAP_ON                                 => PM_CAP_ON,
1505
         PM_CAP_PME_CLOCK                          => PM_CAP_PME_CLOCK,
1506
         PM_CAP_PMESUPPORT                         => pad_gen(PM_CAP_PMESUPPORT, 5),
1507
         PM_CAP_RSVD_04                            => PM_CAP_RSVD_04,
1508
         PM_CAP_VERSION                            => PM_CAP_VERSION,
1509
         PM_CSR_BPCCEN                             => PM_CSR_BPCCEN,
1510
         PM_CSR_B2B3                               => PM_CSR_B2B3,
1511
         PM_CSR_NOSOFTRST                          => PM_CSR_NOSOFTRST,
1512
         PM_DATA_SCALE0                            => pad_gen(PM_DATA_SCALE0, 2),
1513
         PM_DATA_SCALE1                            => pad_gen(PM_DATA_SCALE1, 2),
1514
         PM_DATA_SCALE2                            => pad_gen(PM_DATA_SCALE2, 2),
1515
         PM_DATA_SCALE3                            => pad_gen(PM_DATA_SCALE3, 2),
1516
         PM_DATA_SCALE4                            => pad_gen(PM_DATA_SCALE4, 2),
1517
         PM_DATA_SCALE5                            => pad_gen(PM_DATA_SCALE5, 2),
1518
         PM_DATA_SCALE6                            => pad_gen(PM_DATA_SCALE6, 2),
1519
         PM_DATA_SCALE7                            => pad_gen(PM_DATA_SCALE7, 2),
1520
         PM_DATA0                                  => pad_gen(PM_DATA0, 8),
1521
         PM_DATA1                                  => pad_gen(PM_DATA1, 8),
1522
         PM_DATA2                                  => pad_gen(PM_DATA2, 8),
1523
         PM_DATA3                                  => pad_gen(PM_DATA3, 8),
1524
         PM_DATA4                                  => pad_gen(PM_DATA4, 8),
1525
         PM_DATA5                                  => pad_gen(PM_DATA5, 8),
1526
         PM_DATA6                                  => pad_gen(PM_DATA6, 8),
1527
         PM_DATA7                                  => pad_gen(PM_DATA7, 8),
1528
         RECRC_CHK                                 => RECRC_CHK,
1529
         RECRC_CHK_TRIM                            => RECRC_CHK_TRIM,
1530
         REVISION_ID                               => pad_gen(REVISION_ID, 8),
1531
         ROOT_CAP_CRS_SW_VISIBILITY                => ROOT_CAP_CRS_SW_VISIBILITY,
1532
         SELECT_DLL_IF                             => SELECT_DLL_IF,
1533
         SLOT_CAP_ATT_BUTTON_PRESENT               => SLOT_CAP_ATT_BUTTON_PRESENT,
1534
         SLOT_CAP_ATT_INDICATOR_PRESENT            => SLOT_CAP_ATT_INDICATOR_PRESENT,
1535
         SLOT_CAP_ELEC_INTERLOCK_PRESENT           => SLOT_CAP_ELEC_INTERLOCK_PRESENT,
1536
         SLOT_CAP_HOTPLUG_CAPABLE                  => SLOT_CAP_HOTPLUG_CAPABLE,
1537
         SLOT_CAP_HOTPLUG_SURPRISE                 => SLOT_CAP_HOTPLUG_SURPRISE,
1538
         SLOT_CAP_MRL_SENSOR_PRESENT               => SLOT_CAP_MRL_SENSOR_PRESENT,
1539
         SLOT_CAP_NO_CMD_COMPLETED_SUPPORT         => SLOT_CAP_NO_CMD_COMPLETED_SUPPORT,
1540
         SLOT_CAP_PHYSICAL_SLOT_NUM                => SLOT_CAP_PHYSICAL_SLOT_NUM,
1541
         SLOT_CAP_POWER_CONTROLLER_PRESENT         => SLOT_CAP_POWER_CONTROLLER_PRESENT,
1542
         SLOT_CAP_POWER_INDICATOR_PRESENT          => SLOT_CAP_POWER_INDICATOR_PRESENT,
1543
         SLOT_CAP_SLOT_POWER_LIMIT_SCALE           => SLOT_CAP_SLOT_POWER_LIMIT_SCALE,
1544
         SLOT_CAP_SLOT_POWER_LIMIT_VALUE           => SLOT_CAP_SLOT_POWER_LIMIT_VALUE,
1545
         SPARE_BIT0                                => SPARE_BIT0,
1546
         SPARE_BIT1                                => SPARE_BIT1,
1547
         SPARE_BIT2                                => SPARE_BIT2,
1548
         SPARE_BIT3                                => SPARE_BIT3,
1549
         SPARE_BIT4                                => SPARE_BIT4,
1550
         SPARE_BIT5                                => SPARE_BIT5,
1551
         SPARE_BIT6                                => SPARE_BIT6,
1552
         SPARE_BIT7                                => SPARE_BIT7,
1553
         SPARE_BIT8                                => SPARE_BIT8,
1554
         SPARE_BYTE0                               => SPARE_BYTE0,
1555
         SPARE_BYTE1                               => SPARE_BYTE1,
1556
         SPARE_BYTE2                               => SPARE_BYTE2,
1557
         SPARE_BYTE3                               => SPARE_BYTE3,
1558
         SPARE_WORD0                               => SPARE_WORD0,
1559
         SPARE_WORD1                               => SPARE_WORD1,
1560
         SPARE_WORD2                               => SPARE_WORD2,
1561
         SPARE_WORD3                               => SPARE_WORD3,
1562
         SUBSYSTEM_ID                              => pad_gen(SUBSYSTEM_ID, 16),
1563
         SUBSYSTEM_VENDOR_ID                       => pad_gen(SUBSYSTEM_VENDOR_ID, 16),
1564
         TL_RBYPASS                                => TL_RBYPASS,
1565
         TL_RX_RAM_RADDR_LATENCY                   => TL_RX_RAM_RADDR_LATENCY,
1566
         TL_RX_RAM_RDATA_LATENCY                   => TL_RX_RAM_RDATA_LATENCY,
1567
         TL_RX_RAM_WRITE_LATENCY                   => TL_RX_RAM_WRITE_LATENCY,
1568
         TL_TFC_DISABLE                            => TL_TFC_DISABLE,
1569
         TL_TX_CHECKS_DISABLE                      => TL_TX_CHECKS_DISABLE,
1570
         TL_TX_RAM_RADDR_LATENCY                   => TL_TX_RAM_RADDR_LATENCY,
1571
         TL_TX_RAM_RDATA_LATENCY                   => TL_TX_RAM_RDATA_LATENCY,
1572
         TL_TX_RAM_WRITE_LATENCY                   => TL_TX_RAM_WRITE_LATENCY,
1573
         UPCONFIG_CAPABLE                          => UPCONFIG_CAPABLE,
1574
         UPSTREAM_FACING                           => UPSTREAM_FACING,
1575
         EXIT_LOOPBACK_ON_EI                       => EXIT_LOOPBACK_ON_EI,
1576
         UR_INV_REQ                                => UR_INV_REQ,
1577
         USER_CLK_FREQ                             => USER_CLK_FREQ,
1578
         VC_BASE_PTR                               => pad_gen(VC_BASE_PTR, 12),
1579
         VC_CAP_ID                                 => VC_CAP_ID,
1580
         VC_CAP_NEXTPTR                            => pad_gen(VC_CAP_NEXTPTR, 12),
1581
         VC_CAP_ON                                 => VC_CAP_ON,
1582
         VC_CAP_REJECT_SNOOP_TRANSACTIONS          => VC_CAP_REJECT_SNOOP_TRANSACTIONS,
1583
         VC_CAP_VERSION                            => VC_CAP_VERSION,
1584
         VC0_CPL_INFINITE                          => VC0_CPL_INFINITE,
1585
         VC0_RX_RAM_LIMIT                          => pad_gen(VC0_RX_RAM_LIMIT, 13),
1586
         VC0_TOTAL_CREDITS_CD                      => VC0_TOTAL_CREDITS_CD,
1587
         VC0_TOTAL_CREDITS_CH                      => VC0_TOTAL_CREDITS_CH,
1588
         VC0_TOTAL_CREDITS_NPH                     => VC0_TOTAL_CREDITS_NPH,
1589
         VC0_TOTAL_CREDITS_PD                      => VC0_TOTAL_CREDITS_PD,
1590
         VC0_TOTAL_CREDITS_PH                      => VC0_TOTAL_CREDITS_PH,
1591
         VC0_TX_LASTPACKET                         => VC0_TX_LASTPACKET,
1592
         VENDOR_ID                                 => pad_gen(VENDOR_ID, 16),
1593
         VSEC_BASE_PTR                             => pad_gen(VSEC_BASE_PTR, 12),
1594
         VSEC_CAP_HDR_ID                           => VSEC_CAP_HDR_ID,
1595
         VSEC_CAP_HDR_LENGTH                       => VSEC_CAP_HDR_LENGTH,
1596
         VSEC_CAP_HDR_REVISION                     => VSEC_CAP_HDR_REVISION,
1597
         VSEC_CAP_ID                               => VSEC_CAP_ID,
1598
         VSEC_CAP_IS_LINK_VISIBLE                  => VSEC_CAP_IS_LINK_VISIBLE,
1599
         VSEC_CAP_NEXTPTR                          => pad_gen(VSEC_CAP_NEXTPTR, 12),
1600
         VSEC_CAP_ON                               => VSEC_CAP_ON,
1601
         VSEC_CAP_VERSION                          => VSEC_CAP_VERSION
1602
      )
1603
      port map (
1604
         PCIEXPRXN                            => pci_exp_rxn,
1605
         PCIEXPRXP                            => pci_exp_rxp,
1606
         PCIEXPTXN                            => pci_exp_txn_v6pcie13,
1607
         PCIEXPTXP                            => pci_exp_txp_v6pcie14,
1608
         SYSCLK                               => sys_clk,
1609
         TRNLNKUPN                            => trn_lnk_up_n_int,
1610
         TRNCLK                               => trn_clk_v6pcie26,
1611
         FUNDRSTN                             => sys_reset_n_d,
1612
         PHYRDYN                              => phy_rdy_n,
1613
         LNKCLKEN                             => open,
1614
         USERRSTN                             => trn_reset_n_int,
1615
         RECEIVEDFUNCLVLRSTN                  => rx_func_level_reset_n,
1616
         SYSRSTN                              => v6pcie51,
1617
         PLRSTN                               => '1',
1618
         DLRSTN                               => '1',
1619
         TLRSTN                               => '1',
1620
         FUNCLVLRSTN                          => '1',
1621
         CMRSTN                               => '1',
1622
         CMSTICKYRSTN                         => '1',
1623
 
1624
         TRNRBARHITN                          => trn_rbar_hit_n_v6pcie34,
1625
         TRNRD                                => trn_rd_v6pcie35,
1626
         TRNRECRCERRN                         => open,
1627
         TRNREOFN                             => trn_reof_n_v6pcie36,
1628
         TRNRERRFWDN                          => trn_rerrfwd_n_v6pcie37,
1629
         TRNRREMN                             => trn_rrem_n_v6pcie39,
1630
         TRNRSOFN                             => trn_rsof_n_v6pcie40,
1631
         TRNRSRCDSCN                          => trn_rsrc_dsc_n_v6pcie41,
1632
         TRNRSRCRDYN                          => trn_rsrc_rdy_n_v6pcie42,
1633
         TRNRDSTRDYN                          => trn_rdst_rdy_n,
1634
         TRNRNPOKN                            => trn_rnp_ok_n,
1635
 
1636
         TRNTBUFAV                            => trn_tbuf_av_v6pcie43,
1637
         TRNTCFGREQN                          => trn_tcfg_req_n_v6pcie44,
1638
         TRNTDLLPDSTRDYN                      => open,
1639
         TRNTDSTRDYN                          => trn_tdst_rdy_n_v6pcie45,
1640
         TRNTERRDROPN                         => trn_terr_drop_n_v6pcie46,
1641
         TRNTCFGGNTN                          => trn_tcfg_gnt_n,
1642
         TRNTD                                => trn_td,
1643
         TRNTDLLPDATA                         => "00000000000000000000000000000000",
1644
         TRNTDLLPSRCRDYN                      => '1',
1645
         TRNTECRCGENN                         => '1',
1646
         TRNTEOFN                             => trn_teof_n,
1647
         TRNTERRFWDN                          => trn_terrfwd_n,
1648
         TRNTREMN                             => trn_trem_n,
1649
         TRNTSOFN                             => trn_tsof_n,
1650
         TRNTSRCDSCN                          => trn_tsrc_dsc_n,
1651
         TRNTSRCRDYN                          => trn_tsrc_rdy_n,
1652
         TRNTSTRN                             => trn_tstr_n,
1653
         TRNFCCPLD                            => trn_fc_cpld_v6pcie27,
1654
         TRNFCCPLH                            => trn_fc_cplh_v6pcie28,
1655
         TRNFCNPD                             => trn_fc_npd_v6pcie29,
1656
         TRNFCNPH                             => trn_fc_nph_v6pcie30,
1657
         TRNFCPD                              => trn_fc_pd_v6pcie31,
1658
         TRNFCPH                              => trn_fc_ph_v6pcie32,
1659
         TRNFCSEL                             => trn_fc_sel,
1660
         CFGAERECRCCHECKEN                    => open,
1661
         CFGAERECRCGENEN                      => open,
1662
         CFGCOMMANDBUSMASTERENABLE            => cfg_cmd_bme,
1663
         CFGCOMMANDINTERRUPTDISABLE           => cfg_cmd_intdis,
1664
         CFGCOMMANDIOENABLE                   => cfg_cmd_io_en,
1665
         CFGCOMMANDMEMENABLE                  => cfg_cmd_mem_en,
1666
         CFGCOMMANDSERREN                     => cfg_cmd_serr_en,
1667
         CFGDEVCONTROLAUXPOWEREN              => cfg_dev_control_aux_power_en,
1668
         CFGDEVCONTROLCORRERRREPORTINGEN      => cfg_dev_control_corr_err_reporting_en,
1669
         CFGDEVCONTROLENABLERO                => cfg_dev_control_enable_relaxed_order,
1670
         CFGDEVCONTROLEXTTAGEN                => cfg_dev_control_ext_tag_en,
1671
         CFGDEVCONTROLFATALERRREPORTINGEN     => cfg_dev_control_fatal_err_reporting_en,
1672
         CFGDEVCONTROLMAXPAYLOAD              => cfg_dev_control_maxpayload,
1673
         CFGDEVCONTROLMAXREADREQ              => cfg_dev_control_max_read_req,
1674
         CFGDEVCONTROLNONFATALREPORTINGEN     => cfg_dev_control_non_fatal_reporting_en,
1675
         CFGDEVCONTROLNOSNOOPEN               => cfg_dev_control_nosnoop_en,
1676
         CFGDEVCONTROLPHANTOMEN               => cfg_dev_control_phantom_en,
1677
         CFGDEVCONTROLURERRREPORTINGEN        => cfg_dev_control_ur_err_reporting_en,
1678
         CFGDEVCONTROL2CPLTIMEOUTDIS          => cfg_dev_control2_cpltimeout_dis,
1679
         CFGDEVCONTROL2CPLTIMEOUTVAL          => cfg_dev_control2_cpltimeout_val,
1680
         CFGDEVSTATUSCORRERRDETECTED          => cfg_dev_status_corr_err_detected,
1681
         CFGDEVSTATUSFATALERRDETECTED         => cfg_dev_status_fatal_err_detected,
1682
         CFGDEVSTATUSNONFATALERRDETECTED      => cfg_dev_status_nonfatal_err_detected,
1683
         CFGDEVSTATUSURDETECTED               => cfg_dev_status_ur_detected,
1684
         CFGDO                                => cfg_do_v6pcie0,
1685
         CFGERRAERHEADERLOGSETN               => open,
1686
         CFGERRCPLRDYN                        => cfg_err_cpl_rdy_n_v6pcie1,
1687
         CFGINTERRUPTDO                       => cfg_interrupt_do_v6pcie2,
1688
         CFGINTERRUPTMMENABLE                 => cfg_interrupt_mmenable_v6pcie3,
1689
         CFGINTERRUPTMSIENABLE                => cfg_interrupt_msienable_v6pcie4,
1690
         CFGINTERRUPTMSIXENABLE               => cfg_interrupt_msixenable_v6pcie5,
1691
         CFGINTERRUPTMSIXFM                   => cfg_interrupt_msixfm_v6pcie6,
1692
         CFGINTERRUPTRDYN                     => cfg_interrupt_rdy_n_v6pcie7,
1693
         CFGLINKCONTROLRCB                    => cfg_link_control_rcb,
1694
         CFGLINKCONTROLASPMCONTROL            => cfg_link_control_aspm_control,
1695
         CFGLINKCONTROLAUTOBANDWIDTHINTEN     => cfg_link_control_auto_bandwidth_int_en,
1696
         CFGLINKCONTROLBANDWIDTHINTEN         => cfg_link_control_bandwidth_int_en,
1697
         CFGLINKCONTROLCLOCKPMEN              => cfg_link_control_clock_pm_en,
1698
         CFGLINKCONTROLCOMMONCLOCK            => cfg_link_control_common_clock,
1699
         CFGLINKCONTROLEXTENDEDSYNC           => cfg_link_control_extended_sync,
1700
         CFGLINKCONTROLHWAUTOWIDTHDIS         => cfg_link_control_hw_auto_width_dis,
1701
         CFGLINKCONTROLLINKDISABLE            => cfg_link_control_linkdisable,
1702
         CFGLINKCONTROLRETRAINLINK            => cfg_link_control_retrain_link,
1703
         CFGLINKSTATUSAUTOBANDWIDTHSTATUS     => cfg_link_status_autobandwidth_status,
1704
         CFGLINKSTATUSBANDWITHSTATUS          => cfg_link_status_bandwidth_status,
1705
         CFGLINKSTATUSCURRENTSPEED            => cfg_link_status_current_speed,
1706
         CFGLINKSTATUSDLLACTIVE               => cfg_link_status_dll_active,
1707
         CFGLINKSTATUSLINKTRAINING            => cfg_link_status_link_training,
1708
         CFGLINKSTATUSNEGOTIATEDWIDTH         => cfg_link_status_negotiated_link_width,
1709
         CFGMSGDATA                           => cfg_msg_data,
1710
         CFGMSGRECEIVED                       => cfg_msg_received,
1711
         CFGMSGRECEIVEDASSERTINTA             => open,
1712
         CFGMSGRECEIVEDASSERTINTB             => open,
1713
         CFGMSGRECEIVEDASSERTINTC             => open,
1714
         CFGMSGRECEIVEDASSERTINTD             => open,
1715
         CFGMSGRECEIVEDDEASSERTINTA           => open,
1716
         CFGMSGRECEIVEDDEASSERTINTB           => open,
1717
         CFGMSGRECEIVEDDEASSERTINTC           => open,
1718
         CFGMSGRECEIVEDDEASSERTINTD           => open,
1719
         CFGMSGRECEIVEDERRCOR                 => open,
1720
         CFGMSGRECEIVEDERRFATAL               => open,
1721
         CFGMSGRECEIVEDERRNONFATAL            => open,
1722
         CFGMSGRECEIVEDPMASNAK                => open,
1723
         CFGMSGRECEIVEDPMETO                  => cfg_msg_received_pme_to,
1724
         CFGMSGRECEIVEDPMETOACK               => open,
1725
         CFGMSGRECEIVEDPMPME                  => open,
1726
         CFGMSGRECEIVEDSETSLOTPOWERLIMIT      => open,
1727
         CFGMSGRECEIVEDUNLOCK                 => open,
1728
         CFGPCIELINKSTATE                     => cfg_pcie_link_state_n_v6pcie8,
1729
         CFGPMCSRPMEEN                        => cfg_pmcsr_pme_en_v6pcie9,
1730
         CFGPMCSRPMESTATUS                    => cfg_pmcsr_pme_status_v6pcie10,
1731
         CFGPMCSRPOWERSTATE                   => cfg_pmcsr_powerstate_v6pcie11,
1732
         CFGPMRCVASREQL1N                     => open,
1733
         CFGPMRCVENTERL1N                     => open,
1734
         CFGPMRCVENTERL23N                    => open,
1735
         CFGPMRCVREQACKN                      => open,
1736
         CFGRDWRDONEN                         => cfg_rd_wr_done_n_v6pcie12,
1737
         CFGSLOTCONTROLELECTROMECHILCTLPULSE  => open,
1738
         CFGTRANSACTION                       => open,
1739
         CFGTRANSACTIONADDR                   => open,
1740
         CFGTRANSACTIONTYPE                   => open,
1741
         CFGVCTCVCMAP                         => open,
1742
         CFGBYTEENN                           => cfg_byte_en_n,
1743
         CFGDI                                => cfg_di,
1744
         CFGDSBUSNUMBER                       => "00000000",
1745
         CFGDSDEVICENUMBER                    => "00000",
1746
         CFGDSFUNCTIONNUMBER                  => "000",
1747
         CFGDSN                               => cfg_dsn,
1748
         CFGDWADDR                            => cfg_dwaddr,
1749
         CFGERRACSN                           => '1',
1750
         CFGERRAERHEADERLOG                   => "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
1751
         CFGERRCORN                           => cfg_err_cor_n,
1752
         CFGERRCPLABORTN                      => cfg_err_cpl_abort_n,
1753
         CFGERRCPLTIMEOUTN                    => cfg_err_cpl_timeout_n,
1754
         CFGERRCPLUNEXPECTN                   => cfg_err_cpl_unexpect_n,
1755
         CFGERRECRCN                          => cfg_err_ecrc_n,
1756
         CFGERRLOCKEDN                        => cfg_err_locked_n,
1757
         CFGERRPOSTEDN                        => cfg_err_posted_n,
1758
         CFGERRTLPCPLHEADER                   => cfg_err_tlp_cpl_header,
1759
         CFGERRURN                            => cfg_err_ur_n,
1760
         CFGINTERRUPTASSERTN                  => cfg_interrupt_assert_n,
1761
         CFGINTERRUPTDI                       => cfg_interrupt_di,
1762
         CFGINTERRUPTN                        => cfg_interrupt_n,
1763
         CFGPMDIRECTASPML1N                   => '1',
1764
         CFGPMSENDPMACKN                      => '1',
1765
         CFGPMSENDPMETON                      => '1',
1766
         CFGPMSENDPMNAKN                      => '1',
1767
         CFGPMTURNOFFOKN                      => cfg_turnoff_ok_n,
1768
         CFGPMWAKEN                           => cfg_pm_wake_n,
1769
         CFGPORTNUMBER                        => "00000000",
1770
         CFGRDENN                             => cfg_rd_en_n,
1771
         CFGTRNPENDINGN                       => cfg_trn_pending_n,
1772
         CFGWRENN                             => cfg_wr_en_n,
1773
         CFGWRREADONLYN                       => '1',
1774
         CFGWRRW1CASRWN                       => '1',
1775
 
1776
         PLINITIALLINKWIDTH                   => pl_initial_link_width_v6pcie17,
1777
         PLLANEREVERSALMODE                   => pl_lane_reversal_mode_v6pcie18,
1778
         PLLINKGEN2CAP                        => pl_link_gen2_capable_v6pcie19,
1779
         PLLINKPARTNERGEN2SUPPORTED           => pl_link_partner_gen2_supported_v6pcie20,
1780
         PLLINKUPCFGCAP                       => pl_link_upcfg_capable_v6pcie21,
1781
         PLLTSSMSTATE                         => pl_ltssm_state_v6pcie22,
1782
         PLPHYLNKUPN                          => open,                                 -- Debug
1783
         PLRECEIVEDHOTRST                     => pl_received_hot_rst_v6pcie23,
1784
         PLRXPMSTATE                          => open,                                 -- Debug
1785
         PLSELLNKRATE                         => pl_sel_link_rate_v6pcie24,
1786
         PLSELLNKWIDTH                        => pl_sel_link_width_v6pcie25,
1787
         PLTXPMSTATE                          => open,                                 -- Debug
1788
         PLDIRECTEDLINKAUTON                  => pl_directed_link_auton,
1789
         PLDIRECTEDLINKCHANGE                 => pl_directed_link_change,
1790
         PLDIRECTEDLINKSPEED                  => pl_directed_link_speed,
1791
         PLDIRECTEDLINKWIDTH                  => pl_directed_link_width,
1792
         PLDOWNSTREAMDEEMPHSOURCE             => '1',
1793
         PLUPSTREAMPREFERDEEMPH               => pl_upstream_prefer_deemph,
1794
         PLTRANSMITHOTRST                     => '0',
1795
 
1796
         DBGSCLRA                             => open,
1797
         DBGSCLRB                             => open,
1798
         DBGSCLRC                             => open,
1799
         DBGSCLRD                             => open,
1800
         DBGSCLRE                             => open,
1801
         DBGSCLRF                             => open,
1802
         DBGSCLRG                             => open,
1803
         DBGSCLRH                             => open,
1804
         DBGSCLRI                             => open,
1805
         DBGSCLRJ                             => open,
1806
         DBGSCLRK                             => open,
1807
         DBGVECA                              => open,
1808
         DBGVECB                              => open,
1809
         DBGVECC                              => open,
1810
         PLDBGVEC                             => open,
1811
         DBGMODE                              => "00",
1812
         DBGSUBMODE                           => '0',
1813
         PLDBGMODE                            => "000",
1814
 
1815
         PCIEDRPDO                            => open,
1816
         PCIEDRPDRDY                          => open,
1817
         PCIEDRPCLK                           => '0',
1818
         PCIEDRPDADDR                         => "000000000",
1819
         PCIEDRPDEN                           => '0',
1820
         PCIEDRPDI                            => X"0000",
1821
         PCIEDRPDWE                           => '0',
1822
 
1823
         GTPLLLOCK                            => gt_pll_lock,
1824
         PIPECLK                              => pipe_clk,
1825
         USERCLK                              => user_clk,
1826
         DRPCLK                               => drp_clk,
1827
         CLOCKLOCKED                          => clock_locked,
1828
         TxOutClk                             => TxOutClk
1829
      );
1830
 
1831
end v6_pcie;
1832
 

powered by: WebSVN 2.1.0

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