1 -------------------------------------------------------------------------------     2 -- File       : Pgp2bGtx7VarLatWrapper.vhd     3 -- Company    : SLAC National Accelerator Laboratory     4 -- Created    : 2014-01-29     5 -- Last update: 2016-08-24     6 -------------------------------------------------------------------------------     7 -- Description: Example PGP 3.125 Gbps front end wrapper     8 -- Note: Default generic configurations are for the KC705 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_gtx7    36       -- MMCM Configurations (Defaults: gtClkP = 125 MHz Configuration)    41       -- CPLL Configurations (Defaults: gtClkP = 125 MHz Configuration)    46       -- MGT Configurations (Defaults: gtClkP = 125 MHz Configuration)    99 end Pgp2bGtx7VarLatWrapper;
   117    IBUFDS_GTE2_Inst : IBUFDS_GTE2
   130    RstSync_Inst : 
entity work.
RstSync   161          -- CPLL Configurations   168          -- MGT Configurations   217          -- Frame TX Interface   220          -- Frame RX Interface   227          -- AXI-Lite Interface  
array(natural range <> ) of AxiStreamSlaveType   AxiStreamSlaveArray
 
in txDiffCtrlslv( 3 downto  0)  :=   "1000"
 
TX_ENABLE_Gboolean  :=   true
 
TX_CLK25_DIV_Ginteger  := 7
 
out pgpTxOutPgp2bTxOutType  
 
CPLL_FBDIV_45_Gnatural  := 5
 
in gtQPllRefClkLostsl  := '0'
 
out axilReadSlaveAxiLiteReadSlaveType  
 
RX_DFE_KL_CFG2_Gbit_vector  := x"301148AC"
 
in pgpRxMmcmLockedsl  := '1'
 
NUM_VC_EN_Ginteger   range  1 to  4:= 4
 
in pgpTxMmcmLockedsl  := '1'
 
in txPreCursorslv( 4 downto  0)  :=( others => '0')
 
NUM_VC_EN_Ginteger   range  1 to  4:= 4
 
in txPostCursorslv( 4 downto  0)  :=( others => '0')
 
in txPostCursorslv( 4 downto  0)  :=( others => '0')
 
out axilWriteSlaveAxiLiteWriteSlaveType  
 
CPLL_REFCLK_SEL_Gbit_vector  :=   "001"
 
in pgpTxMastersAxiStreamMasterArray( 3 downto  0)  :=( others =>   AXI_STREAM_MASTER_INIT_C)
 
out pgpRxMastersAxiStreamMasterArray( 3 downto  0)  
 
in axilReadMasterAxiLiteReadMasterType  :=   AXI_LITE_READ_MASTER_INIT_C
 
CPLL_REFCLK_DIV_Ginteger  := 1
 
CLKIN_PERIOD_Greal  := 10.0
 
RX_ENABLE_Gboolean  :=   true
 
DIVCLK_DIVIDE_Gnatural   range  1 to  106:= 2
 
RST_IN_POLARITY_Gsl  := '1'
 
RX_CLK25_DIV_Gnatural  := 5
 
CLKFBOUT_MULT_F_Greal   range  1.0 to  64.0:= 31.875
 
TX_CLK25_DIV_Gnatural  := 5
 
INPUT_BUFG_Gboolean  :=   true
 
TX_ENABLE_Gboolean  :=   true
 
in axilReadMasterAxiLiteReadMasterType  :=   AXI_LITE_READ_MASTER_INIT_C
 
CPLL_FBDIV_45_Ginteger  := 5
 
slv( 1 downto  0)  :=   "11" AXI_RESP_DECERR_C
 
out axilWriteSlaveAxiLiteWriteSlaveType  
 
out pgpTxSlavesAxiStreamSlaveArray( 3 downto  0)  
 
out pgpRxMastersAxiStreamMasterArray( 3 downto  0)  
 
BANDWIDTH_Gstring  :=   "OPTIMIZED"
 
CLKFBOUT_MULT_F_Greal   range  1.0 to  64.0:= 1.0
 
out axilReadSlaveAxiLiteReadSlaveType  
 
DIVCLK_DIVIDE_Ginteger   range  1 to  106:= 1
 
in axilWriteMasterAxiLiteWriteMasterType  :=   AXI_LITE_WRITE_MASTER_INIT_C
 
in pgpRxCtrlAxiStreamCtrlArray( 3 downto  0)  
 
array(natural range <> ) of AxiStreamCtrlType   AxiStreamCtrlArray
 
out pgpTxOutPgp2bTxOutType  
 
out pgpRxOutPgp2bRxOutType  
 
CPLL_REFCLK_DIV_Gnatural  := 1
 
array(natural range <> ) of AxiStreamMasterType   AxiStreamMasterArray
 
RX_DFE_KL_CFG2_Gbit_vector  := x"3010D90C"
 
AXI_ERROR_RESP_Gslv( 1 downto  0)  :=   AXI_RESP_DECERR_C
 
in pgpTxMastersAxiStreamMasterArray( 3 downto  0)  
 
AxiLiteReadMasterType  :=(araddr  =>( others => '0'),arprot  =>( others => '0'),arvalid  => '0',rready  => '1') AXI_LITE_READ_MASTER_INIT_C
 
RX_OS_CFG_Gbit_vector  :=   "0000010000000"
 
CLKOUT0_DIVIDE_F_Greal   range  1.0 to  128.0:= 1.0
 
in axilWriteMasterAxiLiteWriteMasterType  :=   AXI_LITE_WRITE_MASTER_INIT_C
 
in txPreCursorslv( 4 downto  0)  :=( others => '0')
 
RXCDR_CFG_Gbit_vector  := x"03000023ff40200020"
 
PAYLOAD_CNT_TOP_Ginteger  := 7
 
PAYLOAD_CNT_TOP_Ginteger  := 7
 
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
 
RX_CLK25_DIV_Ginteger  := 7
 
VC_INTERLEAVE_Ginteger  := 0
 
AXI_ERROR_RESP_Gslv( 1 downto  0)  :=   AXI_RESP_DECERR_C
 
RX_ENABLE_Gboolean  :=   true
 
in txDiffCtrlslv( 3 downto  0)  :=   "1000"
 
CPLL_REFCLK_SEL_Gbit_vector  :=   "001"
 
VC_INTERLEAVE_Ginteger  := 0
 
CLKIN_PERIOD_Greal  := 16.0
 
CLKOUT0_DIVIDE_F_Greal   range  1.0 to  128.0:= 6.375
 
out pgpTxSlavesAxiStreamSlaveArray( 3 downto  0)  
 
in pgpRxCtrlAxiStreamCtrlArray( 3 downto  0)  
 
RXCDR_CFG_Gbit_vector  := x"03000023ff40200020"
 
RX_OS_CFG_Gbit_vector  :=   "0000010000000"
 
NUM_CLOCKS_Ginteger   range  1 to  7
 
out pgpRxOutPgp2bRxOutType