
module PCSA(
// SERDES//
       HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, REFCLKP, REFCLKN,
       RXREFCLKP, RXREFCLKN,

       HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3,

// QUAD CONTROL //
       FFC_QUAD_RST, FFC_MACRO_RST, FFC_LANE_TX_RST0, FFC_LANE_TX_RST1, FFC_LANE_TX_RST2,
       FFC_LANE_TX_RST3, FFC_LANE_RX_RST0, FFC_LANE_RX_RST1, FFC_LANE_RX_RST2, FFC_LANE_RX_RST3,
       FFC_PCIE_EI_EN_0, FFC_PCIE_EI_EN_1, FFC_PCIE_EI_EN_2, FFC_PCIE_EI_EN_3,
       FFC_PCIE_CT_0, FFC_PCIE_CT_1, FFC_PCIE_CT_2, FFC_PCIE_CT_3, FFC_PCIE_TX_0,
       FFC_PCIE_TX_1, FFC_PCIE_TX_2, FFC_PCIE_TX_3, FFC_PCIE_RX_0, FFC_PCIE_RX_1,
       FFC_PCIE_RX_2, FFC_PCIE_RX_3, FFC_SD_0, FFC_SD_1, FFC_SD_2, FFC_SD_3, FFC_EN_CGA_0,
       FFC_EN_CGA_1, FFC_EN_CGA_2, FFC_EN_CGA_3, FFC_ALIGN_EN_0, FFC_ALIGN_EN_1,
       FFC_ALIGN_EN_2, FFC_ALIGN_EN_3, FFC_AB_RESET, FFC_CD_RESET, FFC_FB_LB_0, FFC_FB_LB_1,
       FFC_FB_LB_2, FFC_FB_LB_3, FFC_SB_INV_RX_0, FFC_SB_INV_RX_1, FFC_SB_INV_RX_2,
       FFC_SB_INV_RX_3,

       FFS_PCIE_CON_0, FFS_PCIE_CON_1, FFS_PCIE_CON_2, FFS_PCIE_CON_3, FFS_PCIE_DONE_0,
       FFS_PCIE_DONE_1, FFS_PCIE_DONE_2, FFS_PCIE_DONE_3, FFS_LS_STATUS_0, FFS_LS_STATUS_1,
       FFS_LS_STATUS_2, FFS_LS_STATUS_3, FFS_AB_STATUS, FFS_CD_STATUS, FFS_AB_ALIGNED,
       FFS_CD_ALIGNED, FFS_AB_FAILED, FFS_CD_FAILED, FFS_CC_ORUN_0, FFS_CC_ORUN_1,
       FFS_CC_ORUN_2, FFS_CC_ORUN_3, FFS_CC_URUN_0, FFS_CC_URUN_1, FFS_CC_URUN_2,
       FFS_CC_URUN_3, BS4PAD_0, BS4PAD_1, BS4PAD_2, BS4PAD_3,
       FFS_RLOS_LO0, FFS_RLOS_LO1, FFS_RLOS_LO2, FFS_RLOS_LO3,

// INTERFACE TO SYSBUSA //
       ADDRI_7, ADDRI_6, ADDRI_5, ADDRI_4, ADDRI_3, ADDRI_2, ADDRI_1, ADDRI_0,
       WDATAI_7, WDATAI_6, WDATAI_5, WDATAI_4, WDATAI_3, WDATAI_2, WDATAI_1, WDATAI_0,
       RDI, WSTBI, CS_CHIF_0, CS_CHIF_1, CS_CHIF_2,
       CS_CHIF_3, CS_QIF, QUAD_ID_1, QUAD_ID_0,

       RDATAO_7, RDATAO_6, RDATAO_5, RDATAO_4, RDATAO_3, RDATAO_2, RDATAO_1,
       RDATAO_0, INTO,

       FF_SYSCLK_P1, FF_SYSCLK0, FF_SYSCLK1, FF_SYSCLK2, FF_SYSCLK3,
       FF_RXCLK_P1, FF_RXCLK_P2, FF_RXCLK0, FF_RXCLK1, FF_RXCLK2, FF_RXCLK3,

       QUAD_CLK, GRP_CLK_P1_3, GRP_CLK_P1_2, GRP_CLK_P1_1, GRP_CLK_P1_0,
       GRP_CLK_P2_3, GRP_CLK_P2_2, GRP_CLK_P2_1, GRP_CLK_P2_0,
       GRP_START_3, GRP_START_2, GRP_START_1, GRP_START_0,
       GRP_DONE_3, GRP_DONE_2, GRP_DONE_1, GRP_DONE_0,
       GRP_DESKEW_ERROR_3, GRP_DESKEW_ERROR_2, GRP_DESKEW_ERROR_1, GRP_DESKEW_ERROR_0,

       IQA_START_LS, IQA_DONE_LS, IQA_AND_FP1_LS, IQA_AND_FP0_LS, IQA_OR_FP1_LS,
       IQA_OR_FP0_LS, IQA_RST_N,

// FPGA //
       FFC_CK_CORE_TX, FFC_CK_CORE_RX,
       FF_TCLK0, FF_TCLK1, FF_TCLK2, FF_TCLK3, FF_RCLK0, FF_RCLK1, FF_RCLK2, FF_RCLK3,
       FF_TXD_0_23, FF_TXD_0_22, FF_TXD_0_21, FF_TXD_0_20, FF_TXD_0_19, FF_TXD_0_18,
       FF_TXD_0_17, FF_TXD_0_16, FF_TXD_0_15, FF_TXD_0_14, FF_TXD_0_13, FF_TXD_0_12,
       FF_TXD_0_11, FF_TXD_0_10, FF_TXD_0_9, FF_TXD_0_8, FF_TXD_0_7, FF_TXD_0_6,
       FF_TXD_0_5, FF_TXD_0_4, FF_TXD_0_3, FF_TXD_0_2, FF_TXD_0_1, FF_TXD_0_0,
       FF_TXD_1_23, FF_TXD_1_22, FF_TXD_1_21, FF_TXD_1_20, FF_TXD_1_19, FF_TXD_1_18,
       FF_TXD_1_17, FF_TXD_1_16, FF_TXD_1_15, FF_TXD_1_14, FF_TXD_1_13, FF_TXD_1_12,
       FF_TXD_1_11, FF_TXD_1_10, FF_TXD_1_9, FF_TXD_1_8, FF_TXD_1_7, FF_TXD_1_6,
       FF_TXD_1_5, FF_TXD_1_4, FF_TXD_1_3, FF_TXD_1_2, FF_TXD_1_1, FF_TXD_1_0,
       FF_TXD_2_23, FF_TXD_2_22, FF_TXD_2_21, FF_TXD_2_20, FF_TXD_2_19, FF_TXD_2_18,
       FF_TXD_2_17, FF_TXD_2_16, FF_TXD_2_15, FF_TXD_2_14, FF_TXD_2_13, FF_TXD_2_12,
       FF_TXD_2_11, FF_TXD_2_10, FF_TXD_2_9, FF_TXD_2_8, FF_TXD_2_7, FF_TXD_2_6,
       FF_TXD_2_5, FF_TXD_2_4, FF_TXD_2_3, FF_TXD_2_2, FF_TXD_2_1, FF_TXD_2_0,
       FF_TXD_3_23, FF_TXD_3_22, FF_TXD_3_21, FF_TXD_3_20, FF_TXD_3_19, FF_TXD_3_18,
       FF_TXD_3_17, FF_TXD_3_16, FF_TXD_3_15, FF_TXD_3_14, FF_TXD_3_13, FF_TXD_3_12,
       FF_TXD_3_11, FF_TXD_3_10, FF_TXD_3_9, FF_TXD_3_8, FF_TXD_3_7, FF_TXD_3_6,
       FF_TXD_3_5, FF_TXD_3_4, FF_TXD_3_3, FF_TXD_3_2, FF_TXD_3_1, FF_TXD_3_0,
       TCK_FMACP, TESTCLK_MACO,

       FB_RXD_0_23, FB_RXD_0_22, FB_RXD_0_21, FB_RXD_0_20, FB_RXD_0_19, FB_RXD_0_18,
       FB_RXD_0_17, FB_RXD_0_16, FB_RXD_0_15, FB_RXD_0_14, FB_RXD_0_13, FB_RXD_0_12,
       FB_RXD_0_11, FB_RXD_0_10, FB_RXD_0_9, FB_RXD_0_8, FB_RXD_0_7, FB_RXD_0_6,
       FB_RXD_0_5, FB_RXD_0_4, FB_RXD_0_3, FB_RXD_0_2, FB_RXD_0_1, FB_RXD_0_0,
       FB_RXD_1_23, FB_RXD_1_22, FB_RXD_1_21, FB_RXD_1_20, FB_RXD_1_19, FB_RXD_1_18,
       FB_RXD_1_17, FB_RXD_1_16, FB_RXD_1_15, FB_RXD_1_14, FB_RXD_1_13, FB_RXD_1_12,
       FB_RXD_1_11, FB_RXD_1_10, FB_RXD_1_9, FB_RXD_1_8, FB_RXD_1_7, FB_RXD_1_6,
       FB_RXD_1_5, FB_RXD_1_4, FB_RXD_1_3, FB_RXD_1_2, FB_RXD_1_1, FB_RXD_1_0,
       FB_RXD_2_23, FB_RXD_2_22, FB_RXD_2_21, FB_RXD_2_20, FB_RXD_2_19, FB_RXD_2_18,
       FB_RXD_2_17, FB_RXD_2_16, FB_RXD_2_15, FB_RXD_2_14, FB_RXD_2_13, FB_RXD_2_12,
       FB_RXD_2_11, FB_RXD_2_10, FB_RXD_2_9, FB_RXD_2_8, FB_RXD_2_7, FB_RXD_2_6,
       FB_RXD_2_5, FB_RXD_2_4, FB_RXD_2_3, FB_RXD_2_2, FB_RXD_2_1, FB_RXD_2_0,
       FB_RXD_3_23, FB_RXD_3_22, FB_RXD_3_21, FB_RXD_3_20, FB_RXD_3_19, FB_RXD_3_18,
       FB_RXD_3_17, FB_RXD_3_16, FB_RXD_3_15, FB_RXD_3_14, FB_RXD_3_13, FB_RXD_3_12,
       FB_RXD_3_11, FB_RXD_3_10, FB_RXD_3_9, FB_RXD_3_8, FB_RXD_3_7, FB_RXD_3_6,
       FB_RXD_3_5, FB_RXD_3_4, FB_RXD_3_3, FB_RXD_3_2, FB_RXD_3_1, FB_RXD_3_0,
       TCK_FMAC, COUT_21, COUT_20, COUT_19, COUT_18, COUT_17, COUT_16, COUT_15, COUT_14,
       COUT_13, COUT_12, COUT_11, COUT_10, COUT_9, COUT_8, COUT_7, COUT_6, COUT_5, COUT_4,
       COUT_3, COUT_2, COUT_1, COUT_0,
       CIN_12, CIN_11, CIN_10, CIN_9, CIN_8, CIN_7, CIN_6, CIN_5, CIN_4,
       CIN_3, CIN_2, CIN_1, CIN_0
  )/* synthesis syn_black_box black_box_pad_pin = "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN, RXREFCLKP, RXREFCLKN" */;

input             HDINP0,
                  HDINN0,
                  HDINP1,
                  HDINN1,
                  HDINP2,
                  HDINN2,
                  HDINP3,
                  HDINN3;

output            HDOUTP0,
                  HDOUTN0,
                  HDOUTP1,
                  HDOUTN1,
                  HDOUTP2,
                  HDOUTN2,
                  HDOUTP3,
                  HDOUTN3;

input             REFCLKP,
                  REFCLKN,
                  RXREFCLKP,
                  RXREFCLKN;

input         FFC_QUAD_RST;
input         FFC_MACRO_RST;

input         FFC_LANE_TX_RST0;
input         FFC_LANE_TX_RST1;
input         FFC_LANE_TX_RST2;
input         FFC_LANE_TX_RST3;

input         FFC_LANE_RX_RST0;
input         FFC_LANE_RX_RST1;
input         FFC_LANE_RX_RST2;
input         FFC_LANE_RX_RST3;

input         FFC_PCIE_EI_EN_0;
input         FFC_PCIE_EI_EN_1;
input         FFC_PCIE_EI_EN_2;
input         FFC_PCIE_EI_EN_3;

input         FFC_PCIE_CT_0;
input         FFC_PCIE_CT_1;
input         FFC_PCIE_CT_2;
input         FFC_PCIE_CT_3;

output        FFS_PCIE_CON_0;
output        FFS_PCIE_CON_1;
output        FFS_PCIE_CON_2;
output        FFS_PCIE_CON_3;

output        FFS_PCIE_DONE_0;
output        FFS_PCIE_DONE_1;
output        FFS_PCIE_DONE_2;
output        FFS_PCIE_DONE_3;

input         FFC_PCIE_TX_0;
input         FFC_PCIE_TX_1;
input         FFC_PCIE_TX_2;
input         FFC_PCIE_TX_3;

input         FFC_PCIE_RX_0;
input         FFC_PCIE_RX_1;
input         FFC_PCIE_RX_2;
input         FFC_PCIE_RX_3;

input         FFC_SD_0;
input         FFC_SD_1;
input         FFC_SD_2;
input         FFC_SD_3;

input         FFC_EN_CGA_0;
input         FFC_EN_CGA_1;
input         FFC_EN_CGA_2;
input         FFC_EN_CGA_3;

input         FFC_ALIGN_EN_0;
input         FFC_ALIGN_EN_1;
input         FFC_ALIGN_EN_2;
input         FFC_ALIGN_EN_3;

input         FFC_AB_RESET;
input         FFC_CD_RESET;

output        FFS_LS_STATUS_0;
output        FFS_LS_STATUS_1;
output        FFS_LS_STATUS_2;
output        FFS_LS_STATUS_3;

output        FFS_AB_STATUS;
output        FFS_CD_STATUS;

output        FFS_AB_ALIGNED;
output        FFS_CD_ALIGNED;

output        FFS_AB_FAILED;
output        FFS_CD_FAILED;

output        FFS_RLOS_LO0;
output        FFS_RLOS_LO1;
output        FFS_RLOS_LO2;
output        FFS_RLOS_LO3;

input         FFC_FB_LB_0;
input         FFC_FB_LB_1;
input         FFC_FB_LB_2;
input         FFC_FB_LB_3;

input         FFC_SB_INV_RX_0;
input         FFC_SB_INV_RX_1;
input         FFC_SB_INV_RX_2;
input         FFC_SB_INV_RX_3;

output        FFS_CC_ORUN_0;
output        FFS_CC_ORUN_1;
output        FFS_CC_ORUN_2;
output        FFS_CC_ORUN_3;

output        FFS_CC_URUN_0;
output        FFS_CC_URUN_1;
output        FFS_CC_URUN_2;
output        FFS_CC_URUN_3;

input         FFC_CK_CORE_TX;
input         FFC_CK_CORE_RX;

output BS4PAD_0, BS4PAD_1, BS4PAD_2, BS4PAD_3;

// ---------------------------------------------------------------------------

output RDATAO_7, RDATAO_6, RDATAO_5, RDATAO_4, RDATAO_3, RDATAO_2, RDATAO_1, RDATAO_0;
output        INTO;

input  ADDRI_7, ADDRI_6, ADDRI_5, ADDRI_4, ADDRI_3, ADDRI_2, ADDRI_1, ADDRI_0;
input  WDATAI_7, WDATAI_6, WDATAI_5, WDATAI_4, WDATAI_3, WDATAI_2, WDATAI_1, WDATAI_0;
input         RDI;
input         WSTBI;

input         CS_CHIF_0;
input         CS_CHIF_1;
input         CS_CHIF_2;
input         CS_CHIF_3;
input         CS_QIF;

input  QUAD_ID_1, QUAD_ID_0;

// ---------------------------------------------------------------------------

output        FF_SYSCLK_P1;

output        FF_SYSCLK0;
output        FF_SYSCLK1;
output        FF_SYSCLK2;
output        FF_SYSCLK3;

output        FF_RXCLK_P1;
output        FF_RXCLK_P2;

output        FF_RXCLK0;
output        FF_RXCLK1;
output        FF_RXCLK2;
output        FF_RXCLK3;

// ---------------------------------------------------------------------------

output        QUAD_CLK;

input  GRP_CLK_P1_3, GRP_CLK_P1_2, GRP_CLK_P1_1, GRP_CLK_P1_0;
input  GRP_CLK_P2_3, GRP_CLK_P2_2, GRP_CLK_P2_1, GRP_CLK_P2_0;
input  GRP_START_3, GRP_START_2, GRP_START_1, GRP_START_0;
input  GRP_DONE_3, GRP_DONE_2, GRP_DONE_1, GRP_DONE_0;
input  GRP_DESKEW_ERROR_3, GRP_DESKEW_ERROR_2, GRP_DESKEW_ERROR_1, GRP_DESKEW_ERROR_0;

output        IQA_START_LS;
output        IQA_DONE_LS;
output        IQA_AND_FP1_LS;
output        IQA_AND_FP0_LS;
output        IQA_OR_FP1_LS;
output        IQA_OR_FP0_LS;
output        IQA_RST_N;

// ---------------------------------------------------------------------------

input         FF_TCLK0;
input         FF_TCLK1;
input         FF_TCLK2;
input         FF_TCLK3;

input         FF_RCLK0;
input         FF_RCLK1;
input         FF_RCLK2;
input         FF_RCLK3;
input         TCK_FMACP;

input  FF_TXD_0_23, FF_TXD_0_22, FF_TXD_0_21, FF_TXD_0_20, FF_TXD_0_19, FF_TXD_0_18,
       FF_TXD_0_17, FF_TXD_0_16, FF_TXD_0_15, FF_TXD_0_14, FF_TXD_0_13, FF_TXD_0_12,
       FF_TXD_0_11, FF_TXD_0_10, FF_TXD_0_9, FF_TXD_0_8, FF_TXD_0_7, FF_TXD_0_6,
       FF_TXD_0_5, FF_TXD_0_4, FF_TXD_0_3, FF_TXD_0_2, FF_TXD_0_1, FF_TXD_0_0;
output FB_RXD_0_23, FB_RXD_0_22, FB_RXD_0_21, FB_RXD_0_20, FB_RXD_0_19, FB_RXD_0_18,
       FB_RXD_0_17, FB_RXD_0_16, FB_RXD_0_15, FB_RXD_0_14, FB_RXD_0_13, FB_RXD_0_12,
       FB_RXD_0_11, FB_RXD_0_10, FB_RXD_0_9, FB_RXD_0_8, FB_RXD_0_7, FB_RXD_0_6,
       FB_RXD_0_5, FB_RXD_0_4, FB_RXD_0_3, FB_RXD_0_2, FB_RXD_0_1, FB_RXD_0_0;
input  FF_TXD_1_23, FF_TXD_1_22, FF_TXD_1_21, FF_TXD_1_20, FF_TXD_1_19, FF_TXD_1_18,
       FF_TXD_1_17, FF_TXD_1_16, FF_TXD_1_15, FF_TXD_1_14, FF_TXD_1_13, FF_TXD_1_12,
       FF_TXD_1_11, FF_TXD_1_10, FF_TXD_1_9, FF_TXD_1_8, FF_TXD_1_7, FF_TXD_1_6,
       FF_TXD_1_5, FF_TXD_1_4, FF_TXD_1_3, FF_TXD_1_2, FF_TXD_1_1, FF_TXD_1_0;
output FB_RXD_1_23, FB_RXD_1_22, FB_RXD_1_21, FB_RXD_1_20, FB_RXD_1_19, FB_RXD_1_18,
       FB_RXD_1_17, FB_RXD_1_16, FB_RXD_1_15, FB_RXD_1_14, FB_RXD_1_13, FB_RXD_1_12,
       FB_RXD_1_11, FB_RXD_1_10, FB_RXD_1_9, FB_RXD_1_8, FB_RXD_1_7, FB_RXD_1_6,
       FB_RXD_1_5, FB_RXD_1_4, FB_RXD_1_3, FB_RXD_1_2, FB_RXD_1_1, FB_RXD_1_0;
input  FF_TXD_2_23, FF_TXD_2_22, FF_TXD_2_21, FF_TXD_2_20, FF_TXD_2_19, FF_TXD_2_18,
       FF_TXD_2_17, FF_TXD_2_16, FF_TXD_2_15, FF_TXD_2_14, FF_TXD_2_13, FF_TXD_2_12,
       FF_TXD_2_11, FF_TXD_2_10, FF_TXD_2_9, FF_TXD_2_8, FF_TXD_2_7, FF_TXD_2_6,
       FF_TXD_2_5, FF_TXD_2_4, FF_TXD_2_3, FF_TXD_2_2, FF_TXD_2_1, FF_TXD_2_0;
output FB_RXD_2_23, FB_RXD_2_22, FB_RXD_2_21, FB_RXD_2_20, FB_RXD_2_19, FB_RXD_2_18,
       FB_RXD_2_17, FB_RXD_2_16, FB_RXD_2_15, FB_RXD_2_14, FB_RXD_2_13, FB_RXD_2_12,
       FB_RXD_2_11, FB_RXD_2_10, FB_RXD_2_9, FB_RXD_2_8, FB_RXD_2_7, FB_RXD_2_6,
       FB_RXD_2_5, FB_RXD_2_4, FB_RXD_2_3, FB_RXD_2_2, FB_RXD_2_1, FB_RXD_2_0;
input  FF_TXD_3_23, FF_TXD_3_22, FF_TXD_3_21, FF_TXD_3_20, FF_TXD_3_19, FF_TXD_3_18,
       FF_TXD_3_17, FF_TXD_3_16, FF_TXD_3_15, FF_TXD_3_14, FF_TXD_3_13, FF_TXD_3_12,
       FF_TXD_3_11, FF_TXD_3_10, FF_TXD_3_9, FF_TXD_3_8, FF_TXD_3_7, FF_TXD_3_6,
       FF_TXD_3_5, FF_TXD_3_4, FF_TXD_3_3, FF_TXD_3_2, FF_TXD_3_1, FF_TXD_3_0;
output FB_RXD_3_23, FB_RXD_3_22, FB_RXD_3_21, FB_RXD_3_20, FB_RXD_3_19, FB_RXD_3_18,
       FB_RXD_3_17, FB_RXD_3_16, FB_RXD_3_15, FB_RXD_3_14, FB_RXD_3_13, FB_RXD_3_12,
       FB_RXD_3_11, FB_RXD_3_10, FB_RXD_3_9, FB_RXD_3_8, FB_RXD_3_7, FB_RXD_3_6,
       FB_RXD_3_5, FB_RXD_3_4, FB_RXD_3_3, FB_RXD_3_2, FB_RXD_3_1, FB_RXD_3_0;
output        TCK_FMAC;
output COUT_21, COUT_20, COUT_19, COUT_18, COUT_17, COUT_16, COUT_15, COUT_14, COUT_13,
       COUT_12, COUT_11, COUT_10, COUT_9, COUT_8, COUT_7, COUT_6, COUT_5, COUT_4,
       COUT_3, COUT_2, COUT_1, COUT_0;
input  CIN_12, CIN_11, CIN_10, CIN_9, CIN_8, CIN_7, CIN_6, CIN_5, CIN_4,
       CIN_3, CIN_2, CIN_1, CIN_0;
input         TESTCLK_MACO;

//synopsys translate_off
parameter CONFIG_FILE = "PCS0.txt";

defparam PCSA_sim_inst.CONFIG_FILE = CONFIG_FILE;

PCSA_sim PCSA_sim_inst (
 .HDINP0(HDINP0),
 .HDINN0(HDINN0),
 .HDINP1(HDINP1),
 .HDINN1(HDINN1),
 .HDINP2(HDINP2),
 .HDINN2(HDINN2),
 .HDINP3(HDINP3),
 .HDINN3(HDINN3),
 .HDOUTP0(HDOUTP0),
 .HDOUTN0(HDOUTN0),
 .HDOUTP1(HDOUTP1),
 .HDOUTN1(HDOUTN1),
 .HDOUTP2(HDOUTP2),
 .HDOUTN2(HDOUTN2),
 .HDOUTP3(HDOUTP3),
 .HDOUTN3(HDOUTN3),
 .REFCLKP(REFCLKP),
 .REFCLKN(REFCLKN),
 .RXREFCLKP(RXREFCLKP),
 .RXREFCLKN(RXREFCLKN),
 .FFC_QUAD_RST(FFC_QUAD_RST),
 .FFC_MACRO_RST(FFC_MACRO_RST),
 .FFC_LANE_TX_RST0(FFC_LANE_TX_RST0),
 .FFC_LANE_TX_RST1(FFC_LANE_TX_RST1),
 .FFC_LANE_TX_RST2(FFC_LANE_TX_RST2),
 .FFC_LANE_TX_RST3(FFC_LANE_TX_RST3),
 .FFC_LANE_RX_RST0(FFC_LANE_RX_RST0),
 .FFC_LANE_RX_RST1(FFC_LANE_RX_RST1),
 .FFC_LANE_RX_RST2(FFC_LANE_RX_RST2),
 .FFC_LANE_RX_RST3(FFC_LANE_RX_RST3),
 .FFC_PCIE_EI_EN_0(FFC_PCIE_EI_EN_0),
 .FFC_PCIE_EI_EN_1(FFC_PCIE_EI_EN_1),
 .FFC_PCIE_EI_EN_2(FFC_PCIE_EI_EN_2),
 .FFC_PCIE_EI_EN_3(FFC_PCIE_EI_EN_3),
 .FFC_PCIE_CT_0(FFC_PCIE_CT_0),
 .FFC_PCIE_CT_1(FFC_PCIE_CT_1),
 .FFC_PCIE_CT_2(FFC_PCIE_CT_2),
 .FFC_PCIE_CT_3(FFC_PCIE_CT_3),
 .FFS_PCIE_CON_0(FFS_PCIE_CON_0),
 .FFS_PCIE_CON_1(FFS_PCIE_CON_1),
 .FFS_PCIE_CON_2(FFS_PCIE_CON_2),
 .FFS_PCIE_CON_3(FFS_PCIE_CON_3),
 .FFS_PCIE_DONE_0(FFS_PCIE_DONE_0),
 .FFS_PCIE_DONE_1(FFS_PCIE_DONE_1),
 .FFS_PCIE_DONE_2(FFS_PCIE_DONE_2),
 .FFS_PCIE_DONE_3(FFS_PCIE_DONE_3),
 .FFC_PCIE_TX_0(FFC_PCIE_TX_0),
 .FFC_PCIE_TX_1(FFC_PCIE_TX_1),
 .FFC_PCIE_TX_2(FFC_PCIE_TX_2),
 .FFC_PCIE_TX_3(FFC_PCIE_TX_3),
 .FFC_PCIE_RX_0(FFC_PCIE_RX_0),
 .FFC_PCIE_RX_1(FFC_PCIE_RX_1),
 .FFC_PCIE_RX_2(FFC_PCIE_RX_2),
 .FFC_PCIE_RX_3(FFC_PCIE_RX_3),
 .FFC_SD_0(FFC_SD_0),
 .FFC_SD_1(FFC_SD_1),
 .FFC_SD_2(FFC_SD_2),
 .FFC_SD_3(FFC_SD_3),
 .FFC_EN_CGA_0(FFC_EN_CGA_0),
 .FFC_EN_CGA_1(FFC_EN_CGA_1),
 .FFC_EN_CGA_2(FFC_EN_CGA_2),
 .FFC_EN_CGA_3(FFC_EN_CGA_3),
 .FFC_ALIGN_EN_0(FFC_ALIGN_EN_0),
 .FFC_ALIGN_EN_1(FFC_ALIGN_EN_1),
 .FFC_ALIGN_EN_2(FFC_ALIGN_EN_2),
 .FFC_ALIGN_EN_3(FFC_ALIGN_EN_3),
 .FFC_AB_RESET(FFC_AB_RESET),
 .FFC_CD_RESET(FFC_CD_RESET),
 .FFS_LS_STATUS_0(FFS_LS_STATUS_0),
 .FFS_LS_STATUS_1(FFS_LS_STATUS_1),
 .FFS_LS_STATUS_2(FFS_LS_STATUS_2),
 .FFS_LS_STATUS_3(FFS_LS_STATUS_3),
 .FFS_AB_STATUS(FFS_AB_STATUS),
 .FFS_CD_STATUS(FFS_CD_STATUS),
 .FFS_AB_ALIGNED(FFS_AB_ALIGNED),
 .FFS_CD_ALIGNED(FFS_CD_ALIGNED),
 .FFS_AB_FAILED(FFS_AB_FAILED),
 .FFS_CD_FAILED(FFS_CD_FAILED),
 .FFS_RLOS_LO0(FFS_RLOS_LO0),
 .FFS_RLOS_LO1(FFS_RLOS_LO1),
 .FFS_RLOS_LO2(FFS_RLOS_LO2),
 .FFS_RLOS_LO3(FFS_RLOS_LO3),
 .FFC_FB_LB_0(FFC_FB_LB_0),
 .FFC_FB_LB_1(FFC_FB_LB_1),
 .FFC_FB_LB_2(FFC_FB_LB_2),
 .FFC_FB_LB_3(FFC_FB_LB_3),
 .FFC_SB_INV_RX_0(FFC_SB_INV_RX_0),
 .FFC_SB_INV_RX_1(FFC_SB_INV_RX_1),
 .FFC_SB_INV_RX_2(FFC_SB_INV_RX_2),
 .FFC_SB_INV_RX_3(FFC_SB_INV_RX_3),
 .FFS_CC_ORUN_0(FFS_CC_ORUN_0),
 .FFS_CC_ORUN_1(FFS_CC_ORUN_1),
 .FFS_CC_ORUN_2(FFS_CC_ORUN_2),
 .FFS_CC_ORUN_3(FFS_CC_ORUN_3),
 .FFS_CC_URUN_0(FFS_CC_URUN_0),
 .FFS_CC_URUN_1(FFS_CC_URUN_1),
 .FFS_CC_URUN_2(FFS_CC_URUN_2),
 .FFS_CC_URUN_3(FFS_CC_URUN_3),
 .FFC_CK_CORE_TX(FFC_CK_CORE_TX),
 .FFC_CK_CORE_RX(FFC_CK_CORE_RX),
 .BS4PAD_0(BS4PAD_0),
 .BS4PAD_1(BS4PAD_1),
 .BS4PAD_2(BS4PAD_2),
 .BS4PAD_3(BS4PAD_3),
 .RDATAO_7(RDATAO_7),
 .RDATAO_6(RDATAO_6),
 .RDATAO_5(RDATAO_5),
 .RDATAO_4(RDATAO_4),
 .RDATAO_3(RDATAO_3),
 .RDATAO_2(RDATAO_2),
 .RDATAO_1(RDATAO_1),
 .RDATAO_0(RDATAO_0),
 .INTO(INTO),
 .ADDRI_7(ADDRI_7),
 .ADDRI_6(ADDRI_6),
 .ADDRI_5(ADDRI_5),
 .ADDRI_4(ADDRI_4),
 .ADDRI_3(ADDRI_3),
 .ADDRI_2(ADDRI_2),
 .ADDRI_1(ADDRI_1),
 .ADDRI_0(ADDRI_0),
 .WDATAI_7(WDATAI_7),
 .WDATAI_6(WDATAI_6),
 .WDATAI_5(WDATAI_5),
 .WDATAI_4(WDATAI_4),
 .WDATAI_3(WDATAI_3),
 .WDATAI_2(WDATAI_2),
 .WDATAI_1(WDATAI_1),
 .WDATAI_0(WDATAI_0),
 .RDI(RDI),
 .WSTBI(WSTBI),
 .CS_CHIF_0(CS_CHIF_0),
 .CS_CHIF_1(CS_CHIF_1),
 .CS_CHIF_2(CS_CHIF_2),
 .CS_CHIF_3(CS_CHIF_3),
 .CS_QIF(CS_QIF),
 .QUAD_ID_1(QUAD_ID_1),
 .QUAD_ID_0(QUAD_ID_0),
 .FF_SYSCLK_P1(FF_SYSCLK_P1),
 .FF_SYSCLK0(FF_SYSCLK0),
 .FF_SYSCLK1(FF_SYSCLK1),
 .FF_SYSCLK2(FF_SYSCLK2),
 .FF_SYSCLK3(FF_SYSCLK3),
 .FF_RXCLK_P1(FF_RXCLK_P1),
 .FF_RXCLK_P2(FF_RXCLK_P2),
 .FF_RXCLK0(FF_RXCLK0),
 .FF_RXCLK1(FF_RXCLK1),
 .FF_RXCLK2(FF_RXCLK2),
 .FF_RXCLK3(FF_RXCLK3),
 .QUAD_CLK(QUAD_CLK),
 .GRP_CLK_P1_3(GRP_CLK_P1_3),
 .GRP_CLK_P1_2(GRP_CLK_P1_2),
 .GRP_CLK_P1_1(GRP_CLK_P1_1),
 .GRP_CLK_P1_0(GRP_CLK_P1_0),
 .GRP_CLK_P2_3(GRP_CLK_P2_3),
 .GRP_CLK_P2_2(GRP_CLK_P2_2),
 .GRP_CLK_P2_1(GRP_CLK_P2_1),
 .GRP_CLK_P2_0(GRP_CLK_P2_0),
 .GRP_START_3(GRP_START_3),
 .GRP_START_2(GRP_START_2),
 .GRP_START_1(GRP_START_1),
 .GRP_START_0(GRP_START_0),
 .GRP_DONE_3(GRP_DONE_3),
 .GRP_DONE_2(GRP_DONE_2),
 .GRP_DONE_1(GRP_DONE_1),
 .GRP_DONE_0(GRP_DONE_0),
 .GRP_DESKEW_ERROR_3(GRP_DESKEW_ERROR_3),
 .GRP_DESKEW_ERROR_2(GRP_DESKEW_ERROR_2),
 .GRP_DESKEW_ERROR_1(GRP_DESKEW_ERROR_1),
 .GRP_DESKEW_ERROR_0(GRP_DESKEW_ERROR_0),
 .IQA_START_LS(IQA_START_LS),
 .IQA_DONE_LS(IQA_DONE_LS),
 .IQA_AND_FP1_LS(IQA_AND_FP1_LS),
 .IQA_AND_FP0_LS(IQA_AND_FP0_LS),
 .IQA_OR_FP1_LS(IQA_OR_FP1_LS),
 .IQA_OR_FP0_LS(IQA_OR_FP0_LS),
 .IQA_RST_N(IQA_RST_N),
 .FF_TCLK0(FF_TCLK0),
 .FF_TCLK1(FF_TCLK1),
 .FF_TCLK2(FF_TCLK2),
 .FF_TCLK3(FF_TCLK3),
 .FF_RCLK0(FF_RCLK0),
 .FF_RCLK1(FF_RCLK1),
 .FF_RCLK2(FF_RCLK2),
 .FF_RCLK3(FF_RCLK3),
 .TCK_FMACP(TCK_FMACP),
 .FF_TXD_0_23(FF_TXD_0_23),
 .FF_TXD_0_22(FF_TXD_0_22),
 .FF_TXD_0_21(FF_TXD_0_21),
 .FF_TXD_0_20(FF_TXD_0_20),
 .FF_TXD_0_19(FF_TXD_0_19),
 .FF_TXD_0_18(FF_TXD_0_18),
 .FF_TXD_0_17(FF_TXD_0_17),
 .FF_TXD_0_16(FF_TXD_0_16),
 .FF_TXD_0_15(FF_TXD_0_15),
 .FF_TXD_0_14(FF_TXD_0_14),
 .FF_TXD_0_13(FF_TXD_0_13),
 .FF_TXD_0_12(FF_TXD_0_12),
 .FF_TXD_0_11(FF_TXD_0_11),
 .FF_TXD_0_10(FF_TXD_0_10),
 .FF_TXD_0_9(FF_TXD_0_9),
 .FF_TXD_0_8(FF_TXD_0_8),
 .FF_TXD_0_7(FF_TXD_0_7),
 .FF_TXD_0_6(FF_TXD_0_6),
 .FF_TXD_0_5(FF_TXD_0_5),
 .FF_TXD_0_4(FF_TXD_0_4),
 .FF_TXD_0_3(FF_TXD_0_3),
 .FF_TXD_0_2(FF_TXD_0_2),
 .FF_TXD_0_1(FF_TXD_0_1),
 .FF_TXD_0_0(FF_TXD_0_0),
 .FB_RXD_0_23(FB_RXD_0_23),
 .FB_RXD_0_22(FB_RXD_0_22),
 .FB_RXD_0_21(FB_RXD_0_21),
 .FB_RXD_0_20(FB_RXD_0_20),
 .FB_RXD_0_19(FB_RXD_0_19),
 .FB_RXD_0_18(FB_RXD_0_18),
 .FB_RXD_0_17(FB_RXD_0_17),
 .FB_RXD_0_16(FB_RXD_0_16),
 .FB_RXD_0_15(FB_RXD_0_15),
 .FB_RXD_0_14(FB_RXD_0_14),
 .FB_RXD_0_13(FB_RXD_0_13),
 .FB_RXD_0_12(FB_RXD_0_12),
 .FB_RXD_0_11(FB_RXD_0_11),
 .FB_RXD_0_10(FB_RXD_0_10),
 .FB_RXD_0_9(FB_RXD_0_9),
 .FB_RXD_0_8(FB_RXD_0_8),
 .FB_RXD_0_7(FB_RXD_0_7),
 .FB_RXD_0_6(FB_RXD_0_6),
 .FB_RXD_0_5(FB_RXD_0_5),
 .FB_RXD_0_4(FB_RXD_0_4),
 .FB_RXD_0_3(FB_RXD_0_3),
 .FB_RXD_0_2(FB_RXD_0_2),
 .FB_RXD_0_1(FB_RXD_0_1),
 .FB_RXD_0_0(FB_RXD_0_0),
 .FF_TXD_1_23(FF_TXD_1_23),
 .FF_TXD_1_22(FF_TXD_1_22),
 .FF_TXD_1_21(FF_TXD_1_21),
 .FF_TXD_1_20(FF_TXD_1_20),
 .FF_TXD_1_19(FF_TXD_1_19),
 .FF_TXD_1_18(FF_TXD_1_18),
 .FF_TXD_1_17(FF_TXD_1_17),
 .FF_TXD_1_16(FF_TXD_1_16),
 .FF_TXD_1_15(FF_TXD_1_15),
 .FF_TXD_1_14(FF_TXD_1_14),
 .FF_TXD_1_13(FF_TXD_1_13),
 .FF_TXD_1_12(FF_TXD_1_12),
 .FF_TXD_1_11(FF_TXD_1_11),
 .FF_TXD_1_10(FF_TXD_1_10),
 .FF_TXD_1_9(FF_TXD_1_9),
 .FF_TXD_1_8(FF_TXD_1_8),
 .FF_TXD_1_7(FF_TXD_1_7),
 .FF_TXD_1_6(FF_TXD_1_6),
 .FF_TXD_1_5(FF_TXD_1_5),
 .FF_TXD_1_4(FF_TXD_1_4),
 .FF_TXD_1_3(FF_TXD_1_3),
 .FF_TXD_1_2(FF_TXD_1_2),
 .FF_TXD_1_1(FF_TXD_1_1),
 .FF_TXD_1_0(FF_TXD_1_0),
 .FB_RXD_1_23(FB_RXD_1_23),
 .FB_RXD_1_22(FB_RXD_1_22),
 .FB_RXD_1_21(FB_RXD_1_21),
 .FB_RXD_1_20(FB_RXD_1_20),
 .FB_RXD_1_19(FB_RXD_1_19),
 .FB_RXD_1_18(FB_RXD_1_18),
 .FB_RXD_1_17(FB_RXD_1_17),
 .FB_RXD_1_16(FB_RXD_1_16),
 .FB_RXD_1_15(FB_RXD_1_15),
 .FB_RXD_1_14(FB_RXD_1_14),
 .FB_RXD_1_13(FB_RXD_1_13),
 .FB_RXD_1_12(FB_RXD_1_12),
 .FB_RXD_1_11(FB_RXD_1_11),
 .FB_RXD_1_10(FB_RXD_1_10),
 .FB_RXD_1_9(FB_RXD_1_9),
 .FB_RXD_1_8(FB_RXD_1_8),
 .FB_RXD_1_7(FB_RXD_1_7),
 .FB_RXD_1_6(FB_RXD_1_6),
 .FB_RXD_1_5(FB_RXD_1_5),
 .FB_RXD_1_4(FB_RXD_1_4),
 .FB_RXD_1_3(FB_RXD_1_3),
 .FB_RXD_1_2(FB_RXD_1_2),
 .FB_RXD_1_1(FB_RXD_1_1),
 .FB_RXD_1_0(FB_RXD_1_0),
 .FF_TXD_2_23(FF_TXD_2_23),
 .FF_TXD_2_22(FF_TXD_2_22),
 .FF_TXD_2_21(FF_TXD_2_21),
 .FF_TXD_2_20(FF_TXD_2_20),
 .FF_TXD_2_19(FF_TXD_2_19),
 .FF_TXD_2_18(FF_TXD_2_18),
 .FF_TXD_2_17(FF_TXD_2_17),
 .FF_TXD_2_16(FF_TXD_2_16),
 .FF_TXD_2_15(FF_TXD_2_15),
 .FF_TXD_2_14(FF_TXD_2_14),
 .FF_TXD_2_13(FF_TXD_2_13),
 .FF_TXD_2_12(FF_TXD_2_12),
 .FF_TXD_2_11(FF_TXD_2_11),
 .FF_TXD_2_10(FF_TXD_2_10),
 .FF_TXD_2_9(FF_TXD_2_9),
 .FF_TXD_2_8(FF_TXD_2_8),
 .FF_TXD_2_7(FF_TXD_2_7),
 .FF_TXD_2_6(FF_TXD_2_6),
 .FF_TXD_2_5(FF_TXD_2_5),
 .FF_TXD_2_4(FF_TXD_2_4),
 .FF_TXD_2_3(FF_TXD_2_3),
 .FF_TXD_2_2(FF_TXD_2_2),
 .FF_TXD_2_1(FF_TXD_2_1),
 .FF_TXD_2_0(FF_TXD_2_0),
 .FB_RXD_2_23(FB_RXD_2_23),
 .FB_RXD_2_22(FB_RXD_2_22),
 .FB_RXD_2_21(FB_RXD_2_21),
 .FB_RXD_2_20(FB_RXD_2_20),
 .FB_RXD_2_19(FB_RXD_2_19),
 .FB_RXD_2_18(FB_RXD_2_18),
 .FB_RXD_2_17(FB_RXD_2_17),
 .FB_RXD_2_16(FB_RXD_2_16),
 .FB_RXD_2_15(FB_RXD_2_15),
 .FB_RXD_2_14(FB_RXD_2_14),
 .FB_RXD_2_13(FB_RXD_2_13),
 .FB_RXD_2_12(FB_RXD_2_12),
 .FB_RXD_2_11(FB_RXD_2_11),
 .FB_RXD_2_10(FB_RXD_2_10),
 .FB_RXD_2_9(FB_RXD_2_9),
 .FB_RXD_2_8(FB_RXD_2_8),
 .FB_RXD_2_7(FB_RXD_2_7),
 .FB_RXD_2_6(FB_RXD_2_6),
 .FB_RXD_2_5(FB_RXD_2_5),
 .FB_RXD_2_4(FB_RXD_2_4),
 .FB_RXD_2_3(FB_RXD_2_3),
 .FB_RXD_2_2(FB_RXD_2_2),
 .FB_RXD_2_1(FB_RXD_2_1),
 .FB_RXD_2_0(FB_RXD_2_0),
 .FF_TXD_3_23(FF_TXD_3_23),
 .FF_TXD_3_22(FF_TXD_3_22),
 .FF_TXD_3_21(FF_TXD_3_21),
 .FF_TXD_3_20(FF_TXD_3_20),
 .FF_TXD_3_19(FF_TXD_3_19),
 .FF_TXD_3_18(FF_TXD_3_18),
 .FF_TXD_3_17(FF_TXD_3_17),
 .FF_TXD_3_16(FF_TXD_3_16),
 .FF_TXD_3_15(FF_TXD_3_15),
 .FF_TXD_3_14(FF_TXD_3_14),
 .FF_TXD_3_13(FF_TXD_3_13),
 .FF_TXD_3_12(FF_TXD_3_12),
 .FF_TXD_3_11(FF_TXD_3_11),
 .FF_TXD_3_10(FF_TXD_3_10),
 .FF_TXD_3_9(FF_TXD_3_9),
 .FF_TXD_3_8(FF_TXD_3_8),
 .FF_TXD_3_7(FF_TXD_3_7),
 .FF_TXD_3_6(FF_TXD_3_6),
 .FF_TXD_3_5(FF_TXD_3_5),
 .FF_TXD_3_4(FF_TXD_3_4),
 .FF_TXD_3_3(FF_TXD_3_3),
 .FF_TXD_3_2(FF_TXD_3_2),
 .FF_TXD_3_1(FF_TXD_3_1),
 .FF_TXD_3_0(FF_TXD_3_0),
 .FB_RXD_3_23(FB_RXD_3_23),
 .FB_RXD_3_22(FB_RXD_3_22),
 .FB_RXD_3_21(FB_RXD_3_21),
 .FB_RXD_3_20(FB_RXD_3_20),
 .FB_RXD_3_19(FB_RXD_3_19),
 .FB_RXD_3_18(FB_RXD_3_18),
 .FB_RXD_3_17(FB_RXD_3_17),
 .FB_RXD_3_16(FB_RXD_3_16),
 .FB_RXD_3_15(FB_RXD_3_15),
 .FB_RXD_3_14(FB_RXD_3_14),
 .FB_RXD_3_13(FB_RXD_3_13),
 .FB_RXD_3_12(FB_RXD_3_12),
 .FB_RXD_3_11(FB_RXD_3_11),
 .FB_RXD_3_10(FB_RXD_3_10),
 .FB_RXD_3_9(FB_RXD_3_9),
 .FB_RXD_3_8(FB_RXD_3_8),
 .FB_RXD_3_7(FB_RXD_3_7),
 .FB_RXD_3_6(FB_RXD_3_6),
 .FB_RXD_3_5(FB_RXD_3_5),
 .FB_RXD_3_4(FB_RXD_3_4),
 .FB_RXD_3_3(FB_RXD_3_3),
 .FB_RXD_3_2(FB_RXD_3_2),
 .FB_RXD_3_1(FB_RXD_3_1),
 .FB_RXD_3_0(FB_RXD_3_0),
 .TCK_FMAC(TCK_FMAC),
 .TESTCLK_MACO(TESTCLK_MACO),
 .COUT_21(COUT_21),
 .COUT_20(COUT_20),
 .COUT_19(COUT_19),
 .COUT_18(COUT_18),
 .COUT_17(COUT_17),
 .COUT_16(COUT_16),
 .COUT_15(COUT_15),
 .COUT_14(COUT_14),
 .COUT_13(COUT_13),
 .COUT_12(COUT_12),
 .COUT_11(COUT_11),
 .COUT_10(COUT_10),
 .COUT_9(COUT_9),
 .COUT_8(COUT_8),
 .COUT_7(COUT_7),
 .COUT_6(COUT_6),
 .COUT_5(COUT_5),
 .COUT_4(COUT_4),
 .COUT_3(COUT_3),
 .COUT_2(COUT_2),
 .COUT_1(COUT_1),
 .COUT_0(COUT_0),
 .CIN_12(CIN_12),
 .CIN_11(CIN_11),
 .CIN_10(CIN_10),
 .CIN_9(CIN_9),
 .CIN_8(CIN_8),
 .CIN_7(CIN_7),
 .CIN_6(CIN_6),
 .CIN_5(CIN_5),
 .CIN_4(CIN_4),
 .CIN_3(CIN_3),
 .CIN_2(CIN_2),
 .CIN_1(CIN_1),
 .CIN_0(CIN_0)
);

//synopsys translate_on

endmodule
