-- Without this piece of code, many things would have been a real pain.\r
\r
constant Tshort_bit : integer := 4; -- count up to 2^4 = 16\r
--- constant Tshort : unsigned(31 downto 0) := x"0000000a";\r
constant Tplol_bit : integer := 22;\r
--- constant Tplol : unsigned(31 downto 0) := x"003fffff"; --x"01312d00";\r
constant Tcdr_bit : integer := 22;\r
--- constant Tcdr : unsigned(31 downto 0) := x"003fffff"; --x"01312d00";\r
constant Tviol_bit : integer := 22;\r
--- constant Tviol : unsigned(31 downto 0) := x"003fffff"; --x"01312d00";\r
\r
signal pll_lol_s : std_logic;\r
signal cdr_lol_s : std_logic;\r
if( (pll_lol_s = '1') or (sd_los_s = '1') ) then\r
cnt <= (others => '0');\r
else\r
--- if( cnt = Tplol ) then\r
if( cnt(Tplol_bit) = '1' ) then\r
cnt <= (others => '0');\r
rx_sm <= APPLY_CDR_RST;\r
RX_SERDES_RST_OUT <= '1';\r
RX_PCS_RST_OUT <= '1';\r
LINK_RX_READY_OUT <= '0';\r
--- if( cnt = Tshort ) then\r
if( cnt(Tshort_bit) = '1' ) then\r
cnt <= (others => '0');\r
rx_sm <= WAIT_CDR_LOCK;\r
RX_SERDES_RST_OUT <= '0';\r
RX_PCS_RST_OUT <= '1';\r
LINK_RX_READY_OUT <= '0';\r
--- if( cnt = Tcdr ) then\r
if( cnt(Tcdr_bit) = '1' ) then\r
cnt <= (others => '0');\r
rx_sm <= TEST_CDR;\r
cnt <= (others => '0');\r
rx_sm <= APPLY_CDR_RST;\r
else\r
--- if( cnt = Tcdr ) then\r
if( cnt(Tcdr_bit) = '1' ) then\r
cnt <= (others => '0');\r
rx_sm <= APPLY_RXPCS_RST;\r
RX_SERDES_RST_OUT <= '0';\r
RX_PCS_RST_OUT <= '1';\r
LINK_RX_READY_OUT <= '0';\r
--- if( cnt = Tshort ) then\r
if( cnt(Tshort_bit) ) then\r
cnt <= (others => '0');\r
rx_sm <= WAIT_RXPCS_LOCK;\r
RX_SERDES_RST_OUT <= '0';\r
RX_PCS_RST_OUT <= '0';\r
LINK_RX_READY_OUT <= '0';\r
--- if( cnt = Tviol ) then\r
if( cnt(Tviol_bit) = '1' ) then\r
cnt <= (others => '0');\r
rx_sm <= TEST_RXPCS;\r
cnt <= (others => '0');\r
rx_sm <= APPLY_RXPCS_RST;\r
else\r
--- if( cnt = Tviol ) then\r
if( cnt(Tviol_bit) = '1' ) then\r
cnt <= (others => '0');\r
rx_sm <= CHECK_WAP;\r
RX_PCS_RST_OUT <= '0';\r
LINK_RX_READY_OUT <= '0';\r
cnt <= (others => '0');\r
--- if( cnt = Tshort ) then\r
if( cnt(Tshort_bit) = '1' ) then\r
cnt <= (others => '0');\r
if( wap_zero_s = '1' ) then\r
end case;\r
\r
------------------------------------------------\r
--- if (pll_lol_s = '1') or (los_s = '1') then\r
--- if( pll_lol_s = '1' ) then\r
if( (pll_lol_s = '1') or (sd_los_s = '1') ) then\r
rx_sm <= POWERUP; \r
cnt <= (others => '0');\r
end if;\r
end process rx_reset_proc;\r
\r
- WAP_REQ_OUT <= '1' when ((rx_sm = WAIT_RXPCS_LOCK) or (rx_sm = TEST_RXPCS)) else '0';\r
+-- WAP_REQ_OUT <= '1' when ((rx_sm = WAIT_RXPCS_LOCK) or (rx_sm = TEST_RXPCS)) else '0';\r
+ WAP_REQ_OUT <= '1' when ((rx_sm = TEST_RXPCS)) else '0';\r
\r
end architecture;\r