1 -------------------------------------------------------------------------------     2 -- File       : TenGigEthGtx7Wrapper.vhd     3 -- Company    : SLAC National Accelerator Laboratory     4 -- Created    : 2015-03-30     5 -- Last update: 2016-09-29     6 -------------------------------------------------------------------------------     7 -- Description: Gtx7 Wrapper for 10GBASE-R Ethernet     8 -- Note: This module supports up to a MGT QUAD of 10GigE interfaces     9 -------------------------------------------------------------------------------    10 -- This file is part of 'SLAC Firmware Standard Library'.    11 -- It is subject to the license terms in the LICENSE.txt file found in the     12 -- top-level directory of this distribution and at:     13 --    https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.     14 -- No part of 'SLAC Firmware Standard Library', including this file,     15 -- may be copied, modified, propagated, or distributed except according to     16 -- the terms contained in the LICENSE.txt file.    17 -------------------------------------------------------------------------------    20 use ieee.std_logic_1164.
all;
    28  --! @ingroup ethernet_TenGigEthCore_gtx7    33       -- QUAD PLL Configurations    35       REFCLK_DIV2_G     :                           := false;
  --  FALSE: gtClkP/N = 156.25 MHz,  TRUE: gtClkP/N = 312.5 MHz    37       -- AXI-Lite Configurations    40       -- AXI Streaming Configurations    43       -- Local Configurations    44       localMac            : 
in  Slv48Array(NUM_LANE_G-1 
downto 0)              := (
others => MAC_ADDR_INIT_C);
    45       -- Streaming DMA Interface     52       -- Slave AXI-Lite Interface     68       -- MGT Clock Port (156.25 MHz or 312.5 MHz)    78 end TenGigEthGtx7Wrapper;
    97    ----------------------    98    -- Common Clock Module     99    ----------------------   111          -- MGT Clock Port (156.25 MHz or 312.5 MHz)   133             -- AXI-Lite Configurations   136             -- AXI Streaming Configurations   139             -- Local Configurations   141             -- Streaming DMA Interface    148             -- Slave AXI-Lite Interface    174    end generate GEN_LANE;
 
USE_GTREFCLK_Gboolean  :=   false
 
out gtTxNslv(   NUM_LANE_G- 1 downto  0)  
 
out axiLiteReadSlaveAxiLiteReadSlaveType  
 
AXIS_CONFIG_GAxiStreamConfigArray( 3 downto  0)  :=( others =>   AXI_STREAM_CONFIG_INIT_C)
 
array(natural range <> ) of AxiStreamSlaveType   AxiStreamSlaveArray
 
out txDisableslv(   NUM_LANE_G- 1 downto  0)  
 
in axiLiteClkslv(   NUM_LANE_G- 1 downto  0)  :=( others => '0')
 
array(natural range <> ) of AxiLiteWriteSlaveType   AxiLiteWriteSlaveArray
 
in dmaClkslv(   NUM_LANE_G- 1 downto  0)  
 
slv(   NUM_LANE_G- 1 downto  0)   qpllRst
 
QPLL_REFCLK_SEL_Gbit_vector  :=   "001"
 
out axiLiteWriteSlavesAxiLiteWriteSlaveArray(   NUM_LANE_G- 1 downto  0)  
 
out dmaIbMasterAxiStreamMasterType  
 
array(natural range <> ) of AxiLiteReadMasterType   AxiLiteReadMasterArray
 
EN_AXI_REG_Gboolean  :=   false
 
NUM_LANE_Gnatural   range  1 to  4:= 1
 
in dmaIbSlavesAxiStreamSlaveArray(   NUM_LANE_G- 1 downto  0)  
 
in dmaIbSlaveAxiStreamSlaveType  
 
REFCLK_DIV2_Gboolean  :=   false
 
in localMacSlv48Array(   NUM_LANE_G- 1 downto  0)  :=( others =>   MAC_ADDR_INIT_C)
 
in axiLiteWriteMasterAxiLiteWriteMasterType  :=   AXI_LITE_WRITE_MASTER_INIT_C
 
EN_AXI_REG_Gboolean  :=   false
 
QPLL_REFCLK_SEL_Gbit_vector  :=   "001"
 
array(natural range <> ) of AxiStreamConfigType   AxiStreamConfigArray
 
slv( 1 downto  0)  :=   "10" AXI_RESP_SLVERR_C
 
in sigDetslv(   NUM_LANE_G- 1 downto  0)  :=( others => '1')
 
in txFaultslv(   NUM_LANE_G- 1 downto  0)  :=( others => '0')
 
out dmaObSlavesAxiStreamSlaveArray(   NUM_LANE_G- 1 downto  0)  
 
in dmaObMasterAxiStreamMasterType  
 
out gtTxPslv(   NUM_LANE_G- 1 downto  0)  
 
AXI_ERROR_RESP_Gslv( 1 downto  0)  :=   AXI_RESP_SLVERR_C
 
array(natural range <> ) of AxiStreamMasterType   AxiStreamMasterArray
 
AXIS_CONFIG_GAxiStreamConfigType  :=   AXI_STREAM_CONFIG_INIT_C
 
REFCLK_DIV2_Gboolean  :=   false
 
USE_GTREFCLK_Gboolean  :=   false
 
AxiLiteReadMasterType  :=(araddr  =>( others => '0'),arprot  =>( others => '0'),arvalid  => '0',rready  => '1') AXI_LITE_READ_MASTER_INIT_C
 
out axiLiteReadSlavesAxiLiteReadSlaveArray(   NUM_LANE_G- 1 downto  0)  
 
AxiStreamConfigType  :=(TSTRB_EN_C  =>   false,TDATA_BYTES_C  => 16,TDEST_BITS_C  => 4,TID_BITS_C  => 0,TKEEP_MODE_C  =>   TKEEP_NORMAL_C,TUSER_BITS_C  => 4,TUSER_MODE_C  =>   TUSER_NORMAL_C) AXI_STREAM_CONFIG_INIT_C
 
in axiLiteReadMastersAxiLiteReadMasterArray(   NUM_LANE_G- 1 downto  0)  :=( others =>   AXI_LITE_READ_MASTER_INIT_C)
 
array(natural range <> ) of AxiLiteWriteMasterType   AxiLiteWriteMasterArray
 
out axiLiteWriteSlaveAxiLiteWriteSlaveType  
 
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
 
AXI_ERROR_RESP_Gslv( 1 downto  0)  :=   AXI_RESP_SLVERR_C
 
out dmaObSlaveAxiStreamSlaveType  
 
in gtRxPslv(   NUM_LANE_G- 1 downto  0)  
 
in localMacslv( 47 downto  0)  :=   MAC_ADDR_INIT_C
 
array(natural range <> ) of AxiLiteReadSlaveType   AxiLiteReadSlaveArray
 
in dmaRstslv(   NUM_LANE_G- 1 downto  0)  
 
out dmaIbMastersAxiStreamMasterArray(   NUM_LANE_G- 1 downto  0)  
 
in axiLiteReadMasterAxiLiteReadMasterType  :=   AXI_LITE_READ_MASTER_INIT_C
 
in gtRxNslv(   NUM_LANE_G- 1 downto  0)  
 
in axiLiteWriteMastersAxiLiteWriteMasterArray(   NUM_LANE_G- 1 downto  0)  :=( others =>   AXI_LITE_WRITE_MASTER_INIT_C)
 
in axiLiteRstslv(   NUM_LANE_G- 1 downto  0)  :=( others => '0')
 
out phyReadyslv(   NUM_LANE_G- 1 downto  0)  
 
in dmaObMastersAxiStreamMasterArray(   NUM_LANE_G- 1 downto  0)