1 ------------------------------------------------------------------------------- 2 -- File : TenGigEthGthUltraScaleRst.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2015-05-04 5 -- Last update: 2015-12-03 6 ------------------------------------------------------------------------------- 7 -- Description: 10GBASE-R Ethernet Reset 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_unsigned.
all;
21 use ieee.std_logic_arith.
all;
29 --! @ingroup ethernet_TenGigEthCore_gthUltraScale 48 end TenGigEthGthUltraScaleRst;
52 signal coreReset : sl;
54 signal txClockGt : sl;
59 signal rstCnt : slv(15 downto 0) := (others => '0');
60 signal rstPulse : slv(3 downto 0) := "1110";
88 CLK312_BUFG_GT : BUFG_GT
98 CLK156_BUFG_GT : BUFG_GT
142 -- Hold off release the GT resets until 500ns after configuration. 143 -- 256 ticks at the minimum possible 2.56ns period (390MHz) will be >> 500 ns. 144 if rstCnt(15) = '0' then 145 rstCnt <= rstCnt + 1 after TPD_G;
147 rstCnt <= rstCnt after TPD_G;
150 if coreReset = '1' then 151 rstPulse <= "1110" after TPD_G;
152 elsif rstCnt(15) = '1' then 153 rstPulse(3) <= '0' after TPD_G;
154 rstPulse(2 downto 0) <= rstPulse(3 downto 1) after TPD_G;
161 if rising_edge(txClock) then 162 if txReset = '1' then
in rstsl :=not RST_POLARITY_G
RST_ASYNC_Gboolean := false