1 -------------------------------------------------------------------------------     3 -- Company    : SLAC National Accelerator Laboratory     4 -- Created    : 2015-09-22     5 -- Last update: 2016-10-20     6 -------------------------------------------------------------------------------     7 -- Description: Ethernet MAC RX Wrapper     8 -------------------------------------------------------------------------------     9 -- This file is part of 'SLAC Firmware Standard Library'.    10 -- It is subject to the license terms in the LICENSE.txt file found in the     11 -- top-level directory of this distribution and at:     12 --    https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.     13 -- No part of 'SLAC Firmware Standard Library', including this file,     14 -- may be copied, modified, propagated, or distributed except according to     15 -- the terms contained in the LICENSE.txt file.    16 -------------------------------------------------------------------------------    19 use ieee.std_logic_1164.
all;
    20 use ieee.std_logic_arith.
all;
    21 use ieee.std_logic_unsigned.
all;
    28  --! @ingroup ethernet_EthMacCore    31       -- Simulation Generics    37       -- Non-VLAN Configurations    41       -- VLAN Configurations    58       -- XLGMII PHY Interface    61       -- XGMII PHY Interface    68       -- Flow Control Interface    71       -- Configuration and status   101          -- XLGMII PHY Interface   104          -- XGMII PHY Interface   107          -- GMII PHY Interface   111          -- Configuration and status   130          -- Incoming data from MAC   139    ------------------------------   140    -- RX Non-VLAN Checksum Module   141    ------------------------------   155          -- Outbound data to MAC   159    --------------------------            160    -- RX VLAN Checksum Module   161    --------------------------            162    GEN_VLAN : if (VLAN_EN_G = true) generate   178                -- Outbound data to MAC   181       end generate GEN_VEC;
   184    BYPASS_VLAN : if (VLAN_EN_G = false) generate   185       -- Terminate Unused buses   201          -- Incoming data from MAC   203          -- Outgoing primary data    205          -- Outgoing bypass data    219          -- Incoming data from MAC out mPrimMasterAxiStreamMasterType  
 
out mAxisMasterAxiStreamMasterType  
 
out mAxisMastersAxiStreamMasterArray(   VLAN_SIZE_G- 1 downto  0)  
 
in xgmiiRxdslv( 63 downto  0)  
 
in sAxisMasterAxiStreamMasterType  
 
array(natural range <> ) of slv( 11 downto  0)   Slv12Array
 
FILT_EN_Gboolean  :=   false
 
in macAddressslv( 47 downto  0)  
 
FILT_EN_Gboolean  :=   false
 
in xlgmiiRxcslv( 15 downto  0)  
 
in sAxisMasterAxiStreamMasterType  
 
in mBypCtrlAxiStreamCtrlType  
 
in xgmiiRxcslv( 7 downto  0)  
 
out mAxisMasterAxiStreamMasterType  
 
out mBypMasterAxiStreamMasterType  
 
AxiStreamMasterType  :=(tValid  => '0',tData  =>( others => '0'),tStrb  =>( others => '1'),tKeep  =>( others => '1'),tLast  => '0',tDest  =>( others => '0'),tId  =>( others => '0'),tUser  =>( others => '0')) AXI_STREAM_MASTER_INIT_C
 
out mAxisMasterAxiStreamMasterType  
 
in xgmiiRxcslv( 7 downto  0)  
 
PHY_TYPE_Gstring  :=   "XGMII"
 
AxiStreamMasterType   bypassMaster
 
VLAN_SIZE_Gpositive   range  1 to  8:= 1
 
AxiStreamMasterType   pauseMaster
 
in gmiiRxdslv( 7 downto  0)  
 
in xlgmiiRxdslv( 127 downto  0)  
 
VLAN_VID_GSlv12Array  :=( 0=> x"001")
 
VLAN_EN_Gboolean  :=   false
 
out rxPauseValueslv( 15 downto  0)  
 
in mPrimCtrlAxiStreamCtrlType  
 
in xlgmiiRxdslv( 127 downto  0)  
 
VLAN_VID_GSlv12Array  :=( 0=> x"001")
 
BYP_ETH_TYPE_Gslv( 15 downto  0)  := x"0000"
 
AxiStreamMasterArray(   VLAN_SIZE_G- 1 downto  0)   pauseMasters
 
PAUSE_EN_Gboolean  :=   true
 
VLAN_SIZE_Gpositive   range  1 to  8:= 1
 
in xlgmiiRxcslv( 15 downto  0)  
 
in sAxisMasterAxiStreamMasterType  
 
out mBypMasterAxiStreamMasterType  
 
out mPrimMasterAxiStreamMasterType  
 
array(natural range <> ) of AxiStreamCtrlType   AxiStreamCtrlArray
 
PAUSE_EN_Gboolean  :=   true
 
array(natural range <> ) of AxiStreamMasterType   AxiStreamMasterArray
 
in ethConfigEthMacConfigType  
 
AxiStreamMasterType   macIbMaster
 
in gmiiRxdslv( 7 downto  0)  
 
PHY_TYPE_Gstring  :=   "XGMII"
 
out rxPauseValueslv( 15 downto  0)  
 
out macIbMasterAxiStreamMasterType  
 
in sAxisMasterAxiStreamMasterType  
 
AxiStreamMasterType   csumMaster
 
in xgmiiRxdslv( 63 downto  0)  
 
in mAxisCtrlAxiStreamCtrlType  
 
out mVlanMastersAxiStreamMasterArray(   VLAN_SIZE_G- 1 downto  0)  
 
BYP_ETH_TYPE_Gslv( 15 downto  0)  := x"0000"
 
in mVlanCtrlAxiStreamCtrlArray(   VLAN_SIZE_G- 1 downto  0)  
 
VLAN_EN_Gboolean  :=   false