library ieee; use ieee.std_logic_1164.all; Library UNISIM; use UNISIM.vcomponents.all; entity gthe_common is port( -- Differential clock intput gtrefclk_p : in std_logic; gtrefclk_n : in std_logic; -- Detection features freerun_clk : in std_logic; -- Buffered ref buff_gtrefclk : out std_logic; -- QPLL0 interface qpll0reset : in std_logic; qpll0lock : out std_logic; qpll0outclk : out std_logic; qpll0refclk : out std_logic; qpll0fblost : out std_logic; qpll0reflost : out std_logic; -- QPLL0 interface qpll1reset : in std_logic; qpll1lock : out std_logic; qpll1outclk : out std_logic; qpll1refclk : out std_logic; qpll1fblost : out std_logic; qpll1reflost : out std_logic ); end entity gthe_common; architecture struct of gthe_common is ATTRIBUTE X_INTERFACE_INFO : STRING; ATTRIBUTE X_INTERFACE_INFO of gtrefclk_p: SIGNAL is "xilinx.com:interface:diff_clock:1.0 gtrefclk_diff CLK_P"; ATTRIBUTE X_INTERFACE_INFO of gtrefclk_n: SIGNAL is "xilinx.com:interface:diff_clock:1.0 gtrefclk_diff CLK_N"; signal gtrefclk : std_logic; signal gtrefclk_out2 : std_logic; component combpm_gtwizard_gthe4_common_wrapper port( GTHE4_COMMON_BGBYPASSB : in std_logic_vector(0 downto 0); GTHE4_COMMON_BGMONITORENB : in std_logic_vector(0 downto 0); GTHE4_COMMON_BGPDB : in std_logic_vector(0 downto 0); GTHE4_COMMON_BGRCALOVRD : in std_logic_vector(4 downto 0); GTHE4_COMMON_BGRCALOVRDENB : in std_logic_vector(0 downto 0); GTHE4_COMMON_DRPADDR : in std_logic_vector(15 downto 0); GTHE4_COMMON_DRPCLK : in std_logic_vector(0 downto 0); GTHE4_COMMON_DRPDI : in std_logic_vector(15 downto 0); GTHE4_COMMON_DRPEN : in std_logic_vector(0 downto 0); GTHE4_COMMON_DRPWE : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTGREFCLK0 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTGREFCLK1 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTNORTHREFCLK00 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTNORTHREFCLK01 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTNORTHREFCLK10 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTNORTHREFCLK11 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTREFCLK00 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTREFCLK01 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTREFCLK10 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTREFCLK11 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTSOUTHREFCLK00 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTSOUTHREFCLK01 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTSOUTHREFCLK10 : in std_logic_vector(0 downto 0); GTHE4_COMMON_GTSOUTHREFCLK11 : in std_logic_vector(0 downto 0); GTHE4_COMMON_PCIERATEQPLL0 : in std_logic_vector(2 downto 0); GTHE4_COMMON_PCIERATEQPLL1 : in std_logic_vector(2 downto 0); GTHE4_COMMON_PMARSVD0 : in std_logic_vector(7 downto 0); GTHE4_COMMON_PMARSVD1 : in std_logic_vector(7 downto 0); GTHE4_COMMON_QPLL0CLKRSVD0 : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL0CLKRSVD1 : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL0FBDIV : in std_logic_vector(7 downto 0); GTHE4_COMMON_QPLL0LOCKDETCLK : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL0LOCKEN : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL0PD : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL0REFCLKSEL : in std_logic_vector(2 downto 0); GTHE4_COMMON_QPLL0RESET : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1CLKRSVD0 : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1CLKRSVD1 : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1FBDIV : in std_logic_vector(7 downto 0); GTHE4_COMMON_QPLL1LOCKDETCLK : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1LOCKEN : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1PD : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1REFCLKSEL : in std_logic_vector(2 downto 0); GTHE4_COMMON_QPLL1RESET : in std_logic_vector(0 downto 0); GTHE4_COMMON_QPLLRSVD1 : in std_logic_vector(7 downto 0); GTHE4_COMMON_QPLLRSVD2 : in std_logic_vector(4 downto 0); GTHE4_COMMON_QPLLRSVD3 : in std_logic_vector(4 downto 0); GTHE4_COMMON_QPLLRSVD4 : in std_logic_vector(7 downto 0); GTHE4_COMMON_RCALENB : in std_logic_vector(0 downto 0); GTHE4_COMMON_SDM0DATA : in std_logic_vector(24 downto 0); GTHE4_COMMON_SDM0RESET : in std_logic_vector(0 downto 0); GTHE4_COMMON_SDM0TOGGLE : in std_logic_vector(0 downto 0); GTHE4_COMMON_SDM0WIDTH : in std_logic_vector(1 downto 0); GTHE4_COMMON_SDM1DATA : in std_logic_vector(24 downto 0); GTHE4_COMMON_SDM1RESET : in std_logic_vector(0 downto 0); GTHE4_COMMON_SDM1TOGGLE : in std_logic_vector(0 downto 0); GTHE4_COMMON_SDM1WIDTH : in std_logic_vector(1 downto 0); GTHE4_COMMON_TCONGPI : in std_logic_vector(9 downto 0); GTHE4_COMMON_TCONPOWERUP : in std_logic_vector(0 downto 0); GTHE4_COMMON_TCONRESET : in std_logic_vector(1 downto 0); GTHE4_COMMON_TCONRSVDIN1 : in std_logic_vector(1 downto 0); GTHE4_COMMON_DRPDO : out std_logic_vector(15 downto 0); GTHE4_COMMON_DRPRDY : out std_logic_vector(0 downto 0); GTHE4_COMMON_PMARSVDOUT0 : out std_logic_vector(7 downto 0); GTHE4_COMMON_PMARSVDOUT1 : out std_logic_vector(7 downto 0); GTHE4_COMMON_QPLL0FBCLKLOST : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL0LOCK : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL0OUTCLK : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL0OUTREFCLK : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL0REFCLKLOST : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1FBCLKLOST : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1LOCK : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1OUTCLK : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1OUTREFCLK : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLL1REFCLKLOST : out std_logic_vector(0 downto 0); GTHE4_COMMON_QPLLDMONITOR0 : out std_logic_vector(7 downto 0); GTHE4_COMMON_QPLLDMONITOR1 : out std_logic_vector(7 downto 0); GTHE4_COMMON_REFCLKOUTMONITOR0 : out std_logic_vector(0 downto 0); GTHE4_COMMON_REFCLKOUTMONITOR1 : out std_logic_vector(0 downto 0); GTHE4_COMMON_RXRECCLK0SEL : out std_logic_vector(1 downto 0); GTHE4_COMMON_RXRECCLK1SEL : out std_logic_vector(1 downto 0); GTHE4_COMMON_SDM0FINALOUT : out std_logic_vector(3 downto 0); GTHE4_COMMON_SDM0TESTDATA : out std_logic_vector(14 downto 0); GTHE4_COMMON_SDM1FINALOUT : out std_logic_vector(3 downto 0); GTHE4_COMMON_SDM1TESTDATA : out std_logic_vector(14 downto 0); GTHE4_COMMON_TCONGPO : out std_logic_vector(9 downto 0); GTHE4_COMMON_TCONRSVDOUT0 : out std_logic_vector(0 downto 0) ); end component; begin -- INPUT BUFFER IBUFDS_GTE4_inst : IBUFDS_GTE4 generic map ( REFCLK_EN_TX_PATH => '0', REFCLK_HROW_CK_SEL => "00", REFCLK_ICNTL_RX => "00" ) port map ( O => gtrefclk, ODIV2 => gtrefclk_out2, CEB => '0', I => gtrefclk_p, IB => gtrefclk_n ); BUFG_GT_inst : BUFG_GT port map ( O => buff_gtrefclk, CE => '1', CEMASK => '1', CLR => '0', CLRMASK => '1', DIV => "000", I => gtrefclk_out2 ); -- TRANSCEIVER COMMON BLOCK gthe4_common_wrapper_inst: combpm_gtwizard_gthe4_common_wrapper port map( GTHE4_COMMON_BGBYPASSB => "1", GTHE4_COMMON_BGMONITORENB => "1", GTHE4_COMMON_BGPDB => "1", GTHE4_COMMON_BGRCALOVRD => "11111", GTHE4_COMMON_BGRCALOVRDENB => "1", GTHE4_COMMON_DRPADDR => "0000000000000000", GTHE4_COMMON_DRPCLK => "0", GTHE4_COMMON_DRPDI => "0000000000000000", GTHE4_COMMON_DRPEN => "0", GTHE4_COMMON_DRPWE => "0", GTHE4_COMMON_GTGREFCLK0 => "0", GTHE4_COMMON_GTGREFCLK1 => "0", GTHE4_COMMON_GTNORTHREFCLK00 => "0", GTHE4_COMMON_GTNORTHREFCLK01 => "0", GTHE4_COMMON_GTNORTHREFCLK10 => "0", GTHE4_COMMON_GTNORTHREFCLK11 => "0", GTHE4_COMMON_GTREFCLK00(0) => gtrefclk, GTHE4_COMMON_GTREFCLK01(0) => gtrefclk, GTHE4_COMMON_GTREFCLK10 => "0", GTHE4_COMMON_GTREFCLK11 => "0", GTHE4_COMMON_GTSOUTHREFCLK00 => "0", GTHE4_COMMON_GTSOUTHREFCLK01 => "0", GTHE4_COMMON_GTSOUTHREFCLK10 => "0", GTHE4_COMMON_GTSOUTHREFCLK11 => "0", GTHE4_COMMON_PCIERATEQPLL0 => "000", GTHE4_COMMON_PCIERATEQPLL1 => "000", GTHE4_COMMON_PMARSVD0 => "00000000", GTHE4_COMMON_PMARSVD1 => "00000000", GTHE4_COMMON_QPLL0CLKRSVD0 => "0", GTHE4_COMMON_QPLL0CLKRSVD1 => "0", GTHE4_COMMON_QPLL0FBDIV => "00000000", GTHE4_COMMON_QPLL0LOCKDETCLK(0) =>freerun_clk, GTHE4_COMMON_QPLL0LOCKEN => "1", GTHE4_COMMON_QPLL0PD => "0", GTHE4_COMMON_QPLL0REFCLKSEL => "001", GTHE4_COMMON_QPLL0RESET(0) => qpll0reset, GTHE4_COMMON_QPLL1CLKRSVD0 => "0", GTHE4_COMMON_QPLL1CLKRSVD1 => "0", GTHE4_COMMON_QPLL1FBDIV => "00000000", GTHE4_COMMON_QPLL1LOCKDETCLK(0) =>freerun_clk, GTHE4_COMMON_QPLL1LOCKEN => "1", GTHE4_COMMON_QPLL1PD => "0", GTHE4_COMMON_QPLL1REFCLKSEL => "001", GTHE4_COMMON_QPLL1RESET(0) => qpll1reset, GTHE4_COMMON_QPLLRSVD1 => "00000000", GTHE4_COMMON_QPLLRSVD2 => "00000", GTHE4_COMMON_QPLLRSVD3 => "00000", GTHE4_COMMON_QPLLRSVD4 => "00000000", GTHE4_COMMON_RCALENB => "1", GTHE4_COMMON_SDM0DATA => "0000000000000000000000000", GTHE4_COMMON_SDM0RESET => "0", GTHE4_COMMON_SDM0TOGGLE => "0", GTHE4_COMMON_SDM0WIDTH => "00", GTHE4_COMMON_SDM1DATA => "0010001011010000111001010", GTHE4_COMMON_SDM1RESET => "0", GTHE4_COMMON_SDM1TOGGLE => "0", GTHE4_COMMON_SDM1WIDTH => "00", GTHE4_COMMON_TCONGPI => "0000000000", GTHE4_COMMON_TCONPOWERUP => "0", GTHE4_COMMON_TCONRESET => "00", GTHE4_COMMON_TCONRSVDIN1 => "00", GTHE4_COMMON_DRPDO => open, GTHE4_COMMON_DRPRDY => open, GTHE4_COMMON_PMARSVDOUT0 => open, GTHE4_COMMON_PMARSVDOUT1 => open, GTHE4_COMMON_QPLL0FBCLKLOST(0) => qpll0fblost, GTHE4_COMMON_QPLL0LOCK(0) => qpll0lock, GTHE4_COMMON_QPLL0OUTCLK(0) => qpll0outclk, GTHE4_COMMON_QPLL0OUTREFCLK(0) => qpll0refclk, GTHE4_COMMON_QPLL0REFCLKLOST(0) => qpll0reflost, GTHE4_COMMON_QPLL1FBCLKLOST(0) => qpll1reflost, GTHE4_COMMON_QPLL1LOCK(0) => qpll1lock, GTHE4_COMMON_QPLL1OUTCLK(0) => qpll1outclk, GTHE4_COMMON_QPLL1OUTREFCLK(0) => qpll1refclk, GTHE4_COMMON_QPLL1REFCLKLOST(0) => qpll1fblost, GTHE4_COMMON_QPLLDMONITOR0 => open, GTHE4_COMMON_QPLLDMONITOR1 => open, GTHE4_COMMON_REFCLKOUTMONITOR0 => open, GTHE4_COMMON_REFCLKOUTMONITOR1 => open, GTHE4_COMMON_RXRECCLK0SEL => open, GTHE4_COMMON_RXRECCLK1SEL => open, GTHE4_COMMON_SDM0FINALOUT => open, GTHE4_COMMON_SDM0TESTDATA => open, GTHE4_COMMON_SDM1FINALOUT => open, GTHE4_COMMON_SDM1TESTDATA => open, GTHE4_COMMON_TCONGPO => open, GTHE4_COMMON_TCONRSVDOUT0 => open ); end architecture struct;