1 ------------------------------------------------------------------------------- 2 -- File : Pgp2bGtp7VarLatWrapper.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2014-01-29 5 -- Last update: 2016-12-16 6 ------------------------------------------------------------------------------- 7 -- Description: Example PGP2b front end wrapper 8 -- Note: Default generic configurations are for the AC701 development board 9 -- Note: Default uses 125 MHz reference clock to generate 3.125 Gbps PGP link 10 ------------------------------------------------------------------------------- 11 -- This file is part of 'SLAC Firmware Standard Library'. 12 -- It is subject to the license terms in the LICENSE.txt file found in the 13 -- top-level directory of this distribution and at: 14 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. 15 -- No part of 'SLAC Firmware Standard Library', including this file, 16 -- may be copied, modified, propagated, or distributed except according to 17 -- the terms contained in the LICENSE.txt file. 18 ------------------------------------------------------------------------------- 21 use ieee.std_logic_1164.
all;
29 use unisim.vcomponents.
all;
32 --! @ingroup protocols_pgp_pgp2b_gtp7 37 -- MMCM Configurations 42 -- Quad PLL Configurations (Defaults: gtClkP = 125 MHz Configuration) 47 -- MGT Configurations (Defaults: gtClkP = 125 MHz Configuration) 100 end Pgp2bGtp7VarLatWrapper;
129 IBUFDS_GTE2_Inst : IBUFDS_GTE2
142 RstSync_Inst :
entity work.
RstSync 211 -- MGT Configurations 220 -- Configure PLL sources 261 -- Frame TX Interface 264 -- Frame RX Interface 271 -- AXI-Lite Interface out qPllRefClkLostslv( 1 downto 0)
in qPllRefClkslv( 1 downto 0)
RX_CLK25_DIV_Gnatural := 5
QPLL_FBDIV_IN_Gnatural range 1 to 5:= 5
array(natural range <> ) of AxiStreamSlaveType AxiStreamSlaveArray
TX_CLK25_DIV_Gnatural := 5
PAYLOAD_CNT_TOP_Ginteger := 7
slv( 1 downto 0) gtQPllRefClkLost
PLL0_FBDIV_45_IN_Ginteger range 4 to 5:= 5
RX_ENABLE_Gboolean := true
CLKIN_PERIOD_Greal := 6.4
slv( 1 downto 0) pllRefClk
SIM_GTRESET_SPEEDUP_Gstring := "FALSE"
RXLPM_INCM_CFG_Gbit := '0'
slv( 1 downto 0) gtQPllOutClk
CLKOUT0_DIVIDE_F_Greal range 1.0 to 128.0:= 6.0
TX_ENABLE_Gboolean := true
in txPreCursorslv( 4 downto 0) :=( others => '0')
out qPllOutClkslv( 1 downto 0)
RX_CLK25_DIV_Ginteger := 7
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_DECERR_C
RXCDR_CFG_Gbit_vector := x"0001107FE206021081010"
out axilWriteSlaveAxiLiteWriteSlaveType
in pgpRxCtrlAxiStreamCtrlArray( 3 downto 0)
RX_OS_CFG_Gbit_vector := "0000010000000"
CLKIN_PERIOD_Greal := 10.0
PLL0_REFCLK_SEL_Gbit_vector := "001"
RXCDR_CFG_Gbit_vector := x"0000107FE206001041010"
slv( 1 downto 0) gtQPllReset
out pgpTxSlavesAxiStreamSlaveArray( 3 downto 0)
RST_IN_POLARITY_Gsl := '1'
slv( 1 downto 0) gtQPllLock
PLL0_FBDIV_IN_Ginteger range 1 to 5:= 4
in gtQPllOutRefClkslv( 1 downto 0)
out axilReadSlaveAxiLiteReadSlaveType
PLL0_REFCLK_DIV_IN_Ginteger range 1 to 2:= 1
QPLL_REFCLK_DIV_IN_Gnatural range 1 to 2:= 1
RX_OS_CFG_Gbit_vector := "0001111110000"
out pgpTxOutPgp2bTxOutType
PLL1_REFCLK_SEL_Gbit_vector := "001"
in gtQPllOutClkslv( 1 downto 0)
in axilWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
INPUT_BUFG_Gboolean := true
in gtQPllLockslv( 1 downto 0)
PAYLOAD_CNT_TOP_Ginteger := 7
SIMULATION_Gboolean := false
out pgpRxOutPgp2bRxOutType
QPLL_REFCLK_SEL_Gbit_vector := "001"
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_DECERR_C
DIVCLK_DIVIDE_Gnatural range 1 to 106:= 1
in gtQPllRefClkLostslv( 1 downto 0)
VC_INTERLEAVE_Ginteger := 0
in txDiffCtrlslv( 3 downto 0) := "1000"
in txPreCursorslv( 4 downto 0) :=( others => '0')
TX_ENABLE_Gboolean := true
NUM_VC_EN_Ginteger range 1 to 4:= 4
in txPostCursorslv( 4 downto 0) :=( others => '0')
PLL1_REFCLK_DIV_IN_Ginteger range 1 to 2:= 1
slv( 1 downto 0) := "11" AXI_RESP_DECERR_C
TX_CLK25_DIV_Ginteger := 7
out pgpTxOutPgp2bTxOutType
slv( 1 downto 0) qPllReset
slv( 1 downto 0) pllLockDetClk
SIM_RESET_SPEEDUP_Gstring := "TRUE"
BANDWIDTH_Gstring := "OPTIMIZED"
out axilReadSlaveAxiLiteReadSlaveType
in txDiffCtrlslv( 3 downto 0) := "1000"
in pgpRxMmcmLockedsl := '1'
RXLPM_INCM_CFG_Gbit := '1'
CLKFBOUT_MULT_F_Greal range 1.0 to 64.0:= 1.0
in txPostCursorslv( 4 downto 0) :=( others => '0')
DIVCLK_DIVIDE_Ginteger range 1 to 106:= 1
out gtQPllResetslv( 1 downto 0)
out pgpRxOutPgp2bRxOutType
in pgpRxCtrlAxiStreamCtrlArray( 3 downto 0)
in pgpTxMastersAxiStreamMasterArray( 3 downto 0) :=( others => AXI_STREAM_MASTER_INIT_C)
array(natural range <> ) of AxiStreamCtrlType AxiStreamCtrlArray
RXLPM_IPCM_CFG_Gbit := '1'
out pgpRxMastersAxiStreamMasterArray( 3 downto 0)
RX_ENABLE_Gboolean := true
array(natural range <> ) of AxiStreamMasterType AxiStreamMasterArray
CLKFBOUT_MULT_F_Greal range 1.0 to 64.0:= 6.0
AxiLiteReadMasterType :=(araddr =>( others => '0'),arprot =>( others => '0'),arvalid => '0',rready => '1') AXI_LITE_READ_MASTER_INIT_C
in qPllResetslv( 1 downto 0)
CLKOUT0_DIVIDE_F_Greal range 1.0 to 128.0:= 1.0
in qPllLockDetClkslv( 1 downto 0)
NUM_VC_EN_Ginteger range 1 to 4:= 4
AxiLiteWriteMasterType :=(awaddr =>( others => '0'),awprot =>( others => '0'),awvalid => '0',wdata =>( others => '0'),wstrb =>( others => '1'),wvalid => '0',bready => '1') AXI_LITE_WRITE_MASTER_INIT_C
in pgpTxMmcmLockedsl := '1'
out pgpTxSlavesAxiStreamSlaveArray( 3 downto 0)
out pgpRxMastersAxiStreamMasterArray( 3 downto 0)
QPLL_FBDIV_45_IN_Gnatural range 4 to 5:= 5
out axilWriteSlaveAxiLiteWriteSlaveType
out qPllOutRefClkslv( 1 downto 0)
in axilReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
PLL1_FBDIV_45_IN_Ginteger range 4 to 5:= 5
RXLPM_IPCM_CFG_Gbit := '0'
in axilWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
out qPllLockslv( 1 downto 0)
VC_INTERLEAVE_Ginteger := 1
slv( 1 downto 0) gtQPllOutRefClk
in axilReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
NUM_CLOCKS_Ginteger range 1 to 7
PLL1_FBDIV_IN_Ginteger range 1 to 5:= 4
in pgpTxMastersAxiStreamMasterArray( 3 downto 0)