// *************************************************************************** // *************************************************************************** // Copyright 2014 - 2017 (c) Analog Devices, Inc. All rights reserved. // // In this HDL repository, there are many different and unique modules, consisting // of various HDL (Verilog or VHDL) components. The individual modules are // developed independently, and may be accompanied by separate and unique license // terms. // // The user should read each of these license terms, and understand the // freedoms and responsibilities that he or she has by using this source/core. // // This core is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR // A PARTICULAR PURPOSE. // // Redistribution and use of source or resulting binaries, with or without modification // of this file, are permitted under one of the following two license terms: // // 1. The GNU General Public License version 2 as published by the // Free Software Foundation, which can be found in the top level directory // of this repository (LICENSE_GPL2), and also online at: // // // OR // // 2. An ADI specific BSD license, which can be found in the top level directory // of this repository (LICENSE_ADIBSD), and also on-line at: // https://github.com/analogdevicesinc/hdl/blob/master/LICENSE_ADIBSD // This will allow to generate bit files and not release the source code, // as long as it attaches to an ADI device. // // *************************************************************************** // *************************************************************************** // AUTO GENERATED BY util_adxcvr.pl, DO NOT MODIFY! `timescale 1ns/1ps module util_adxcvr #( // gtxe2(2), gthe3(5), gthe4(8), gtye4(9) parameter integer XCVR_TYPE = 0, parameter real RX_LANE_RATE = 12.5, parameter real TX_LANE_RATE = 12.5, parameter LINK_MODE = 1, // 2 - 64B/66B; 1 - 8B/10B /* Only 4 is supported at the moment for 8b/10b and 8 for 64b */ parameter DATA_PATH_WIDTH = LINK_MODE == 2 ? 8 : 4, // qpll-configuration parameter integer QPLL_REFCLK_DIV = 1, parameter integer QPLL_FBDIV_RATIO = 1, parameter [15:0] POR_CFG = 16'b0000000000000110, parameter [15:0] PPF0_CFG = 16'b0000011000000000, parameter [15:0] PPF1_CFG = 16'b0000011000000000, parameter [26:0] QPLL_CFG = 27'h0680181, parameter [ 9:0] QPLL_FBDIV = 10'b0000110000, parameter [15:0] QPLL_CFG0 = 16'b0011001100011100, parameter [15:0] QPLL_CFG1 = 16'b1101000000111000, parameter [15:0] QPLL_CFG1_G3 = 16'b1101000000111000, parameter [15:0] QPLL_CFG2 = 16'b0000111111000000, parameter [15:0] QPLL_CFG2_G3 = 16'b0000111111000000, parameter [15:0] QPLL_CFG3 = 16'b0000000100100000, parameter [15:0] QPLL_CFG4 = 16'b0000000000000011, parameter [15:0] QPLL_CP_G3 = 10'b0000011111, parameter [15:0] QPLL_LPF = 10'b0100110111, parameter [15:0] QPLL_CP = 10'b0001111111, // cpll-configuration parameter integer CPLL_FBDIV = 2, parameter integer CPLL_FBDIV_4_5 = 5, parameter [15:0] CPLL_CFG0 = 16'b0000000111111010, parameter [15:0] CPLL_CFG1 = 16'b0000000000100011, parameter [15:0] CPLL_CFG2 = 16'b0000000000000010, parameter [15:0] CPLL_CFG3 = 16'b0000000000000000, parameter [15:0] CH_HSPMUX = 16'b0010010000100100, parameter integer PREIQ_FREQ_BST = 0, parameter [15:0] RXPI_CFG0 = 16'b0000000000000010, parameter [15:0] RXPI_CFG1 = 16'b0000000000010101, parameter [2:0] RTX_BUF_CML_CTRL = 3'b011, // tx-configuration parameter integer TX_NUM_OF_LANES = 8, parameter integer TX_OUT_DIV = 1, parameter integer TX_CLK25_DIV = 20, parameter integer TX_LANE_INVERT = 0, parameter [15:0] TX_PI_BIASSET = 1, parameter [15:0] TXPI_CFG = 16'b0000000001010100, parameter [15:0] A_TXDIFFCTRL = 5'b10110, // rx-configuration parameter integer RX_NUM_OF_LANES = 8, parameter integer RX_OUT_DIV = 1, parameter integer RX_CLK25_DIV = 20, parameter [15:0] RX_DFE_LPM_CFG = 16'h0104, parameter [31:0] RX_PMA_CFG = 32'h001e7080, parameter [72:0] RX_CDR_CFG = 72'h0b000023ff10400020, parameter [15:0] RXCDR_CFG0 = 16'b0000000000000010, parameter [15:0] RXCDR_CFG2 = 16'b0000001001101001, parameter [ 9:0] RXCDR_CFG2_GEN2 = 10'b1001100101, parameter [15:0] RXCDR_CFG2_GEN4 = 16'b0000000010110100, parameter [15:0] RXCDR_CFG3 = 16'b0000000000010010, parameter [ 5:0] RXCDR_CFG3_GEN2 = 6'b011010, parameter [15:0] RXCDR_CFG3_GEN3 = 16'b0000000000010010, parameter [15:0] RXCDR_CFG3_GEN4 = 16'b0000000000100100, parameter [15:0] RXDFE_KH_CFG2 = 16'h0200, parameter [15:0] RXDFE_KH_CFG3 = 16'h4101, parameter [ 1:0] RX_WIDEMODE_CDR = 2'b00, parameter [ 0:0] RX_XMODE_SEL = 1'b1, parameter integer TXDRV_FREQBAND = 0, parameter [15:0] TXFE_CFG0 = 16'b0000001111000010, parameter [15:0] TXFE_CFG1 = 16'b0110110000000000, parameter [15:0] TXFE_CFG2 = 16'b0110110000000000, parameter [15:0] TXFE_CFG3 = 16'b0110110000000000, parameter [15:0] TXPI_CFG0 = 16'b0000001100000000, parameter [15:0] TXPI_CFG1 = 16'b0001000000000000, parameter integer TXSWBST_EN = 0, parameter integer RX_LANE_INVERT = 0 ) ( input up_rstn, input up_clk, input qpll_ref_clk_0, input up_qpll_rst_0, input cpll_ref_clk_0, input up_cpll_rst_0, input rx_0_p, input rx_0_n, output rx_out_clk_0, output rx_out_clk_div2_0, input rx_clk_0, input rx_clk_2x_0, output [DATA_PATH_WIDTH-1:0] rx_charisk_0, output [DATA_PATH_WIDTH-1:0] rx_disperr_0, output [DATA_PATH_WIDTH-1:0] rx_notintable_0, output [DATA_PATH_WIDTH*8-1:0] rx_data_0, input rx_calign_0, output [1:0] rx_header_0, output rx_block_sync_0, output tx_0_p, output tx_0_n, output tx_out_clk_0, output tx_out_clk_div2_0, input tx_clk_0, input tx_clk_2x_0, input [DATA_PATH_WIDTH-1:0] tx_charisk_0, input [DATA_PATH_WIDTH*8-1:0] tx_data_0, input [1:0] tx_header_0, input up_cm_enb_0, input [11:0] up_cm_addr_0, input up_cm_wr_0, input [15:0] up_cm_wdata_0, output [15:0] up_cm_rdata_0, output up_cm_ready_0, input up_es_enb_0, input [11:0] up_es_addr_0, input up_es_wr_0, input [15:0] up_es_wdata_0, output [15:0] up_es_rdata_0, output up_es_ready_0, input up_es_reset_0, output up_rx_pll_locked_0, input up_rx_rst_0, input up_rx_user_ready_0, output up_rx_rst_done_0, input [ 3:0] up_rx_prbssel_0, input up_rx_prbscntreset_0, output up_rx_prbserr_0, output up_rx_prbslocked_0, output [ 1:0] up_rx_bufstatus_0, input up_rx_bufstatus_rst_0, input up_rx_lpm_dfe_n_0, input [ 2:0] up_rx_rate_0, input [ 1:0] up_rx_sys_clk_sel_0, input [ 2:0] up_rx_out_clk_sel_0, input up_rx_enb_0, input [11:0] up_rx_addr_0, input up_rx_wr_0, input [15:0] up_rx_wdata_0, output [15:0] up_rx_rdata_0, output up_rx_ready_0, output up_tx_pll_locked_0, input up_tx_rst_0, input up_tx_user_ready_0, output up_tx_rst_done_0, output [ 1:0] up_tx_bufstatus_0, input up_tx_prbsforceerr_0, input [ 3:0] up_tx_prbssel_0, input up_tx_lpm_dfe_n_0, input [ 2:0] up_tx_rate_0, input [ 1:0] up_tx_sys_clk_sel_0, input [ 2:0] up_tx_out_clk_sel_0, input [ 4:0] up_tx_diffctrl_0, input [ 4:0] up_tx_postcursor_0, input [ 4:0] up_tx_precursor_0, input up_tx_enb_0, input [11:0] up_tx_addr_0, input up_tx_wr_0, input [15:0] up_tx_wdata_0, output [15:0] up_tx_rdata_0, output up_tx_ready_0, input cpll_ref_clk_1, input up_cpll_rst_1, input rx_1_p, input rx_1_n, output rx_out_clk_1, output rx_out_clk_div2_1, input rx_clk_1, input rx_clk_2x_1, output [DATA_PATH_WIDTH-1:0] rx_charisk_1, output [DATA_PATH_WIDTH-1:0] rx_disperr_1, output [DATA_PATH_WIDTH-1:0] rx_notintable_1, output [DATA_PATH_WIDTH*8-1:0] rx_data_1, input rx_calign_1, output [1:0] rx_header_1, output rx_block_sync_1, output tx_1_p, output tx_1_n, output tx_out_clk_1, output tx_out_clk_div2_1, input tx_clk_1, input tx_clk_2x_1, input [DATA_PATH_WIDTH-1:0] tx_charisk_1, input [DATA_PATH_WIDTH*8-1:0] tx_data_1, input [1:0] tx_header_1, input up_es_enb_1, input [11:0] up_es_addr_1, input up_es_wr_1, input [15:0] up_es_wdata_1, output [15:0] up_es_rdata_1, output up_es_ready_1, input up_es_reset_1, output up_rx_pll_locked_1, input up_rx_rst_1, input up_rx_user_ready_1, output up_rx_rst_done_1, input [ 3:0] up_rx_prbssel_1, input up_rx_prbscntreset_1, output up_rx_prbserr_1, output up_rx_prbslocked_1, output [ 1:0] up_rx_bufstatus_1, input up_rx_bufstatus_rst_1, input up_rx_lpm_dfe_n_1, input [ 2:0] up_rx_rate_1, input [ 1:0] up_rx_sys_clk_sel_1, input [ 2:0] up_rx_out_clk_sel_1, input up_rx_enb_1, input [11:0] up_rx_addr_1, input up_rx_wr_1, input [15:0] up_rx_wdata_1, output [15:0] up_rx_rdata_1, output up_rx_ready_1, output up_tx_pll_locked_1, input up_tx_rst_1, input up_tx_user_ready_1, output up_tx_rst_done_1, output [ 1:0] up_tx_bufstatus_1, input up_tx_prbsforceerr_1, input [ 3:0] up_tx_prbssel_1, input up_tx_lpm_dfe_n_1, input [ 2:0] up_tx_rate_1, input [ 1:0] up_tx_sys_clk_sel_1, input [ 2:0] up_tx_out_clk_sel_1, input [ 4:0] up_tx_diffctrl_1, input [ 4:0] up_tx_postcursor_1, input [ 4:0] up_tx_precursor_1, input up_tx_enb_1, input [11:0] up_tx_addr_1, input up_tx_wr_1, input [15:0] up_tx_wdata_1, output [15:0] up_tx_rdata_1, output up_tx_ready_1, input cpll_ref_clk_2, input up_cpll_rst_2, input rx_2_p, input rx_2_n, output rx_out_clk_2, output rx_out_clk_div2_2, input rx_clk_2, input rx_clk_2x_2, output [DATA_PATH_WIDTH-1:0] rx_charisk_2, output [DATA_PATH_WIDTH-1:0] rx_disperr_2, output [DATA_PATH_WIDTH-1:0] rx_notintable_2, output [DATA_PATH_WIDTH*8-1:0] rx_data_2, input rx_calign_2, output [1:0] rx_header_2, output rx_block_sync_2, output tx_2_p, output tx_2_n, output tx_out_clk_2, output tx_out_clk_div2_2, input tx_clk_2, input tx_clk_2x_2, input [DATA_PATH_WIDTH-1:0] tx_charisk_2, input [DATA_PATH_WIDTH*8-1:0] tx_data_2, input [1:0] tx_header_2, input up_es_enb_2, input [11:0] up_es_addr_2, input up_es_wr_2, input [15:0] up_es_wdata_2, output [15:0] up_es_rdata_2, output up_es_ready_2, input up_es_reset_2, output up_rx_pll_locked_2, input up_rx_rst_2, input up_rx_user_ready_2, output up_rx_rst_done_2, input [ 3:0] up_rx_prbssel_2, input up_rx_prbscntreset_2, output up_rx_prbserr_2, output up_rx_prbslocked_2, output [ 1:0] up_rx_bufstatus_2, input up_rx_bufstatus_rst_2, input up_rx_lpm_dfe_n_2, input [ 2:0] up_rx_rate_2, input [ 1:0] up_rx_sys_clk_sel_2, input [ 2:0] up_rx_out_clk_sel_2, input up_rx_enb_2, input [11:0] up_rx_addr_2, input up_rx_wr_2, input [15:0] up_rx_wdata_2, output [15:0] up_rx_rdata_2, output up_rx_ready_2, output up_tx_pll_locked_2, input up_tx_rst_2, input up_tx_user_ready_2, output up_tx_rst_done_2, output [ 1:0] up_tx_bufstatus_2, input up_tx_prbsforceerr_2, input [ 3:0] up_tx_prbssel_2, input up_tx_lpm_dfe_n_2, input [ 2:0] up_tx_rate_2, input [ 1:0] up_tx_sys_clk_sel_2, input [ 2:0] up_tx_out_clk_sel_2, input [ 4:0] up_tx_diffctrl_2, input [ 4:0] up_tx_postcursor_2, input [ 4:0] up_tx_precursor_2, input up_tx_enb_2, input [11:0] up_tx_addr_2, input up_tx_wr_2, input [15:0] up_tx_wdata_2, output [15:0] up_tx_rdata_2, output up_tx_ready_2, input cpll_ref_clk_3, input up_cpll_rst_3, input rx_3_p, input rx_3_n, output rx_out_clk_3, output rx_out_clk_div2_3, input rx_clk_3, input rx_clk_2x_3, output [DATA_PATH_WIDTH-1:0] rx_charisk_3, output [DATA_PATH_WIDTH-1:0] rx_disperr_3, output [DATA_PATH_WIDTH-1:0] rx_notintable_3, output [DATA_PATH_WIDTH*8-1:0] rx_data_3, input rx_calign_3, output [1:0] rx_header_3, output rx_block_sync_3, output tx_3_p, output tx_3_n, output tx_out_clk_3, output tx_out_clk_div2_3, input tx_clk_3, input tx_clk_2x_3, input [DATA_PATH_WIDTH-1:0] tx_charisk_3, input [DATA_PATH_WIDTH*8-1:0] tx_data_3, input [1:0] tx_header_3, input up_es_enb_3, input [11:0] up_es_addr_3, input up_es_wr_3, input [15:0] up_es_wdata_3, output [15:0] up_es_rdata_3, output up_es_ready_3, input up_es_reset_3, output up_rx_pll_locked_3, input up_rx_rst_3, input up_rx_user_ready_3, output up_rx_rst_done_3, input [ 3:0] up_rx_prbssel_3, input up_rx_prbscntreset_3, output up_rx_prbserr_3, output up_rx_prbslocked_3, output [ 1:0] up_rx_bufstatus_3, input up_rx_bufstatus_rst_3, input up_rx_lpm_dfe_n_3, input [ 2:0] up_rx_rate_3, input [ 1:0] up_rx_sys_clk_sel_3, input [ 2:0] up_rx_out_clk_sel_3, input up_rx_enb_3, input [11:0] up_rx_addr_3, input up_rx_wr_3, input [15:0] up_rx_wdata_3, output [15:0] up_rx_rdata_3, output up_rx_ready_3, output up_tx_pll_locked_3, input up_tx_rst_3, input up_tx_user_ready_3, output up_tx_rst_done_3, output [ 1:0] up_tx_bufstatus_3, input up_tx_prbsforceerr_3, input [ 3:0] up_tx_prbssel_3, input up_tx_lpm_dfe_n_3, input [ 2:0] up_tx_rate_3, input [ 1:0] up_tx_sys_clk_sel_3, input [ 2:0] up_tx_out_clk_sel_3, input [ 4:0] up_tx_diffctrl_3, input [ 4:0] up_tx_postcursor_3, input [ 4:0] up_tx_precursor_3, input up_tx_enb_3, input [11:0] up_tx_addr_3, input up_tx_wr_3, input [15:0] up_tx_wdata_3, output [15:0] up_tx_rdata_3, output up_tx_ready_3, input qpll_ref_clk_4, input up_qpll_rst_4, input cpll_ref_clk_4, input up_cpll_rst_4, input rx_4_p, input rx_4_n, output rx_out_clk_4, output rx_out_clk_div2_4, input rx_clk_4, input rx_clk_2x_4, output [DATA_PATH_WIDTH-1:0] rx_charisk_4, output [DATA_PATH_WIDTH-1:0] rx_disperr_4, output [DATA_PATH_WIDTH-1:0] rx_notintable_4, output [DATA_PATH_WIDTH*8-1:0] rx_data_4, input rx_calign_4, output [1:0] rx_header_4, output rx_block_sync_4, output tx_4_p, output tx_4_n, output tx_out_clk_4, output tx_out_clk_div2_4, input tx_clk_4, input tx_clk_2x_4, input [DATA_PATH_WIDTH-1:0] tx_charisk_4, input [DATA_PATH_WIDTH*8-1:0] tx_data_4, input [1:0] tx_header_4, input up_cm_enb_4, input [11:0] up_cm_addr_4, input up_cm_wr_4, input [15:0] up_cm_wdata_4, output [15:0] up_cm_rdata_4, output up_cm_ready_4, input up_es_enb_4, input [11:0] up_es_addr_4, input up_es_wr_4, input [15:0] up_es_wdata_4, output [15:0] up_es_rdata_4, output up_es_ready_4, input up_es_reset_4, output up_rx_pll_locked_4, input up_rx_rst_4, input up_rx_user_ready_4, output up_rx_rst_done_4, input [ 3:0] up_rx_prbssel_4, input up_rx_prbscntreset_4, output up_rx_prbserr_4, output up_rx_prbslocked_4, output [ 1:0] up_rx_bufstatus_4, input up_rx_bufstatus_rst_4, input up_rx_lpm_dfe_n_4, input [ 2:0] up_rx_rate_4, input [ 1:0] up_rx_sys_clk_sel_4, input [ 2:0] up_rx_out_clk_sel_4, input up_rx_enb_4, input [11:0] up_rx_addr_4, input up_rx_wr_4, input [15:0] up_rx_wdata_4, output [15:0] up_rx_rdata_4, output up_rx_ready_4, output up_tx_pll_locked_4, input up_tx_rst_4, input up_tx_user_ready_4, output up_tx_rst_done_4, output [ 1:0] up_tx_bufstatus_4, input up_tx_prbsforceerr_4, input [ 3:0] up_tx_prbssel_4, input up_tx_lpm_dfe_n_4, input [ 2:0] up_tx_rate_4, input [ 1:0] up_tx_sys_clk_sel_4, input [ 2:0] up_tx_out_clk_sel_4, input [ 4:0] up_tx_diffctrl_4, input [ 4:0] up_tx_postcursor_4, input [ 4:0] up_tx_precursor_4, input up_tx_enb_4, input [11:0] up_tx_addr_4, input up_tx_wr_4, input [15:0] up_tx_wdata_4, output [15:0] up_tx_rdata_4, output up_tx_ready_4, input cpll_ref_clk_5, input up_cpll_rst_5, input rx_5_p, input rx_5_n, output rx_out_clk_5, output rx_out_clk_div2_5, input rx_clk_5, input rx_clk_2x_5, output [DATA_PATH_WIDTH-1:0] rx_charisk_5, output [DATA_PATH_WIDTH-1:0] rx_disperr_5, output [DATA_PATH_WIDTH-1:0] rx_notintable_5, output [DATA_PATH_WIDTH*8-1:0] rx_data_5, input rx_calign_5, output [1:0] rx_header_5, output rx_block_sync_5, output tx_5_p, output tx_5_n, output tx_out_clk_5, output tx_out_clk_div2_5, input tx_clk_5, input tx_clk_2x_5, input [DATA_PATH_WIDTH-1:0] tx_charisk_5, input [DATA_PATH_WIDTH*8-1:0] tx_data_5, input [1:0] tx_header_5, input up_es_enb_5, input [11:0] up_es_addr_5, input up_es_wr_5, input [15:0] up_es_wdata_5, output [15:0] up_es_rdata_5, output up_es_ready_5, input up_es_reset_5, output up_rx_pll_locked_5, input up_rx_rst_5, input up_rx_user_ready_5, output up_rx_rst_done_5, input [ 3:0] up_rx_prbssel_5, input up_rx_prbscntreset_5, output up_rx_prbserr_5, output up_rx_prbslocked_5, output [ 1:0] up_rx_bufstatus_5, input up_rx_bufstatus_rst_5, input up_rx_lpm_dfe_n_5, input [ 2:0] up_rx_rate_5, input [ 1:0] up_rx_sys_clk_sel_5, input [ 2:0] up_rx_out_clk_sel_5, input up_rx_enb_5, input [11:0] up_rx_addr_5, input up_rx_wr_5, input [15:0] up_rx_wdata_5, output [15:0] up_rx_rdata_5, output up_rx_ready_5, output up_tx_pll_locked_5, input up_tx_rst_5, input up_tx_user_ready_5, output up_tx_rst_done_5, output [ 1:0] up_tx_bufstatus_5, input up_tx_prbsforceerr_5, input [ 3:0] up_tx_prbssel_5, input up_tx_lpm_dfe_n_5, input [ 2:0] up_tx_rate_5, input [ 1:0] up_tx_sys_clk_sel_5, input [ 2:0] up_tx_out_clk_sel_5, input [ 4:0] up_tx_diffctrl_5, input [ 4:0] up_tx_postcursor_5, input [ 4:0] up_tx_precursor_5, input up_tx_enb_5, input [11:0] up_tx_addr_5, input up_tx_wr_5, input [15:0] up_tx_wdata_5, output [15:0] up_tx_rdata_5, output up_tx_ready_5, input cpll_ref_clk_6, input up_cpll_rst_6, input rx_6_p, input rx_6_n, output rx_out_clk_6, output rx_out_clk_div2_6, input rx_clk_6, input rx_clk_2x_6, output [DATA_PATH_WIDTH-1:0] rx_charisk_6, output [DATA_PATH_WIDTH-1:0] rx_disperr_6, output [DATA_PATH_WIDTH-1:0] rx_notintable_6, output [DATA_PATH_WIDTH*8-1:0] rx_data_6, input rx_calign_6, output [1:0] rx_header_6, output rx_block_sync_6, output tx_6_p, output tx_6_n, output tx_out_clk_6, output tx_out_clk_div2_6, input tx_clk_6, input tx_clk_2x_6, input [DATA_PATH_WIDTH-1:0] tx_charisk_6, input [DATA_PATH_WIDTH*8-1:0] tx_data_6, input [1:0] tx_header_6, input up_es_enb_6, input [11:0] up_es_addr_6, input up_es_wr_6, input [15:0] up_es_wdata_6, output [15:0] up_es_rdata_6, output up_es_ready_6, input up_es_reset_6, output up_rx_pll_locked_6, input up_rx_rst_6, input up_rx_user_ready_6, output up_rx_rst_done_6, input [ 3:0] up_rx_prbssel_6, input up_rx_prbscntreset_6, output up_rx_prbserr_6, output up_rx_prbslocked_6, output [ 1:0] up_rx_bufstatus_6, input up_rx_bufstatus_rst_6, input up_rx_lpm_dfe_n_6, input [ 2:0] up_rx_rate_6, input [ 1:0] up_rx_sys_clk_sel_6, input [ 2:0] up_rx_out_clk_sel_6, input up_rx_enb_6, input [11:0] up_rx_addr_6, input up_rx_wr_6, input [15:0] up_rx_wdata_6, output [15:0] up_rx_rdata_6, output up_rx_ready_6, output up_tx_pll_locked_6, input up_tx_rst_6, input up_tx_user_ready_6, output up_tx_rst_done_6, output [ 1:0] up_tx_bufstatus_6, input up_tx_prbsforceerr_6, input [ 3:0] up_tx_prbssel_6, input up_tx_lpm_dfe_n_6, input [ 2:0] up_tx_rate_6, input [ 1:0] up_tx_sys_clk_sel_6, input [ 2:0] up_tx_out_clk_sel_6, input [ 4:0] up_tx_diffctrl_6, input [ 4:0] up_tx_postcursor_6, input [ 4:0] up_tx_precursor_6, input up_tx_enb_6, input [11:0] up_tx_addr_6, input up_tx_wr_6, input [15:0] up_tx_wdata_6, output [15:0] up_tx_rdata_6, output up_tx_ready_6, input cpll_ref_clk_7, input up_cpll_rst_7, input rx_7_p, input rx_7_n, output rx_out_clk_7, output rx_out_clk_div2_7, input rx_clk_7, input rx_clk_2x_7, output [DATA_PATH_WIDTH-1:0] rx_charisk_7, output [DATA_PATH_WIDTH-1:0] rx_disperr_7, output [DATA_PATH_WIDTH-1:0] rx_notintable_7, output [DATA_PATH_WIDTH*8-1:0] rx_data_7, input rx_calign_7, output [1:0] rx_header_7, output rx_block_sync_7, output tx_7_p, output tx_7_n, output tx_out_clk_7, output tx_out_clk_div2_7, input tx_clk_7, input tx_clk_2x_7, input [DATA_PATH_WIDTH-1:0] tx_charisk_7, input [DATA_PATH_WIDTH*8-1:0] tx_data_7, input [1:0] tx_header_7, input up_es_enb_7, input [11:0] up_es_addr_7, input up_es_wr_7, input [15:0] up_es_wdata_7, output [15:0] up_es_rdata_7, output up_es_ready_7, input up_es_reset_7, output up_rx_pll_locked_7, input up_rx_rst_7, input up_rx_user_ready_7, output up_rx_rst_done_7, input [ 3:0] up_rx_prbssel_7, input up_rx_prbscntreset_7, output up_rx_prbserr_7, output up_rx_prbslocked_7, output [ 1:0] up_rx_bufstatus_7, input up_rx_bufstatus_rst_7, input up_rx_lpm_dfe_n_7, input [ 2:0] up_rx_rate_7, input [ 1:0] up_rx_sys_clk_sel_7, input [ 2:0] up_rx_out_clk_sel_7, input up_rx_enb_7, input [11:0] up_rx_addr_7, input up_rx_wr_7, input [15:0] up_rx_wdata_7, output [15:0] up_rx_rdata_7, output up_rx_ready_7, output up_tx_pll_locked_7, input up_tx_rst_7, input up_tx_user_ready_7, output up_tx_rst_done_7, output [ 1:0] up_tx_bufstatus_7, input up_tx_prbsforceerr_7, input [ 3:0] up_tx_prbssel_7, input up_tx_lpm_dfe_n_7, input [ 2:0] up_tx_rate_7, input [ 1:0] up_tx_sys_clk_sel_7, input [ 2:0] up_tx_out_clk_sel_7, input [ 4:0] up_tx_diffctrl_7, input [ 4:0] up_tx_postcursor_7, input [ 4:0] up_tx_precursor_7, input up_tx_enb_7, input [11:0] up_tx_addr_7, input up_tx_wr_7, input [15:0] up_tx_wdata_7, output [15:0] up_tx_rdata_7, output up_tx_ready_7, input qpll_ref_clk_8, input up_qpll_rst_8, input cpll_ref_clk_8, input up_cpll_rst_8, input rx_8_p, input rx_8_n, output rx_out_clk_8, output rx_out_clk_div2_8, input rx_clk_8, input rx_clk_2x_8, output [DATA_PATH_WIDTH-1:0] rx_charisk_8, output [DATA_PATH_WIDTH-1:0] rx_disperr_8, output [DATA_PATH_WIDTH-1:0] rx_notintable_8, output [DATA_PATH_WIDTH*8-1:0] rx_data_8, input rx_calign_8, output [1:0] rx_header_8, output rx_block_sync_8, output tx_8_p, output tx_8_n, output tx_out_clk_8, output tx_out_clk_div2_8, input tx_clk_8, input tx_clk_2x_8, input [DATA_PATH_WIDTH-1:0] tx_charisk_8, input [DATA_PATH_WIDTH*8-1:0] tx_data_8, input [1:0] tx_header_8, input up_cm_enb_8, input [11:0] up_cm_addr_8, input up_cm_wr_8, input [15:0] up_cm_wdata_8, output [15:0] up_cm_rdata_8, output up_cm_ready_8, input up_es_enb_8, input [11:0] up_es_addr_8, input up_es_wr_8, input [15:0] up_es_wdata_8, output [15:0] up_es_rdata_8, output up_es_ready_8, input up_es_reset_8, output up_rx_pll_locked_8, input up_rx_rst_8, input up_rx_user_ready_8, output up_rx_rst_done_8, input [ 3:0] up_rx_prbssel_8, input up_rx_prbscntreset_8, output up_rx_prbserr_8, output up_rx_prbslocked_8, output [ 1:0] up_rx_bufstatus_8, input up_rx_bufstatus_rst_8, input up_rx_lpm_dfe_n_8, input [ 2:0] up_rx_rate_8, input [ 1:0] up_rx_sys_clk_sel_8, input [ 2:0] up_rx_out_clk_sel_8, input up_rx_enb_8, input [11:0] up_rx_addr_8, input up_rx_wr_8, input [15:0] up_rx_wdata_8, output [15:0] up_rx_rdata_8, output up_rx_ready_8, output up_tx_pll_locked_8, input up_tx_rst_8, input up_tx_user_ready_8, output up_tx_rst_done_8, output [ 1:0] up_tx_bufstatus_8, input up_tx_prbsforceerr_8, input [ 3:0] up_tx_prbssel_8, input up_tx_lpm_dfe_n_8, input [ 2:0] up_tx_rate_8, input [ 1:0] up_tx_sys_clk_sel_8, input [ 2:0] up_tx_out_clk_sel_8, input [ 4:0] up_tx_diffctrl_8, input [ 4:0] up_tx_postcursor_8, input [ 4:0] up_tx_precursor_8, input up_tx_enb_8, input [11:0] up_tx_addr_8, input up_tx_wr_8, input [15:0] up_tx_wdata_8, output [15:0] up_tx_rdata_8, output up_tx_ready_8, input cpll_ref_clk_9, input up_cpll_rst_9, input rx_9_p, input rx_9_n, output rx_out_clk_9, output rx_out_clk_div2_9, input rx_clk_9, input rx_clk_2x_9, output [DATA_PATH_WIDTH-1:0] rx_charisk_9, output [DATA_PATH_WIDTH-1:0] rx_disperr_9, output [DATA_PATH_WIDTH-1:0] rx_notintable_9, output [DATA_PATH_WIDTH*8-1:0] rx_data_9, input rx_calign_9, output [1:0] rx_header_9, output rx_block_sync_9, output tx_9_p, output tx_9_n, output tx_out_clk_9, output tx_out_clk_div2_9, input tx_clk_9, input tx_clk_2x_9, input [DATA_PATH_WIDTH-1:0] tx_charisk_9, input [DATA_PATH_WIDTH*8-1:0] tx_data_9, input [1:0] tx_header_9, input up_es_enb_9, input [11:0] up_es_addr_9, input up_es_wr_9, input [15:0] up_es_wdata_9, output [15:0] up_es_rdata_9, output up_es_ready_9, input up_es_reset_9, output up_rx_pll_locked_9, input up_rx_rst_9, input up_rx_user_ready_9, output up_rx_rst_done_9, input [ 3:0] up_rx_prbssel_9, input up_rx_prbscntreset_9, output up_rx_prbserr_9, output up_rx_prbslocked_9, output [ 1:0] up_rx_bufstatus_9, input up_rx_bufstatus_rst_9, input up_rx_lpm_dfe_n_9, input [ 2:0] up_rx_rate_9, input [ 1:0] up_rx_sys_clk_sel_9, input [ 2:0] up_rx_out_clk_sel_9, input up_rx_enb_9, input [11:0] up_rx_addr_9, input up_rx_wr_9, input [15:0] up_rx_wdata_9, output [15:0] up_rx_rdata_9, output up_rx_ready_9, output up_tx_pll_locked_9, input up_tx_rst_9, input up_tx_user_ready_9, output up_tx_rst_done_9, output [ 1:0] up_tx_bufstatus_9, input up_tx_prbsforceerr_9, input [ 3:0] up_tx_prbssel_9, input up_tx_lpm_dfe_n_9, input [ 2:0] up_tx_rate_9, input [ 1:0] up_tx_sys_clk_sel_9, input [ 2:0] up_tx_out_clk_sel_9, input [ 4:0] up_tx_diffctrl_9, input [ 4:0] up_tx_postcursor_9, input [ 4:0] up_tx_precursor_9, input up_tx_enb_9, input [11:0] up_tx_addr_9, input up_tx_wr_9, input [15:0] up_tx_wdata_9, output [15:0] up_tx_rdata_9, output up_tx_ready_9, input cpll_ref_clk_10, input up_cpll_rst_10, input rx_10_p, input rx_10_n, output rx_out_clk_10, output rx_out_clk_div2_10, input rx_clk_10, input rx_clk_2x_10, output [DATA_PATH_WIDTH-1:0] rx_charisk_10, output [DATA_PATH_WIDTH-1:0] rx_disperr_10, output [DATA_PATH_WIDTH-1:0] rx_notintable_10, output [DATA_PATH_WIDTH*8-1:0] rx_data_10, input rx_calign_10, output [1:0] rx_header_10, output rx_block_sync_10, output tx_10_p, output tx_10_n, output tx_out_clk_10, output tx_out_clk_div2_10, input tx_clk_10, input tx_clk_2x_10, input [DATA_PATH_WIDTH-1:0] tx_charisk_10, input [DATA_PATH_WIDTH*8-1:0] tx_data_10, input [1:0] tx_header_10, input up_es_enb_10, input [11:0] up_es_addr_10, input up_es_wr_10, input [15:0] up_es_wdata_10, output [15:0] up_es_rdata_10, output up_es_ready_10, input up_es_reset_10, output up_rx_pll_locked_10, input up_rx_rst_10, input up_rx_user_ready_10, output up_rx_rst_done_10, input [ 3:0] up_rx_prbssel_10, input up_rx_prbscntreset_10, output up_rx_prbserr_10, output up_rx_prbslocked_10, output [ 1:0] up_rx_bufstatus_10, input up_rx_bufstatus_rst_10, input up_rx_lpm_dfe_n_10, input [ 2:0] up_rx_rate_10, input [ 1:0] up_rx_sys_clk_sel_10, input [ 2:0] up_rx_out_clk_sel_10, input up_rx_enb_10, input [11:0] up_rx_addr_10, input up_rx_wr_10, input [15:0] up_rx_wdata_10, output [15:0] up_rx_rdata_10, output up_rx_ready_10, output up_tx_pll_locked_10, input up_tx_rst_10, input up_tx_user_ready_10, output up_tx_rst_done_10, output [ 1:0] up_tx_bufstatus_10, input up_tx_prbsforceerr_10, input [ 3:0] up_tx_prbssel_10, input up_tx_lpm_dfe_n_10, input [ 2:0] up_tx_rate_10, input [ 1:0] up_tx_sys_clk_sel_10, input [ 2:0] up_tx_out_clk_sel_10, input [ 4:0] up_tx_diffctrl_10, input [ 4:0] up_tx_postcursor_10, input [ 4:0] up_tx_precursor_10, input up_tx_enb_10, input [11:0] up_tx_addr_10, input up_tx_wr_10, input [15:0] up_tx_wdata_10, output [15:0] up_tx_rdata_10, output up_tx_ready_10, input cpll_ref_clk_11, input up_cpll_rst_11, input rx_11_p, input rx_11_n, output rx_out_clk_11, output rx_out_clk_div2_11, input rx_clk_11, input rx_clk_2x_11, output [DATA_PATH_WIDTH-1:0] rx_charisk_11, output [DATA_PATH_WIDTH-1:0] rx_disperr_11, output [DATA_PATH_WIDTH-1:0] rx_notintable_11, output [DATA_PATH_WIDTH*8-1:0] rx_data_11, input rx_calign_11, output [1:0] rx_header_11, output rx_block_sync_11, output tx_11_p, output tx_11_n, output tx_out_clk_11, output tx_out_clk_div2_11, input tx_clk_11, input tx_clk_2x_11, input [DATA_PATH_WIDTH-1:0] tx_charisk_11, input [DATA_PATH_WIDTH*8-1:0] tx_data_11, input [1:0] tx_header_11, input up_es_enb_11, input [11:0] up_es_addr_11, input up_es_wr_11, input [15:0] up_es_wdata_11, output [15:0] up_es_rdata_11, output up_es_ready_11, input up_es_reset_11, output up_rx_pll_locked_11, input up_rx_rst_11, input up_rx_user_ready_11, output up_rx_rst_done_11, input [ 3:0] up_rx_prbssel_11, input up_rx_prbscntreset_11, output up_rx_prbserr_11, output up_rx_prbslocked_11, output [ 1:0] up_rx_bufstatus_11, input up_rx_bufstatus_rst_11, input up_rx_lpm_dfe_n_11, input [ 2:0] up_rx_rate_11, input [ 1:0] up_rx_sys_clk_sel_11, input [ 2:0] up_rx_out_clk_sel_11, input up_rx_enb_11, input [11:0] up_rx_addr_11, input up_rx_wr_11, input [15:0] up_rx_wdata_11, output [15:0] up_rx_rdata_11, output up_rx_ready_11, output up_tx_pll_locked_11, input up_tx_rst_11, input up_tx_user_ready_11, output up_tx_rst_done_11, output [ 1:0] up_tx_bufstatus_11, input up_tx_prbsforceerr_11, input [ 3:0] up_tx_prbssel_11, input up_tx_lpm_dfe_n_11, input [ 2:0] up_tx_rate_11, input [ 1:0] up_tx_sys_clk_sel_11, input [ 2:0] up_tx_out_clk_sel_11, input [ 4:0] up_tx_diffctrl_11, input [ 4:0] up_tx_postcursor_11, input [ 4:0] up_tx_precursor_11, input up_tx_enb_11, input [11:0] up_tx_addr_11, input up_tx_wr_11, input [15:0] up_tx_wdata_11, output [15:0] up_tx_rdata_11, output up_tx_ready_11, input qpll_ref_clk_12, input up_qpll_rst_12, input cpll_ref_clk_12, input up_cpll_rst_12, input rx_12_p, input rx_12_n, output rx_out_clk_12, output rx_out_clk_div2_12, input rx_clk_12, input rx_clk_2x_12, output [DATA_PATH_WIDTH-1:0] rx_charisk_12, output [DATA_PATH_WIDTH-1:0] rx_disperr_12, output [DATA_PATH_WIDTH-1:0] rx_notintable_12, output [DATA_PATH_WIDTH*8-1:0] rx_data_12, input rx_calign_12, output [1:0] rx_header_12, output rx_block_sync_12, output tx_12_p, output tx_12_n, output tx_out_clk_12, output tx_out_clk_div2_12, input tx_clk_12, input tx_clk_2x_12, input [DATA_PATH_WIDTH-1:0] tx_charisk_12, input [DATA_PATH_WIDTH*8-1:0] tx_data_12, input [1:0] tx_header_12, input up_cm_enb_12, input [11:0] up_cm_addr_12, input up_cm_wr_12, input [15:0] up_cm_wdata_12, output [15:0] up_cm_rdata_12, output up_cm_ready_12, input up_es_enb_12, input [11:0] up_es_addr_12, input up_es_wr_12, input [15:0] up_es_wdata_12, output [15:0] up_es_rdata_12, output up_es_ready_12, input up_es_reset_12, output up_rx_pll_locked_12, input up_rx_rst_12, input up_rx_user_ready_12, output up_rx_rst_done_12, input [ 3:0] up_rx_prbssel_12, input up_rx_prbscntreset_12, output up_rx_prbserr_12, output up_rx_prbslocked_12, output [ 1:0] up_rx_bufstatus_12, input up_rx_bufstatus_rst_12, input up_rx_lpm_dfe_n_12, input [ 2:0] up_rx_rate_12, input [ 1:0] up_rx_sys_clk_sel_12, input [ 2:0] up_rx_out_clk_sel_12, input up_rx_enb_12, input [11:0] up_rx_addr_12, input up_rx_wr_12, input [15:0] up_rx_wdata_12, output [15:0] up_rx_rdata_12, output up_rx_ready_12, output up_tx_pll_locked_12, input up_tx_rst_12, input up_tx_user_ready_12, output up_tx_rst_done_12, output [ 1:0] up_tx_bufstatus_12, input up_tx_prbsforceerr_12, input [ 3:0] up_tx_prbssel_12, input up_tx_lpm_dfe_n_12, input [ 2:0] up_tx_rate_12, input [ 1:0] up_tx_sys_clk_sel_12, input [ 2:0] up_tx_out_clk_sel_12, input [ 4:0] up_tx_diffctrl_12, input [ 4:0] up_tx_postcursor_12, input [ 4:0] up_tx_precursor_12, input up_tx_enb_12, input [11:0] up_tx_addr_12, input up_tx_wr_12, input [15:0] up_tx_wdata_12, output [15:0] up_tx_rdata_12, output up_tx_ready_12, input cpll_ref_clk_13, input up_cpll_rst_13, input rx_13_p, input rx_13_n, output rx_out_clk_13, output rx_out_clk_div2_13, input rx_clk_13, input rx_clk_2x_13, output [DATA_PATH_WIDTH-1:0] rx_charisk_13, output [DATA_PATH_WIDTH-1:0] rx_disperr_13, output [DATA_PATH_WIDTH-1:0] rx_notintable_13, output [DATA_PATH_WIDTH*8-1:0] rx_data_13, input rx_calign_13, output [1:0] rx_header_13, output rx_block_sync_13, output tx_13_p, output tx_13_n, output tx_out_clk_13, output tx_out_clk_div2_13, input tx_clk_13, input tx_clk_2x_13, input [DATA_PATH_WIDTH-1:0] tx_charisk_13, input [DATA_PATH_WIDTH*8-1:0] tx_data_13, input [1:0] tx_header_13, input up_es_enb_13, input [11:0] up_es_addr_13, input up_es_wr_13, input [15:0] up_es_wdata_13, output [15:0] up_es_rdata_13, output up_es_ready_13, input up_es_reset_13, output up_rx_pll_locked_13, input up_rx_rst_13, input up_rx_user_ready_13, output up_rx_rst_done_13, input [ 3:0] up_rx_prbssel_13, input up_rx_prbscntreset_13, output up_rx_prbserr_13, output up_rx_prbslocked_13, output [ 1:0] up_rx_bufstatus_13, input up_rx_bufstatus_rst_13, input up_rx_lpm_dfe_n_13, input [ 2:0] up_rx_rate_13, input [ 1:0] up_rx_sys_clk_sel_13, input [ 2:0] up_rx_out_clk_sel_13, input up_rx_enb_13, input [11:0] up_rx_addr_13, input up_rx_wr_13, input [15:0] up_rx_wdata_13, output [15:0] up_rx_rdata_13, output up_rx_ready_13, output up_tx_pll_locked_13, input up_tx_rst_13, input up_tx_user_ready_13, output up_tx_rst_done_13, output [ 1:0] up_tx_bufstatus_13, input up_tx_prbsforceerr_13, input [ 3:0] up_tx_prbssel_13, input up_tx_lpm_dfe_n_13, input [ 2:0] up_tx_rate_13, input [ 1:0] up_tx_sys_clk_sel_13, input [ 2:0] up_tx_out_clk_sel_13, input [ 4:0] up_tx_diffctrl_13, input [ 4:0] up_tx_postcursor_13, input [ 4:0] up_tx_precursor_13, input up_tx_enb_13, input [11:0] up_tx_addr_13, input up_tx_wr_13, input [15:0] up_tx_wdata_13, output [15:0] up_tx_rdata_13, output up_tx_ready_13, input cpll_ref_clk_14, input up_cpll_rst_14, input rx_14_p, input rx_14_n, output rx_out_clk_14, output rx_out_clk_div2_14, input rx_clk_14, input rx_clk_2x_14, output [DATA_PATH_WIDTH-1:0] rx_charisk_14, output [DATA_PATH_WIDTH-1:0] rx_disperr_14, output [DATA_PATH_WIDTH-1:0] rx_notintable_14, output [DATA_PATH_WIDTH*8-1:0] rx_data_14, input rx_calign_14, output [1:0] rx_header_14, output rx_block_sync_14, output tx_14_p, output tx_14_n, output tx_out_clk_14, output tx_out_clk_div2_14, input tx_clk_14, input tx_clk_2x_14, input [DATA_PATH_WIDTH-1:0] tx_charisk_14, input [DATA_PATH_WIDTH*8-1:0] tx_data_14, input [1:0] tx_header_14, input up_es_enb_14, input [11:0] up_es_addr_14, input up_es_wr_14, input [15:0] up_es_wdata_14, output [15:0] up_es_rdata_14, output up_es_ready_14, input up_es_reset_14, output up_rx_pll_locked_14, input up_rx_rst_14, input up_rx_user_ready_14, output up_rx_rst_done_14, input [ 3:0] up_rx_prbssel_14, input up_rx_prbscntreset_14, output up_rx_prbserr_14, output up_rx_prbslocked_14, output [ 1:0] up_rx_bufstatus_14, input up_rx_bufstatus_rst_14, input up_rx_lpm_dfe_n_14, input [ 2:0] up_rx_rate_14, input [ 1:0] up_rx_sys_clk_sel_14, input [ 2:0] up_rx_out_clk_sel_14, input up_rx_enb_14, input [11:0] up_rx_addr_14, input up_rx_wr_14, input [15:0] up_rx_wdata_14, output [15:0] up_rx_rdata_14, output up_rx_ready_14, output up_tx_pll_locked_14, input up_tx_rst_14, input up_tx_user_ready_14, output up_tx_rst_done_14, output [ 1:0] up_tx_bufstatus_14, input up_tx_prbsforceerr_14, input [ 3:0] up_tx_prbssel_14, input up_tx_lpm_dfe_n_14, input [ 2:0] up_tx_rate_14, input [ 1:0] up_tx_sys_clk_sel_14, input [ 2:0] up_tx_out_clk_sel_14, input [ 4:0] up_tx_diffctrl_14, input [ 4:0] up_tx_postcursor_14, input [ 4:0] up_tx_precursor_14, input up_tx_enb_14, input [11:0] up_tx_addr_14, input up_tx_wr_14, input [15:0] up_tx_wdata_14, output [15:0] up_tx_rdata_14, output up_tx_ready_14, input cpll_ref_clk_15, input up_cpll_rst_15, input rx_15_p, input rx_15_n, output rx_out_clk_15, output rx_out_clk_div2_15, input rx_clk_15, input rx_clk_2x_15, output [DATA_PATH_WIDTH-1:0] rx_charisk_15, output [DATA_PATH_WIDTH-1:0] rx_disperr_15, output [DATA_PATH_WIDTH-1:0] rx_notintable_15, output [DATA_PATH_WIDTH*8-1:0] rx_data_15, input rx_calign_15, output [1:0] rx_header_15, output rx_block_sync_15, output tx_15_p, output tx_15_n, output tx_out_clk_15, output tx_out_clk_div2_15, input tx_clk_15, input tx_clk_2x_15, input [DATA_PATH_WIDTH-1:0] tx_charisk_15, input [DATA_PATH_WIDTH*8-1:0] tx_data_15, input [1:0] tx_header_15, input up_es_enb_15, input [11:0] up_es_addr_15, input up_es_wr_15, input [15:0] up_es_wdata_15, output [15:0] up_es_rdata_15, output up_es_ready_15, input up_es_reset_15, output up_rx_pll_locked_15, input up_rx_rst_15, input up_rx_user_ready_15, output up_rx_rst_done_15, input [ 3:0] up_rx_prbssel_15, input up_rx_prbscntreset_15, output up_rx_prbserr_15, output up_rx_prbslocked_15, output [ 1:0] up_rx_bufstatus_15, input up_rx_bufstatus_rst_15, input up_rx_lpm_dfe_n_15, input [ 2:0] up_rx_rate_15, input [ 1:0] up_rx_sys_clk_sel_15, input [ 2:0] up_rx_out_clk_sel_15, input up_rx_enb_15, input [11:0] up_rx_addr_15, input up_rx_wr_15, input [15:0] up_rx_wdata_15, output [15:0] up_rx_rdata_15, output up_rx_ready_15, output up_tx_pll_locked_15, input up_tx_rst_15, input up_tx_user_ready_15, output up_tx_rst_done_15, output [ 1:0] up_tx_bufstatus_15, input up_tx_prbsforceerr_15, input [ 3:0] up_tx_prbssel_15, input up_tx_lpm_dfe_n_15, input [ 2:0] up_tx_rate_15, input [ 1:0] up_tx_sys_clk_sel_15, input [ 2:0] up_tx_out_clk_sel_15, input [ 4:0] up_tx_diffctrl_15, input [ 4:0] up_tx_postcursor_15, input [ 4:0] up_tx_precursor_15, input up_tx_enb_15, input [11:0] up_tx_addr_15, input up_tx_wr_15, input [15:0] up_tx_wdata_15, output [15:0] up_tx_rdata_15, output up_tx_ready_15 ); // parameters localparam integer NUM_OF_LANES = (TX_NUM_OF_LANES > RX_NUM_OF_LANES) ? TX_NUM_OF_LANES : RX_NUM_OF_LANES; // internal signals wire qpll2ch_clk_0; wire qpll2ch_ref_clk_0; wire qpll2ch_locked_0; wire qpll1_clk_0; wire qpll1_ref_clk_0; wire qpll1_locked_0; wire [ 1:0] sys_clk_sel_0; wire qpll_sel_0; wire qpll2ch_clk_4; wire qpll2ch_ref_clk_4; wire qpll2ch_locked_4; wire qpll1_clk_4; wire qpll1_ref_clk_4; wire qpll1_locked_4; wire [ 1:0] sys_clk_sel_4; wire qpll_sel_4; wire qpll2ch_clk_8; wire qpll2ch_ref_clk_8; wire qpll2ch_locked_8; wire qpll1_clk_8; wire qpll1_ref_clk_8; wire qpll1_locked_8; wire [ 1:0] sys_clk_sel_8; wire qpll_sel_8; wire qpll2ch_clk_12; wire qpll2ch_ref_clk_12; wire qpll2ch_locked_12; wire qpll1_clk_12; wire qpll1_ref_clk_12; wire qpll1_locked_12; wire [ 1:0] sys_clk_sel_12; wire qpll_sel_12; assign sys_clk_sel_0 = up_tx_sys_clk_sel_0 | up_tx_sys_clk_sel_1 | up_tx_sys_clk_sel_2 | up_tx_sys_clk_sel_3 | up_rx_sys_clk_sel_0 | up_rx_sys_clk_sel_1 | up_rx_sys_clk_sel_2 | up_rx_sys_clk_sel_3; assign qpll_sel_0 = sys_clk_sel_0 == 2'd3 ? 0 : 1; assign sys_clk_sel_4 = up_tx_sys_clk_sel_4 | up_tx_sys_clk_sel_5 | up_tx_sys_clk_sel_6 | up_tx_sys_clk_sel_7 | up_rx_sys_clk_sel_4 | up_rx_sys_clk_sel_5 | up_rx_sys_clk_sel_6 | up_rx_sys_clk_sel_7; assign qpll_sel_4 = sys_clk_sel_4 == 2'd3 ? 0 : 1; assign sys_clk_sel_8 = up_tx_sys_clk_sel_8 | up_tx_sys_clk_sel_9 | up_tx_sys_clk_sel_10 | up_tx_sys_clk_sel_11 | up_rx_sys_clk_sel_8 | up_rx_sys_clk_sel_9 | up_rx_sys_clk_sel_10 | up_rx_sys_clk_sel_11; assign qpll_sel_8 = sys_clk_sel_8 == 2'd3 ? 0 : 1; assign sys_clk_sel_12 = up_tx_sys_clk_sel_12 | up_tx_sys_clk_sel_13 | up_tx_sys_clk_sel_14 | up_tx_sys_clk_sel_15 | up_rx_sys_clk_sel_12 | up_rx_sys_clk_sel_13 | up_rx_sys_clk_sel_14 | up_rx_sys_clk_sel_15; assign qpll_sel_12 = sys_clk_sel_12 == 2'd3 ? 0 : 1; // instantiations generate if (NUM_OF_LANES >= 1) begin util_adxcvr_xcm #( .XCVR_TYPE (XCVR_TYPE), .QPLL_REFCLK_DIV (QPLL_REFCLK_DIV), .QPLL_FBDIV_RATIO (QPLL_FBDIV_RATIO), .POR_CFG (POR_CFG), .PPF0_CFG (PPF0_CFG), .PPF1_CFG (PPF1_CFG), .QPLL_CFG (QPLL_CFG), .QPLL_FBDIV (QPLL_FBDIV), .QPLL_CFG0 (QPLL_CFG0), .QPLL_CFG1 (QPLL_CFG1), .QPLL_CFG1_G3 (QPLL_CFG1_G3), .QPLL_CFG2 (QPLL_CFG2), .QPLL_CFG2_G3 (QPLL_CFG2_G3), .QPLL_CFG3 (QPLL_CFG3), .QPLL_CP_G3 (QPLL_CP_G3), .QPLL_LPF (QPLL_LPF), .QPLL_CP (QPLL_CP), .QPLL_CFG4 (QPLL_CFG4) ) i_xcm_0 ( .qpll_ref_clk (qpll_ref_clk_0), .qpll_sel (qpll_sel_0), .qpll2ch_clk (qpll2ch_clk_0), .qpll2ch_ref_clk (qpll2ch_ref_clk_0), .qpll2ch_locked (qpll2ch_locked_0), .qpll1_clk (qpll1_clk_0), .qpll1_ref_clk (qpll1_ref_clk_0), .qpll1_locked (qpll1_locked_0), .up_rstn (up_rstn), .up_clk (up_clk), .up_qpll_rst (up_qpll_rst_0), .up_cm_enb (up_cm_enb_0), .up_cm_addr (up_cm_addr_0), .up_cm_wr (up_cm_wr_0), .up_cm_wdata (up_cm_wdata_0), .up_cm_rdata (up_cm_rdata_0), .up_cm_ready (up_cm_ready_0)); end else begin assign qpll2ch_clk_0 = 1'd0; assign qpll2ch_ref_clk_0 = 1'd0; assign qpll2ch_locked_0 = 1'd0; assign qpll1_clk_0 = 1'd0; assign qpll1_ref_clk_0 = 1'd0; assign qpll1_locked_0 = 1'd0; assign up_cm_rdata_0 = 16'd0; assign up_cm_ready_0 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 1) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 0) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 0) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_0 ( .qpll2ch_clk (qpll2ch_clk_0), .qpll2ch_ref_clk (qpll2ch_ref_clk_0), .qpll2ch_locked (qpll2ch_locked_0), .qpll1_clk (qpll1_clk_0), .qpll1_ref_clk (qpll1_ref_clk_0), .qpll1_locked (qpll1_locked_0), .cpll_ref_clk (cpll_ref_clk_0), .up_cpll_rst (up_cpll_rst_0), .rx_p (rx_0_p), .rx_n (rx_0_n), .rx_out_clk (rx_out_clk_0), .rx_out_clk_div2 (rx_out_clk_div2_0), .rx_clk (rx_clk_0), .rx_clk_2x (rx_clk_2x_0), .rx_charisk (rx_charisk_0), .rx_disperr (rx_disperr_0), .rx_notintable (rx_notintable_0), .rx_data (rx_data_0), .rx_calign (rx_calign_0), .rx_header(rx_header_0), .rx_block_sync(rx_block_sync_0), .tx_p (tx_0_p), .tx_n (tx_0_n), .tx_out_clk (tx_out_clk_0), .tx_out_clk_div2 (tx_out_clk_div2_0), .tx_clk (tx_clk_0), .tx_clk_2x (tx_clk_2x_0), .tx_charisk (tx_charisk_0), .tx_data (tx_data_0), .tx_header (tx_header_0), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_0), .up_es_addr (up_es_addr_0), .up_es_wr (up_es_wr_0), .up_es_wdata (up_es_wdata_0), .up_es_rdata (up_es_rdata_0), .up_es_ready (up_es_ready_0), .up_es_reset (up_es_reset_0), .up_rx_pll_locked (up_rx_pll_locked_0), .up_rx_rst (up_rx_rst_0), .up_rx_user_ready (up_rx_user_ready_0), .up_rx_rst_done (up_rx_rst_done_0), .up_rx_prbssel (up_rx_prbssel_0), .up_rx_prbscntreset (up_rx_prbscntreset_0), .up_rx_prbserr (up_rx_prbserr_0), .up_rx_prbslocked (up_rx_prbslocked_0), .up_rx_bufstatus (up_rx_bufstatus_0), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_0), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_0), .up_rx_rate (up_rx_rate_0), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_0), .up_rx_out_clk_sel (up_rx_out_clk_sel_0), .up_rx_enb (up_rx_enb_0), .up_rx_addr (up_rx_addr_0), .up_rx_wr (up_rx_wr_0), .up_rx_wdata (up_rx_wdata_0), .up_rx_rdata (up_rx_rdata_0), .up_rx_ready (up_rx_ready_0), .up_tx_pll_locked (up_tx_pll_locked_0), .up_tx_rst (up_tx_rst_0), .up_tx_user_ready (up_tx_user_ready_0), .up_tx_rst_done (up_tx_rst_done_0), .up_tx_bufstatus (up_tx_bufstatus_0), .up_tx_prbsforceerr (up_tx_prbsforceerr_0), .up_tx_prbssel (up_tx_prbssel_0), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_0), .up_tx_rate (up_tx_rate_0), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_0), .up_tx_out_clk_sel (up_tx_out_clk_sel_0), .up_tx_diffctrl (up_tx_diffctrl_0), .up_tx_postcursor (up_tx_postcursor_0), .up_tx_precursor (up_tx_precursor_0), .up_tx_enb (up_tx_enb_0), .up_tx_addr (up_tx_addr_0), .up_tx_wr (up_tx_wr_0), .up_tx_wdata (up_tx_wdata_0), .up_tx_rdata (up_tx_rdata_0), .up_tx_ready (up_tx_ready_0)); end else begin assign rx_out_clk_0 = 1'd0; assign rx_charisk_0 = 4'd0; assign rx_disperr_0 = 4'd0; assign rx_notintable_0 = 4'd0; assign rx_data_0 = 32'd0; assign tx_0_p = 1'd0; assign tx_0_n = 1'd0; assign tx_out_clk_0 = 1'd0; assign up_es_rdata_0 = 16'd0; assign up_es_ready_0 = 1'd0; assign up_rx_pll_locked_0 = 1'd0; assign up_rx_rst_done_0 = 1'd0; assign up_rx_rdata_0 = 16'd0; assign up_rx_ready_0 = 1'd0; assign up_tx_pll_locked_0 = 1'd0; assign up_tx_rst_done_0 = 1'd0; assign up_tx_rdata_0 = 16'd0; assign up_tx_ready_0 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 2) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 1) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 1) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_1 ( .qpll2ch_clk (qpll2ch_clk_0), .qpll2ch_ref_clk (qpll2ch_ref_clk_0), .qpll2ch_locked (qpll2ch_locked_0), .qpll1_clk (qpll1_clk_0), .qpll1_ref_clk (qpll1_ref_clk_0), .qpll1_locked (qpll1_locked_0), .cpll_ref_clk (cpll_ref_clk_1), .up_cpll_rst (up_cpll_rst_1), .rx_p (rx_1_p), .rx_n (rx_1_n), .rx_out_clk (rx_out_clk_1), .rx_out_clk_div2 (rx_out_clk_div2_1), .rx_clk (rx_clk_1), .rx_clk_2x (rx_clk_2x_1), .rx_charisk (rx_charisk_1), .rx_disperr (rx_disperr_1), .rx_notintable (rx_notintable_1), .rx_data (rx_data_1), .rx_calign (rx_calign_1), .rx_header(rx_header_1), .rx_block_sync(rx_block_sync_1), .tx_p (tx_1_p), .tx_n (tx_1_n), .tx_out_clk (tx_out_clk_1), .tx_out_clk_div2 (tx_out_clk_div2_1), .tx_clk (tx_clk_1), .tx_clk_2x (tx_clk_2x_1), .tx_charisk (tx_charisk_1), .tx_data (tx_data_1), .tx_header (tx_header_1), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_1), .up_es_addr (up_es_addr_1), .up_es_wr (up_es_wr_1), .up_es_wdata (up_es_wdata_1), .up_es_rdata (up_es_rdata_1), .up_es_ready (up_es_ready_1), .up_es_reset (up_es_reset_1), .up_rx_pll_locked (up_rx_pll_locked_1), .up_rx_rst (up_rx_rst_1), .up_rx_user_ready (up_rx_user_ready_1), .up_rx_rst_done (up_rx_rst_done_1), .up_rx_prbssel (up_rx_prbssel_1), .up_rx_prbscntreset (up_rx_prbscntreset_1), .up_rx_prbserr (up_rx_prbserr_1), .up_rx_prbslocked (up_rx_prbslocked_1), .up_rx_bufstatus (up_rx_bufstatus_1), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_1), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_1), .up_rx_rate (up_rx_rate_1), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_1), .up_rx_out_clk_sel (up_rx_out_clk_sel_1), .up_rx_enb (up_rx_enb_1), .up_rx_addr (up_rx_addr_1), .up_rx_wr (up_rx_wr_1), .up_rx_wdata (up_rx_wdata_1), .up_rx_rdata (up_rx_rdata_1), .up_rx_ready (up_rx_ready_1), .up_tx_pll_locked (up_tx_pll_locked_1), .up_tx_rst (up_tx_rst_1), .up_tx_user_ready (up_tx_user_ready_1), .up_tx_rst_done (up_tx_rst_done_1), .up_tx_bufstatus (up_tx_bufstatus_1), .up_tx_prbsforceerr (up_tx_prbsforceerr_1), .up_tx_prbssel (up_tx_prbssel_1), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_1), .up_tx_rate (up_tx_rate_1), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_1), .up_tx_out_clk_sel (up_tx_out_clk_sel_1), .up_tx_diffctrl (up_tx_diffctrl_1), .up_tx_postcursor (up_tx_postcursor_1), .up_tx_precursor (up_tx_precursor_1), .up_tx_enb (up_tx_enb_1), .up_tx_addr (up_tx_addr_1), .up_tx_wr (up_tx_wr_1), .up_tx_wdata (up_tx_wdata_1), .up_tx_rdata (up_tx_rdata_1), .up_tx_ready (up_tx_ready_1)); end else begin assign rx_out_clk_1 = 1'd0; assign rx_charisk_1 = 4'd0; assign rx_disperr_1 = 4'd0; assign rx_notintable_1 = 4'd0; assign rx_data_1 = 32'd0; assign tx_1_p = 1'd0; assign tx_1_n = 1'd0; assign tx_out_clk_1 = 1'd0; assign up_es_rdata_1 = 16'd0; assign up_es_ready_1 = 1'd0; assign up_rx_pll_locked_1 = 1'd0; assign up_rx_rst_done_1 = 1'd0; assign up_rx_rdata_1 = 16'd0; assign up_rx_ready_1 = 1'd0; assign up_tx_pll_locked_1 = 1'd0; assign up_tx_rst_done_1 = 1'd0; assign up_tx_rdata_1 = 16'd0; assign up_tx_ready_1 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 3) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 2) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 2) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_2 ( .qpll2ch_clk (qpll2ch_clk_0), .qpll2ch_ref_clk (qpll2ch_ref_clk_0), .qpll2ch_locked (qpll2ch_locked_0), .qpll1_clk (qpll1_clk_0), .qpll1_ref_clk (qpll1_ref_clk_0), .qpll1_locked (qpll1_locked_0), .cpll_ref_clk (cpll_ref_clk_2), .up_cpll_rst (up_cpll_rst_2), .rx_p (rx_2_p), .rx_n (rx_2_n), .rx_out_clk (rx_out_clk_2), .rx_out_clk_div2 (rx_out_clk_div2_2), .rx_clk (rx_clk_2), .rx_clk_2x (rx_clk_2x_2), .rx_charisk (rx_charisk_2), .rx_disperr (rx_disperr_2), .rx_notintable (rx_notintable_2), .rx_data (rx_data_2), .rx_calign (rx_calign_2), .rx_header(rx_header_2), .rx_block_sync(rx_block_sync_2), .tx_p (tx_2_p), .tx_n (tx_2_n), .tx_out_clk (tx_out_clk_2), .tx_out_clk_div2 (tx_out_clk_div2_2), .tx_clk (tx_clk_2), .tx_clk_2x (tx_clk_2x_2), .tx_charisk (tx_charisk_2), .tx_data (tx_data_2), .tx_header (tx_header_2), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_2), .up_es_addr (up_es_addr_2), .up_es_wr (up_es_wr_2), .up_es_wdata (up_es_wdata_2), .up_es_rdata (up_es_rdata_2), .up_es_ready (up_es_ready_2), .up_es_reset (up_es_reset_2), .up_rx_pll_locked (up_rx_pll_locked_2), .up_rx_rst (up_rx_rst_2), .up_rx_user_ready (up_rx_user_ready_2), .up_rx_rst_done (up_rx_rst_done_2), .up_rx_prbssel (up_rx_prbssel_2), .up_rx_prbscntreset (up_rx_prbscntreset_2), .up_rx_prbserr (up_rx_prbserr_2), .up_rx_prbslocked (up_rx_prbslocked_2), .up_rx_bufstatus (up_rx_bufstatus_2), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_2), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_2), .up_rx_rate (up_rx_rate_2), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_2), .up_rx_out_clk_sel (up_rx_out_clk_sel_2), .up_rx_enb (up_rx_enb_2), .up_rx_addr (up_rx_addr_2), .up_rx_wr (up_rx_wr_2), .up_rx_wdata (up_rx_wdata_2), .up_rx_rdata (up_rx_rdata_2), .up_rx_ready (up_rx_ready_2), .up_tx_pll_locked (up_tx_pll_locked_2), .up_tx_rst (up_tx_rst_2), .up_tx_user_ready (up_tx_user_ready_2), .up_tx_rst_done (up_tx_rst_done_2), .up_tx_bufstatus (up_tx_bufstatus_2), .up_tx_prbsforceerr (up_tx_prbsforceerr_2), .up_tx_prbssel (up_tx_prbssel_2), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_2), .up_tx_rate (up_tx_rate_2), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_2), .up_tx_out_clk_sel (up_tx_out_clk_sel_2), .up_tx_diffctrl (up_tx_diffctrl_2), .up_tx_postcursor (up_tx_postcursor_2), .up_tx_precursor (up_tx_precursor_2), .up_tx_enb (up_tx_enb_2), .up_tx_addr (up_tx_addr_2), .up_tx_wr (up_tx_wr_2), .up_tx_wdata (up_tx_wdata_2), .up_tx_rdata (up_tx_rdata_2), .up_tx_ready (up_tx_ready_2)); end else begin assign rx_out_clk_2 = 1'd0; assign rx_charisk_2 = 4'd0; assign rx_disperr_2 = 4'd0; assign rx_notintable_2 = 4'd0; assign rx_data_2 = 32'd0; assign tx_2_p = 1'd0; assign tx_2_n = 1'd0; assign tx_out_clk_2 = 1'd0; assign up_es_rdata_2 = 16'd0; assign up_es_ready_2 = 1'd0; assign up_rx_pll_locked_2 = 1'd0; assign up_rx_rst_done_2 = 1'd0; assign up_rx_rdata_2 = 16'd0; assign up_rx_ready_2 = 1'd0; assign up_tx_pll_locked_2 = 1'd0; assign up_tx_rst_done_2 = 1'd0; assign up_tx_rdata_2 = 16'd0; assign up_tx_ready_2 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 4) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 3) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 3) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_3 ( .qpll2ch_clk (qpll2ch_clk_0), .qpll2ch_ref_clk (qpll2ch_ref_clk_0), .qpll2ch_locked (qpll2ch_locked_0), .qpll1_clk (qpll1_clk_0), .qpll1_ref_clk (qpll1_ref_clk_0), .qpll1_locked (qpll1_locked_0), .cpll_ref_clk (cpll_ref_clk_3), .up_cpll_rst (up_cpll_rst_3), .rx_p (rx_3_p), .rx_n (rx_3_n), .rx_out_clk (rx_out_clk_3), .rx_out_clk_div2 (rx_out_clk_div2_3), .rx_clk (rx_clk_3), .rx_clk_2x (rx_clk_2x_3), .rx_charisk (rx_charisk_3), .rx_disperr (rx_disperr_3), .rx_notintable (rx_notintable_3), .rx_data (rx_data_3), .rx_calign (rx_calign_3), .rx_header(rx_header_3), .rx_block_sync(rx_block_sync_3), .tx_p (tx_3_p), .tx_n (tx_3_n), .tx_out_clk (tx_out_clk_3), .tx_out_clk_div2 (tx_out_clk_div2_3), .tx_clk (tx_clk_3), .tx_clk_2x (tx_clk_2x_3), .tx_charisk (tx_charisk_3), .tx_data (tx_data_3), .tx_header (tx_header_3), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_3), .up_es_addr (up_es_addr_3), .up_es_wr (up_es_wr_3), .up_es_wdata (up_es_wdata_3), .up_es_rdata (up_es_rdata_3), .up_es_ready (up_es_ready_3), .up_es_reset (up_es_reset_3), .up_rx_pll_locked (up_rx_pll_locked_3), .up_rx_rst (up_rx_rst_3), .up_rx_user_ready (up_rx_user_ready_3), .up_rx_rst_done (up_rx_rst_done_3), .up_rx_prbssel (up_rx_prbssel_3), .up_rx_prbscntreset (up_rx_prbscntreset_3), .up_rx_prbserr (up_rx_prbserr_3), .up_rx_prbslocked (up_rx_prbslocked_3), .up_rx_bufstatus (up_rx_bufstatus_3), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_3), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_3), .up_rx_rate (up_rx_rate_3), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_3), .up_rx_out_clk_sel (up_rx_out_clk_sel_3), .up_rx_enb (up_rx_enb_3), .up_rx_addr (up_rx_addr_3), .up_rx_wr (up_rx_wr_3), .up_rx_wdata (up_rx_wdata_3), .up_rx_rdata (up_rx_rdata_3), .up_rx_ready (up_rx_ready_3), .up_tx_pll_locked (up_tx_pll_locked_3), .up_tx_rst (up_tx_rst_3), .up_tx_user_ready (up_tx_user_ready_3), .up_tx_rst_done (up_tx_rst_done_3), .up_tx_bufstatus (up_tx_bufstatus_3), .up_tx_prbsforceerr (up_tx_prbsforceerr_3), .up_tx_prbssel (up_tx_prbssel_3), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_3), .up_tx_rate (up_tx_rate_3), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_3), .up_tx_out_clk_sel (up_tx_out_clk_sel_3), .up_tx_diffctrl (up_tx_diffctrl_3), .up_tx_postcursor (up_tx_postcursor_3), .up_tx_precursor (up_tx_precursor_3), .up_tx_enb (up_tx_enb_3), .up_tx_addr (up_tx_addr_3), .up_tx_wr (up_tx_wr_3), .up_tx_wdata (up_tx_wdata_3), .up_tx_rdata (up_tx_rdata_3), .up_tx_ready (up_tx_ready_3)); end else begin assign rx_out_clk_3 = 1'd0; assign rx_charisk_3 = 4'd0; assign rx_disperr_3 = 4'd0; assign rx_notintable_3 = 4'd0; assign rx_data_3 = 32'd0; assign tx_3_p = 1'd0; assign tx_3_n = 1'd0; assign tx_out_clk_3 = 1'd0; assign up_es_rdata_3 = 16'd0; assign up_es_ready_3 = 1'd0; assign up_rx_pll_locked_3 = 1'd0; assign up_rx_rst_done_3 = 1'd0; assign up_rx_rdata_3 = 16'd0; assign up_rx_ready_3 = 1'd0; assign up_tx_pll_locked_3 = 1'd0; assign up_tx_rst_done_3 = 1'd0; assign up_tx_rdata_3 = 16'd0; assign up_tx_ready_3 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 5) begin util_adxcvr_xcm #( .XCVR_TYPE (XCVR_TYPE), .QPLL_REFCLK_DIV (QPLL_REFCLK_DIV), .QPLL_FBDIV_RATIO (QPLL_FBDIV_RATIO), .POR_CFG (POR_CFG), .PPF0_CFG (PPF0_CFG), .PPF1_CFG (PPF1_CFG), .QPLL_CFG (QPLL_CFG), .QPLL_FBDIV (QPLL_FBDIV), .QPLL_CFG0 (QPLL_CFG0), .QPLL_CFG1 (QPLL_CFG1), .QPLL_CFG1_G3 (QPLL_CFG1_G3), .QPLL_CFG2 (QPLL_CFG2), .QPLL_CFG2_G3 (QPLL_CFG2_G3), .QPLL_CFG3 (QPLL_CFG3), .QPLL_CP_G3 (QPLL_CP_G3), .QPLL_LPF (QPLL_LPF), .QPLL_CP (QPLL_CP), .QPLL_CFG4 (QPLL_CFG4) ) i_xcm_4 ( .qpll_ref_clk (qpll_ref_clk_4), .qpll_sel (qpll_sel_4), .qpll2ch_clk (qpll2ch_clk_4), .qpll2ch_ref_clk (qpll2ch_ref_clk_4), .qpll2ch_locked (qpll2ch_locked_4), .qpll1_clk (qpll1_clk_4), .qpll1_ref_clk (qpll1_ref_clk_4), .qpll1_locked (qpll1_locked_4), .up_rstn (up_rstn), .up_clk (up_clk), .up_qpll_rst (up_qpll_rst_4), .up_cm_enb (up_cm_enb_4), .up_cm_addr (up_cm_addr_4), .up_cm_wr (up_cm_wr_4), .up_cm_wdata (up_cm_wdata_4), .up_cm_rdata (up_cm_rdata_4), .up_cm_ready (up_cm_ready_4)); end else begin assign qpll2ch_clk_4 = 1'd0; assign qpll2ch_ref_clk_4 = 1'd0; assign qpll2ch_locked_4 = 1'd0; assign qpll1_clk_4 = 1'd0; assign qpll1_ref_clk_4 = 1'd0; assign qpll1_locked_4 = 1'd0; assign up_cm_rdata_4 = 16'd0; assign up_cm_ready_4 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 5) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 4) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 4) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_4 ( .qpll2ch_clk (qpll2ch_clk_4), .qpll2ch_ref_clk (qpll2ch_ref_clk_4), .qpll2ch_locked (qpll2ch_locked_4), .qpll1_clk (qpll1_clk_4), .qpll1_ref_clk (qpll1_ref_clk_4), .qpll1_locked (qpll1_locked_4), .cpll_ref_clk (cpll_ref_clk_4), .up_cpll_rst (up_cpll_rst_4), .rx_p (rx_4_p), .rx_n (rx_4_n), .rx_out_clk (rx_out_clk_4), .rx_out_clk_div2 (rx_out_clk_div2_4), .rx_clk (rx_clk_4), .rx_clk_2x (rx_clk_2x_4), .rx_charisk (rx_charisk_4), .rx_disperr (rx_disperr_4), .rx_notintable (rx_notintable_4), .rx_data (rx_data_4), .rx_calign (rx_calign_4), .rx_header(rx_header_4), .rx_block_sync(rx_block_sync_4), .tx_p (tx_4_p), .tx_n (tx_4_n), .tx_out_clk (tx_out_clk_4), .tx_out_clk_div2 (tx_out_clk_div2_4), .tx_clk (tx_clk_4), .tx_clk_2x (tx_clk_2x_4), .tx_charisk (tx_charisk_4), .tx_data (tx_data_4), .tx_header (tx_header_4), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_4), .up_es_addr (up_es_addr_4), .up_es_wr (up_es_wr_4), .up_es_wdata (up_es_wdata_4), .up_es_rdata (up_es_rdata_4), .up_es_ready (up_es_ready_4), .up_es_reset (up_es_reset_4), .up_rx_pll_locked (up_rx_pll_locked_4), .up_rx_rst (up_rx_rst_4), .up_rx_user_ready (up_rx_user_ready_4), .up_rx_rst_done (up_rx_rst_done_4), .up_rx_prbssel (up_rx_prbssel_4), .up_rx_prbscntreset (up_rx_prbscntreset_4), .up_rx_prbserr (up_rx_prbserr_4), .up_rx_prbslocked (up_rx_prbslocked_4), .up_rx_bufstatus (up_rx_bufstatus_4), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_4), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_4), .up_rx_rate (up_rx_rate_4), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_4), .up_rx_out_clk_sel (up_rx_out_clk_sel_4), .up_rx_enb (up_rx_enb_4), .up_rx_addr (up_rx_addr_4), .up_rx_wr (up_rx_wr_4), .up_rx_wdata (up_rx_wdata_4), .up_rx_rdata (up_rx_rdata_4), .up_rx_ready (up_rx_ready_4), .up_tx_pll_locked (up_tx_pll_locked_4), .up_tx_rst (up_tx_rst_4), .up_tx_user_ready (up_tx_user_ready_4), .up_tx_rst_done (up_tx_rst_done_4), .up_tx_bufstatus (up_tx_bufstatus_4), .up_tx_prbsforceerr (up_tx_prbsforceerr_4), .up_tx_prbssel (up_tx_prbssel_4), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_4), .up_tx_rate (up_tx_rate_4), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_4), .up_tx_out_clk_sel (up_tx_out_clk_sel_4), .up_tx_diffctrl (up_tx_diffctrl_4), .up_tx_postcursor (up_tx_postcursor_4), .up_tx_precursor (up_tx_precursor_4), .up_tx_enb (up_tx_enb_4), .up_tx_addr (up_tx_addr_4), .up_tx_wr (up_tx_wr_4), .up_tx_wdata (up_tx_wdata_4), .up_tx_rdata (up_tx_rdata_4), .up_tx_ready (up_tx_ready_4)); end else begin assign rx_out_clk_4 = 1'd0; assign rx_charisk_4 = 4'd0; assign rx_disperr_4 = 4'd0; assign rx_notintable_4 = 4'd0; assign rx_data_4 = 32'd0; assign tx_4_p = 1'd0; assign tx_4_n = 1'd0; assign tx_out_clk_4 = 1'd0; assign up_es_rdata_4 = 16'd0; assign up_es_ready_4 = 1'd0; assign up_rx_pll_locked_4 = 1'd0; assign up_rx_rst_done_4 = 1'd0; assign up_rx_rdata_4 = 16'd0; assign up_rx_ready_4 = 1'd0; assign up_tx_pll_locked_4 = 1'd0; assign up_tx_rst_done_4 = 1'd0; assign up_tx_rdata_4 = 16'd0; assign up_tx_ready_4 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 6) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 5) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 5) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_5 ( .qpll2ch_clk (qpll2ch_clk_4), .qpll2ch_ref_clk (qpll2ch_ref_clk_4), .qpll2ch_locked (qpll2ch_locked_4), .qpll1_clk (qpll1_clk_4), .qpll1_ref_clk (qpll1_ref_clk_4), .qpll1_locked (qpll1_locked_4), .cpll_ref_clk (cpll_ref_clk_5), .up_cpll_rst (up_cpll_rst_5), .rx_p (rx_5_p), .rx_n (rx_5_n), .rx_out_clk (rx_out_clk_5), .rx_out_clk_div2 (rx_out_clk_div2_5), .rx_clk (rx_clk_5), .rx_clk_2x (rx_clk_2x_5), .rx_charisk (rx_charisk_5), .rx_disperr (rx_disperr_5), .rx_notintable (rx_notintable_5), .rx_data (rx_data_5), .rx_calign (rx_calign_5), .rx_header(rx_header_5), .rx_block_sync(rx_block_sync_5), .tx_p (tx_5_p), .tx_n (tx_5_n), .tx_out_clk (tx_out_clk_5), .tx_out_clk_div2 (tx_out_clk_div2_5), .tx_clk (tx_clk_5), .tx_clk_2x (tx_clk_2x_5), .tx_charisk (tx_charisk_5), .tx_data (tx_data_5), .tx_header (tx_header_5), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_5), .up_es_addr (up_es_addr_5), .up_es_wr (up_es_wr_5), .up_es_wdata (up_es_wdata_5), .up_es_rdata (up_es_rdata_5), .up_es_ready (up_es_ready_5), .up_es_reset (up_es_reset_5), .up_rx_pll_locked (up_rx_pll_locked_5), .up_rx_rst (up_rx_rst_5), .up_rx_user_ready (up_rx_user_ready_5), .up_rx_rst_done (up_rx_rst_done_5), .up_rx_prbssel (up_rx_prbssel_5), .up_rx_prbscntreset (up_rx_prbscntreset_5), .up_rx_prbserr (up_rx_prbserr_5), .up_rx_prbslocked (up_rx_prbslocked_5), .up_rx_bufstatus (up_rx_bufstatus_5), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_5), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_5), .up_rx_rate (up_rx_rate_5), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_5), .up_rx_out_clk_sel (up_rx_out_clk_sel_5), .up_rx_enb (up_rx_enb_5), .up_rx_addr (up_rx_addr_5), .up_rx_wr (up_rx_wr_5), .up_rx_wdata (up_rx_wdata_5), .up_rx_rdata (up_rx_rdata_5), .up_rx_ready (up_rx_ready_5), .up_tx_pll_locked (up_tx_pll_locked_5), .up_tx_rst (up_tx_rst_5), .up_tx_user_ready (up_tx_user_ready_5), .up_tx_rst_done (up_tx_rst_done_5), .up_tx_bufstatus (up_tx_bufstatus_5), .up_tx_prbsforceerr (up_tx_prbsforceerr_5), .up_tx_prbssel (up_tx_prbssel_5), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_5), .up_tx_rate (up_tx_rate_5), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_5), .up_tx_out_clk_sel (up_tx_out_clk_sel_5), .up_tx_diffctrl (up_tx_diffctrl_5), .up_tx_postcursor (up_tx_postcursor_5), .up_tx_precursor (up_tx_precursor_5), .up_tx_enb (up_tx_enb_5), .up_tx_addr (up_tx_addr_5), .up_tx_wr (up_tx_wr_5), .up_tx_wdata (up_tx_wdata_5), .up_tx_rdata (up_tx_rdata_5), .up_tx_ready (up_tx_ready_5)); end else begin assign rx_out_clk_5 = 1'd0; assign rx_charisk_5 = 4'd0; assign rx_disperr_5 = 4'd0; assign rx_notintable_5 = 4'd0; assign rx_data_5 = 32'd0; assign tx_5_p = 1'd0; assign tx_5_n = 1'd0; assign tx_out_clk_5 = 1'd0; assign up_es_rdata_5 = 16'd0; assign up_es_ready_5 = 1'd0; assign up_rx_pll_locked_5 = 1'd0; assign up_rx_rst_done_5 = 1'd0; assign up_rx_rdata_5 = 16'd0; assign up_rx_ready_5 = 1'd0; assign up_tx_pll_locked_5 = 1'd0; assign up_tx_rst_done_5 = 1'd0; assign up_tx_rdata_5 = 16'd0; assign up_tx_ready_5 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 7) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 6) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 6) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_6 ( .qpll2ch_clk (qpll2ch_clk_4), .qpll2ch_ref_clk (qpll2ch_ref_clk_4), .qpll2ch_locked (qpll2ch_locked_4), .qpll1_clk (qpll1_clk_4), .qpll1_ref_clk (qpll1_ref_clk_4), .qpll1_locked (qpll1_locked_4), .cpll_ref_clk (cpll_ref_clk_6), .up_cpll_rst (up_cpll_rst_6), .rx_p (rx_6_p), .rx_n (rx_6_n), .rx_out_clk (rx_out_clk_6), .rx_out_clk_div2 (rx_out_clk_div2_6), .rx_clk (rx_clk_6), .rx_clk_2x (rx_clk_2x_6), .rx_charisk (rx_charisk_6), .rx_disperr (rx_disperr_6), .rx_notintable (rx_notintable_6), .rx_data (rx_data_6), .rx_calign (rx_calign_6), .rx_header(rx_header_6), .rx_block_sync(rx_block_sync_6), .tx_p (tx_6_p), .tx_n (tx_6_n), .tx_out_clk (tx_out_clk_6), .tx_out_clk_div2 (tx_out_clk_div2_6), .tx_clk (tx_clk_6), .tx_clk_2x (tx_clk_2x_6), .tx_charisk (tx_charisk_6), .tx_data (tx_data_6), .tx_header (tx_header_6), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_6), .up_es_addr (up_es_addr_6), .up_es_wr (up_es_wr_6), .up_es_wdata (up_es_wdata_6), .up_es_rdata (up_es_rdata_6), .up_es_ready (up_es_ready_6), .up_es_reset (up_es_reset_6), .up_rx_pll_locked (up_rx_pll_locked_6), .up_rx_rst (up_rx_rst_6), .up_rx_user_ready (up_rx_user_ready_6), .up_rx_rst_done (up_rx_rst_done_6), .up_rx_prbssel (up_rx_prbssel_6), .up_rx_prbscntreset (up_rx_prbscntreset_6), .up_rx_prbserr (up_rx_prbserr_6), .up_rx_prbslocked (up_rx_prbslocked_6), .up_rx_bufstatus (up_rx_bufstatus_6), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_6), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_6), .up_rx_rate (up_rx_rate_6), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_6), .up_rx_out_clk_sel (up_rx_out_clk_sel_6), .up_rx_enb (up_rx_enb_6), .up_rx_addr (up_rx_addr_6), .up_rx_wr (up_rx_wr_6), .up_rx_wdata (up_rx_wdata_6), .up_rx_rdata (up_rx_rdata_6), .up_rx_ready (up_rx_ready_6), .up_tx_pll_locked (up_tx_pll_locked_6), .up_tx_rst (up_tx_rst_6), .up_tx_user_ready (up_tx_user_ready_6), .up_tx_rst_done (up_tx_rst_done_6), .up_tx_bufstatus (up_tx_bufstatus_6), .up_tx_prbsforceerr (up_tx_prbsforceerr_6), .up_tx_prbssel (up_tx_prbssel_6), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_6), .up_tx_rate (up_tx_rate_6), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_6), .up_tx_out_clk_sel (up_tx_out_clk_sel_6), .up_tx_diffctrl (up_tx_diffctrl_6), .up_tx_postcursor (up_tx_postcursor_6), .up_tx_precursor (up_tx_precursor_6), .up_tx_enb (up_tx_enb_6), .up_tx_addr (up_tx_addr_6), .up_tx_wr (up_tx_wr_6), .up_tx_wdata (up_tx_wdata_6), .up_tx_rdata (up_tx_rdata_6), .up_tx_ready (up_tx_ready_6)); end else begin assign rx_out_clk_6 = 1'd0; assign rx_charisk_6 = 4'd0; assign rx_disperr_6 = 4'd0; assign rx_notintable_6 = 4'd0; assign rx_data_6 = 32'd0; assign tx_6_p = 1'd0; assign tx_6_n = 1'd0; assign tx_out_clk_6 = 1'd0; assign up_es_rdata_6 = 16'd0; assign up_es_ready_6 = 1'd0; assign up_rx_pll_locked_6 = 1'd0; assign up_rx_rst_done_6 = 1'd0; assign up_rx_rdata_6 = 16'd0; assign up_rx_ready_6 = 1'd0; assign up_tx_pll_locked_6 = 1'd0; assign up_tx_rst_done_6 = 1'd0; assign up_tx_rdata_6 = 16'd0; assign up_tx_ready_6 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 8) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 7) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 7) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_7 ( .qpll2ch_clk (qpll2ch_clk_4), .qpll2ch_ref_clk (qpll2ch_ref_clk_4), .qpll2ch_locked (qpll2ch_locked_4), .qpll1_clk (qpll1_clk_4), .qpll1_ref_clk (qpll1_ref_clk_4), .qpll1_locked (qpll1_locked_4), .cpll_ref_clk (cpll_ref_clk_7), .up_cpll_rst (up_cpll_rst_7), .rx_p (rx_7_p), .rx_n (rx_7_n), .rx_out_clk (rx_out_clk_7), .rx_out_clk_div2 (rx_out_clk_div2_7), .rx_clk (rx_clk_7), .rx_clk_2x (rx_clk_2x_7), .rx_charisk (rx_charisk_7), .rx_disperr (rx_disperr_7), .rx_notintable (rx_notintable_7), .rx_data (rx_data_7), .rx_calign (rx_calign_7), .rx_header(rx_header_7), .rx_block_sync(rx_block_sync_7), .tx_p (tx_7_p), .tx_n (tx_7_n), .tx_out_clk (tx_out_clk_7), .tx_out_clk_div2 (tx_out_clk_div2_7), .tx_clk (tx_clk_7), .tx_clk_2x (tx_clk_2x_7), .tx_charisk (tx_charisk_7), .tx_data (tx_data_7), .tx_header (tx_header_7), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_7), .up_es_addr (up_es_addr_7), .up_es_wr (up_es_wr_7), .up_es_wdata (up_es_wdata_7), .up_es_rdata (up_es_rdata_7), .up_es_ready (up_es_ready_7), .up_es_reset (up_es_reset_7), .up_rx_pll_locked (up_rx_pll_locked_7), .up_rx_rst (up_rx_rst_7), .up_rx_user_ready (up_rx_user_ready_7), .up_rx_rst_done (up_rx_rst_done_7), .up_rx_prbssel (up_rx_prbssel_7), .up_rx_prbscntreset (up_rx_prbscntreset_7), .up_rx_prbserr (up_rx_prbserr_7), .up_rx_prbslocked (up_rx_prbslocked_7), .up_rx_bufstatus (up_rx_bufstatus_7), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_7), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_7), .up_rx_rate (up_rx_rate_7), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_7), .up_rx_out_clk_sel (up_rx_out_clk_sel_7), .up_rx_enb (up_rx_enb_7), .up_rx_addr (up_rx_addr_7), .up_rx_wr (up_rx_wr_7), .up_rx_wdata (up_rx_wdata_7), .up_rx_rdata (up_rx_rdata_7), .up_rx_ready (up_rx_ready_7), .up_tx_pll_locked (up_tx_pll_locked_7), .up_tx_rst (up_tx_rst_7), .up_tx_user_ready (up_tx_user_ready_7), .up_tx_rst_done (up_tx_rst_done_7), .up_tx_bufstatus (up_tx_bufstatus_7), .up_tx_prbsforceerr (up_tx_prbsforceerr_7), .up_tx_prbssel (up_tx_prbssel_7), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_7), .up_tx_rate (up_tx_rate_7), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_7), .up_tx_out_clk_sel (up_tx_out_clk_sel_7), .up_tx_diffctrl (up_tx_diffctrl_7), .up_tx_postcursor (up_tx_postcursor_7), .up_tx_precursor (up_tx_precursor_7), .up_tx_enb (up_tx_enb_7), .up_tx_addr (up_tx_addr_7), .up_tx_wr (up_tx_wr_7), .up_tx_wdata (up_tx_wdata_7), .up_tx_rdata (up_tx_rdata_7), .up_tx_ready (up_tx_ready_7)); end else begin assign rx_out_clk_7 = 1'd0; assign rx_charisk_7 = 4'd0; assign rx_disperr_7 = 4'd0; assign rx_notintable_7 = 4'd0; assign rx_data_7 = 32'd0; assign tx_7_p = 1'd0; assign tx_7_n = 1'd0; assign tx_out_clk_7 = 1'd0; assign up_es_rdata_7 = 16'd0; assign up_es_ready_7 = 1'd0; assign up_rx_pll_locked_7 = 1'd0; assign up_rx_rst_done_7 = 1'd0; assign up_rx_rdata_7 = 16'd0; assign up_rx_ready_7 = 1'd0; assign up_tx_pll_locked_7 = 1'd0; assign up_tx_rst_done_7 = 1'd0; assign up_tx_rdata_7 = 16'd0; assign up_tx_ready_7 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 9) begin util_adxcvr_xcm #( .XCVR_TYPE (XCVR_TYPE), .QPLL_REFCLK_DIV (QPLL_REFCLK_DIV), .QPLL_FBDIV_RATIO (QPLL_FBDIV_RATIO), .POR_CFG (POR_CFG), .PPF0_CFG (PPF0_CFG), .PPF1_CFG (PPF1_CFG), .QPLL_CFG (QPLL_CFG), .QPLL_FBDIV (QPLL_FBDIV), .QPLL_CFG0 (QPLL_CFG0), .QPLL_CFG1 (QPLL_CFG1), .QPLL_CFG1_G3 (QPLL_CFG1_G3), .QPLL_CFG2 (QPLL_CFG2), .QPLL_CFG2_G3 (QPLL_CFG2_G3), .QPLL_CFG3 (QPLL_CFG3), .QPLL_CP_G3 (QPLL_CP_G3), .QPLL_LPF (QPLL_LPF), .QPLL_CP (QPLL_CP), .QPLL_CFG4 (QPLL_CFG4) ) i_xcm_8 ( .qpll_ref_clk (qpll_ref_clk_8), .qpll_sel (qpll_sel_8), .qpll2ch_clk (qpll2ch_clk_8), .qpll2ch_ref_clk (qpll2ch_ref_clk_8), .qpll2ch_locked (qpll2ch_locked_8), .qpll1_clk (qpll1_clk_8), .qpll1_ref_clk (qpll1_ref_clk_8), .qpll1_locked (qpll1_locked_8), .up_rstn (up_rstn), .up_clk (up_clk), .up_qpll_rst (up_qpll_rst_8), .up_cm_enb (up_cm_enb_8), .up_cm_addr (up_cm_addr_8), .up_cm_wr (up_cm_wr_8), .up_cm_wdata (up_cm_wdata_8), .up_cm_rdata (up_cm_rdata_8), .up_cm_ready (up_cm_ready_8)); end else begin assign qpll2ch_clk_8 = 1'd0; assign qpll2ch_ref_clk_8 = 1'd0; assign qpll2ch_locked_8 = 1'd0; assign qpll1_clk_8 = 1'd0; assign qpll1_ref_clk_8 = 1'd0; assign qpll1_locked_8 = 1'd0; assign up_cm_rdata_8 = 16'd0; assign up_cm_ready_8 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 9) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 8) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 8) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_8 ( .qpll2ch_clk (qpll2ch_clk_8), .qpll2ch_ref_clk (qpll2ch_ref_clk_8), .qpll2ch_locked (qpll2ch_locked_8), .qpll1_clk (qpll1_clk_8), .qpll1_ref_clk (qpll1_ref_clk_8), .qpll1_locked (qpll1_locked_8), .cpll_ref_clk (cpll_ref_clk_8), .up_cpll_rst (up_cpll_rst_8), .rx_p (rx_8_p), .rx_n (rx_8_n), .rx_out_clk (rx_out_clk_8), .rx_out_clk_div2 (rx_out_clk_div2_8), .rx_clk (rx_clk_8), .rx_clk_2x (rx_clk_2x_8), .rx_charisk (rx_charisk_8), .rx_disperr (rx_disperr_8), .rx_notintable (rx_notintable_8), .rx_data (rx_data_8), .rx_calign (rx_calign_8), .rx_header(rx_header_8), .rx_block_sync(rx_block_sync_8), .tx_p (tx_8_p), .tx_n (tx_8_n), .tx_out_clk (tx_out_clk_8), .tx_out_clk_div2 (tx_out_clk_div2_8), .tx_clk (tx_clk_8), .tx_clk_2x (tx_clk_2x_8), .tx_charisk (tx_charisk_8), .tx_data (tx_data_8), .tx_header (tx_header_8), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_8), .up_es_addr (up_es_addr_8), .up_es_wr (up_es_wr_8), .up_es_wdata (up_es_wdata_8), .up_es_rdata (up_es_rdata_8), .up_es_ready (up_es_ready_8), .up_es_reset (up_es_reset_8), .up_rx_pll_locked (up_rx_pll_locked_8), .up_rx_rst (up_rx_rst_8), .up_rx_user_ready (up_rx_user_ready_8), .up_rx_rst_done (up_rx_rst_done_8), .up_rx_prbssel (up_rx_prbssel_8), .up_rx_prbscntreset (up_rx_prbscntreset_8), .up_rx_prbserr (up_rx_prbserr_8), .up_rx_prbslocked (up_rx_prbslocked_8), .up_rx_bufstatus (up_rx_bufstatus_8), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_8), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_8), .up_rx_rate (up_rx_rate_8), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_8), .up_rx_out_clk_sel (up_rx_out_clk_sel_8), .up_rx_enb (up_rx_enb_8), .up_rx_addr (up_rx_addr_8), .up_rx_wr (up_rx_wr_8), .up_rx_wdata (up_rx_wdata_8), .up_rx_rdata (up_rx_rdata_8), .up_rx_ready (up_rx_ready_8), .up_tx_pll_locked (up_tx_pll_locked_8), .up_tx_rst (up_tx_rst_8), .up_tx_user_ready (up_tx_user_ready_8), .up_tx_rst_done (up_tx_rst_done_8), .up_tx_bufstatus (up_tx_bufstatus_8), .up_tx_prbsforceerr (up_tx_prbsforceerr_8), .up_tx_prbssel (up_tx_prbssel_8), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_8), .up_tx_rate (up_tx_rate_8), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_8), .up_tx_out_clk_sel (up_tx_out_clk_sel_8), .up_tx_diffctrl (up_tx_diffctrl_8), .up_tx_postcursor (up_tx_postcursor_8), .up_tx_precursor (up_tx_precursor_8), .up_tx_enb (up_tx_enb_8), .up_tx_addr (up_tx_addr_8), .up_tx_wr (up_tx_wr_8), .up_tx_wdata (up_tx_wdata_8), .up_tx_rdata (up_tx_rdata_8), .up_tx_ready (up_tx_ready_8)); end else begin assign rx_out_clk_8 = 1'd0; assign rx_charisk_8 = 4'd0; assign rx_disperr_8 = 4'd0; assign rx_notintable_8 = 4'd0; assign rx_data_8 = 32'd0; assign tx_8_p = 1'd0; assign tx_8_n = 1'd0; assign tx_out_clk_8 = 1'd0; assign up_es_rdata_8 = 16'd0; assign up_es_ready_8 = 1'd0; assign up_rx_pll_locked_8 = 1'd0; assign up_rx_rst_done_8 = 1'd0; assign up_rx_rdata_8 = 16'd0; assign up_rx_ready_8 = 1'd0; assign up_tx_pll_locked_8 = 1'd0; assign up_tx_rst_done_8 = 1'd0; assign up_tx_rdata_8 = 16'd0; assign up_tx_ready_8 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 10) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 9) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 9) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_9 ( .qpll2ch_clk (qpll2ch_clk_8), .qpll2ch_ref_clk (qpll2ch_ref_clk_8), .qpll2ch_locked (qpll2ch_locked_8), .qpll1_clk (qpll1_clk_8), .qpll1_ref_clk (qpll1_ref_clk_8), .qpll1_locked (qpll1_locked_8), .cpll_ref_clk (cpll_ref_clk_9), .up_cpll_rst (up_cpll_rst_9), .rx_p (rx_9_p), .rx_n (rx_9_n), .rx_out_clk (rx_out_clk_9), .rx_out_clk_div2 (rx_out_clk_div2_9), .rx_clk (rx_clk_9), .rx_clk_2x (rx_clk_2x_9), .rx_charisk (rx_charisk_9), .rx_disperr (rx_disperr_9), .rx_notintable (rx_notintable_9), .rx_data (rx_data_9), .rx_calign (rx_calign_9), .rx_header(rx_header_9), .rx_block_sync(rx_block_sync_9), .tx_p (tx_9_p), .tx_n (tx_9_n), .tx_out_clk (tx_out_clk_9), .tx_out_clk_div2 (tx_out_clk_div2_9), .tx_clk (tx_clk_9), .tx_clk_2x (tx_clk_2x_9), .tx_charisk (tx_charisk_9), .tx_data (tx_data_9), .tx_header (tx_header_9), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_9), .up_es_addr (up_es_addr_9), .up_es_wr (up_es_wr_9), .up_es_wdata (up_es_wdata_9), .up_es_rdata (up_es_rdata_9), .up_es_ready (up_es_ready_9), .up_es_reset (up_es_reset_9), .up_rx_pll_locked (up_rx_pll_locked_9), .up_rx_rst (up_rx_rst_9), .up_rx_user_ready (up_rx_user_ready_9), .up_rx_rst_done (up_rx_rst_done_9), .up_rx_prbssel (up_rx_prbssel_9), .up_rx_prbscntreset (up_rx_prbscntreset_9), .up_rx_prbserr (up_rx_prbserr_9), .up_rx_prbslocked (up_rx_prbslocked_9), .up_rx_bufstatus (up_rx_bufstatus_9), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_9), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_9), .up_rx_rate (up_rx_rate_9), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_9), .up_rx_out_clk_sel (up_rx_out_clk_sel_9), .up_rx_enb (up_rx_enb_9), .up_rx_addr (up_rx_addr_9), .up_rx_wr (up_rx_wr_9), .up_rx_wdata (up_rx_wdata_9), .up_rx_rdata (up_rx_rdata_9), .up_rx_ready (up_rx_ready_9), .up_tx_pll_locked (up_tx_pll_locked_9), .up_tx_rst (up_tx_rst_9), .up_tx_user_ready (up_tx_user_ready_9), .up_tx_rst_done (up_tx_rst_done_9), .up_tx_bufstatus (up_tx_bufstatus_9), .up_tx_prbsforceerr (up_tx_prbsforceerr_9), .up_tx_prbssel (up_tx_prbssel_9), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_9), .up_tx_rate (up_tx_rate_9), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_9), .up_tx_out_clk_sel (up_tx_out_clk_sel_9), .up_tx_diffctrl (up_tx_diffctrl_9), .up_tx_postcursor (up_tx_postcursor_9), .up_tx_precursor (up_tx_precursor_9), .up_tx_enb (up_tx_enb_9), .up_tx_addr (up_tx_addr_9), .up_tx_wr (up_tx_wr_9), .up_tx_wdata (up_tx_wdata_9), .up_tx_rdata (up_tx_rdata_9), .up_tx_ready (up_tx_ready_9)); end else begin assign rx_out_clk_9 = 1'd0; assign rx_charisk_9 = 4'd0; assign rx_disperr_9 = 4'd0; assign rx_notintable_9 = 4'd0; assign rx_data_9 = 32'd0; assign tx_9_p = 1'd0; assign tx_9_n = 1'd0; assign tx_out_clk_9 = 1'd0; assign up_es_rdata_9 = 16'd0; assign up_es_ready_9 = 1'd0; assign up_rx_pll_locked_9 = 1'd0; assign up_rx_rst_done_9 = 1'd0; assign up_rx_rdata_9 = 16'd0; assign up_rx_ready_9 = 1'd0; assign up_tx_pll_locked_9 = 1'd0; assign up_tx_rst_done_9 = 1'd0; assign up_tx_rdata_9 = 16'd0; assign up_tx_ready_9 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 11) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 10) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 10) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_10 ( .qpll2ch_clk (qpll2ch_clk_8), .qpll2ch_ref_clk (qpll2ch_ref_clk_8), .qpll2ch_locked (qpll2ch_locked_8), .qpll1_clk (qpll1_clk_8), .qpll1_ref_clk (qpll1_ref_clk_8), .qpll1_locked (qpll1_locked_8), .cpll_ref_clk (cpll_ref_clk_10), .up_cpll_rst (up_cpll_rst_10), .rx_p (rx_10_p), .rx_n (rx_10_n), .rx_out_clk (rx_out_clk_10), .rx_out_clk_div2 (rx_out_clk_div2_10), .rx_clk (rx_clk_10), .rx_clk_2x (rx_clk_2x_10), .rx_charisk (rx_charisk_10), .rx_disperr (rx_disperr_10), .rx_notintable (rx_notintable_10), .rx_data (rx_data_10), .rx_calign (rx_calign_10), .rx_header(rx_header_10), .rx_block_sync(rx_block_sync_10), .tx_p (tx_10_p), .tx_n (tx_10_n), .tx_out_clk (tx_out_clk_10), .tx_out_clk_div2 (tx_out_clk_div2_10), .tx_clk (tx_clk_10), .tx_clk_2x (tx_clk_2x_10), .tx_charisk (tx_charisk_10), .tx_data (tx_data_10), .tx_header (tx_header_10), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_10), .up_es_addr (up_es_addr_10), .up_es_wr (up_es_wr_10), .up_es_wdata (up_es_wdata_10), .up_es_rdata (up_es_rdata_10), .up_es_ready (up_es_ready_10), .up_es_reset (up_es_reset_10), .up_rx_pll_locked (up_rx_pll_locked_10), .up_rx_rst (up_rx_rst_10), .up_rx_user_ready (up_rx_user_ready_10), .up_rx_rst_done (up_rx_rst_done_10), .up_rx_prbssel (up_rx_prbssel_10), .up_rx_prbscntreset (up_rx_prbscntreset_10), .up_rx_prbserr (up_rx_prbserr_10), .up_rx_prbslocked (up_rx_prbslocked_10), .up_rx_bufstatus (up_rx_bufstatus_10), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_10), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_10), .up_rx_rate (up_rx_rate_10), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_10), .up_rx_out_clk_sel (up_rx_out_clk_sel_10), .up_rx_enb (up_rx_enb_10), .up_rx_addr (up_rx_addr_10), .up_rx_wr (up_rx_wr_10), .up_rx_wdata (up_rx_wdata_10), .up_rx_rdata (up_rx_rdata_10), .up_rx_ready (up_rx_ready_10), .up_tx_pll_locked (up_tx_pll_locked_10), .up_tx_rst (up_tx_rst_10), .up_tx_user_ready (up_tx_user_ready_10), .up_tx_rst_done (up_tx_rst_done_10), .up_tx_bufstatus (up_tx_bufstatus_10), .up_tx_prbsforceerr (up_tx_prbsforceerr_10), .up_tx_prbssel (up_tx_prbssel_10), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_10), .up_tx_rate (up_tx_rate_10), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_10), .up_tx_out_clk_sel (up_tx_out_clk_sel_10), .up_tx_diffctrl (up_tx_diffctrl_10), .up_tx_postcursor (up_tx_postcursor_10), .up_tx_precursor (up_tx_precursor_10), .up_tx_enb (up_tx_enb_10), .up_tx_addr (up_tx_addr_10), .up_tx_wr (up_tx_wr_10), .up_tx_wdata (up_tx_wdata_10), .up_tx_rdata (up_tx_rdata_10), .up_tx_ready (up_tx_ready_10)); end else begin assign rx_out_clk_10 = 1'd0; assign rx_charisk_10 = 4'd0; assign rx_disperr_10 = 4'd0; assign rx_notintable_10 = 4'd0; assign rx_data_10 = 32'd0; assign tx_10_p = 1'd0; assign tx_10_n = 1'd0; assign tx_out_clk_10 = 1'd0; assign up_es_rdata_10 = 16'd0; assign up_es_ready_10 = 1'd0; assign up_rx_pll_locked_10 = 1'd0; assign up_rx_rst_done_10 = 1'd0; assign up_rx_rdata_10 = 16'd0; assign up_rx_ready_10 = 1'd0; assign up_tx_pll_locked_10 = 1'd0; assign up_tx_rst_done_10 = 1'd0; assign up_tx_rdata_10 = 16'd0; assign up_tx_ready_10 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 12) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 11) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 11) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_11 ( .qpll2ch_clk (qpll2ch_clk_8), .qpll2ch_ref_clk (qpll2ch_ref_clk_8), .qpll2ch_locked (qpll2ch_locked_8), .qpll1_clk (qpll1_clk_8), .qpll1_ref_clk (qpll1_ref_clk_8), .qpll1_locked (qpll1_locked_8), .cpll_ref_clk (cpll_ref_clk_11), .up_cpll_rst (up_cpll_rst_11), .rx_p (rx_11_p), .rx_n (rx_11_n), .rx_out_clk (rx_out_clk_11), .rx_out_clk_div2 (rx_out_clk_div2_11), .rx_clk (rx_clk_11), .rx_clk_2x (rx_clk_2x_11), .rx_charisk (rx_charisk_11), .rx_disperr (rx_disperr_11), .rx_notintable (rx_notintable_11), .rx_data (rx_data_11), .rx_calign (rx_calign_11), .rx_header(rx_header_11), .rx_block_sync(rx_block_sync_11), .tx_p (tx_11_p), .tx_n (tx_11_n), .tx_out_clk (tx_out_clk_11), .tx_out_clk_div2 (tx_out_clk_div2_11), .tx_clk (tx_clk_11), .tx_clk_2x (tx_clk_2x_11), .tx_charisk (tx_charisk_11), .tx_data (tx_data_11), .tx_header (tx_header_11), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_11), .up_es_addr (up_es_addr_11), .up_es_wr (up_es_wr_11), .up_es_wdata (up_es_wdata_11), .up_es_rdata (up_es_rdata_11), .up_es_ready (up_es_ready_11), .up_es_reset (up_es_reset_11), .up_rx_pll_locked (up_rx_pll_locked_11), .up_rx_rst (up_rx_rst_11), .up_rx_user_ready (up_rx_user_ready_11), .up_rx_rst_done (up_rx_rst_done_11), .up_rx_prbssel (up_rx_prbssel_11), .up_rx_prbscntreset (up_rx_prbscntreset_11), .up_rx_prbserr (up_rx_prbserr_11), .up_rx_prbslocked (up_rx_prbslocked_11), .up_rx_bufstatus (up_rx_bufstatus_11), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_11), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_11), .up_rx_rate (up_rx_rate_11), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_11), .up_rx_out_clk_sel (up_rx_out_clk_sel_11), .up_rx_enb (up_rx_enb_11), .up_rx_addr (up_rx_addr_11), .up_rx_wr (up_rx_wr_11), .up_rx_wdata (up_rx_wdata_11), .up_rx_rdata (up_rx_rdata_11), .up_rx_ready (up_rx_ready_11), .up_tx_pll_locked (up_tx_pll_locked_11), .up_tx_rst (up_tx_rst_11), .up_tx_user_ready (up_tx_user_ready_11), .up_tx_rst_done (up_tx_rst_done_11), .up_tx_bufstatus (up_tx_bufstatus_11), .up_tx_prbsforceerr (up_tx_prbsforceerr_11), .up_tx_prbssel (up_tx_prbssel_11), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_11), .up_tx_rate (up_tx_rate_11), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_11), .up_tx_out_clk_sel (up_tx_out_clk_sel_11), .up_tx_diffctrl (up_tx_diffctrl_11), .up_tx_postcursor (up_tx_postcursor_11), .up_tx_precursor (up_tx_precursor_11), .up_tx_enb (up_tx_enb_11), .up_tx_addr (up_tx_addr_11), .up_tx_wr (up_tx_wr_11), .up_tx_wdata (up_tx_wdata_11), .up_tx_rdata (up_tx_rdata_11), .up_tx_ready (up_tx_ready_11)); end else begin assign rx_out_clk_11 = 1'd0; assign rx_charisk_11 = 4'd0; assign rx_disperr_11 = 4'd0; assign rx_notintable_11 = 4'd0; assign rx_data_11 = 32'd0; assign tx_11_p = 1'd0; assign tx_11_n = 1'd0; assign tx_out_clk_11 = 1'd0; assign up_es_rdata_11 = 16'd0; assign up_es_ready_11 = 1'd0; assign up_rx_pll_locked_11 = 1'd0; assign up_rx_rst_done_11 = 1'd0; assign up_rx_rdata_11 = 16'd0; assign up_rx_ready_11 = 1'd0; assign up_tx_pll_locked_11 = 1'd0; assign up_tx_rst_done_11 = 1'd0; assign up_tx_rdata_11 = 16'd0; assign up_tx_ready_11 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 13) begin util_adxcvr_xcm #( .XCVR_TYPE (XCVR_TYPE), .QPLL_REFCLK_DIV (QPLL_REFCLK_DIV), .QPLL_FBDIV_RATIO (QPLL_FBDIV_RATIO), .POR_CFG (POR_CFG), .PPF0_CFG (PPF0_CFG), .PPF1_CFG (PPF1_CFG), .QPLL_CFG (QPLL_CFG), .QPLL_FBDIV (QPLL_FBDIV), .QPLL_CFG0 (QPLL_CFG0), .QPLL_CFG1 (QPLL_CFG1), .QPLL_CFG1_G3 (QPLL_CFG1_G3), .QPLL_CFG2 (QPLL_CFG2), .QPLL_CFG2_G3 (QPLL_CFG2_G3), .QPLL_CFG3 (QPLL_CFG3), .QPLL_CP_G3 (QPLL_CP_G3), .QPLL_LPF (QPLL_LPF), .QPLL_CP (QPLL_CP), .QPLL_CFG4 (QPLL_CFG4) ) i_xcm_12 ( .qpll_ref_clk (qpll_ref_clk_12), .qpll_sel (qpll_sel_12), .qpll2ch_clk (qpll2ch_clk_12), .qpll2ch_ref_clk (qpll2ch_ref_clk_12), .qpll2ch_locked (qpll2ch_locked_12), .qpll1_clk (qpll1_clk_12), .qpll1_ref_clk (qpll1_ref_clk_12), .qpll1_locked (qpll1_locked_12), .up_rstn (up_rstn), .up_clk (up_clk), .up_qpll_rst (up_qpll_rst_12), .up_cm_enb (up_cm_enb_12), .up_cm_addr (up_cm_addr_12), .up_cm_wr (up_cm_wr_12), .up_cm_wdata (up_cm_wdata_12), .up_cm_rdata (up_cm_rdata_12), .up_cm_ready (up_cm_ready_12)); end else begin assign qpll2ch_clk_12 = 1'd0; assign qpll2ch_ref_clk_12 = 1'd0; assign qpll2ch_locked_12 = 1'd0; assign qpll1_clk_12 = 1'd0; assign qpll1_ref_clk_12 = 1'd0; assign qpll1_locked_12 = 1'd0; assign up_cm_rdata_12 = 16'd0; assign up_cm_ready_12 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 13) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 12) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 12) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_12 ( .qpll2ch_clk (qpll2ch_clk_12), .qpll2ch_ref_clk (qpll2ch_ref_clk_12), .qpll2ch_locked (qpll2ch_locked_12), .qpll1_clk (qpll1_clk_12), .qpll1_ref_clk (qpll1_ref_clk_12), .qpll1_locked (qpll1_locked_12), .cpll_ref_clk (cpll_ref_clk_12), .up_cpll_rst (up_cpll_rst_12), .rx_p (rx_12_p), .rx_n (rx_12_n), .rx_out_clk (rx_out_clk_12), .rx_out_clk_div2 (rx_out_clk_div2_12), .rx_clk (rx_clk_12), .rx_clk_2x (rx_clk_2x_12), .rx_charisk (rx_charisk_12), .rx_disperr (rx_disperr_12), .rx_notintable (rx_notintable_12), .rx_data (rx_data_12), .rx_calign (rx_calign_12), .rx_header(rx_header_12), .rx_block_sync(rx_block_sync_12), .tx_p (tx_12_p), .tx_n (tx_12_n), .tx_out_clk (tx_out_clk_12), .tx_out_clk_div2 (tx_out_clk_div2_12), .tx_clk (tx_clk_12), .tx_clk_2x (tx_clk_2x_12), .tx_charisk (tx_charisk_12), .tx_data (tx_data_12), .tx_header (tx_header_12), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_12), .up_es_addr (up_es_addr_12), .up_es_wr (up_es_wr_12), .up_es_wdata (up_es_wdata_12), .up_es_rdata (up_es_rdata_12), .up_es_ready (up_es_ready_12), .up_es_reset (up_es_reset_12), .up_rx_pll_locked (up_rx_pll_locked_12), .up_rx_rst (up_rx_rst_12), .up_rx_user_ready (up_rx_user_ready_12), .up_rx_rst_done (up_rx_rst_done_12), .up_rx_prbssel (up_rx_prbssel_12), .up_rx_prbscntreset (up_rx_prbscntreset_12), .up_rx_prbserr (up_rx_prbserr_12), .up_rx_prbslocked (up_rx_prbslocked_12), .up_rx_bufstatus (up_rx_bufstatus_12), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_12), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_12), .up_rx_rate (up_rx_rate_12), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_12), .up_rx_out_clk_sel (up_rx_out_clk_sel_12), .up_rx_enb (up_rx_enb_12), .up_rx_addr (up_rx_addr_12), .up_rx_wr (up_rx_wr_12), .up_rx_wdata (up_rx_wdata_12), .up_rx_rdata (up_rx_rdata_12), .up_rx_ready (up_rx_ready_12), .up_tx_pll_locked (up_tx_pll_locked_12), .up_tx_rst (up_tx_rst_12), .up_tx_user_ready (up_tx_user_ready_12), .up_tx_rst_done (up_tx_rst_done_12), .up_tx_bufstatus (up_tx_bufstatus_12), .up_tx_prbsforceerr (up_tx_prbsforceerr_12), .up_tx_prbssel (up_tx_prbssel_12), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_12), .up_tx_rate (up_tx_rate_12), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_12), .up_tx_out_clk_sel (up_tx_out_clk_sel_12), .up_tx_diffctrl (up_tx_diffctrl_12), .up_tx_postcursor (up_tx_postcursor_12), .up_tx_precursor (up_tx_precursor_12), .up_tx_enb (up_tx_enb_12), .up_tx_addr (up_tx_addr_12), .up_tx_wr (up_tx_wr_12), .up_tx_wdata (up_tx_wdata_12), .up_tx_rdata (up_tx_rdata_12), .up_tx_ready (up_tx_ready_12)); end else begin assign rx_out_clk_12 = 1'd0; assign rx_charisk_12 = 4'd0; assign rx_disperr_12 = 4'd0; assign rx_notintable_12 = 4'd0; assign rx_data_12 = 32'd0; assign tx_12_p = 1'd0; assign tx_12_n = 1'd0; assign tx_out_clk_12 = 1'd0; assign up_es_rdata_12 = 16'd0; assign up_es_ready_12 = 1'd0; assign up_rx_pll_locked_12 = 1'd0; assign up_rx_rst_done_12 = 1'd0; assign up_rx_rdata_12 = 16'd0; assign up_rx_ready_12 = 1'd0; assign up_tx_pll_locked_12 = 1'd0; assign up_tx_rst_done_12 = 1'd0; assign up_tx_rdata_12 = 16'd0; assign up_tx_ready_12 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 14) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 13) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 13) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_13 ( .qpll2ch_clk (qpll2ch_clk_12), .qpll2ch_ref_clk (qpll2ch_ref_clk_12), .qpll2ch_locked (qpll2ch_locked_12), .qpll1_clk (qpll1_clk_12), .qpll1_ref_clk (qpll1_ref_clk_12), .qpll1_locked (qpll1_locked_12), .cpll_ref_clk (cpll_ref_clk_13), .up_cpll_rst (up_cpll_rst_13), .rx_p (rx_13_p), .rx_n (rx_13_n), .rx_out_clk (rx_out_clk_13), .rx_out_clk_div2 (rx_out_clk_div2_13), .rx_clk (rx_clk_13), .rx_clk_2x (rx_clk_2x_13), .rx_charisk (rx_charisk_13), .rx_disperr (rx_disperr_13), .rx_notintable (rx_notintable_13), .rx_data (rx_data_13), .rx_calign (rx_calign_13), .rx_header(rx_header_13), .rx_block_sync(rx_block_sync_13), .tx_p (tx_13_p), .tx_n (tx_13_n), .tx_out_clk (tx_out_clk_13), .tx_out_clk_div2 (tx_out_clk_div2_13), .tx_clk (tx_clk_13), .tx_clk_2x (tx_clk_2x_13), .tx_charisk (tx_charisk_13), .tx_data (tx_data_13), .tx_header (tx_header_13), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_13), .up_es_addr (up_es_addr_13), .up_es_wr (up_es_wr_13), .up_es_wdata (up_es_wdata_13), .up_es_rdata (up_es_rdata_13), .up_es_ready (up_es_ready_13), .up_es_reset (up_es_reset_13), .up_rx_pll_locked (up_rx_pll_locked_13), .up_rx_rst (up_rx_rst_13), .up_rx_user_ready (up_rx_user_ready_13), .up_rx_rst_done (up_rx_rst_done_13), .up_rx_prbssel (up_rx_prbssel_13), .up_rx_prbscntreset (up_rx_prbscntreset_13), .up_rx_prbserr (up_rx_prbserr_13), .up_rx_prbslocked (up_rx_prbslocked_13), .up_rx_bufstatus (up_rx_bufstatus_13), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_13), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_13), .up_rx_rate (up_rx_rate_13), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_13), .up_rx_out_clk_sel (up_rx_out_clk_sel_13), .up_rx_enb (up_rx_enb_13), .up_rx_addr (up_rx_addr_13), .up_rx_wr (up_rx_wr_13), .up_rx_wdata (up_rx_wdata_13), .up_rx_rdata (up_rx_rdata_13), .up_rx_ready (up_rx_ready_13), .up_tx_pll_locked (up_tx_pll_locked_13), .up_tx_rst (up_tx_rst_13), .up_tx_user_ready (up_tx_user_ready_13), .up_tx_rst_done (up_tx_rst_done_13), .up_tx_bufstatus (up_tx_bufstatus_13), .up_tx_prbsforceerr (up_tx_prbsforceerr_13), .up_tx_prbssel (up_tx_prbssel_13), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_13), .up_tx_rate (up_tx_rate_13), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_13), .up_tx_out_clk_sel (up_tx_out_clk_sel_13), .up_tx_diffctrl (up_tx_diffctrl_13), .up_tx_postcursor (up_tx_postcursor_13), .up_tx_precursor (up_tx_precursor_13), .up_tx_enb (up_tx_enb_13), .up_tx_addr (up_tx_addr_13), .up_tx_wr (up_tx_wr_13), .up_tx_wdata (up_tx_wdata_13), .up_tx_rdata (up_tx_rdata_13), .up_tx_ready (up_tx_ready_13)); end else begin assign rx_out_clk_13 = 1'd0; assign rx_charisk_13 = 4'd0; assign rx_disperr_13 = 4'd0; assign rx_notintable_13 = 4'd0; assign rx_data_13 = 32'd0; assign tx_13_p = 1'd0; assign tx_13_n = 1'd0; assign tx_out_clk_13 = 1'd0; assign up_es_rdata_13 = 16'd0; assign up_es_ready_13 = 1'd0; assign up_rx_pll_locked_13 = 1'd0; assign up_rx_rst_done_13 = 1'd0; assign up_rx_rdata_13 = 16'd0; assign up_rx_ready_13 = 1'd0; assign up_tx_pll_locked_13 = 1'd0; assign up_tx_rst_done_13 = 1'd0; assign up_tx_rdata_13 = 16'd0; assign up_tx_ready_13 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 15) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 14) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 14) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_14 ( .qpll2ch_clk (qpll2ch_clk_12), .qpll2ch_ref_clk (qpll2ch_ref_clk_12), .qpll2ch_locked (qpll2ch_locked_12), .qpll1_clk (qpll1_clk_12), .qpll1_ref_clk (qpll1_ref_clk_12), .qpll1_locked (qpll1_locked_12), .cpll_ref_clk (cpll_ref_clk_14), .up_cpll_rst (up_cpll_rst_14), .rx_p (rx_14_p), .rx_n (rx_14_n), .rx_out_clk (rx_out_clk_14), .rx_out_clk_div2 (rx_out_clk_div2_14), .rx_clk (rx_clk_14), .rx_clk_2x (rx_clk_2x_14), .rx_charisk (rx_charisk_14), .rx_disperr (rx_disperr_14), .rx_notintable (rx_notintable_14), .rx_data (rx_data_14), .rx_calign (rx_calign_14), .rx_header(rx_header_14), .rx_block_sync(rx_block_sync_14), .tx_p (tx_14_p), .tx_n (tx_14_n), .tx_out_clk (tx_out_clk_14), .tx_out_clk_div2 (tx_out_clk_div2_14), .tx_clk (tx_clk_14), .tx_clk_2x (tx_clk_2x_14), .tx_charisk (tx_charisk_14), .tx_data (tx_data_14), .tx_header (tx_header_14), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_14), .up_es_addr (up_es_addr_14), .up_es_wr (up_es_wr_14), .up_es_wdata (up_es_wdata_14), .up_es_rdata (up_es_rdata_14), .up_es_ready (up_es_ready_14), .up_es_reset (up_es_reset_14), .up_rx_pll_locked (up_rx_pll_locked_14), .up_rx_rst (up_rx_rst_14), .up_rx_user_ready (up_rx_user_ready_14), .up_rx_rst_done (up_rx_rst_done_14), .up_rx_prbssel (up_rx_prbssel_14), .up_rx_prbscntreset (up_rx_prbscntreset_14), .up_rx_prbserr (up_rx_prbserr_14), .up_rx_prbslocked (up_rx_prbslocked_14), .up_rx_bufstatus (up_rx_bufstatus_14), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_14), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_14), .up_rx_rate (up_rx_rate_14), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_14), .up_rx_out_clk_sel (up_rx_out_clk_sel_14), .up_rx_enb (up_rx_enb_14), .up_rx_addr (up_rx_addr_14), .up_rx_wr (up_rx_wr_14), .up_rx_wdata (up_rx_wdata_14), .up_rx_rdata (up_rx_rdata_14), .up_rx_ready (up_rx_ready_14), .up_tx_pll_locked (up_tx_pll_locked_14), .up_tx_rst (up_tx_rst_14), .up_tx_user_ready (up_tx_user_ready_14), .up_tx_rst_done (up_tx_rst_done_14), .up_tx_bufstatus (up_tx_bufstatus_14), .up_tx_prbsforceerr (up_tx_prbsforceerr_14), .up_tx_prbssel (up_tx_prbssel_14), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_14), .up_tx_rate (up_tx_rate_14), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_14), .up_tx_out_clk_sel (up_tx_out_clk_sel_14), .up_tx_diffctrl (up_tx_diffctrl_14), .up_tx_postcursor (up_tx_postcursor_14), .up_tx_precursor (up_tx_precursor_14), .up_tx_enb (up_tx_enb_14), .up_tx_addr (up_tx_addr_14), .up_tx_wr (up_tx_wr_14), .up_tx_wdata (up_tx_wdata_14), .up_tx_rdata (up_tx_rdata_14), .up_tx_ready (up_tx_ready_14)); end else begin assign rx_out_clk_14 = 1'd0; assign rx_charisk_14 = 4'd0; assign rx_disperr_14 = 4'd0; assign rx_notintable_14 = 4'd0; assign rx_data_14 = 32'd0; assign tx_14_p = 1'd0; assign tx_14_n = 1'd0; assign tx_out_clk_14 = 1'd0; assign up_es_rdata_14 = 16'd0; assign up_es_ready_14 = 1'd0; assign up_rx_pll_locked_14 = 1'd0; assign up_rx_rst_done_14 = 1'd0; assign up_rx_rdata_14 = 16'd0; assign up_rx_ready_14 = 1'd0; assign up_tx_pll_locked_14 = 1'd0; assign up_tx_rst_done_14 = 1'd0; assign up_tx_rdata_14 = 16'd0; assign up_tx_ready_14 = 1'd0; end endgenerate generate if (NUM_OF_LANES >= 16) begin util_adxcvr_xch #( .XCVR_TYPE (XCVR_TYPE), .LINK_MODE (LINK_MODE), .DATA_PATH_WIDTH (DATA_PATH_WIDTH), .CPLL_FBDIV (CPLL_FBDIV), .CPLL_FBDIV_4_5 (CPLL_FBDIV_4_5), .CPLL_CFG0 (CPLL_CFG0), .CPLL_CFG1 (CPLL_CFG1), .CPLL_CFG2 (CPLL_CFG2), .CPLL_CFG3 (CPLL_CFG3), .TX_OUT_DIV (TX_OUT_DIV), .TX_CLK25_DIV (TX_CLK25_DIV), .TX_POLARITY ((TX_LANE_INVERT >> 15) & 1), .TX_PI_BIASSET (TX_PI_BIASSET), .TXPI_CFG (TXPI_CFG), .A_TXDIFFCTRL (A_TXDIFFCTRL), .RX_OUT_DIV (RX_OUT_DIV), .RX_CLK25_DIV (RX_CLK25_DIV), .RX_DFE_LPM_CFG (RX_DFE_LPM_CFG), .RX_PMA_CFG (RX_PMA_CFG), .RX_CDR_CFG (RX_CDR_CFG), .RX_POLARITY ((RX_LANE_INVERT >> 15) & 1), .RXCDR_CFG0 (RXCDR_CFG0), .RXCDR_CFG2 (RXCDR_CFG2), .RXCDR_CFG2_GEN2 (RXCDR_CFG2_GEN2), .RXCDR_CFG2_GEN4 (RXCDR_CFG2_GEN4), .RXCDR_CFG3 (RXCDR_CFG3), .RXCDR_CFG3_GEN2 (RXCDR_CFG3_GEN2), .RXCDR_CFG3_GEN3 (RXCDR_CFG3_GEN3), .RXCDR_CFG3_GEN4 (RXCDR_CFG3_GEN4), .RXDFE_KH_CFG2 (RXDFE_KH_CFG2), .RXDFE_KH_CFG3 (RXDFE_KH_CFG3), .RX_WIDEMODE_CDR (RX_WIDEMODE_CDR), .RX_XMODE_SEL (RX_XMODE_SEL), .TXDRV_FREQBAND (TXDRV_FREQBAND), .TXFE_CFG0 (TXFE_CFG0), .TXFE_CFG1 (TXFE_CFG1), .TXFE_CFG2 (TXFE_CFG2), .TXFE_CFG3 (TXFE_CFG3), .TXPI_CFG0 (TXPI_CFG0), .TXPI_CFG1 (TXPI_CFG1), .TXSWBST_EN (TXSWBST_EN), .CH_HSPMUX (CH_HSPMUX), .PREIQ_FREQ_BST (PREIQ_FREQ_BST), .RXPI_CFG0 (RXPI_CFG0), .RXPI_CFG1 (RXPI_CFG1), .RTX_BUF_CML_CTRL (RTX_BUF_CML_CTRL) ) i_xch_15 ( .qpll2ch_clk (qpll2ch_clk_12), .qpll2ch_ref_clk (qpll2ch_ref_clk_12), .qpll2ch_locked (qpll2ch_locked_12), .qpll1_clk (qpll1_clk_12), .qpll1_ref_clk (qpll1_ref_clk_12), .qpll1_locked (qpll1_locked_12), .cpll_ref_clk (cpll_ref_clk_15), .up_cpll_rst (up_cpll_rst_15), .rx_p (rx_15_p), .rx_n (rx_15_n), .rx_out_clk (rx_out_clk_15), .rx_out_clk_div2 (rx_out_clk_div2_15), .rx_clk (rx_clk_15), .rx_clk_2x (rx_clk_2x_15), .rx_charisk (rx_charisk_15), .rx_disperr (rx_disperr_15), .rx_notintable (rx_notintable_15), .rx_data (rx_data_15), .rx_calign (rx_calign_15), .rx_header(rx_header_15), .rx_block_sync(rx_block_sync_15), .tx_p (tx_15_p), .tx_n (tx_15_n), .tx_out_clk (tx_out_clk_15), .tx_out_clk_div2 (tx_out_clk_div2_15), .tx_clk (tx_clk_15), .tx_clk_2x (tx_clk_2x_15), .tx_charisk (tx_charisk_15), .tx_data (tx_data_15), .tx_header (tx_header_15), .up_rstn (up_rstn), .up_clk (up_clk), .up_es_enb (up_es_enb_15), .up_es_addr (up_es_addr_15), .up_es_wr (up_es_wr_15), .up_es_wdata (up_es_wdata_15), .up_es_rdata (up_es_rdata_15), .up_es_ready (up_es_ready_15), .up_es_reset (up_es_reset_15), .up_rx_pll_locked (up_rx_pll_locked_15), .up_rx_rst (up_rx_rst_15), .up_rx_user_ready (up_rx_user_ready_15), .up_rx_rst_done (up_rx_rst_done_15), .up_rx_prbssel (up_rx_prbssel_15), .up_rx_prbscntreset (up_rx_prbscntreset_15), .up_rx_prbserr (up_rx_prbserr_15), .up_rx_prbslocked (up_rx_prbslocked_15), .up_rx_bufstatus (up_rx_bufstatus_15), .up_rx_bufstatus_rst (up_rx_bufstatus_rst_15), .up_rx_lpm_dfe_n (up_rx_lpm_dfe_n_15), .up_rx_rate (up_rx_rate_15), .up_rx_sys_clk_sel (up_rx_sys_clk_sel_15), .up_rx_out_clk_sel (up_rx_out_clk_sel_15), .up_rx_enb (up_rx_enb_15), .up_rx_addr (up_rx_addr_15), .up_rx_wr (up_rx_wr_15), .up_rx_wdata (up_rx_wdata_15), .up_rx_rdata (up_rx_rdata_15), .up_rx_ready (up_rx_ready_15), .up_tx_pll_locked (up_tx_pll_locked_15), .up_tx_rst (up_tx_rst_15), .up_tx_user_ready (up_tx_user_ready_15), .up_tx_rst_done (up_tx_rst_done_15), .up_tx_bufstatus (up_tx_bufstatus_15), .up_tx_prbsforceerr (up_tx_prbsforceerr_15), .up_tx_prbssel (up_tx_prbssel_15), .up_tx_lpm_dfe_n (up_tx_lpm_dfe_n_15), .up_tx_rate (up_tx_rate_15), .up_tx_sys_clk_sel (up_tx_sys_clk_sel_15), .up_tx_out_clk_sel (up_tx_out_clk_sel_15), .up_tx_diffctrl (up_tx_diffctrl_15), .up_tx_postcursor (up_tx_postcursor_15), .up_tx_precursor (up_tx_precursor_15), .up_tx_enb (up_tx_enb_15), .up_tx_addr (up_tx_addr_15), .up_tx_wr (up_tx_wr_15), .up_tx_wdata (up_tx_wdata_15), .up_tx_rdata (up_tx_rdata_15), .up_tx_ready (up_tx_ready_15)); end else begin assign rx_out_clk_15 = 1'd0; assign rx_charisk_15 = 4'd0; assign rx_disperr_15 = 4'd0; assign rx_notintable_15 = 4'd0; assign rx_data_15 = 32'd0; assign tx_15_p = 1'd0; assign tx_15_n = 1'd0; assign tx_out_clk_15 = 1'd0; assign up_es_rdata_15 = 16'd0; assign up_es_ready_15 = 1'd0; assign up_rx_pll_locked_15 = 1'd0; assign up_rx_rst_done_15 = 1'd0; assign up_rx_rdata_15 = 16'd0; assign up_rx_ready_15 = 1'd0; assign up_tx_pll_locked_15 = 1'd0; assign up_tx_rst_done_15 = 1'd0; assign up_tx_rdata_15 = 16'd0; assign up_tx_ready_15 = 1'd0; end endgenerate endmodule