1 ------------------------------------------------------------------------------- 2 -- File : EthMacFlowCtrl.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2016-09-21 5 -- Last update: 2016-10-20 6 ------------------------------------------------------------------------------- 7 -- Description: ETH MAC Flow Control Module 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;
27 --! @ingroup ethernet_EthMacCore 48 type RegType is record 51 constant REG_INIT_C : RegType := ( 54 signal r : RegType := REG_INIT_C;
57 -- attribute dont_touch : string; 58 -- attribute dont_touch of r : signal is "TRUE"; 66 -- Latch the current value 69 -- Sample the primary interface flow control 74 -- Check if bypass interface is enabled 76 -- Sample the bypass pause 80 -- Sample the bypass overflow 86 -- Check if VLAN interface is enabled 88 -- Loop through the channels 90 -- Sample the VLAN pause 94 -- Sample the VLAN overflow 106 -- Register the variable for next clock cycle 116 if rising_edge(ethClk) then 117 r <= rin after TPD_G;
VLAN_EN_Gboolean := false
VLAN_SIZE_Gpositive range 1 to 8:= 1
AxiStreamCtrlType :=(pause => '1',overflow => '0',idle => '0') AXI_STREAM_CTRL_INIT_C
in vlanCtrlAxiStreamCtrlArray( VLAN_SIZE_G- 1 downto 0)
array(natural range <> ) of AxiStreamCtrlType AxiStreamCtrlArray
in bypCtrlAxiStreamCtrlType
in primCtrlAxiStreamCtrlType
out flowCtrlAxiStreamCtrlType