DS_DMA
pcie_src/pcie_core64_m1/source_virtex6/cl_v6pcie_m1.vhd
00001 -------------------------------------------------------------------------------
00002 --
00003 -- (c) Copyright 2009-2011 Xilinx, Inc. All rights reserved.
00004 --
00005 -- This file contains confidential and proprietary information
00006 -- of Xilinx, Inc. and is protected under U.S. and
00007 -- international copyright and other intellectual property
00008 -- laws.
00009 --
00010 -- DISCLAIMER
00011 -- This disclaimer is not a license and does not grant any
00012 -- rights to the materials distributed herewith. Except as
00013 -- otherwise provided in a valid license issued to you by
00014 -- Xilinx, and to the maximum extent permitted by applicable
00015 -- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
00016 -- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
00017 -- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
00018 -- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
00019 -- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
00020 -- (2) Xilinx shall not be liable (whether in contract or tort,
00021 -- including negligence, or under any other theory of
00022 -- liability) for any loss or damage of any kind or nature
00023 -- related to, arising under or in connection with these
00024 -- materials, including for any direct, or any indirect,
00025 -- special, incidental, or consequential loss or damage
00026 -- (including loss of data, profits, goodwill, or any type of
00027 -- loss or damage suffered as a result of any action brought
00028 -- by a third party) even if such damage or loss was
00029 -- reasonably foreseeable or Xilinx had been advised of the
00030 -- possibility of the same.
00031 --
00032 -- CRITICAL APPLICATIONS
00033 -- Xilinx products are not designed or intended to be fail-
00034 -- safe, or for use in any application requiring fail-safe
00035 -- performance, such as life-support or safety devices or
00036 -- systems, Class III medical devices, nuclear facilities,
00037 -- applications related to the deployment of airbags, or any
00038 -- other applications that could lead to death, personal
00039 -- injury, or severe property or environmental damage
00040 -- (individually and collectively, "Critical
00041 -- Applications"). Customer assumes the sole risk and
00042 -- liability of any use of Xilinx products in Critical
00043 -- Applications, subject only to applicable laws and
00044 -- regulations governing limitations on product liability.
00045 --
00046 -- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
00047 -- PART OF THIS FILE AT ALL TIMES.
00048 --
00049 -------------------------------------------------------------------------------
00050 -- Project    : Virtex-6 Integrated Block for PCI Express
00051 -- File       : cl_v6pcie_m1.vhd
00052 -- Version    : 2.3
00053 -- Description: Virtex6 solution wrapper : Endpoint for PCI Express
00054 --
00055 --
00056 --
00057 --------------------------------------------------------------------------------
00058 
00059 library ieee;
00060    use ieee.std_logic_1164.all;
00061    use ieee.std_logic_unsigned.all;
00062 
00063 library unisim;
00064 use unisim.vcomponents.all;
00065 
00066 entity cl_v6pcie_m1 is
00067    generic (
00068    PCIE_DRP_ENABLE                              : boolean := FALSE;
00069    ALLOW_X8_GEN2                                : boolean := FALSE;
00070    BAR0                                         : bit_vector := X"FFE00000";
00071    BAR1                                         : bit_vector := X"FFE00000";
00072    BAR2                                         : bit_vector := X"00000000";
00073    BAR3                                         : bit_vector := X"00000000";
00074    BAR4                                         : bit_vector := X"00000000";
00075    BAR5                                         : bit_vector := X"00000000";
00076 
00077    CARDBUS_CIS_POINTER                          : bit_vector := X"00000000";
00078    CLASS_CODE                                   : bit_vector := X"FFFFFF";
00079    CMD_INTX_IMPLEMENTED                         : boolean    := TRUE;
00080    CPL_TIMEOUT_DISABLE_SUPPORTED                : boolean    := FALSE;
00081    CPL_TIMEOUT_RANGES_SUPPORTED                 : bit_vector := X"2";
00082 
00083    DEV_CAP_ENDPOINT_L0S_LATENCY                 : integer    := 0;
00084    DEV_CAP_ENDPOINT_L1_LATENCY                  : integer    := 7;
00085    DEV_CAP_EXT_TAG_SUPPORTED                    : boolean    := FALSE;
00086    DEV_CAP_MAX_PAYLOAD_SUPPORTED                : integer    := 1;
00087    DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT            : integer    := 0;
00088    DEVICE_ID                                    : bit_vector := X"5507";
00089 
00090    DISABLE_LANE_REVERSAL                        : boolean    := TRUE;
00091    DISABLE_SCRAMBLING                           : boolean    := FALSE;
00092    DSN_BASE_PTR                                 : bit_vector := X"0";
00093    DSN_CAP_NEXTPTR                              : bit_vector := X"000";
00094    DSN_CAP_ON                                   : boolean    := FALSE;
00095 
00096    ENABLE_MSG_ROUTE                             : bit_vector := "00000000000";
00097    ENABLE_RX_TD_ECRC_TRIM                       : boolean    := TRUE;
00098    EXPANSION_ROM                                : bit_vector := X"00000000";
00099    EXT_CFG_CAP_PTR                              : bit_vector := X"3F";
00100    EXT_CFG_XP_CAP_PTR                           : bit_vector := X"3FF";
00101    HEADER_TYPE                                  : bit_vector := X"00";
00102    INTERRUPT_PIN                                : bit_vector := X"1";
00103 
00104    LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP       : boolean    := FALSE;
00105    LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP     : boolean    := FALSE;
00106    LINK_CAP_MAX_LINK_SPEED                      : bit_vector := X"2";
00107    LINK_CAP_MAX_LINK_WIDTH                      : bit_vector := X"04";
00108    LINK_CAP_MAX_LINK_WIDTH_int                  : integer    := 4;
00109    LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE         : boolean    := FALSE;
00110 
00111    LINK_CTRL2_DEEMPHASIS                        : boolean    := FALSE;
00112    LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE       : boolean    := FALSE;
00113    LINK_CTRL2_TARGET_LINK_SPEED                 : bit_vector := X"2";
00114    LINK_STATUS_SLOT_CLOCK_CONFIG                : boolean    := TRUE;
00115 
00116    LL_ACK_TIMEOUT                               : bit_vector := X"0000";
00117    LL_ACK_TIMEOUT_EN                            : boolean    := FALSE;
00118    LL_ACK_TIMEOUT_FUNC                          : integer    := 0;
00119    LL_REPLAY_TIMEOUT                            : bit_vector := X"0026";
00120    LL_REPLAY_TIMEOUT_EN                         : boolean    := TRUE;
00121    LL_REPLAY_TIMEOUT_FUNC                       : integer    := 1;
00122 
00123    LTSSM_MAX_LINK_WIDTH                         : bit_vector := X"04";
00124    MSI_CAP_MULTIMSGCAP                          : integer    := 0;
00125    MSI_CAP_MULTIMSG_EXTENSION                   : integer    := 0;
00126    MSI_CAP_ON                                   : boolean    := FALSE;
00127    MSI_CAP_PER_VECTOR_MASKING_CAPABLE           : boolean    := FALSE;
00128    MSI_CAP_64_BIT_ADDR_CAPABLE                  : boolean    := TRUE;
00129 
00130    MSIX_CAP_ON                                  : boolean    := FALSE;
00131    MSIX_CAP_PBA_BIR                             : integer    := 0;
00132    MSIX_CAP_PBA_OFFSET                          : bit_vector := X"0";
00133    MSIX_CAP_TABLE_BIR                           : integer    := 0;
00134    MSIX_CAP_TABLE_OFFSET                        : bit_vector := X"0";
00135    MSIX_CAP_TABLE_SIZE                          : bit_vector := X"000";
00136 
00137    PCIE_CAP_DEVICE_PORT_TYPE                    : bit_vector := X"0";
00138    PCIE_CAP_INT_MSG_NUM                         : bit_vector := X"1";
00139    PCIE_CAP_NEXTPTR                             : bit_vector := X"00";
00140    PIPE_PIPELINE_STAGES                         : integer    := 0;                -- 0 - 0 stages; 1 - 1 stage; 2 - 2 stages
00141 
00142    PM_CAP_DSI                                   : boolean    := FALSE;
00143    PM_CAP_D1SUPPORT                             : boolean    := FALSE;
00144    PM_CAP_D2SUPPORT                             : boolean    := FALSE;
00145    PM_CAP_NEXTPTR                               : bit_vector := X"60";
00146    PM_CAP_PMESUPPORT                            : bit_vector := X"0F";
00147    PM_CSR_NOSOFTRST                             : boolean    := TRUE;
00148 
00149    PM_DATA_SCALE0                               : bit_vector := X"0";
00150    PM_DATA_SCALE1                               : bit_vector := X"0";
00151    PM_DATA_SCALE2                               : bit_vector := X"0";
00152    PM_DATA_SCALE3                               : bit_vector := X"0";
00153    PM_DATA_SCALE4                               : bit_vector := X"0";
00154    PM_DATA_SCALE5                               : bit_vector := X"0";
00155    PM_DATA_SCALE6                               : bit_vector := X"0";
00156    PM_DATA_SCALE7                               : bit_vector := X"0";
00157 
00158    PM_DATA0                                     : bit_vector := X"00";
00159    PM_DATA1                                     : bit_vector := X"00";
00160    PM_DATA2                                     : bit_vector := X"00";
00161    PM_DATA3                                     : bit_vector := X"00";
00162    PM_DATA4                                     : bit_vector := X"00";
00163    PM_DATA5                                     : bit_vector := X"00";
00164    PM_DATA6                                     : bit_vector := X"00";
00165    PM_DATA7                                     : bit_vector := X"00";
00166 
00167    REF_CLK_FREQ                                 : integer    := 0;                        -- 0 - 100 MHz; 1 - 125 MHz; 2 - 250 MHz
00168    REVISION_ID                                  : bit_vector := X"20";
00169    SPARE_BIT0                                   : integer    := 0;
00170    SUBSYSTEM_ID                                 : bit_vector := X"0002";
00171    SUBSYSTEM_VENDOR_ID                          : bit_vector := X"4953";
00172 
00173    TL_RX_RAM_RADDR_LATENCY                      : integer    := 0;
00174    TL_RX_RAM_RDATA_LATENCY                      : integer    := 2;
00175    TL_RX_RAM_WRITE_LATENCY                      : integer    := 0;
00176    TL_TX_RAM_RADDR_LATENCY                      : integer    := 0;
00177    TL_TX_RAM_RDATA_LATENCY                      : integer    := 2;
00178    TL_TX_RAM_WRITE_LATENCY                      : integer    := 0;
00179 
00180    UPCONFIG_CAPABLE                             : boolean    := TRUE;
00181    USER_CLK_FREQ                                : integer    := 3;
00182    VC_BASE_PTR                                  : bit_vector := X"0";
00183    VC_CAP_NEXTPTR                               : bit_vector := X"000";
00184    VC_CAP_ON                                    : boolean    := FALSE;
00185    VC_CAP_REJECT_SNOOP_TRANSACTIONS             : boolean    := FALSE;
00186 
00187    VC0_CPL_INFINITE                             : boolean    := TRUE;
00188    VC0_RX_RAM_LIMIT                             : bit_vector := X"3FF";
00189    VC0_TOTAL_CREDITS_CD                         : integer    := 378;
00190    VC0_TOTAL_CREDITS_CH                         : integer    := 36;
00191    VC0_TOTAL_CREDITS_NPH                        : integer    := 12;
00192    VC0_TOTAL_CREDITS_PD                         : integer    := 32;
00193    VC0_TOTAL_CREDITS_PH                         : integer    := 32;
00194    VC0_TX_LASTPACKET                            : integer    := 28;
00195 
00196    VENDOR_ID                                    : bit_vector := X"4953";
00197    VSEC_BASE_PTR                                : bit_vector := X"0";
00198    VSEC_CAP_NEXTPTR                             : bit_vector := X"000";
00199    VSEC_CAP_ON                                  : boolean    := FALSE;
00200 
00201    AER_BASE_PTR                                 : bit_vector := X"128";
00202    AER_CAP_ECRC_CHECK_CAPABLE                   : boolean    := FALSE;
00203    AER_CAP_ECRC_GEN_CAPABLE                     : boolean    := FALSE;
00204    AER_CAP_ID                                   : bit_vector := X"0001";
00205    AER_CAP_INT_MSG_NUM_MSI                      : bit_vector := X"0a";
00206    AER_CAP_INT_MSG_NUM_MSIX                     : bit_vector := X"15";
00207    AER_CAP_NEXTPTR                              : bit_vector := X"160";
00208    AER_CAP_ON                                   : boolean    := FALSE;
00209    AER_CAP_PERMIT_ROOTERR_UPDATE                : boolean    := TRUE;
00210    AER_CAP_VERSION                              : bit_vector := X"1";
00211 
00212    CAPABILITIES_PTR                             : bit_vector := X"40";
00213    CRM_MODULE_RSTS                              : bit_vector := X"00";
00214    DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE          : boolean    := TRUE;
00215    DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE          : boolean    := TRUE;
00216    DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE         : boolean    := FALSE;
00217    DEV_CAP_ROLE_BASED_ERROR                     : boolean    := TRUE;
00218    DEV_CAP_RSVD_14_12                           : integer    := 0;
00219    DEV_CAP_RSVD_17_16                           : integer    := 0;
00220    DEV_CAP_RSVD_31_29                           : integer    := 0;
00221    DEV_CONTROL_AUX_POWER_SUPPORTED              : boolean    := FALSE;
00222 
00223    DISABLE_ASPM_L1_TIMER                        : boolean    := FALSE;
00224    DISABLE_BAR_FILTERING                        : boolean    := FALSE;
00225    DISABLE_ID_CHECK                             : boolean    := FALSE;
00226    DISABLE_RX_TC_FILTER                         : boolean    := FALSE;
00227    DNSTREAM_LINK_NUM                            : bit_vector := X"00";
00228 
00229    DSN_CAP_ID                                   : bit_vector := X"0003";
00230    DSN_CAP_VERSION                              : bit_vector := X"1";
00231    ENTER_RVRY_EI_L0                             : boolean    := TRUE;
00232    INFER_EI                                     : bit_vector := X"0c";
00233    IS_SWITCH                                    : boolean    := FALSE;
00234 
00235    LAST_CONFIG_DWORD                            : bit_vector := X"3FF";
00236    LINK_CAP_ASPM_SUPPORT                        : integer    := 1;
00237    LINK_CAP_CLOCK_POWER_MANAGEMENT              : boolean    := FALSE;
00238    LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1        : integer    := 7;
00239    LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2        : integer    := 7;
00240    LINK_CAP_L0S_EXIT_LATENCY_GEN1               : integer    := 7;
00241    LINK_CAP_L0S_EXIT_LATENCY_GEN2               : integer    := 7;
00242    LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1         : integer    := 7;
00243    LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2         : integer    := 7;
00244    LINK_CAP_L1_EXIT_LATENCY_GEN1                : integer    := 7;
00245    LINK_CAP_L1_EXIT_LATENCY_GEN2                : integer    := 7;
00246    LINK_CAP_RSVD_23_22                          : integer    := 0;
00247    LINK_CONTROL_RCB                             : integer    := 0;
00248 
00249    MSI_BASE_PTR                                 : bit_vector := X"48";
00250    MSI_CAP_ID                                   : bit_vector := X"05";
00251    MSI_CAP_NEXTPTR                              : bit_vector := X"60";
00252    MSIX_BASE_PTR                                : bit_vector := X"9c";
00253    MSIX_CAP_ID                                  : bit_vector := X"11";
00254    MSIX_CAP_NEXTPTR                             : bit_vector := X"00";
00255    N_FTS_COMCLK_GEN1                            : integer    := 255;
00256    N_FTS_COMCLK_GEN2                            : integer    := 254;
00257    N_FTS_GEN1                                   : integer    := 255;
00258    N_FTS_GEN2                                   : integer    := 255;
00259 
00260    PCIE_BASE_PTR                                : bit_vector := X"60";
00261    PCIE_CAP_CAPABILITY_ID                       : bit_vector := X"10";
00262    PCIE_CAP_CAPABILITY_VERSION                  : bit_vector := X"2";
00263    PCIE_CAP_ON                                  : boolean    := TRUE;
00264    PCIE_CAP_RSVD_15_14                          : integer    := 0;
00265    PCIE_CAP_SLOT_IMPLEMENTED                    : boolean    := FALSE;
00266    PCIE_REVISION                                : integer    := 2;
00267    PGL0_LANE                                    : integer    := 0;
00268    PGL1_LANE                                    : integer    := 1;
00269    PGL2_LANE                                    : integer    := 2;
00270    PGL3_LANE                                    : integer    := 3;
00271    PGL4_LANE                                    : integer    := 4;
00272    PGL5_LANE                                    : integer    := 5;
00273    PGL6_LANE                                    : integer    := 6;
00274    PGL7_LANE                                    : integer    := 7;
00275    PL_AUTO_CONFIG                               : integer    := 0;
00276    PL_FAST_TRAIN                                : boolean    := FALSE;
00277 
00278    PM_BASE_PTR                                  : bit_vector := X"40";
00279    PM_CAP_AUXCURRENT                            : integer    := 0;
00280    PM_CAP_ID                                    : bit_vector := X"01";
00281    PM_CAP_ON                                    : boolean    := TRUE;
00282    PM_CAP_PME_CLOCK                             : boolean    := FALSE;
00283    PM_CAP_RSVD_04                               : integer    := 0;
00284    PM_CAP_VERSION                               : integer    := 3;
00285    PM_CSR_BPCCEN                                : boolean    := FALSE;
00286    PM_CSR_B2B3                                  : boolean    := FALSE;
00287 
00288    RECRC_CHK                                    : integer    := 0;
00289    RECRC_CHK_TRIM                               : boolean    := FALSE;
00290    ROOT_CAP_CRS_SW_VISIBILITY                   : boolean    := FALSE;
00291    SELECT_DLL_IF                                : boolean    := FALSE;
00292    SLOT_CAP_ATT_BUTTON_PRESENT                  : boolean    := FALSE;
00293    SLOT_CAP_ATT_INDICATOR_PRESENT               : boolean    := FALSE;
00294    SLOT_CAP_ELEC_INTERLOCK_PRESENT              : boolean    := FALSE;
00295    SLOT_CAP_HOTPLUG_CAPABLE                     : boolean    := FALSE;
00296    SLOT_CAP_HOTPLUG_SURPRISE                    : boolean    := FALSE;
00297    SLOT_CAP_MRL_SENSOR_PRESENT                  : boolean    := FALSE;
00298    SLOT_CAP_NO_CMD_COMPLETED_SUPPORT            : boolean    := FALSE;
00299    SLOT_CAP_PHYSICAL_SLOT_NUM                   : bit_vector := X"0000";
00300    SLOT_CAP_POWER_CONTROLLER_PRESENT            : boolean    := FALSE;
00301    SLOT_CAP_POWER_INDICATOR_PRESENT             : boolean    := FALSE;
00302    SLOT_CAP_SLOT_POWER_LIMIT_SCALE              : integer    := 0;
00303    SLOT_CAP_SLOT_POWER_LIMIT_VALUE              : bit_vector := X"00";
00304    SPARE_BIT1                                   : integer    := 0;
00305    SPARE_BIT2                                   : integer    := 0;
00306    SPARE_BIT3                                   : integer    := 0;
00307    SPARE_BIT4                                   : integer    := 0;
00308    SPARE_BIT5                                   : integer    := 0;
00309    SPARE_BIT6                                   : integer    := 0;
00310    SPARE_BIT7                                   : integer    := 0;
00311    SPARE_BIT8                                   : integer    := 0;
00312    SPARE_BYTE0                                  : bit_vector := X"00";
00313    SPARE_BYTE1                                  : bit_vector := X"00";
00314    SPARE_BYTE2                                  : bit_vector := X"00";
00315    SPARE_BYTE3                                  : bit_vector := X"00";
00316    SPARE_WORD0                                  : bit_vector := X"00000000";
00317    SPARE_WORD1                                  : bit_vector := X"00000000";
00318    SPARE_WORD2                                  : bit_vector := X"00000000";
00319    SPARE_WORD3                                  : bit_vector := X"00000000";
00320 
00321    TL_RBYPASS                                   : boolean    := FALSE;
00322    TL_TFC_DISABLE                               : boolean    := FALSE;
00323    TL_TX_CHECKS_DISABLE                         : boolean    := FALSE;
00324    EXIT_LOOPBACK_ON_EI                          : boolean    := TRUE;
00325    UPSTREAM_FACING                              : boolean    := TRUE;
00326    UR_INV_REQ                                   : boolean    := TRUE;
00327 
00328    VC_CAP_ID                                    : bit_vector := X"0002";
00329    VC_CAP_VERSION                               : bit_vector := X"1";
00330    VSEC_CAP_HDR_ID                              : bit_vector := X"1234";
00331    VSEC_CAP_HDR_LENGTH                          : bit_vector := X"018";
00332    VSEC_CAP_HDR_REVISION                        : bit_vector := X"1";
00333    VSEC_CAP_ID                                  : bit_vector := X"000b";
00334    VSEC_CAP_IS_LINK_VISIBLE                     : boolean    := TRUE;
00335    VSEC_CAP_VERSION                             : bit_vector := X"1"
00336       );
00337    port (
00338       ---------------------------------------------------------
00339       -- 1. PCI Express (pci_exp) Interface
00340       ---------------------------------------------------------
00341 
00342       -- Tx
00343       pci_exp_txp                               : out std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
00344       pci_exp_txn                               : out std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
00345 
00346       -- Rx
00347       pci_exp_rxp                               : in std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
00348       pci_exp_rxn                               : in std_logic_vector((LINK_CAP_MAX_LINK_WIDTH_int - 1) downto 0);
00349 
00350       ---------------------------------------------------------
00351       -- 2. Transaction (TRN) Interface
00352       ---------------------------------------------------------
00353 
00354       -- Common
00355       user_clk_out                              : out std_logic;
00356       user_reset_out                            : out std_logic;
00357       user_lnk_up                               : out std_logic;
00358 
00359       -- Tx
00360       tx_buf_av                                 : out std_logic_vector(5 downto 0);
00361       tx_cfg_req                                : out std_logic;
00362       tx_err_drop                               : out std_logic;
00363 
00364 --      s_axis_tx_tready                          : out std_logic;
00365 --      s_axis_tx_tdata                           : in std_logic_vector(63 downto 0);
00366 --      s_axis_tx_tstrb                           : in std_logic_vector(7 downto 0);
00367 --      s_axis_tx_tuser                           : in std_logic_vector(3 downto 0);
00368 --      s_axis_tx_tlast                           : in std_logic;
00369 --      s_axis_tx_tvalid                          : in std_logic;
00370 
00371       tx_cfg_gnt                                : in std_logic;
00372 
00373       -- Rx
00374 --      m_axis_rx_tdata                           : out std_logic_vector(63 downto 0);
00375 --      m_axis_rx_tstrb                           : out std_logic_vector(7 downto 0);
00376 --      m_axis_rx_tlast                           : out std_logic;
00377 --      m_axis_rx_tvalid                          : out std_logic;
00378 --      m_axis_rx_tuser                           : out std_logic_vector(21 downto 0);
00379 --      m_axis_rx_tready                          : in std_logic;
00380       rx_np_ok                                  : in std_logic;
00381           
00382           
00383       -- TRN TX
00384       -------------
00385       trn_td                  : in STD_LOGIC_VECTOR( 63 DOWNTO 0) := (OTHERS=>'0');
00386       trn_tsof                : in STD_LOGIC                                   := '0';
00387       trn_teof                : in STD_LOGIC                                   := '0';
00388       trn_tsrc_rdy            : in STD_LOGIC                                   := '0';
00389       trn_tdst_rdy            : out STD_LOGIC                                    := '0';
00390       trn_tsrc_dsc            : in STD_LOGIC                                   := '0';
00391       trn_trem                : in STD_LOGIC_VECTOR( 0 DOWNTO 0)  := (OTHERS=>'0');
00392       trn_terrfwd             : in STD_LOGIC                                   := '0';
00393       trn_tstr                : in STD_LOGIC                                   := '0';
00394       trn_tbuf_av             : out STD_LOGIC_VECTOR(5 DOWNTO 0)                 := (OTHERS=>'0');
00395       trn_tecrc_gen           : in STD_LOGIC                                   := '0';
00396 
00397       -- TRN RX
00398       -------------
00399       trn_rd                  : out STD_LOGIC_VECTOR( 63 DOWNTO 0) := (OTHERS=>'0');
00400       trn_rsof                : out STD_LOGIC                                   := '0';
00401       trn_reof                : out STD_LOGIC                                   := '0';
00402       trn_rsrc_rdy            : out STD_LOGIC                                   := '0';
00403       trn_rdst_rdy            : in STD_LOGIC                                  := '0';
00404       trn_rsrc_dsc            : out STD_LOGIC                                   := '0';
00405       trn_rrem                : out STD_LOGIC_VECTOR( 0 DOWNTO 0)  := (OTHERS=>'0');
00406       trn_rerrfwd             : out STD_LOGIC                                   := '0';
00407       trn_rbar_hit            : out STD_LOGIC_VECTOR(6 DOWNTO 0)                := (OTHERS=>'0');
00408       trn_recrc_err           : out STD_LOGIC                                   := '0';
00409 
00410           
00411       -- Flow Control
00412       fc_cpld                                   : out std_logic_vector(11 downto 0);
00413       fc_cplh                                   : out std_logic_vector(7 downto 0);
00414       fc_npd                                    : out std_logic_vector(11 downto 0);
00415       fc_nph                                    : out std_logic_vector(7 downto 0);
00416       fc_pd                                     : out std_logic_vector(11 downto 0);
00417       fc_ph                                     : out std_logic_vector(7 downto 0);
00418       fc_sel                                    : in std_logic_vector(2 downto 0);
00419 
00420       ---------------------------------------------------------
00421       -- 3. Configuration (CFG) Interface
00422       ---------------------------------------------------------
00423 
00424       cfg_do                                    : out std_logic_vector(31 downto 0);
00425       cfg_rd_wr_done                            : out std_logic;
00426       cfg_di                                    : in std_logic_vector(31 downto 0);
00427       cfg_byte_en                               : in std_logic_vector(3 downto 0);
00428       cfg_dwaddr                                : in std_logic_vector(9 downto 0);
00429       cfg_wr_en                                 : in std_logic;
00430       cfg_rd_en                                 : in std_logic;
00431 
00432       cfg_err_cor                               : in std_logic;
00433       cfg_err_ur                                : in std_logic;
00434       cfg_err_ecrc                              : in std_logic;
00435       cfg_err_cpl_timeout                       : in std_logic;
00436       cfg_err_cpl_abort                         : in std_logic;
00437       cfg_err_cpl_unexpect                      : in std_logic;
00438       cfg_err_posted                            : in std_logic;
00439       cfg_err_locked                            : in std_logic;
00440       cfg_err_tlp_cpl_header                    : in std_logic_vector(47 downto 0);
00441       cfg_err_cpl_rdy                           : out std_logic;
00442       cfg_interrupt                             : in std_logic;
00443       cfg_interrupt_rdy                         : out std_logic;
00444       cfg_interrupt_assert                      : in std_logic;
00445       cfg_interrupt_di                          : in std_logic_vector(7 downto 0);
00446       cfg_interrupt_do                          : out std_logic_vector(7 downto 0);
00447       cfg_interrupt_mmenable                    : out std_logic_vector(2 downto 0);
00448       cfg_interrupt_msienable                   : out std_logic;
00449       cfg_interrupt_msixenable                  : out std_logic;
00450       cfg_interrupt_msixfm                      : out std_logic;
00451       cfg_turnoff_ok                            : in std_logic;
00452       cfg_to_turnoff                            : out std_logic;
00453       cfg_trn_pending                           : in std_logic;
00454       cfg_pm_wake                               : in std_logic;
00455       cfg_bus_number                            : out std_logic_vector(7 downto 0);
00456       cfg_device_number                         : out std_logic_vector(4 downto 0);
00457       cfg_function_number                       : out std_logic_vector(2 downto 0);
00458       cfg_status                                : out std_logic_vector(15 downto 0);
00459       cfg_command                               : out std_logic_vector(15 downto 0);
00460       cfg_dstatus                               : out std_logic_vector(15 downto 0);
00461       cfg_dcommand                              : out std_logic_vector(15 downto 0);
00462       cfg_lstatus                               : out std_logic_vector(15 downto 0);
00463       cfg_lcommand                              : out std_logic_vector(15 downto 0);
00464       cfg_dcommand2                             : out std_logic_vector(15 downto 0);
00465       cfg_pcie_link_state                       : out std_logic_vector(2 downto 0);
00466       cfg_dsn                                   : in std_logic_vector(63 downto 0);
00467       cfg_pmcsr_pme_en                          : out std_logic;
00468       cfg_pmcsr_pme_status                      : out std_logic;
00469       cfg_pmcsr_powerstate                      : out std_logic_vector(1 downto 0);
00470 
00471       ---------------------------------------------------------
00472       -- 4. Physical Layer Control and Status (PL) Interface
00473       ---------------------------------------------------------
00474 
00475       pl_initial_link_width                     : out std_logic_vector(2 downto 0);
00476       pl_lane_reversal_mode                     : out std_logic_vector(1 downto 0);
00477       pl_link_gen2_capable                      : out std_logic;
00478       pl_link_partner_gen2_supported            : out std_logic;
00479       pl_link_upcfg_capable                     : out std_logic;
00480       pl_ltssm_state                            : out std_logic_vector(5 downto 0);
00481       pl_received_hot_rst                       : out std_logic;
00482       pl_sel_link_rate                          : out std_logic;
00483       pl_sel_link_width                         : out std_logic_vector(1 downto 0);
00484       pl_directed_link_auton                    : in std_logic;
00485       pl_directed_link_change                   : in std_logic_vector(1 downto 0);
00486       pl_directed_link_speed                    : in std_logic;
00487       pl_directed_link_width                    : in std_logic_vector(1 downto 0);
00488       pl_upstream_prefer_deemph                 : in std_logic;
00489 
00490       ---------------------------------------------------------
00491       -- 5. System  (SYS) Interface
00492       ---------------------------------------------------------
00493 
00494       sys_clk                                   : in std_logic;
00495       sys_reset                                 : in std_logic
00496    );
00497 end cl_v6pcie_m1;
00498 
00499 architecture v6_pcie of cl_v6pcie_m1 is
00500 
00501    attribute CORE_GENERATION_INFO : string;
00502    attribute CORE_GENERATION_INFO of v6_pcie : ARCHITECTURE is
00503      "cl_v6pcie_m1,v6_pcie_v2_3,{LINK_CAP_MAX_LINK_SPEED=2,LINK_CAP_MAX_LINK_WIDTH=04,PCIE_CAP_DEVICE_PORT_TYPE=0000,DEV_CAP_MAX_PAYLOAD_SUPPORTED=1,USER_CLK_FREQ=3,REF_CLK_FREQ=0,MSI_CAP_ON=FALSE,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=28,VC0_RX_RAM_LIMIT=3FF,VC0_TOTAL_CREDITS_PH=32,VC0_TOTAL_CREDITS_PD=32,VC0_TOTAL_CREDITS_NPH=12,VC0_TOTAL_CREDITS_CH=36,VC0_TOTAL_CREDITS_CD=378,VC0_CPL_INFINITE=TRUE,DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT=0,DEV_CAP_EXT_TAG_SUPPORTED=FALSE,LINK_STATUS_SLOT_CLOCK_CONFIG=TRUE,ENABLE_RX_TD_ECRC_TRIM=TRUE,DISABLE_LANE_REVERSAL=TRUE,DISABLE_SCRAMBLING=FALSE,DSN_CAP_ON=FALSE,PIPE_PIPELINE_STAGES=0,REVISION_ID=20,VC_CAP_ON=FALSE}";
00504 
00505    component axi_basic_top
00506    generic (
00507       C_DATA_WIDTH              : integer := 32;     -- rx/tx interface data width
00508       C_FAMILY                  : string  := "x7";    -- targeted fpga family
00509       C_ROOT_PORT               : BOOLEAN := FALSE; -- pcie block is in root port mode
00510       C_PM_PRIORITY             : BOOLEAN := FALSE; -- disable tx packet boundary thrtl
00511       TCQ                       : integer := 1;      -- clock to q time
00512 
00513       C_REM_WIDTH               : integer := 1;      -- trem/rrem width
00514       C_STRB_WIDTH              : integer := 4       -- tstrb width
00515    );
00516    port (
00517       -----------------------------------------------
00518       -- user design I/O
00519       -----------------------------------------------
00520 
00521       -- AXI TX
00522       -------------
00523       s_axis_tx_tdata         : in std_logic_vector(C_DATA_WIDTH - 1 downto 0) := (others=>'0');
00524       s_axis_tx_tvalid        : in std_logic                                   := '0';
00525       s_axis_tx_tready        : out std_logic                                  := '0';
00526       s_axis_tx_tstrb         : in std_logic_vector(C_STRB_WIDTH - 1 downto 0) := (others=>'0');
00527       s_axis_tx_tlast         : in std_logic                                   := '0';
00528       s_axis_tx_tuser         : in std_logic_vector(3 downto 0) := (others=>'0');
00529 
00530       -- AXI RX
00531       -------------
00532       m_axis_rx_tdata         : out std_logic_vector(C_DATA_WIDTH - 1 downto 0) := (others=>'0');
00533       m_axis_rx_tvalid        : out std_logic                                   := '0';
00534       m_axis_rx_tready        : in std_logic                                    := '0';
00535       m_axis_rx_tstrb         : out std_logic_vector(C_STRB_WIDTH - 1 downto 0) := (others=>'0');
00536       m_axis_rx_tlast         : out std_logic                                   := '0';
00537       m_axis_rx_tuser         : out std_logic_vector(21 downto 0) := (others=>'0');
00538 
00539       -- user misc.
00540       -------------
00541       user_turnoff_ok         : in std_logic                                   := '0';
00542       user_tcfg_gnt           : in std_logic                                   := '0';
00543 
00544       -----------------------------------------------
00545       -- PCIe block I/O
00546       -----------------------------------------------
00547 
00548       -- TRN TX
00549       -------------
00550       trn_td                  : out std_logic_vector(C_DATA_WIDTH - 1 downto 0) := (others=>'0');
00551       trn_tsof                : out std_logic                                   := '0';
00552       trn_teof                : out std_logic                                   := '0';
00553       trn_tsrc_rdy            : out std_logic                                   := '0';
00554       trn_tdst_rdy            : in std_logic                                    := '0';
00555       trn_tsrc_dsc            : out std_logic                                   := '0';
00556       trn_trem                : out std_logic_vector(C_REM_WIDTH - 1 downto 0)  := (others=>'0');
00557       trn_terrfwd             : out std_logic                                   := '0';
00558       trn_tstr                : out std_logic                                   := '0';
00559       trn_tbuf_av             : in std_logic_vector(5 downto 0)                 := (others=>'0');
00560       trn_tecrc_gen           : out std_logic                                   := '0';
00561 
00562       -- TRN RX
00563       -------------
00564       trn_rd                  : in std_logic_vector(C_DATA_WIDTH - 1 downto 0) := (others=>'0');
00565       trn_rsof                : in std_logic                                   := '0';
00566       trn_reof                : in std_logic                                   := '0';
00567       trn_rsrc_rdy            : in std_logic                                   := '0';
00568       trn_rdst_rdy            : out std_logic                                  := '0';
00569       trn_rsrc_dsc            : in std_logic                                   := '0';
00570       trn_rrem                : in std_logic_vector(C_REM_WIDTH - 1 downto 0)  := (others=>'0');
00571       trn_rerrfwd             : in std_logic                                   := '0';
00572       trn_rbar_hit            : in std_logic_vector(6 downto 0)                := (others=>'0');
00573       trn_recrc_err           : in std_logic                                   := '0';
00574 
00575       -- TRN misc.
00576       -------------
00577       trn_tcfg_req            : in std_logic                                   := '0';
00578       trn_tcfg_gnt            : out std_logic                                  := '0';
00579       trn_lnk_up              : in std_logic                                   := '0';
00580 
00581       -- 7 series/Virtex6 PM
00582       -------------
00583       cfg_pcie_link_state     : in std_logic_vector(2 downto 0)                := (others=>'0');
00584 
00585       -- Virtex6 PM
00586       -------------
00587       cfg_pm_send_pme_to      : in std_logic                                   := '0';
00588       cfg_pmcsr_powerstate    : in std_logic_vector(1 downto 0)                := (others=>'0');
00589       trn_rdllp_data          : in std_logic_vector(31 downto 0)               := (others=>'0');
00590       trn_rdllp_src_rdy       : in std_logic                                   := '0';
00591 
00592       -- Virtex6/Spartan6 PM
00593       -------------
00594       cfg_to_turnoff          : in std_logic                                   := '0';
00595       cfg_turnoff_ok          : out std_logic                                  := '0';
00596 
00597       np_counter              : out std_logic_vector(2 downto 0)               := (others=>'0');
00598       user_clk                : in std_logic                                   := '0';
00599       user_rst                : in std_logic                                   := '0'
00600    );
00601    end component;
00602 
00603   component pcie_reset_delay_v6
00604     generic (
00605       PL_FAST_TRAIN : boolean;
00606       REF_CLK_FREQ  : integer);
00607     port (
00608       ref_clk             : in  std_logic;
00609       sys_reset_n         : in  std_logic;
00610       delayed_sys_reset_n : out std_logic);
00611   end component;
00612 
00613   component pcie_clocking_v6
00614     generic (
00615       CAP_LINK_WIDTH : integer;
00616       CAP_LINK_SPEED : integer;
00617       REF_CLK_FREQ   : integer;
00618       USER_CLK_FREQ  : integer);
00619     port (
00620       sys_clk       : in  std_logic;
00621       gt_pll_lock   : in  std_logic;
00622       sel_lnk_rate  : in  std_logic;
00623       sel_lnk_width : in  std_logic_vector(1 downto 0);
00624       sys_clk_bufg  : out std_logic;
00625       pipe_clk      : out std_logic;
00626       user_clk      : out std_logic;
00627       block_clk     : out std_logic;
00628       drp_clk       : out std_logic;
00629       clock_locked  : out std_logic);
00630   end component;
00631 
00632   component pcie_2_0_v6
00633     generic (
00634       REF_CLK_FREQ                             : integer;
00635       PIPE_PIPELINE_STAGES                     : integer;
00636       LINK_CAP_MAX_LINK_WIDTH_int              : integer;
00637       AER_BASE_PTR                             : bit_vector;
00638       AER_CAP_ECRC_CHECK_CAPABLE               : boolean;
00639       AER_CAP_ECRC_GEN_CAPABLE                 : boolean;
00640       AER_CAP_ID                               : bit_vector;
00641       AER_CAP_INT_MSG_NUM_MSI                  : bit_vector;
00642       AER_CAP_INT_MSG_NUM_MSIX                 : bit_vector;
00643       AER_CAP_NEXTPTR                          : bit_vector;
00644       AER_CAP_ON                               : boolean;
00645       AER_CAP_PERMIT_ROOTERR_UPDATE            : boolean;
00646       AER_CAP_VERSION                          : bit_vector;
00647       ALLOW_X8_GEN2                            : boolean;
00648       BAR0                                     : bit_vector;
00649       BAR1                                     : bit_vector;
00650       BAR2                                     : bit_vector;
00651       BAR3                                     : bit_vector;
00652       BAR4                                     : bit_vector;
00653       BAR5                                     : bit_vector;
00654       CAPABILITIES_PTR                         : bit_vector;
00655       CARDBUS_CIS_POINTER                      : bit_vector;
00656       CLASS_CODE                               : bit_vector;
00657       CMD_INTX_IMPLEMENTED                     : boolean;
00658       CPL_TIMEOUT_DISABLE_SUPPORTED            : boolean;
00659       CPL_TIMEOUT_RANGES_SUPPORTED             : bit_vector;
00660       CRM_MODULE_RSTS                          : bit_vector;
00661       DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE      : boolean;
00662       DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE      : boolean;
00663       DEV_CAP_ENDPOINT_L0S_LATENCY             : integer;
00664       DEV_CAP_ENDPOINT_L1_LATENCY              : integer;
00665       DEV_CAP_EXT_TAG_SUPPORTED                : boolean;
00666       DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE     : boolean;
00667       DEV_CAP_MAX_PAYLOAD_SUPPORTED            : integer;
00668       DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT        : integer;
00669       DEV_CAP_ROLE_BASED_ERROR                 : boolean;
00670       DEV_CAP_RSVD_14_12                       : integer;
00671       DEV_CAP_RSVD_17_16                       : integer;
00672       DEV_CAP_RSVD_31_29                       : integer;
00673       DEV_CONTROL_AUX_POWER_SUPPORTED          : boolean;
00674       DEVICE_ID                                : bit_vector;
00675       DISABLE_ASPM_L1_TIMER                    : boolean;
00676       DISABLE_BAR_FILTERING                    : boolean;
00677       DISABLE_ID_CHECK                         : boolean;
00678       DISABLE_LANE_REVERSAL                    : boolean;
00679       DISABLE_RX_TC_FILTER                     : boolean;
00680       DISABLE_SCRAMBLING                       : boolean;
00681       DNSTREAM_LINK_NUM                        : bit_vector;
00682       DSN_BASE_PTR                             : bit_vector;
00683       DSN_CAP_ID                               : bit_vector;
00684       DSN_CAP_NEXTPTR                          : bit_vector;
00685       DSN_CAP_ON                               : boolean;
00686       DSN_CAP_VERSION                          : bit_vector;
00687       ENABLE_MSG_ROUTE                         : bit_vector;
00688       ENABLE_RX_TD_ECRC_TRIM                   : boolean;
00689       ENTER_RVRY_EI_L0                         : boolean;
00690       EXPANSION_ROM                            : bit_vector;
00691       EXT_CFG_CAP_PTR                          : bit_vector;
00692       EXT_CFG_XP_CAP_PTR                       : bit_vector;
00693       HEADER_TYPE                              : bit_vector;
00694       INFER_EI                                 : bit_vector;
00695       INTERRUPT_PIN                            : bit_vector;
00696       IS_SWITCH                                : boolean;
00697       LAST_CONFIG_DWORD                        : bit_vector;
00698       LINK_CAP_ASPM_SUPPORT                    : integer;
00699       LINK_CAP_CLOCK_POWER_MANAGEMENT          : boolean;
00700       LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP   : boolean;
00701       LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1    : integer;
00702       LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2    : integer;
00703       LINK_CAP_L0S_EXIT_LATENCY_GEN1           : integer;
00704       LINK_CAP_L0S_EXIT_LATENCY_GEN2           : integer;
00705       LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1     : integer;
00706       LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2     : integer;
00707       LINK_CAP_L1_EXIT_LATENCY_GEN1            : integer;
00708       LINK_CAP_L1_EXIT_LATENCY_GEN2            : integer;
00709       LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP : boolean;
00710       LINK_CAP_MAX_LINK_SPEED                  : bit_vector;
00711       LINK_CAP_MAX_LINK_WIDTH                  : bit_vector;
00712       LINK_CAP_RSVD_23_22                      : integer;
00713       LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE     : boolean;
00714       LINK_CONTROL_RCB                         : integer;
00715       LINK_CTRL2_DEEMPHASIS                    : boolean;
00716       LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE   : boolean;
00717       LINK_CTRL2_TARGET_LINK_SPEED             : bit_vector;
00718       LINK_STATUS_SLOT_CLOCK_CONFIG            : boolean;
00719       LL_ACK_TIMEOUT                           : bit_vector;
00720       LL_ACK_TIMEOUT_EN                        : boolean;
00721       LL_ACK_TIMEOUT_FUNC                      : integer;
00722       LL_REPLAY_TIMEOUT                        : bit_vector;
00723       LL_REPLAY_TIMEOUT_EN                     : boolean;
00724       LL_REPLAY_TIMEOUT_FUNC                   : integer;
00725       LTSSM_MAX_LINK_WIDTH                     : bit_vector;
00726       MSI_BASE_PTR                             : bit_vector;
00727       MSI_CAP_ID                               : bit_vector;
00728       MSI_CAP_MULTIMSGCAP                      : integer;
00729       MSI_CAP_MULTIMSG_EXTENSION               : integer;
00730       MSI_CAP_NEXTPTR                          : bit_vector;
00731       MSI_CAP_ON                               : boolean;
00732       MSI_CAP_PER_VECTOR_MASKING_CAPABLE       : boolean;
00733       MSI_CAP_64_BIT_ADDR_CAPABLE              : boolean;
00734       MSIX_BASE_PTR                            : bit_vector;
00735       MSIX_CAP_ID                              : bit_vector;
00736       MSIX_CAP_NEXTPTR                         : bit_vector;
00737       MSIX_CAP_ON                              : boolean;
00738       MSIX_CAP_PBA_BIR                         : integer;
00739       MSIX_CAP_PBA_OFFSET                      : bit_vector;
00740       MSIX_CAP_TABLE_BIR                       : integer;
00741       MSIX_CAP_TABLE_OFFSET                    : bit_vector;
00742       MSIX_CAP_TABLE_SIZE                      : bit_vector;
00743       N_FTS_COMCLK_GEN1                        : integer;
00744       N_FTS_COMCLK_GEN2                        : integer;
00745       N_FTS_GEN1                               : integer;
00746       N_FTS_GEN2                               : integer;
00747       PCIE_BASE_PTR                            : bit_vector;
00748       PCIE_CAP_CAPABILITY_ID                   : bit_vector;
00749       PCIE_CAP_CAPABILITY_VERSION              : bit_vector;
00750       PCIE_CAP_DEVICE_PORT_TYPE                : bit_vector;
00751       PCIE_CAP_INT_MSG_NUM                     : bit_vector;
00752       PCIE_CAP_NEXTPTR                         : bit_vector;
00753       PCIE_CAP_ON                              : boolean;
00754       PCIE_CAP_RSVD_15_14                      : integer;
00755       PCIE_CAP_SLOT_IMPLEMENTED                : boolean;
00756       PCIE_REVISION                            : integer;
00757       PGL0_LANE                                : integer;
00758       PGL1_LANE                                : integer;
00759       PGL2_LANE                                : integer;
00760       PGL3_LANE                                : integer;
00761       PGL4_LANE                                : integer;
00762       PGL5_LANE                                : integer;
00763       PGL6_LANE                                : integer;
00764       PGL7_LANE                                : integer;
00765       PL_AUTO_CONFIG                           : integer;
00766       PL_FAST_TRAIN                            : boolean;
00767       PM_BASE_PTR                              : bit_vector;
00768       PM_CAP_AUXCURRENT                        : integer;
00769       PM_CAP_DSI                               : boolean;
00770       PM_CAP_D1SUPPORT                         : boolean;
00771       PM_CAP_D2SUPPORT                         : boolean;
00772       PM_CAP_ID                                : bit_vector;
00773       PM_CAP_NEXTPTR                           : bit_vector;
00774       PM_CAP_ON                                : boolean;
00775       PM_CAP_PME_CLOCK                         : boolean;
00776       PM_CAP_PMESUPPORT                        : bit_vector;
00777       PM_CAP_RSVD_04                           : integer;
00778       PM_CAP_VERSION                           : integer;
00779       PM_CSR_BPCCEN                            : boolean;
00780       PM_CSR_B2B3                              : boolean;
00781       PM_CSR_NOSOFTRST                         : boolean;
00782       PM_DATA0                                 : bit_vector;
00783       PM_DATA1                                 : bit_vector;
00784       PM_DATA2                                 : bit_vector;
00785       PM_DATA3                                 : bit_vector;
00786       PM_DATA4                                 : bit_vector;
00787       PM_DATA5                                 : bit_vector;
00788       PM_DATA6                                 : bit_vector;
00789       PM_DATA7                                 : bit_vector;
00790       PM_DATA_SCALE0                           : bit_vector;
00791       PM_DATA_SCALE1                           : bit_vector;
00792       PM_DATA_SCALE2                           : bit_vector;
00793       PM_DATA_SCALE3                           : bit_vector;
00794       PM_DATA_SCALE4                           : bit_vector;
00795       PM_DATA_SCALE5                           : bit_vector;
00796       PM_DATA_SCALE6                           : bit_vector;
00797       PM_DATA_SCALE7                           : bit_vector;
00798       RECRC_CHK                                : integer;
00799       RECRC_CHK_TRIM                           : boolean;
00800       REVISION_ID                              : bit_vector;
00801       ROOT_CAP_CRS_SW_VISIBILITY               : boolean;
00802       SELECT_DLL_IF                            : boolean;
00803       SLOT_CAP_ATT_BUTTON_PRESENT              : boolean;
00804       SLOT_CAP_ATT_INDICATOR_PRESENT           : boolean;
00805       SLOT_CAP_ELEC_INTERLOCK_PRESENT          : boolean;
00806       SLOT_CAP_HOTPLUG_CAPABLE                 : boolean;
00807       SLOT_CAP_HOTPLUG_SURPRISE                : boolean;
00808       SLOT_CAP_MRL_SENSOR_PRESENT              : boolean;
00809       SLOT_CAP_NO_CMD_COMPLETED_SUPPORT        : boolean;
00810       SLOT_CAP_PHYSICAL_SLOT_NUM               : bit_vector;
00811       SLOT_CAP_POWER_CONTROLLER_PRESENT        : boolean;
00812       SLOT_CAP_POWER_INDICATOR_PRESENT         : boolean;
00813       SLOT_CAP_SLOT_POWER_LIMIT_SCALE          : integer;
00814       SLOT_CAP_SLOT_POWER_LIMIT_VALUE          : bit_vector;
00815       SPARE_BIT0                               : integer;
00816       SPARE_BIT1                               : integer;
00817       SPARE_BIT2                               : integer;
00818       SPARE_BIT3                               : integer;
00819       SPARE_BIT4                               : integer;
00820       SPARE_BIT5                               : integer;
00821       SPARE_BIT6                               : integer;
00822       SPARE_BIT7                               : integer;
00823       SPARE_BIT8                               : integer;
00824       SPARE_BYTE0                              : bit_vector;
00825       SPARE_BYTE1                              : bit_vector;
00826       SPARE_BYTE2                              : bit_vector;
00827       SPARE_BYTE3                              : bit_vector;
00828       SPARE_WORD0                              : bit_vector;
00829       SPARE_WORD1                              : bit_vector;
00830       SPARE_WORD2                              : bit_vector;
00831       SPARE_WORD3                              : bit_vector;
00832       SUBSYSTEM_ID                             : bit_vector;
00833       SUBSYSTEM_VENDOR_ID                      : bit_vector;
00834       TL_RBYPASS                               : boolean;
00835       TL_RX_RAM_RADDR_LATENCY                  : integer;
00836       TL_RX_RAM_RDATA_LATENCY                  : integer;
00837       TL_RX_RAM_WRITE_LATENCY                  : integer;
00838       TL_TFC_DISABLE                           : boolean;
00839       TL_TX_CHECKS_DISABLE                     : boolean;
00840       TL_TX_RAM_RADDR_LATENCY                  : integer;
00841       TL_TX_RAM_RDATA_LATENCY                  : integer;
00842       TL_TX_RAM_WRITE_LATENCY                  : integer;
00843       UPCONFIG_CAPABLE                         : boolean;
00844       UPSTREAM_FACING                          : boolean;
00845       UR_INV_REQ                               : boolean;
00846       USER_CLK_FREQ                            : integer;
00847       EXIT_LOOPBACK_ON_EI                      : boolean;
00848       VC_BASE_PTR                              : bit_vector;
00849       VC_CAP_ID                                : bit_vector;
00850       VC_CAP_NEXTPTR                           : bit_vector;
00851       VC_CAP_ON                                : boolean;
00852       VC_CAP_REJECT_SNOOP_TRANSACTIONS         : boolean;
00853       VC_CAP_VERSION                           : bit_vector;
00854       VC0_CPL_INFINITE                         : boolean;
00855       VC0_RX_RAM_LIMIT                         : bit_vector;
00856       VC0_TOTAL_CREDITS_CD                     : integer;
00857       VC0_TOTAL_CREDITS_CH                     : integer;
00858       VC0_TOTAL_CREDITS_NPH                    : integer;
00859       VC0_TOTAL_CREDITS_PD                     : integer;
00860       VC0_TOTAL_CREDITS_PH                     : integer;
00861       VC0_TX_LASTPACKET                        : integer;
00862       VENDOR_ID                                : bit_vector;
00863       VSEC_BASE_PTR                            : bit_vector;
00864       VSEC_CAP_HDR_ID                          : bit_vector;
00865       VSEC_CAP_HDR_LENGTH                      : bit_vector;
00866       VSEC_CAP_HDR_REVISION                    : bit_vector;
00867       VSEC_CAP_ID                              : bit_vector;
00868       VSEC_CAP_IS_LINK_VISIBLE                 : boolean;
00869       VSEC_CAP_NEXTPTR                         : bit_vector;
00870       VSEC_CAP_ON                              : boolean;
00871       VSEC_CAP_VERSION                         : bit_vector);
00872     port (
00873       PCIEXPRXN                           : in  std_logic_vector(3 downto 0);
00874       PCIEXPRXP                           : in  std_logic_vector(3 downto 0);
00875       PCIEXPTXN                           : out std_logic_vector(3 downto 0);
00876       PCIEXPTXP                           : out std_logic_vector(3 downto 0);
00877       SYSCLK                              : in  std_logic;
00878       FUNDRSTN                            : in  std_logic;
00879       TRNLNKUPN                           : out std_logic;
00880       PHYRDYN                             : out std_logic;
00881       USERRSTN                            : out std_logic;
00882       RECEIVEDFUNCLVLRSTN                 : out std_logic;
00883       LNKCLKEN                            : out std_logic;
00884       SYSRSTN                             : in  std_logic;
00885       PLRSTN                              : in  std_logic;
00886       DLRSTN                              : in  std_logic;
00887       TLRSTN                              : in  std_logic;
00888       FUNCLVLRSTN                         : in  std_logic;
00889       CMRSTN                              : in  std_logic;
00890       CMSTICKYRSTN                        : in  std_logic;
00891       TRNRBARHITN                         : out std_logic_vector(6 downto 0);
00892       TRNRD                               : out std_logic_vector(63 downto 0);
00893       TRNRECRCERRN                        : out std_logic;
00894       TRNREOFN                            : out std_logic;
00895       TRNRERRFWDN                         : out std_logic;
00896       TRNRREMN                            : out std_logic;
00897       TRNRSOFN                            : out std_logic;
00898       TRNRSRCDSCN                         : out std_logic;
00899       TRNRSRCRDYN                         : out std_logic;
00900       TRNRDSTRDYN                         : in  std_logic;
00901       TRNRNPOKN                           : in  std_logic;
00902       TRNRDLLPDATA                        : out std_logic_vector(31 downto 0);
00903       TRNRDLLPSRCRDYN                     : out std_logic;
00904       TRNTBUFAV                           : out std_logic_vector(5 downto 0);
00905       TRNTCFGREQN                         : out std_logic;
00906       TRNTDLLPDSTRDYN                     : out std_logic;
00907       TRNTDSTRDYN                         : out std_logic;
00908       TRNTERRDROPN                        : out std_logic;
00909       TRNTCFGGNTN                         : in  std_logic;
00910       TRNTD                               : in  std_logic_vector(63 downto 0);
00911       TRNTDLLPDATA                        : in  std_logic_vector(31 downto 0);
00912       TRNTDLLPSRCRDYN                     : in  std_logic;
00913       TRNTECRCGENN                        : in  std_logic;
00914       TRNTEOFN                            : in  std_logic;
00915       TRNTERRFWDN                         : in  std_logic;
00916       TRNTREMN                            : in  std_logic;
00917       TRNTSOFN                            : in  std_logic;
00918       TRNTSRCDSCN                         : in  std_logic;
00919       TRNTSRCRDYN                         : in  std_logic;
00920       TRNTSTRN                            : in  std_logic;
00921       TRNFCCPLD                           : out std_logic_vector(11 downto 0);
00922       TRNFCCPLH                           : out std_logic_vector(7 downto 0);
00923       TRNFCNPD                            : out std_logic_vector(11 downto 0);
00924       TRNFCNPH                            : out std_logic_vector(7 downto 0);
00925       TRNFCPD                             : out std_logic_vector(11 downto 0);
00926       TRNFCPH                             : out std_logic_vector(7 downto 0);
00927       TRNFCSEL                            : in  std_logic_vector(2 downto 0);
00928       CFGAERECRCCHECKEN                   : out std_logic;
00929       CFGAERECRCGENEN                     : out std_logic;
00930       CFGCOMMANDBUSMASTERENABLE           : out std_logic;
00931       CFGCOMMANDINTERRUPTDISABLE          : out std_logic;
00932       CFGCOMMANDIOENABLE                  : out std_logic;
00933       CFGCOMMANDMEMENABLE                 : out std_logic;
00934       CFGCOMMANDSERREN                    : out std_logic;
00935       CFGDEVCONTROLAUXPOWEREN             : out std_logic;
00936       CFGDEVCONTROLCORRERRREPORTINGEN     : out std_logic;
00937       CFGDEVCONTROLENABLERO               : out std_logic;
00938       CFGDEVCONTROLEXTTAGEN               : out std_logic;
00939       CFGDEVCONTROLFATALERRREPORTINGEN    : out std_logic;
00940       CFGDEVCONTROLMAXPAYLOAD             : out std_logic_vector(2 downto 0);
00941       CFGDEVCONTROLMAXREADREQ             : out std_logic_vector(2 downto 0);
00942       CFGDEVCONTROLNONFATALREPORTINGEN    : out std_logic;
00943       CFGDEVCONTROLNOSNOOPEN              : out std_logic;
00944       CFGDEVCONTROLPHANTOMEN              : out std_logic;
00945       CFGDEVCONTROLURERRREPORTINGEN       : out std_logic;
00946       CFGDEVCONTROL2CPLTIMEOUTDIS         : out std_logic;
00947       CFGDEVCONTROL2CPLTIMEOUTVAL         : out std_logic_vector(3 downto 0);
00948       CFGDEVSTATUSCORRERRDETECTED         : out std_logic;
00949       CFGDEVSTATUSFATALERRDETECTED        : out std_logic;
00950       CFGDEVSTATUSNONFATALERRDETECTED     : out std_logic;
00951       CFGDEVSTATUSURDETECTED              : out std_logic;
00952       CFGDO                               : out std_logic_vector(31 downto 0);
00953       CFGERRAERHEADERLOGSETN              : out std_logic;
00954       CFGERRCPLRDYN                       : out std_logic;
00955       CFGINTERRUPTDO                      : out std_logic_vector(7 downto 0);
00956       CFGINTERRUPTMMENABLE                : out std_logic_vector(2 downto 0);
00957       CFGINTERRUPTMSIENABLE               : out std_logic;
00958       CFGINTERRUPTMSIXENABLE              : out std_logic;
00959       CFGINTERRUPTMSIXFM                  : out std_logic;
00960       CFGINTERRUPTRDYN                    : out std_logic;
00961       CFGLINKCONTROLRCB                   : out std_logic;
00962       CFGLINKCONTROLASPMCONTROL           : out std_logic_vector(1 downto 0);
00963       CFGLINKCONTROLAUTOBANDWIDTHINTEN    : out std_logic;
00964       CFGLINKCONTROLBANDWIDTHINTEN        : out std_logic;
00965       CFGLINKCONTROLCLOCKPMEN             : out std_logic;
00966       CFGLINKCONTROLCOMMONCLOCK           : out std_logic;
00967       CFGLINKCONTROLEXTENDEDSYNC          : out std_logic;
00968       CFGLINKCONTROLHWAUTOWIDTHDIS        : out std_logic;
00969       CFGLINKCONTROLLINKDISABLE           : out std_logic;
00970       CFGLINKCONTROLRETRAINLINK           : out std_logic;
00971       CFGLINKSTATUSAUTOBANDWIDTHSTATUS    : out std_logic;
00972       CFGLINKSTATUSBANDWITHSTATUS         : out std_logic;
00973       CFGLINKSTATUSCURRENTSPEED           : out std_logic_vector(1 downto 0);
00974       CFGLINKSTATUSDLLACTIVE              : out std_logic;
00975       CFGLINKSTATUSLINKTRAINING           : out std_logic;
00976       CFGLINKSTATUSNEGOTIATEDWIDTH        : out std_logic_vector(3 downto 0);
00977       CFGMSGDATA                          : out std_logic_vector(15 downto 0);
00978       CFGMSGRECEIVED                      : out std_logic;
00979       CFGMSGRECEIVEDASSERTINTA            : out std_logic;
00980       CFGMSGRECEIVEDASSERTINTB            : out std_logic;
00981       CFGMSGRECEIVEDASSERTINTC            : out std_logic;
00982       CFGMSGRECEIVEDASSERTINTD            : out std_logic;
00983       CFGMSGRECEIVEDDEASSERTINTA          : out std_logic;
00984       CFGMSGRECEIVEDDEASSERTINTB          : out std_logic;
00985       CFGMSGRECEIVEDDEASSERTINTC          : out std_logic;
00986       CFGMSGRECEIVEDDEASSERTINTD          : out std_logic;
00987       CFGMSGRECEIVEDERRCOR                : out std_logic;
00988       CFGMSGRECEIVEDERRFATAL              : out std_logic;
00989       CFGMSGRECEIVEDERRNONFATAL           : out std_logic;
00990       CFGMSGRECEIVEDPMASNAK               : out std_logic;
00991       CFGMSGRECEIVEDPMETO                 : out std_logic;
00992       CFGMSGRECEIVEDPMETOACK              : out std_logic;
00993       CFGMSGRECEIVEDPMPME                 : out std_logic;
00994       CFGMSGRECEIVEDSETSLOTPOWERLIMIT     : out std_logic;
00995       CFGMSGRECEIVEDUNLOCK                : out std_logic;
00996       CFGPCIELINKSTATE                    : out std_logic_vector(2 downto 0);
00997       CFGPMCSRPMEEN                       : out std_logic;
00998       CFGPMCSRPMESTATUS                   : out std_logic;
00999       CFGPMCSRPOWERSTATE                  : out std_logic_vector(1 downto 0);
01000       CFGPMRCVASREQL1N                    : out std_logic;
01001       CFGPMRCVENTERL1N                    : out std_logic;
01002       CFGPMRCVENTERL23N                   : out std_logic;
01003       CFGPMRCVREQACKN                     : out std_logic;
01004       CFGRDWRDONEN                        : out std_logic;
01005       CFGSLOTCONTROLELECTROMECHILCTLPULSE : out std_logic;
01006       CFGTRANSACTION                      : out std_logic;
01007       CFGTRANSACTIONADDR                  : out std_logic_vector(6 downto 0);
01008       CFGTRANSACTIONTYPE                  : out std_logic;
01009       CFGVCTCVCMAP                        : out std_logic_vector(6 downto 0);
01010       CFGBYTEENN                          : in  std_logic_vector(3 downto 0);
01011       CFGDI                               : in  std_logic_vector(31 downto 0);
01012       CFGDSBUSNUMBER                      : in  std_logic_vector(7 downto 0);
01013       CFGDSDEVICENUMBER                   : in  std_logic_vector(4 downto 0);
01014       CFGDSFUNCTIONNUMBER                 : in  std_logic_vector(2 downto 0);
01015       CFGDSN                              : in  std_logic_vector(63 downto 0);
01016       CFGDWADDR                           : in  std_logic_vector(9 downto 0);
01017       CFGERRACSN                          : in  std_logic;
01018       CFGERRAERHEADERLOG                  : in  std_logic_vector(127 downto 0);
01019       CFGERRCORN                          : in  std_logic;
01020       CFGERRCPLABORTN                     : in  std_logic;
01021       CFGERRCPLTIMEOUTN                   : in  std_logic;
01022       CFGERRCPLUNEXPECTN                  : in  std_logic;
01023       CFGERRECRCN                         : in  std_logic;
01024       CFGERRLOCKEDN                       : in  std_logic;
01025       CFGERRPOSTEDN                       : in  std_logic;
01026       CFGERRTLPCPLHEADER                  : in  std_logic_vector(47 downto 0);
01027       CFGERRURN                           : in  std_logic;
01028       CFGINTERRUPTASSERTN                 : in  std_logic;
01029       CFGINTERRUPTDI                      : in  std_logic_vector(7 downto 0);
01030       CFGINTERRUPTN                       : in  std_logic;
01031       CFGPMDIRECTASPML1N                  : in  std_logic;
01032       CFGPMSENDPMACKN                     : in  std_logic;
01033       CFGPMSENDPMETON                     : in  std_logic;
01034       CFGPMSENDPMNAKN                     : in  std_logic;
01035       CFGPMTURNOFFOKN                     : in  std_logic;
01036       CFGPMWAKEN                          : in  std_logic;
01037       CFGPORTNUMBER                       : in  std_logic_vector(7 downto 0);
01038       CFGRDENN                            : in  std_logic;
01039       CFGTRNPENDINGN                      : in  std_logic;
01040       CFGWRENN                            : in  std_logic;
01041       CFGWRREADONLYN                      : in  std_logic;
01042       CFGWRRW1CASRWN                      : in  std_logic;
01043       PLINITIALLINKWIDTH                  : out std_logic_vector(2 downto 0);
01044       PLLANEREVERSALMODE                  : out std_logic_vector(1 downto 0);
01045       PLLINKGEN2CAP                       : out std_logic;
01046       PLLINKPARTNERGEN2SUPPORTED          : out std_logic;
01047       PLLINKUPCFGCAP                      : out std_logic;
01048       PLLTSSMSTATE                        : out std_logic_vector(5 downto 0);
01049       PLPHYLNKUPN                         : out std_logic;
01050       PLRECEIVEDHOTRST                    : out std_logic;
01051       PLRXPMSTATE                         : out std_logic_vector(1 downto 0);
01052       PLSELLNKRATE                        : out std_logic;
01053       PLSELLNKWIDTH                       : out std_logic_vector(1 downto 0);
01054       PLTXPMSTATE                         : out std_logic_vector(2 downto 0);
01055       PLDIRECTEDLINKAUTON                 : in  std_logic;
01056       PLDIRECTEDLINKCHANGE                : in  std_logic_vector(1 downto 0);
01057       PLDIRECTEDLINKSPEED                 : in  std_logic;
01058       PLDIRECTEDLINKWIDTH                 : in  std_logic_vector(1 downto 0);
01059       PLDOWNSTREAMDEEMPHSOURCE            : in  std_logic;
01060       PLUPSTREAMPREFERDEEMPH              : in  std_logic;
01061       PLTRANSMITHOTRST                    : in  std_logic;
01062       DBGSCLRA                            : out std_logic;
01063       DBGSCLRB                            : out std_logic;
01064       DBGSCLRC                            : out std_logic;
01065       DBGSCLRD                            : out std_logic;
01066       DBGSCLRE                            : out std_logic;
01067       DBGSCLRF                            : out std_logic;
01068       DBGSCLRG                            : out std_logic;
01069       DBGSCLRH                            : out std_logic;
01070       DBGSCLRI                            : out std_logic;
01071       DBGSCLRJ                            : out std_logic;
01072       DBGSCLRK                            : out std_logic;
01073       DBGVECA                             : out std_logic_vector(63 downto 0);
01074       DBGVECB                             : out std_logic_vector(63 downto 0);
01075       DBGVECC                             : out std_logic_vector(11 downto 0);
01076       PLDBGVEC                            : out std_logic_vector(11 downto 0);
01077       DBGMODE                             : in  std_logic_vector(1 downto 0);
01078       DBGSUBMODE                          : in  std_logic;
01079       PLDBGMODE                           : in  std_logic_vector(2 downto 0);
01080       PCIEDRPDO                           : out std_logic_vector(15 downto 0);
01081       PCIEDRPDRDY                         : out std_logic;
01082       PCIEDRPCLK                          : in  std_logic;
01083       PCIEDRPDADDR                        : in  std_logic_vector(8 downto 0);
01084       PCIEDRPDEN                          : in  std_logic;
01085       PCIEDRPDI                           : in  std_logic_vector(15 downto 0);
01086       PCIEDRPDWE                          : in  std_logic;
01087       GTPLLLOCK                           : out std_logic;
01088       PIPECLK                             : in  std_logic;
01089       USERCLK                             : in  std_logic;
01090       DRPCLK                              : in  std_logic;
01091       CLOCKLOCKED                         : in  std_logic;
01092       TxOutClk                            : out std_logic);
01093    end component;
01094 
01095    function to_integer (
01096       val_in    : bit_vector) return integer is
01097 
01098       constant vctr   : bit_vector(val_in'high-val_in'low downto 0) := val_in;
01099       variable ret    : integer := 0;
01100    begin
01101       for index in vctr'range loop
01102          if (vctr(index) = '1') then
01103             ret := ret + (2**index);
01104          end if;
01105       end loop;
01106       return(ret);
01107    end to_integer;
01108 
01109    function to_stdlogic (
01110       in_val      : in boolean) return std_logic is
01111    begin
01112       if (in_val) then
01113          return('1');
01114       else
01115          return('0');
01116       end if;
01117    end to_stdlogic;
01118 
01119    function pad_gen (
01120       in_vec   : bit_vector;
01121       op_len   : integer)
01122       return bit_vector is
01123       variable ret : bit_vector(op_len-1 downto 0) := (others => '0');
01124       constant len : integer := in_vec'length;  -- length of input vector
01125    begin  -- pad_gen
01126       for i in 0 to op_len-1 loop
01127          if (i < len) then
01128             ret(i) := in_vec(len-i-1);
01129          else
01130             ret(i) := '0';
01131          end if;
01132       end loop;  -- i
01133       return ret;
01134    end pad_gen;
01135 
01136    constant LINK_CAP_MAX_LINK_SPEED_int : integer := to_integer(LINK_CAP_MAX_LINK_SPEED);
01137 
01138    signal rx_func_level_reset_n                       : std_logic;
01139    signal cfg_msg_received                            : std_logic;
01140    signal cfg_msg_received_pme_to                     : std_logic;
01141 
01142    signal cfg_cmd_bme                                 : std_logic;
01143    signal cfg_cmd_intdis                              : std_logic;
01144    signal cfg_cmd_io_en                               : std_logic;
01145    signal cfg_cmd_mem_en                              : std_logic;
01146    signal cfg_cmd_serr_en                             : std_logic;
01147    signal cfg_dev_control_aux_power_en                : std_logic;
01148    signal cfg_dev_control_corr_err_reporting_en       : std_logic;
01149    signal cfg_dev_control_enable_relaxed_order        : std_logic;
01150    signal cfg_dev_control_ext_tag_en                  : std_logic;
01151    signal cfg_dev_control_fatal_err_reporting_en      : std_logic;
01152    signal cfg_dev_control_maxpayload                  : std_logic_vector(2 downto 0);
01153    signal cfg_dev_control_max_read_req                : std_logic_vector(2 downto 0);
01154    signal cfg_dev_control_non_fatal_reporting_en      : std_logic;
01155    signal cfg_dev_control_nosnoop_en                  : std_logic;
01156    signal cfg_dev_control_phantom_en                  : std_logic;
01157    signal cfg_dev_control_ur_err_reporting_en         : std_logic;
01158    signal cfg_dev_control2_cpltimeout_dis             : std_logic;
01159    signal cfg_dev_control2_cpltimeout_val             : std_logic_vector(3 downto 0);
01160    signal cfg_dev_status_corr_err_detected            : std_logic;
01161    signal cfg_dev_status_fatal_err_detected           : std_logic;
01162    signal cfg_dev_status_nonfatal_err_detected        : std_logic;
01163    signal cfg_dev_status_ur_detected                  : std_logic;
01164    signal cfg_link_control_auto_bandwidth_int_en      : std_logic;
01165    signal cfg_link_control_bandwidth_int_en           : std_logic;
01166    signal cfg_link_control_hw_auto_width_dis          : std_logic;
01167    signal cfg_link_control_clock_pm_en                : std_logic;
01168    signal cfg_link_control_extended_sync              : std_logic;
01169    signal cfg_link_control_common_clock               : std_logic;
01170    signal cfg_link_control_retrain_link               : std_logic;
01171    signal cfg_link_control_linkdisable                : std_logic;
01172    signal cfg_link_control_rcb                        : std_logic;
01173    signal cfg_link_control_aspm_control               : std_logic_vector(1 downto 0);
01174    signal cfg_link_status_autobandwidth_status        : std_logic;
01175    signal cfg_link_status_bandwidth_status            : std_logic;
01176    signal cfg_link_status_dll_active                  : std_logic;
01177    signal cfg_link_status_link_training               : std_logic;
01178    signal cfg_link_status_negotiated_link_width       : std_logic_vector(3 downto 0);
01179    signal cfg_link_status_current_speed               : std_logic_vector(1 downto 0);
01180    signal cfg_msg_data                                : std_logic_vector(15 downto 0);
01181 
01182    signal sys_reset_n                                 : std_logic;
01183    signal sys_reset_n_d                               : std_logic;
01184    signal phy_rdy_n                                   : std_logic;
01185 
01186    signal TxOutClk                                    : std_logic;
01187    signal TxOutClk_bufg                               : std_logic;
01188 
01189    signal cfg_bus_number_d                            : std_logic_vector(7 downto 0);
01190    signal cfg_device_number_d                         : std_logic_vector(4 downto 0);
01191    signal cfg_function_number_d                       : std_logic_vector(2 downto 0);
01192 
01193    signal trn_rdllp_data                              : std_logic_vector(31 downto 0);
01194    signal trn_rdllp_src_rdy_n                         : std_logic;
01195    signal trn_rdllp_src_rdy                           : std_logic;
01196 
01197    -- assigns to outputs
01198 
01199    signal gt_pll_lock                                 : std_logic;
01200 
01201    signal pipe_clk                                    : std_logic;
01202    signal user_clk                                    : std_logic;
01203    signal clock_locked                                : std_logic;
01204    signal phy_rdy                                     : std_logic;
01205 
01206    signal drp_clk                                     : std_logic;
01207 
01208    signal trn_reset_n_d                               : std_logic;
01209    signal sys_reset_d                                 : std_logic;
01210    signal trn_reset_n                                 : std_logic;
01211    signal trn_reset_n_int1                            : std_logic;
01212    signal trn_reset_n_1_d                             : std_logic;
01213    signal trn_lnk_up_n                                : std_logic;
01214    signal trn_lnk_up_n_1                              : std_logic;
01215    signal user_reset_out_int                          : std_logic;
01216    signal user_lnk_up_int                             : std_logic;
01217    signal user_lnk_up_d                               : std_logic;
01218    signal tx_cfg_req_int                              : std_logic;
01219    signal cfg_pcie_link_state_int                     : std_logic_vector(2 downto 0);
01220    signal cfg_pmcsr_powerstate_int                    : std_logic_vector(1 downto 0);
01221    signal cfg_to_turnoff_int                          : std_logic;
01222 
01223    -- Declare intermediate signals for referenced outputs
01224    signal trn_tcfg_req_n                              : std_logic;
01225    signal trn_tcfg_gnt_n                              : std_logic;
01226    signal trn_tcfg_gnt                                : std_logic;
01227    signal trn_terr_drop_n                             : std_logic;
01228    signal trn_rdst_rdy_n                              : std_logic;
01229    signal trn_rnp_ok_n                                : std_logic;
01230    signal trn_tdst_rdy_n                              : std_logic;
01231 --   signal trn_tdst_rdy                                : std_logic;
01232 --   signal trn_rd                                      : std_logic_vector(63 downto 0);
01233    signal trn_rrem_n                                  : std_logic;
01234 --   signal trn_rrem                                    : std_logic_vector(0 downto 0);
01235 --   signal trn_td                                      : std_logic_vector(63 downto 0);
01236    signal trn_trem_n                                  : std_logic;
01237 --   signal trn_trem                                    : std_logic_vector(0 downto 0);
01238    signal trn_rsof_n                                  : std_logic;
01239    signal trn_reof_n                                  : std_logic;
01240    signal trn_rsrc_rdy_n                              : std_logic;
01241    signal trn_rsrc_dsc_n                              : std_logic;
01242    signal trn_rerrfwd_n                               : std_logic;
01243    signal trn_rbar_hit_n                              : std_logic_vector(6 downto 0);
01244    signal trn_recrc_err_n                             : std_logic;
01245 --   signal trn_rsof                                    : std_logic;
01246 --   signal trn_reof                                    : std_logic;
01247 --   signal trn_rsrc_rdy                                : std_logic;
01248 --   signal trn_rdst_rdy                                : std_logic;
01249 --   signal trn_rsrc_dsc                                : std_logic;
01250 --   signal trn_rerrfwd                                 : std_logic;
01251 --   signal trn_rbar_hit                                : std_logic_vector(6 downto 0);
01252 --   signal trn_recrc_err                               : std_logic;
01253    signal trn_tsof_n                                  : std_logic;
01254    signal trn_teof_n                                  : std_logic;
01255    signal trn_tsrc_rdy_n                              : std_logic;
01256    signal trn_tsrc_dsc_n                              : std_logic;
01257    signal trn_terrfwd_n                               : std_logic;
01258    signal trn_tstr_n                                  : std_logic;
01259 --   signal trn_tecrc_gen                               : std_logic;
01260 --   signal trn_tsof                                    : std_logic;
01261 --   signal trn_teof                                    : std_logic;
01262 --   signal trn_tsrc_rdy                                : std_logic;
01263 --   signal trn_tsrc_dsc                                : std_logic;
01264 --   signal trn_terrfwd                                 : std_logic;
01265 --   signal trn_tstr                                    : std_logic;
01266    signal cfg_rd_wr_done_n                            : std_logic;
01267    signal cfg_err_cpl_rdy_n                           : std_logic;
01268    signal cfg_interrupt_rdy_n                         : std_logic;
01269    signal cfg_byte_en_n                               : std_logic_vector(3 downto 0);
01270    signal cfg_err_cor_n                               : std_logic;
01271    signal cfg_err_cpl_abort_n                         : std_logic;
01272    signal cfg_err_cpl_timeout_n                       : std_logic;
01273    signal cfg_err_cpl_unexpect_n                      : std_logic;
01274    signal cfg_err_ecrc_n                              : std_logic;
01275    signal cfg_err_locked_n                            : std_logic;
01276    signal cfg_err_posted_n                            : std_logic;
01277    signal cfg_err_ur_n                                : std_logic;
01278    signal cfg_interrupt_assert_n                      : std_logic;
01279    signal cfg_interrupt_n                             : std_logic;
01280    signal cfg_turnoff_ok_n                            : std_logic;
01281    signal cfg_turnoff_ok_axi                          : std_logic;
01282    signal cfg_pm_wake_n                               : std_logic;
01283    signal cfg_rd_en_n                                 : std_logic;
01284    signal cfg_trn_pending_n                           : std_logic;
01285    signal cfg_wr_en_n                                 : std_logic;
01286    signal tx_buf_av_int                               : std_logic_vector(5 downto 0);
01287 
01288    signal pl_sel_link_rate_int                        : std_logic;
01289    signal pl_sel_link_width_int                       : std_logic_vector(1 downto 0);
01290 
01291    signal LINK_STATUS_SLOT_CLOCK_CONFIG_lstatus       : std_logic;
01292 
01293 begin
01294    -- Drive referenced outputs
01295    user_clk_out           <= user_clk;
01296    user_reset_out         <= user_reset_out_int;
01297    user_lnk_up            <= user_lnk_up_int;
01298    pl_sel_link_rate       <= pl_sel_link_rate_int;
01299    pl_sel_link_width      <= pl_sel_link_width_int;
01300    tx_buf_av              <= tx_buf_av_int;
01301    tx_cfg_req_int         <= not(trn_tcfg_req_n);
01302    tx_cfg_req             <= tx_cfg_req_int;
01303    cfg_pcie_link_state    <= cfg_pcie_link_state_int;
01304    cfg_pmcsr_powerstate   <= cfg_pmcsr_powerstate_int;
01305    cfg_to_turnoff_int     <= cfg_msg_received_pme_to;
01306    cfg_to_turnoff         <= cfg_to_turnoff_int;
01307 
01308    -- Invert outputs
01309    tx_err_drop            <= not(trn_terr_drop_n);
01310    cfg_rd_wr_done         <= not(cfg_rd_wr_done_n);
01311    cfg_err_cpl_rdy        <= not(cfg_err_cpl_rdy_n);
01312    cfg_interrupt_rdy      <= not(cfg_interrupt_rdy_n);
01313    trn_tdst_rdy           <= not(trn_tdst_rdy_n);
01314    trn_rsof               <= not(trn_rsof_n);
01315    trn_reof               <= not(trn_reof_n);
01316    trn_rrem(0)            <= not(trn_rrem_n);
01317    trn_rsrc_rdy           <= not(trn_rsrc_rdy_n);
01318    trn_rsrc_dsc           <= not(trn_rsrc_dsc_n);
01319    trn_rerrfwd            <= not(trn_rerrfwd_n);
01320    trn_rbar_hit           <= not(trn_rbar_hit_n);
01321    trn_recrc_err          <= not(trn_recrc_err_n);
01322    trn_rdllp_src_rdy      <= not(trn_rdllp_src_rdy_n);
01323 
01324    -- Invert inputs
01325    cfg_byte_en_n          <= not(cfg_byte_en);
01326    cfg_err_cor_n          <= not(cfg_err_cor);
01327    cfg_err_cpl_abort_n    <= not(cfg_err_cpl_abort);
01328    cfg_err_cpl_timeout_n  <= not(cfg_err_cpl_timeout);
01329    cfg_err_cpl_unexpect_n <= not(cfg_err_cpl_unexpect);
01330    cfg_err_ecrc_n         <= not(cfg_err_ecrc);
01331    cfg_err_locked_n       <= not(cfg_err_locked);
01332    cfg_err_posted_n       <= not(cfg_err_posted);
01333    cfg_err_ur_n           <= not(cfg_err_ur);
01334    cfg_interrupt_assert_n <= not(cfg_interrupt_assert);
01335    cfg_interrupt_n        <= not(cfg_interrupt);
01336    cfg_turnoff_ok_n       <= not(cfg_turnoff_ok_axi);
01337    cfg_pm_wake_n          <= not(cfg_pm_wake);
01338    cfg_rd_en_n            <= not(cfg_rd_en);
01339    cfg_trn_pending_n      <= not(cfg_trn_pending);
01340    cfg_wr_en_n            <= not(cfg_wr_en);
01341    trn_tcfg_gnt_n         <= not(trn_tcfg_gnt);
01342    trn_rdst_rdy_n         <= not(trn_rdst_rdy);
01343    trn_rnp_ok_n           <= not(rx_np_ok);
01344    trn_tsof_n             <= not(trn_tsof);
01345    trn_teof_n             <= not(trn_teof);
01346    trn_tsrc_rdy_n         <= not(trn_tsrc_rdy);
01347    trn_tsrc_dsc_n         <= not(trn_tsrc_dsc);
01348    trn_terrfwd_n          <= not(trn_terrfwd);
01349    trn_trem_n             <= not(trn_trem(0));
01350    trn_tstr_n             <= not(trn_tstr);
01351 
01352    LINK_STATUS_SLOT_CLOCK_CONFIG_lstatus <= '1' when (LINK_STATUS_SLOT_CLOCK_CONFIG) else '0';
01353 
01354    -- Calculated/concatenated oututs
01355    cfg_status             <= "0000000000000000";
01356    cfg_command            <= ("00000" &
01357                               cfg_cmd_intdis &
01358                               '0' &
01359                               cfg_cmd_serr_en &
01360                               "00000" &
01361                               cfg_cmd_bme &
01362                               cfg_cmd_mem_en &
01363                               cfg_cmd_io_en);
01364    cfg_dstatus            <= ("0000000000" &
01365                               not(cfg_trn_pending_n) &
01366                               '0' &
01367                               cfg_dev_status_ur_detected &
01368                               cfg_dev_status_fatal_err_detected &
01369                               cfg_dev_status_nonfatal_err_detected &
01370                               cfg_dev_status_corr_err_detected);
01371    cfg_dcommand           <= ('0' &
01372                               cfg_dev_control_max_read_req &
01373                               cfg_dev_control_nosnoop_en &
01374                               cfg_dev_control_aux_power_en &
01375                               cfg_dev_control_phantom_en &
01376                               cfg_dev_control_ext_tag_en &
01377                               cfg_dev_control_maxpayload &
01378                               cfg_dev_control_enable_relaxed_order &
01379                               cfg_dev_control_ur_err_reporting_en &
01380                               cfg_dev_control_fatal_err_reporting_en &
01381                               cfg_dev_control_non_fatal_reporting_en &
01382                               cfg_dev_control_corr_err_reporting_en);
01383    cfg_lstatus            <= (cfg_link_status_autobandwidth_status &
01384                               cfg_link_status_bandwidth_status &
01385                               cfg_link_status_dll_active &
01386                               LINK_STATUS_SLOT_CLOCK_CONFIG_lstatus &
01387                               cfg_link_status_link_training &
01388                               '0' &
01389                               "00" &
01390                               cfg_link_status_negotiated_link_width &
01391                               "00" &
01392                               cfg_link_status_current_speed);
01393    cfg_lcommand           <= ("0000" &
01394                               cfg_link_control_auto_bandwidth_int_en &
01395                               cfg_link_control_bandwidth_int_en &
01396                               cfg_link_control_hw_auto_width_dis &
01397                               cfg_link_control_clock_pm_en &
01398                               cfg_link_control_extended_sync &
01399                               cfg_link_control_common_clock &
01400                               cfg_link_control_retrain_link &
01401                               cfg_link_control_linkdisable &
01402                               cfg_link_control_rcb &
01403                               '0' &
01404                               cfg_link_control_aspm_control);
01405    cfg_bus_number         <= cfg_bus_number_d;
01406    cfg_device_number      <= cfg_device_number_d;
01407    cfg_function_number    <= cfg_function_number_d;
01408    cfg_dcommand2          <= ("00000000000" &
01409                               cfg_dev_control2_cpltimeout_dis &
01410                               cfg_dev_control2_cpltimeout_val);
01411 
01412    -- Capture Bus/Device/Function number
01413 
01414    process (user_clk)
01415    begin
01416       if (rising_edge(user_clk)) then
01417          if (user_lnk_up_int = '0') then
01418             cfg_bus_number_d       <= "00000000";
01419             cfg_device_number_d    <= "00000";
01420             cfg_function_number_d  <= "000";
01421          elsif (cfg_msg_received = '0') then
01422             cfg_bus_number_d       <= cfg_msg_data(15 downto 8);
01423             cfg_device_number_d    <= cfg_msg_data(7 downto 3);
01424             cfg_function_number_d  <= cfg_msg_data(2 downto 0);
01425          end if;
01426       end if;
01427    end process;
01428 
01429    -- Generate user_lnk_up
01430 
01431    user_lnk_up_int_i : FDCP
01432       generic map (
01433          INIT  => '0'
01434       )
01435       port map (
01436          Q    => user_lnk_up_int,
01437          D    => user_lnk_up_d,
01438          C    => user_clk ,
01439          CLR  => '0' ,
01440          PRE  => '0'
01441       );
01442 
01443    user_lnk_up_d <= not(trn_lnk_up_n_1);
01444 
01445    trn_lnk_up_n_1_i : FDCP
01446       generic map (
01447          INIT  => '1'
01448       )
01449       port map (
01450          Q    => trn_lnk_up_n_1,
01451          D    => trn_lnk_up_n,
01452          C    => user_clk ,
01453          CLR  => '0' ,
01454          PRE  => '0'
01455       );
01456 
01457 
01458    -- Generate user_reset_out
01459 
01460    trn_reset_n_d <= not(trn_reset_n_int1 and not(phy_rdy_n));
01461    sys_reset_d   <= not(sys_reset_n_d);
01462 
01463    trn_reset_n_i : FDCP
01464       generic map (
01465          INIT  => '1'
01466       )
01467       port map (
01468          Q    => user_reset_out_int,
01469          D    => trn_reset_n_d,
01470          C    => user_clk ,
01471          CLR  => sys_reset_d ,
01472          PRE  => '0' 
01473       );
01474 
01475 
01476    trn_reset_n_1_d <= trn_reset_n and not(phy_rdy_n);
01477    trn_reset_n_int_i : FDCP
01478       generic map (
01479          INIT  => '0'
01480       )
01481       port map (
01482          Q    => trn_reset_n_int1,
01483          D    => trn_reset_n_1_d,
01484          C    => user_clk ,
01485          CLR  => sys_reset_d ,
01486          PRE  => '0' 
01487       );
01488 
01489 
01490    ---------------------------------------------------------
01491    -- AXI Basic Bridge
01492    -- Converts between TRN and AXI
01493    ---------------------------------------------------------
01494     
01495    axi_basic_top_i : axi_basic_top
01496       generic map (
01497          C_DATA_WIDTH     => 64,           -- RX/TX interface data width
01498          C_REM_WIDTH      => 1,            -- trem/rrem width
01499          C_STRB_WIDTH     => 8,            -- tstrb width
01500          TCQ              => 1,            -- Clock to Q time
01501 
01502          C_FAMILY         => "V6",         -- Targeted FPGA family
01503          C_ROOT_PORT      => FALSE,      -- PCIe block is in root port mode
01504          C_PM_PRIORITY    => FALSE       -- Disable TX packet boundary thrtl
01505       )
01506       port map (
01507          -------------------------------------------------
01508          -- User Design I/O                             --
01509          -------------------------------------------------
01510 
01511          -- AXI TX
01512          -------------
01513          s_axis_tx_tdata          => (others=>'0'),          --  input
01514          s_axis_tx_tvalid         => '0',         --  input
01515          --s_axis_tx_tready         => s_axis_tx_tready,         --  output
01516          s_axis_tx_tstrb          => (others=>'0'),          --  input
01517          s_axis_tx_tlast          => '0',          --  input
01518          s_axis_tx_tuser          => (others=>'0'),          --  input
01519 
01520          -- AXI RX
01521          -------------
01522          --m_axis_rx_tdata          => m_axis_rx_tdata,          --  output
01523          --m_axis_rx_tvalid         => m_axis_rx_tvalid,         --  output
01524          m_axis_rx_tready         => '0',         --  input
01525          --m_axis_rx_tstrb          => m_axis_rx_tstrb,          --  output
01526          --m_axis_rx_tlast          => m_axis_rx_tlast,          --  output
01527          --m_axis_rx_tuser          => m_axis_rx_tuser,          --  output
01528 
01529          -- User Misc.
01530          -------------
01531          user_turnoff_ok          => cfg_turnoff_ok,           --  input
01532          user_tcfg_gnt            => tx_cfg_gnt,               --  input
01533 
01534          -------------------------------------------------
01535          -- PCIe Block I/O                              --
01536          -------------------------------------------------
01537 
01538          -- TRN TX
01539          -------------
01540          --trn_td                   => trn_td,                   --  output
01541          --trn_tsof                 => trn_tsof,                 --  output
01542          --trn_teof                 => trn_teof,                 --  output
01543          --trn_tsrc_rdy             => trn_tsrc_rdy,             --  output
01544          trn_tdst_rdy             => '0',             --  input
01545          --trn_tsrc_dsc             => trn_tsrc_dsc,             --  output
01546          --trn_trem                 => trn_trem,                 --  output
01547          --trn_terrfwd              => trn_terrfwd,              --  output
01548          --trn_tstr                 => trn_tstr,                 --  output
01549          trn_tbuf_av              => tx_buf_av_int,            --  input
01550          --trn_tecrc_gen            => trn_tecrc_gen,            --  output
01551 
01552          -- TRN RX
01553          -------------
01554          trn_rd                   => (others=>'0'),                   --  input
01555          trn_rsof                 => '1',                 --  input
01556          trn_reof                 => '1',                 --  input
01557          trn_rsrc_rdy             => '1',             --  input
01558          --trn_rdst_rdy             => trn_rdst_rdy,             --  output
01559          trn_rsrc_dsc             => '1',             --  input
01560          trn_rrem                 => "1",                 --  input
01561          trn_rerrfwd              => '0',              --  input
01562          trn_rbar_hit             => (others=>'0'),             --  input
01563          trn_recrc_err            => '0',            --  input
01564 
01565          -- TRN Misc.
01566          -------------
01567          trn_tcfg_req             => tx_cfg_req_int,           --  input
01568          trn_tcfg_gnt             => trn_tcfg_gnt,             --  output
01569          trn_lnk_up                => user_lnk_up_int,          --  input
01570 
01571          -- Artix/Kintex/Virtex PM
01572          -------------
01573          cfg_pcie_link_state      => cfg_pcie_link_state_int,  --  input
01574 
01575          -- Virtex6 PM
01576          -------------
01577          cfg_pm_send_pme_to       => '0',                      --  input  NOT USED FOR EP
01578          cfg_pmcsr_powerstate     => cfg_pmcsr_powerstate_int, --  input
01579          trn_rdllp_data           => trn_rdllp_data,           --  input
01580          trn_rdllp_src_rdy        => trn_rdllp_src_rdy,        --  input
01581 
01582          -- Power Mgmt for S6/V6
01583          -------------
01584          cfg_to_turnoff           => cfg_to_turnoff_int,       --  input
01585          cfg_turnoff_ok           => cfg_turnoff_ok_axi,       --  output
01586 
01587          -- System
01588          -------------
01589          user_clk                 => user_clk,                 --  input
01590          user_rst                 => user_reset_out_int,       --  input
01591          np_counter               => open                      --  output
01592    );
01593 
01594 
01595 
01596 --cfg_turnoff_ok_axi <= '0';                      
01597 --trn_tcfg_gnt <='0';
01598 --   ---------------------------------------------------------
01599    -- PCI Express Reset Delay Module
01600    ---------------------------------------------------------
01601 
01602    sys_reset_n <= not(sys_reset);
01603 
01604    pcie_reset_delay_i : pcie_reset_delay_v6
01605       generic map (
01606          PL_FAST_TRAIN   => PL_FAST_TRAIN,
01607          REF_CLK_FREQ   => REF_CLK_FREQ
01608       )
01609       port map (
01610          ref_clk              => TxOutClk_bufg,
01611          sys_reset_n          => sys_reset_n,
01612          delayed_sys_reset_n  => sys_reset_n_d
01613       );
01614 
01615 
01616    ---------------------------------------------------------
01617    -- PCI Express Clocking Module
01618    ---------------------------------------------------------
01619 
01620    pcie_clocking_i : pcie_clocking_v6
01621       generic map (
01622          CAP_LINK_WIDTH  => LINK_CAP_MAX_LINK_WIDTH_int ,
01623          CAP_LINK_SPEED  => LINK_CAP_MAX_LINK_SPEED_int ,
01624          REF_CLK_FREQ    => REF_CLK_FREQ,
01625          USER_CLK_FREQ   => USER_CLK_FREQ
01626       )
01627       port map (
01628          sys_clk        => TxOutClk,
01629          gt_pll_lock     => gt_pll_lock,
01630          sel_lnk_rate   => pl_sel_link_rate_int,
01631          sel_lnk_width  => pl_sel_link_width_int,
01632          sys_clk_bufg   => TxOutClk_bufg,
01633          pipe_clk       => pipe_clk,
01634          user_clk        => user_clk,
01635          block_clk      => open,
01636          drp_clk        => drp_clk,
01637          clock_locked   => clock_locked
01638       );
01639 
01640 
01641    phy_rdy <= not(phy_rdy_n);
01642 
01643    ---------------------------------------------------------
01644    -- Virtex6 PCI Express Block Module
01645    ---------------------------------------------------------
01646 
01647    pcie_2_0_i : pcie_2_0_v6
01648       generic map (
01649          REF_CLK_FREQ                              => REF_CLK_FREQ,
01650          PIPE_PIPELINE_STAGES                      => PIPE_PIPELINE_STAGES,
01651          LINK_CAP_MAX_LINK_WIDTH_int               => LINK_CAP_MAX_LINK_WIDTH_int,
01652          AER_BASE_PTR                              => AER_BASE_PTR,
01653          AER_CAP_ECRC_CHECK_CAPABLE                => AER_CAP_ECRC_CHECK_CAPABLE,
01654          AER_CAP_ECRC_GEN_CAPABLE                  => AER_CAP_ECRC_GEN_CAPABLE,
01655          AER_CAP_ID                                => AER_CAP_ID,
01656          AER_CAP_INT_MSG_NUM_MSI                   => AER_CAP_INT_MSG_NUM_MSI,
01657          AER_CAP_INT_MSG_NUM_MSIX                  => AER_CAP_INT_MSG_NUM_MSIX,
01658          AER_CAP_NEXTPTR                           => AER_CAP_NEXTPTR,
01659          AER_CAP_ON                                => AER_CAP_ON,
01660          AER_CAP_PERMIT_ROOTERR_UPDATE             => AER_CAP_PERMIT_ROOTERR_UPDATE,
01661          AER_CAP_VERSION                           => AER_CAP_VERSION,
01662          ALLOW_X8_GEN2                             => ALLOW_X8_GEN2,
01663          BAR0                                      => pad_gen(BAR0, 32),
01664          BAR1                                      => pad_gen(BAR1, 32),
01665          BAR2                                      => pad_gen(BAR2, 32),
01666          BAR3                                      => pad_gen(BAR3, 32),
01667          BAR4                                      => pad_gen(BAR4, 32),
01668          BAR5                                      => pad_gen(BAR5, 32),
01669          CAPABILITIES_PTR                          => CAPABILITIES_PTR,
01670          CARDBUS_CIS_POINTER                       => pad_gen(CARDBUS_CIS_POINTER, 32),
01671          CLASS_CODE                                => pad_gen(CLASS_CODE, 24),
01672          CMD_INTX_IMPLEMENTED                      => CMD_INTX_IMPLEMENTED,
01673          CPL_TIMEOUT_DISABLE_SUPPORTED             => CPL_TIMEOUT_DISABLE_SUPPORTED,
01674          CPL_TIMEOUT_RANGES_SUPPORTED              => pad_gen(CPL_TIMEOUT_RANGES_SUPPORTED, 4),
01675          CRM_MODULE_RSTS                           => CRM_MODULE_RSTS,
01676          DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE       => DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE,
01677          DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE       => DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE,
01678          DEV_CAP_ENDPOINT_L0S_LATENCY              => DEV_CAP_ENDPOINT_L0S_LATENCY,
01679          DEV_CAP_ENDPOINT_L1_LATENCY               => DEV_CAP_ENDPOINT_L1_LATENCY,
01680          DEV_CAP_EXT_TAG_SUPPORTED                 => DEV_CAP_EXT_TAG_SUPPORTED,
01681          DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE      => DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE,
01682          DEV_CAP_MAX_PAYLOAD_SUPPORTED             => DEV_CAP_MAX_PAYLOAD_SUPPORTED,
01683          DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT         => DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT,
01684          DEV_CAP_ROLE_BASED_ERROR                  => DEV_CAP_ROLE_BASED_ERROR,
01685          DEV_CAP_RSVD_14_12                        => DEV_CAP_RSVD_14_12,
01686          DEV_CAP_RSVD_17_16                        => DEV_CAP_RSVD_17_16,
01687          DEV_CAP_RSVD_31_29                        => DEV_CAP_RSVD_31_29,
01688          DEV_CONTROL_AUX_POWER_SUPPORTED           => DEV_CONTROL_AUX_POWER_SUPPORTED,
01689          DEVICE_ID                                 => pad_gen(DEVICE_ID, 16),
01690          DISABLE_ASPM_L1_TIMER                     => DISABLE_ASPM_L1_TIMER,
01691          DISABLE_BAR_FILTERING                     => DISABLE_BAR_FILTERING,
01692          DISABLE_ID_CHECK                          => DISABLE_ID_CHECK,
01693          DISABLE_LANE_REVERSAL                     => DISABLE_LANE_REVERSAL,
01694          DISABLE_RX_TC_FILTER                      => DISABLE_RX_TC_FILTER,
01695          DISABLE_SCRAMBLING                        => DISABLE_SCRAMBLING,
01696          DNSTREAM_LINK_NUM                         => DNSTREAM_LINK_NUM,
01697          DSN_BASE_PTR                               => pad_gen(DSN_BASE_PTR, 12),
01698          DSN_CAP_ID                                => DSN_CAP_ID,
01699          DSN_CAP_NEXTPTR                           => pad_gen(DSN_CAP_NEXTPTR, 12),
01700          DSN_CAP_ON                                 => DSN_CAP_ON,
01701          DSN_CAP_VERSION                           => DSN_CAP_VERSION,
01702          ENABLE_MSG_ROUTE                          => pad_gen(ENABLE_MSG_ROUTE, 11),
01703          ENABLE_RX_TD_ECRC_TRIM                     => ENABLE_RX_TD_ECRC_TRIM,
01704          ENTER_RVRY_EI_L0                          => ENTER_RVRY_EI_L0,
01705          EXPANSION_ROM                             => pad_gen(EXPANSION_ROM, 32),
01706          EXT_CFG_CAP_PTR                            => EXT_CFG_CAP_PTR,
01707          EXT_CFG_XP_CAP_PTR                        => pad_gen(EXT_CFG_XP_CAP_PTR, 10),
01708          HEADER_TYPE                               => pad_gen(HEADER_TYPE, 8),
01709          INFER_EI                                   => INFER_EI,
01710          INTERRUPT_PIN                             => pad_gen(INTERRUPT_PIN, 8),
01711          IS_SWITCH                                 => IS_SWITCH,
01712          LAST_CONFIG_DWORD                          => LAST_CONFIG_DWORD,
01713          LINK_CAP_ASPM_SUPPORT                      => LINK_CAP_ASPM_SUPPORT,
01714          LINK_CAP_CLOCK_POWER_MANAGEMENT           => LINK_CAP_CLOCK_POWER_MANAGEMENT,
01715          LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP     => LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP,
01716          LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP   => LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP,
01717          LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1     => LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1,
01718          LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2      => LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2,
01719          LINK_CAP_L0S_EXIT_LATENCY_GEN1             => LINK_CAP_L0S_EXIT_LATENCY_GEN1,
01720          LINK_CAP_L0S_EXIT_LATENCY_GEN2            => LINK_CAP_L0S_EXIT_LATENCY_GEN2,
01721          LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1       => LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1,
01722          LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2       => LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2,
01723          LINK_CAP_L1_EXIT_LATENCY_GEN1             => LINK_CAP_L1_EXIT_LATENCY_GEN1,
01724          LINK_CAP_L1_EXIT_LATENCY_GEN2              => LINK_CAP_L1_EXIT_LATENCY_GEN2,
01725          LINK_CAP_MAX_LINK_SPEED                    => pad_gen(LINK_CAP_MAX_LINK_SPEED, 4),
01726          LINK_CAP_MAX_LINK_WIDTH                   => pad_gen(LINK_CAP_MAX_LINK_WIDTH, 6),
01727          LINK_CAP_RSVD_23_22                        => LINK_CAP_RSVD_23_22,
01728          LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE       => LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE,
01729          LINK_CONTROL_RCB                          => LINK_CONTROL_RCB,
01730          LINK_CTRL2_DEEMPHASIS                      => LINK_CTRL2_DEEMPHASIS,
01731          LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE     => LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE,
01732          LINK_CTRL2_TARGET_LINK_SPEED              => pad_gen(LINK_CTRL2_TARGET_LINK_SPEED, 4),
01733          LINK_STATUS_SLOT_CLOCK_CONFIG              => LINK_STATUS_SLOT_CLOCK_CONFIG,
01734          LL_ACK_TIMEOUT                             => pad_gen(LL_ACK_TIMEOUT, 15),
01735          LL_ACK_TIMEOUT_EN                         => LL_ACK_TIMEOUT_EN,
01736          LL_ACK_TIMEOUT_FUNC                        => LL_ACK_TIMEOUT_FUNC,
01737          LL_REPLAY_TIMEOUT                          => pad_gen(LL_REPLAY_TIMEOUT, 15),
01738          LL_REPLAY_TIMEOUT_EN                      => LL_REPLAY_TIMEOUT_EN,
01739          LL_REPLAY_TIMEOUT_FUNC                     => LL_REPLAY_TIMEOUT_FUNC,
01740          LTSSM_MAX_LINK_WIDTH                       => pad_gen(LTSSM_MAX_LINK_WIDTH, 6),
01741          MSI_BASE_PTR                              => MSI_BASE_PTR,
01742          MSI_CAP_ID                                 => MSI_CAP_ID,
01743          MSI_CAP_MULTIMSGCAP                        => MSI_CAP_MULTIMSGCAP,
01744          MSI_CAP_MULTIMSG_EXTENSION                => MSI_CAP_MULTIMSG_EXTENSION,
01745          MSI_CAP_NEXTPTR                           => MSI_CAP_NEXTPTR,
01746          MSI_CAP_ON                                => MSI_CAP_ON,
01747          MSI_CAP_PER_VECTOR_MASKING_CAPABLE        => MSI_CAP_PER_VECTOR_MASKING_CAPABLE,
01748          MSI_CAP_64_BIT_ADDR_CAPABLE                => MSI_CAP_64_BIT_ADDR_CAPABLE,
01749          MSIX_BASE_PTR                              => MSIX_BASE_PTR,
01750          MSIX_CAP_ID                               => MSIX_CAP_ID,
01751          MSIX_CAP_NEXTPTR                          => MSIX_CAP_NEXTPTR,
01752          MSIX_CAP_ON                                => MSIX_CAP_ON,
01753          MSIX_CAP_PBA_BIR                          => MSIX_CAP_PBA_BIR,
01754          MSIX_CAP_PBA_OFFSET                       => pad_gen(MSIX_CAP_PBA_OFFSET, 29),
01755          MSIX_CAP_TABLE_BIR                         => MSIX_CAP_TABLE_BIR,
01756          MSIX_CAP_TABLE_OFFSET                     => pad_gen(MSIX_CAP_TABLE_OFFSET, 29),
01757          MSIX_CAP_TABLE_SIZE                       => pad_gen(MSIX_CAP_TABLE_SIZE, 11),
01758          N_FTS_COMCLK_GEN1                          => N_FTS_COMCLK_GEN1,
01759          N_FTS_COMCLK_GEN2                          => N_FTS_COMCLK_GEN2,
01760          N_FTS_GEN1                                 => N_FTS_GEN1,
01761          N_FTS_GEN2                                 => N_FTS_GEN2,
01762          PCIE_BASE_PTR                              => PCIE_BASE_PTR,
01763          PCIE_CAP_CAPABILITY_ID                     => PCIE_CAP_CAPABILITY_ID,
01764          PCIE_CAP_CAPABILITY_VERSION               => PCIE_CAP_CAPABILITY_VERSION,
01765          PCIE_CAP_DEVICE_PORT_TYPE                 => pad_gen(PCIE_CAP_DEVICE_PORT_TYPE, 4),
01766          PCIE_CAP_INT_MSG_NUM                      => pad_gen(PCIE_CAP_INT_MSG_NUM, 5),
01767          PCIE_CAP_NEXTPTR                           => pad_gen(PCIE_CAP_NEXTPTR, 8),
01768          PCIE_CAP_ON                               => PCIE_CAP_ON,
01769          PCIE_CAP_RSVD_15_14                       => PCIE_CAP_RSVD_15_14,
01770          PCIE_CAP_SLOT_IMPLEMENTED                  => PCIE_CAP_SLOT_IMPLEMENTED,
01771          PCIE_REVISION                              => PCIE_REVISION,
01772          PGL0_LANE                                 => PGL0_LANE,
01773          PGL1_LANE                                  => PGL1_LANE,
01774          PGL2_LANE                                  => PGL2_LANE,
01775          PGL3_LANE                                 => PGL3_LANE,
01776          PGL4_LANE                                  => PGL4_LANE,
01777          PGL5_LANE                                  => PGL5_LANE,
01778          PGL6_LANE                                 => PGL6_LANE,
01779          PGL7_LANE                                  => PGL7_LANE,
01780          PL_AUTO_CONFIG                             => PL_AUTO_CONFIG,
01781          PL_FAST_TRAIN                             => PL_FAST_TRAIN,
01782          PM_BASE_PTR                                => PM_BASE_PTR,
01783          PM_CAP_AUXCURRENT                          => PM_CAP_AUXCURRENT,
01784          PM_CAP_DSI                                 => PM_CAP_DSI,
01785          PM_CAP_D1SUPPORT                           => PM_CAP_D1SUPPORT,
01786          PM_CAP_D2SUPPORT                           => PM_CAP_D2SUPPORT,
01787          PM_CAP_ID                                  => PM_CAP_ID,
01788          PM_CAP_NEXTPTR                             => PM_CAP_NEXTPTR,
01789          PM_CAP_ON                                  => PM_CAP_ON,
01790          PM_CAP_PME_CLOCK                           => PM_CAP_PME_CLOCK,
01791          PM_CAP_PMESUPPORT                          => pad_gen(PM_CAP_PMESUPPORT, 5),
01792          PM_CAP_RSVD_04                             => PM_CAP_RSVD_04,
01793          PM_CAP_VERSION                             => PM_CAP_VERSION,
01794          PM_CSR_BPCCEN                              => PM_CSR_BPCCEN,
01795          PM_CSR_B2B3                                => PM_CSR_B2B3,
01796          PM_CSR_NOSOFTRST                           => PM_CSR_NOSOFTRST,
01797          PM_DATA_SCALE0                             => pad_gen(PM_DATA_SCALE0, 2),
01798          PM_DATA_SCALE1                             => pad_gen(PM_DATA_SCALE1, 2),
01799          PM_DATA_SCALE2                             => pad_gen(PM_DATA_SCALE2, 2),
01800          PM_DATA_SCALE3                             => pad_gen(PM_DATA_SCALE3, 2),
01801          PM_DATA_SCALE4                             => pad_gen(PM_DATA_SCALE4, 2),
01802          PM_DATA_SCALE5                             => pad_gen(PM_DATA_SCALE5, 2),
01803          PM_DATA_SCALE6                             => pad_gen(PM_DATA_SCALE6, 2),
01804          PM_DATA_SCALE7                             => pad_gen(PM_DATA_SCALE7, 2),
01805          PM_DATA0                                   => pad_gen(PM_DATA0, 8),
01806          PM_DATA1                                   => pad_gen(PM_DATA1, 8),
01807          PM_DATA2                                   => pad_gen(PM_DATA2, 8),
01808          PM_DATA3                                   => pad_gen(PM_DATA3, 8),
01809          PM_DATA4                                   => pad_gen(PM_DATA4, 8),
01810          PM_DATA5                                   => pad_gen(PM_DATA5, 8),
01811          PM_DATA6                                   => pad_gen(PM_DATA6, 8),
01812          PM_DATA7                                   => pad_gen(PM_DATA7, 8),
01813          RECRC_CHK                                  => RECRC_CHK,
01814          RECRC_CHK_TRIM                             => RECRC_CHK_TRIM,
01815          REVISION_ID                                => pad_gen(REVISION_ID, 8),
01816          ROOT_CAP_CRS_SW_VISIBILITY                => ROOT_CAP_CRS_SW_VISIBILITY,
01817          SELECT_DLL_IF                             => SELECT_DLL_IF,
01818          SLOT_CAP_ATT_BUTTON_PRESENT                => SLOT_CAP_ATT_BUTTON_PRESENT,
01819          SLOT_CAP_ATT_INDICATOR_PRESENT             => SLOT_CAP_ATT_INDICATOR_PRESENT,
01820          SLOT_CAP_ELEC_INTERLOCK_PRESENT           => SLOT_CAP_ELEC_INTERLOCK_PRESENT,
01821          SLOT_CAP_HOTPLUG_CAPABLE                  => SLOT_CAP_HOTPLUG_CAPABLE,
01822          SLOT_CAP_HOTPLUG_SURPRISE                 => SLOT_CAP_HOTPLUG_SURPRISE,
01823          SLOT_CAP_MRL_SENSOR_PRESENT               => SLOT_CAP_MRL_SENSOR_PRESENT,
01824          SLOT_CAP_NO_CMD_COMPLETED_SUPPORT         => SLOT_CAP_NO_CMD_COMPLETED_SUPPORT,
01825          SLOT_CAP_PHYSICAL_SLOT_NUM                => SLOT_CAP_PHYSICAL_SLOT_NUM,
01826          SLOT_CAP_POWER_CONTROLLER_PRESENT         => SLOT_CAP_POWER_CONTROLLER_PRESENT,
01827          SLOT_CAP_POWER_INDICATOR_PRESENT          => SLOT_CAP_POWER_INDICATOR_PRESENT,
01828          SLOT_CAP_SLOT_POWER_LIMIT_SCALE           => SLOT_CAP_SLOT_POWER_LIMIT_SCALE,
01829          SLOT_CAP_SLOT_POWER_LIMIT_VALUE           => SLOT_CAP_SLOT_POWER_LIMIT_VALUE,
01830          SPARE_BIT0                                => SPARE_BIT0,
01831          SPARE_BIT1                                => SPARE_BIT1,
01832          SPARE_BIT2                                => SPARE_BIT2,
01833          SPARE_BIT3                                => SPARE_BIT3,
01834          SPARE_BIT4                                => SPARE_BIT4,
01835          SPARE_BIT5                                => SPARE_BIT5,
01836          SPARE_BIT6                                => SPARE_BIT6,
01837          SPARE_BIT7                                => SPARE_BIT7,
01838          SPARE_BIT8                                => SPARE_BIT8,
01839          SPARE_BYTE0                               => SPARE_BYTE0,
01840          SPARE_BYTE1                               => SPARE_BYTE1,
01841          SPARE_BYTE2                               => SPARE_BYTE2,
01842          SPARE_BYTE3                               => SPARE_BYTE3,
01843          SPARE_WORD0                               => SPARE_WORD0,
01844          SPARE_WORD1                               => SPARE_WORD1,
01845          SPARE_WORD2                               => SPARE_WORD2,
01846          SPARE_WORD3                               => SPARE_WORD3,
01847          SUBSYSTEM_ID                              => pad_gen(SUBSYSTEM_ID, 16),
01848          SUBSYSTEM_VENDOR_ID                       => pad_gen(SUBSYSTEM_VENDOR_ID, 16),
01849          TL_RBYPASS                                => TL_RBYPASS,
01850          TL_RX_RAM_RADDR_LATENCY                   => TL_RX_RAM_RADDR_LATENCY,
01851          TL_RX_RAM_RDATA_LATENCY                   => TL_RX_RAM_RDATA_LATENCY,
01852          TL_RX_RAM_WRITE_LATENCY                   => TL_RX_RAM_WRITE_LATENCY,
01853          TL_TFC_DISABLE                            => TL_TFC_DISABLE,
01854          TL_TX_CHECKS_DISABLE                      => TL_TX_CHECKS_DISABLE,
01855          TL_TX_RAM_RADDR_LATENCY                   => TL_TX_RAM_RADDR_LATENCY,
01856          TL_TX_RAM_RDATA_LATENCY                   => TL_TX_RAM_RDATA_LATENCY,
01857          TL_TX_RAM_WRITE_LATENCY                   => TL_TX_RAM_WRITE_LATENCY,
01858          UPCONFIG_CAPABLE                          => UPCONFIG_CAPABLE,
01859          UPSTREAM_FACING                           => UPSTREAM_FACING,
01860          EXIT_LOOPBACK_ON_EI                       => EXIT_LOOPBACK_ON_EI,
01861          UR_INV_REQ                                => UR_INV_REQ,
01862          USER_CLK_FREQ                             => USER_CLK_FREQ,
01863          VC_BASE_PTR                               => pad_gen(VC_BASE_PTR, 12),
01864          VC_CAP_ID                                 => VC_CAP_ID,
01865          VC_CAP_NEXTPTR                            => pad_gen(VC_CAP_NEXTPTR, 12),
01866          VC_CAP_ON                                 => VC_CAP_ON,
01867          VC_CAP_REJECT_SNOOP_TRANSACTIONS          => VC_CAP_REJECT_SNOOP_TRANSACTIONS,
01868          VC_CAP_VERSION                            => VC_CAP_VERSION,
01869          VC0_CPL_INFINITE                          => VC0_CPL_INFINITE,
01870          VC0_RX_RAM_LIMIT                          => pad_gen(VC0_RX_RAM_LIMIT, 13),
01871          VC0_TOTAL_CREDITS_CD                      => VC0_TOTAL_CREDITS_CD,
01872          VC0_TOTAL_CREDITS_CH                      => VC0_TOTAL_CREDITS_CH,
01873          VC0_TOTAL_CREDITS_NPH                     => VC0_TOTAL_CREDITS_NPH,
01874          VC0_TOTAL_CREDITS_PD                      => VC0_TOTAL_CREDITS_PD,
01875          VC0_TOTAL_CREDITS_PH                      => VC0_TOTAL_CREDITS_PH,
01876          VC0_TX_LASTPACKET                         => VC0_TX_LASTPACKET,
01877          VENDOR_ID                                  => pad_gen(VENDOR_ID, 16),
01878          VSEC_BASE_PTR                             => pad_gen(VSEC_BASE_PTR, 12),
01879          VSEC_CAP_HDR_ID                           => VSEC_CAP_HDR_ID,
01880          VSEC_CAP_HDR_LENGTH                        => VSEC_CAP_HDR_LENGTH,
01881          VSEC_CAP_HDR_REVISION                     => VSEC_CAP_HDR_REVISION,
01882          VSEC_CAP_ID                               => VSEC_CAP_ID,
01883          VSEC_CAP_IS_LINK_VISIBLE                  => VSEC_CAP_IS_LINK_VISIBLE,
01884          VSEC_CAP_NEXTPTR                          => pad_gen(VSEC_CAP_NEXTPTR, 12),
01885          VSEC_CAP_ON                               => VSEC_CAP_ON,
01886          VSEC_CAP_VERSION                           => VSEC_CAP_VERSION
01887       )
01888       port map (
01889          PCIEXPRXN                            => pci_exp_rxn,
01890          PCIEXPRXP                            => pci_exp_rxp,
01891          PCIEXPTXN                            => pci_exp_txn,
01892          PCIEXPTXP                            => pci_exp_txp,
01893          SYSCLK                               => sys_clk,
01894          TRNLNKUPN                            => trn_lnk_up_n,
01895          FUNDRSTN                             => sys_reset_n_d,
01896          PHYRDYN                              => phy_rdy_n,
01897          LNKCLKEN                             => open,
01898          USERRSTN                             => trn_reset_n,
01899          RECEIVEDFUNCLVLRSTN                  => rx_func_level_reset_n,
01900          SYSRSTN                              => phy_rdy,
01901          PLRSTN                               => '1',
01902          DLRSTN                               => '1',
01903          TLRSTN                               => '1',
01904          FUNCLVLRSTN                          => '1',
01905          CMRSTN                               => '1',
01906          CMSTICKYRSTN                         => '1',
01907 
01908          TRNRBARHITN                          => trn_rbar_hit_n,
01909          TRNRD                                => trn_rd,
01910          TRNRECRCERRN                         => trn_recrc_err_n,
01911          TRNREOFN                             => trn_reof_n,
01912          TRNRERRFWDN                          => trn_rerrfwd_n,
01913          TRNRREMN                             => trn_rrem_n,
01914          TRNRSOFN                             => trn_rsof_n,
01915          TRNRSRCDSCN                          => trn_rsrc_dsc_n,
01916          TRNRSRCRDYN                          => trn_rsrc_rdy_n,
01917          TRNRDSTRDYN                          => trn_rdst_rdy_n,
01918          TRNRNPOKN                            => trn_rnp_ok_n,
01919          TRNRDLLPDATA                         => trn_rdllp_data,
01920          TRNRDLLPSRCRDYN                      => trn_rdllp_src_rdy_n,
01921 
01922          TRNTBUFAV                            => tx_buf_av_int,
01923          TRNTCFGREQN                          => trn_tcfg_req_n,
01924          TRNTDLLPDSTRDYN                      => open,
01925          TRNTDSTRDYN                          => trn_tdst_rdy_n,
01926          TRNTERRDROPN                         => trn_terr_drop_n,
01927          TRNTCFGGNTN                          => trn_tcfg_gnt_n,
01928          TRNTD                                => trn_td,
01929          TRNTDLLPDATA                         => (others => '0'),
01930          TRNTDLLPSRCRDYN                      => '1',
01931          TRNTECRCGENN                         => '1',
01932          TRNTEOFN                             => trn_teof_n,
01933          TRNTERRFWDN                          => trn_terrfwd_n,
01934          TRNTREMN                             => trn_trem_n,
01935          TRNTSOFN                             => trn_tsof_n,
01936          TRNTSRCDSCN                          => trn_tsrc_dsc_n,
01937          TRNTSRCRDYN                          => trn_tsrc_rdy_n,
01938          TRNTSTRN                             => trn_tstr_n,
01939          TRNFCCPLD                            => fc_cpld,
01940          TRNFCCPLH                            => fc_cplh,
01941          TRNFCNPD                             => fc_npd,
01942          TRNFCNPH                             => fc_nph,
01943          TRNFCPD                              => fc_pd,
01944          TRNFCPH                              => fc_ph,
01945          TRNFCSEL                             => fc_sel,
01946          CFGAERECRCCHECKEN                    => open,
01947          CFGAERECRCGENEN                      => open,
01948          CFGCOMMANDBUSMASTERENABLE            => cfg_cmd_bme,
01949          CFGCOMMANDINTERRUPTDISABLE           => cfg_cmd_intdis,
01950          CFGCOMMANDIOENABLE                   => cfg_cmd_io_en,
01951          CFGCOMMANDMEMENABLE                  => cfg_cmd_mem_en,
01952          CFGCOMMANDSERREN                     => cfg_cmd_serr_en,
01953          CFGDEVCONTROLAUXPOWEREN              => cfg_dev_control_aux_power_en,
01954          CFGDEVCONTROLCORRERRREPORTINGEN      => cfg_dev_control_corr_err_reporting_en,
01955          CFGDEVCONTROLENABLERO                => cfg_dev_control_enable_relaxed_order,
01956          CFGDEVCONTROLEXTTAGEN                => cfg_dev_control_ext_tag_en,
01957          CFGDEVCONTROLFATALERRREPORTINGEN     => cfg_dev_control_fatal_err_reporting_en,
01958          CFGDEVCONTROLMAXPAYLOAD              => cfg_dev_control_maxpayload,
01959          CFGDEVCONTROLMAXREADREQ              => cfg_dev_control_max_read_req,
01960          CFGDEVCONTROLNONFATALREPORTINGEN     => cfg_dev_control_non_fatal_reporting_en,
01961          CFGDEVCONTROLNOSNOOPEN               => cfg_dev_control_nosnoop_en,
01962          CFGDEVCONTROLPHANTOMEN               => cfg_dev_control_phantom_en,
01963          CFGDEVCONTROLURERRREPORTINGEN        => cfg_dev_control_ur_err_reporting_en,
01964          CFGDEVCONTROL2CPLTIMEOUTDIS          => cfg_dev_control2_cpltimeout_dis,
01965          CFGDEVCONTROL2CPLTIMEOUTVAL          => cfg_dev_control2_cpltimeout_val,
01966          CFGDEVSTATUSCORRERRDETECTED          => cfg_dev_status_corr_err_detected,
01967          CFGDEVSTATUSFATALERRDETECTED         => cfg_dev_status_fatal_err_detected,
01968          CFGDEVSTATUSNONFATALERRDETECTED      => cfg_dev_status_nonfatal_err_detected,
01969          CFGDEVSTATUSURDETECTED               => cfg_dev_status_ur_detected,
01970          CFGDO                                => cfg_do,
01971          CFGERRAERHEADERLOGSETN               => open ,
01972          CFGERRCPLRDYN                        => cfg_err_cpl_rdy_n,
01973          CFGINTERRUPTDO                       => cfg_interrupt_do,
01974          CFGINTERRUPTMMENABLE                 => cfg_interrupt_mmenable,
01975          CFGINTERRUPTMSIENABLE                => cfg_interrupt_msienable,
01976          CFGINTERRUPTMSIXENABLE               => cfg_interrupt_msixenable,
01977          CFGINTERRUPTMSIXFM                   => cfg_interrupt_msixfm,
01978          CFGINTERRUPTRDYN                     => cfg_interrupt_rdy_n,
01979          CFGLINKCONTROLRCB                    => cfg_link_control_rcb,
01980          CFGLINKCONTROLASPMCONTROL            => cfg_link_control_aspm_control,
01981          CFGLINKCONTROLAUTOBANDWIDTHINTEN     => cfg_link_control_auto_bandwidth_int_en,
01982          CFGLINKCONTROLBANDWIDTHINTEN         => cfg_link_control_bandwidth_int_en,
01983          CFGLINKCONTROLCLOCKPMEN              => cfg_link_control_clock_pm_en,
01984          CFGLINKCONTROLCOMMONCLOCK            => cfg_link_control_common_clock,
01985          CFGLINKCONTROLEXTENDEDSYNC           => cfg_link_control_extended_sync,
01986          CFGLINKCONTROLHWAUTOWIDTHDIS         => cfg_link_control_hw_auto_width_dis,
01987          CFGLINKCONTROLLINKDISABLE            => cfg_link_control_linkdisable,
01988          CFGLINKCONTROLRETRAINLINK            => cfg_link_control_retrain_link,
01989          CFGLINKSTATUSAUTOBANDWIDTHSTATUS     => cfg_link_status_autobandwidth_status,
01990          CFGLINKSTATUSBANDWITHSTATUS          => cfg_link_status_bandwidth_status,
01991          CFGLINKSTATUSCURRENTSPEED            => cfg_link_status_current_speed,
01992          CFGLINKSTATUSDLLACTIVE               => cfg_link_status_dll_active,
01993          CFGLINKSTATUSLINKTRAINING            => cfg_link_status_link_training,
01994          CFGLINKSTATUSNEGOTIATEDWIDTH         => cfg_link_status_negotiated_link_width,
01995          CFGMSGDATA                           => cfg_msg_data,
01996          CFGMSGRECEIVED                       => cfg_msg_received,
01997          CFGMSGRECEIVEDASSERTINTA             => open,
01998          CFGMSGRECEIVEDASSERTINTB             => open,
01999          CFGMSGRECEIVEDASSERTINTC             => open,
02000          CFGMSGRECEIVEDASSERTINTD             => open,
02001          CFGMSGRECEIVEDDEASSERTINTA           => open,
02002          CFGMSGRECEIVEDDEASSERTINTB           => open,
02003          CFGMSGRECEIVEDDEASSERTINTC           => open,
02004          CFGMSGRECEIVEDDEASSERTINTD           => open,
02005          CFGMSGRECEIVEDERRCOR                 => open,
02006          CFGMSGRECEIVEDERRFATAL               => open,
02007          CFGMSGRECEIVEDERRNONFATAL            => open,
02008          CFGMSGRECEIVEDPMASNAK                => open,
02009          CFGMSGRECEIVEDPMETO                  => cfg_msg_received_pme_to,
02010          CFGMSGRECEIVEDPMETOACK               => open,
02011          CFGMSGRECEIVEDPMPME                  => open,
02012          CFGMSGRECEIVEDSETSLOTPOWERLIMIT      => open,
02013          CFGMSGRECEIVEDUNLOCK                 => open,
02014          CFGPCIELINKSTATE                     => cfg_pcie_link_state_int,
02015          CFGPMCSRPMEEN                        => cfg_pmcsr_pme_en,
02016          CFGPMCSRPMESTATUS                    => cfg_pmcsr_pme_status,
02017          CFGPMCSRPOWERSTATE                   => cfg_pmcsr_powerstate_int,
02018          CFGPMRCVASREQL1N                     => open,
02019          CFGPMRCVENTERL1N                     => open,
02020          CFGPMRCVENTERL23N                    => open,
02021          CFGPMRCVREQACKN                      => open,
02022          CFGRDWRDONEN                         => cfg_rd_wr_done_n,
02023          CFGSLOTCONTROLELECTROMECHILCTLPULSE  => open,
02024          CFGTRANSACTION                       => open,
02025          CFGTRANSACTIONADDR                   => open,
02026          CFGTRANSACTIONTYPE                   => open,
02027          CFGVCTCVCMAP                         => open,
02028          CFGBYTEENN                           => cfg_byte_en_n,
02029          CFGDI                                => cfg_di,
02030          CFGDSBUSNUMBER                       => "00000000",
02031          CFGDSDEVICENUMBER                    => "00000",
02032          CFGDSFUNCTIONNUMBER                  => "000",
02033          CFGDSN                               => cfg_dsn,
02034          CFGDWADDR                            => cfg_dwaddr,
02035          CFGERRACSN                           => '1',
02036          CFGERRAERHEADERLOG                   => (others => '0'),
02037          CFGERRCORN                           => cfg_err_cor_n,
02038          CFGERRCPLABORTN                      => cfg_err_cpl_abort_n,
02039          CFGERRCPLTIMEOUTN                    => cfg_err_cpl_timeout_n,
02040          CFGERRCPLUNEXPECTN                   => cfg_err_cpl_unexpect_n,
02041          CFGERRECRCN                          => cfg_err_ecrc_n,
02042          CFGERRLOCKEDN                        => cfg_err_locked_n,
02043          CFGERRPOSTEDN                        => cfg_err_posted_n,
02044          CFGERRTLPCPLHEADER                   => cfg_err_tlp_cpl_header,
02045          CFGERRURN                            => cfg_err_ur_n,
02046          CFGINTERRUPTASSERTN                  => cfg_interrupt_assert_n,
02047          CFGINTERRUPTDI                       => cfg_interrupt_di,
02048          CFGINTERRUPTN                        => cfg_interrupt_n,
02049          CFGPMDIRECTASPML1N                   => '1',
02050          CFGPMSENDPMACKN                      => '1',
02051          CFGPMSENDPMETON                      => '1',
02052          CFGPMSENDPMNAKN                      => '1',
02053          CFGPMTURNOFFOKN                      => cfg_turnoff_ok_n,
02054          CFGPMWAKEN                           => cfg_pm_wake_n,
02055          CFGPORTNUMBER                        => "00000000",
02056          CFGRDENN                             => cfg_rd_en_n,
02057          CFGTRNPENDINGN                       => cfg_trn_pending_n,
02058          CFGWRENN                             => cfg_wr_en_n,
02059          CFGWRREADONLYN                       => '1',
02060          CFGWRRW1CASRWN                       => '1',
02061 
02062          PLINITIALLINKWIDTH                   => pl_initial_link_width,
02063          PLLANEREVERSALMODE                   => pl_lane_reversal_mode,
02064          PLLINKGEN2CAP                        => pl_link_gen2_capable,
02065          PLLINKPARTNERGEN2SUPPORTED           => pl_link_partner_gen2_supported,
02066          PLLINKUPCFGCAP                       => pl_link_upcfg_capable,
02067          PLLTSSMSTATE                         => pl_ltssm_state,
02068          PLPHYLNKUPN                          => open,                                 -- Debug
02069          PLRECEIVEDHOTRST                     => pl_received_hot_rst,
02070          PLRXPMSTATE                          => open,                                 -- Debug
02071          PLSELLNKRATE                         => pl_sel_link_rate_int,
02072          PLSELLNKWIDTH                        => pl_sel_link_width_int,
02073          PLTXPMSTATE                          => open,                                 -- Debug
02074          PLDIRECTEDLINKAUTON                  => pl_directed_link_auton,
02075          PLDIRECTEDLINKCHANGE                 => pl_directed_link_change,
02076          PLDIRECTEDLINKSPEED                  => pl_directed_link_speed,
02077          PLDIRECTEDLINKWIDTH                  => pl_directed_link_width,
02078          PLDOWNSTREAMDEEMPHSOURCE             => '1',
02079          PLUPSTREAMPREFERDEEMPH               => pl_upstream_prefer_deemph,
02080          PLTRANSMITHOTRST                     => '0',
02081 
02082          DBGSCLRA                             => open,
02083          DBGSCLRB                             => open,
02084          DBGSCLRC                             => open,
02085          DBGSCLRD                             => open,
02086          DBGSCLRE                             => open,
02087          DBGSCLRF                             => open,
02088          DBGSCLRG                             => open,
02089          DBGSCLRH                             => open,
02090          DBGSCLRI                             => open,
02091          DBGSCLRJ                             => open,
02092          DBGSCLRK                             => open,
02093          DBGVECA                              => open,
02094          DBGVECB                              => open,
02095          DBGVECC                              => open,
02096          PLDBGVEC                             => open,
02097          DBGMODE                              => "00",
02098          DBGSUBMODE                           => '0',
02099          PLDBGMODE                            => "000",
02100 
02101          PCIEDRPDO                            => open,
02102          PCIEDRPDRDY                          => open,
02103          PCIEDRPCLK                           => '0',
02104          PCIEDRPDADDR                         => "000000000" ,
02105          PCIEDRPDEN                           => '0',
02106          PCIEDRPDI                            => X"0000",
02107          PCIEDRPDWE                           => '0',
02108 
02109          GTPLLLOCK                            => gt_pll_lock ,
02110          PIPECLK                              => pipe_clk,
02111          USERCLK                              => user_clk,
02112          DRPCLK                               => drp_clk,
02113          CLOCKLOCKED                          => clock_locked ,
02114          TxOutClk                             => TxOutClk
02115       );
02116 
02117 end v6_pcie;
02118