LOS_IN : in std_logic;\r
SD_LOS_IN : in std_logic;\r
WAP_ZERO_IN : in std_logic;\r
+ WAP_ACK_IN : in std_logic;\r
-- outputs\r
+ WAP_REQ_OUT : out std_logic;\r
RX_SERDES_RST_OUT : out std_logic;\r
RX_PCS_RST_OUT : out std_logic;\r
LINK_RX_READY_OUT : out std_logic;\r
RX_SERDES_RST_OUT <= '1';\r
RX_PCS_RST_OUT <= '1';\r
LINK_RX_READY_OUT <= '0';\r
- \r
+ WAP_REQ_OUT <= '0';\r
+\r
rx_sm <= powerup;\r
STATE_OUT <= x"f";\r
cnt <= (others => '0'); \r
RX_SERDES_RST_OUT <= '0'; -- needed for RX_LOS to be active\r
RX_PCS_RST_OUT <= '1';\r
LINK_RX_READY_OUT <= '0';\r
+ WAP_REQ_OUT <= '0';\r
-- if( (pll_lol_s = '1') or (los_s = '1') or (sd_los_s = '1') ) then\r
if( (pll_lol_s = '1') or (sd_los_s = '1') ) then\r
cnt <= (others => '0');\r
RX_SERDES_RST_OUT <= '1';\r
RX_PCS_RST_OUT <= '1';\r
LINK_RX_READY_OUT <= '0';\r
+ WAP_REQ_OUT <= '0';\r
if( cnt = Tshort ) 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
+ WAP_REQ_OUT <= '0';\r
if( cnt = Tcdr ) then\r
cnt <= (others => '0');\r
rx_sm <= TEST_CDR;\r
RX_SERDES_RST_OUT <= '0';\r
RX_PCS_RST_OUT <= '1';\r
LINK_RX_READY_OUT <= '0';\r
+ WAP_REQ_OUT <= '0';\r
if( cdr_lol_s = '1' ) then\r
cnt <= (others => '0');\r
rx_sm <= APPLY_CDR_RST;\r
RX_SERDES_RST_OUT <= '0';\r
RX_PCS_RST_OUT <= '1';\r
LINK_RX_READY_OUT <= '0';\r
+ WAP_REQ_OUT <= '0';\r
if( cnt = Tshort ) 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
+ WAP_REQ_OUT <= '1';\r
if( cnt = Tviol ) then\r
cnt <= (others => '0');\r
rx_sm <= TEST_RXPCS;\r
RX_SERDES_RST_OUT <= '0';\r
RX_PCS_RST_OUT <= '0';\r
LINK_RX_READY_OUT <= '0';\r
+ WAP_REQ_OUT <= '1';\r
if( (lsm_s = '0') or (cv_s = '1') ) then\r
cnt <= (others => '0');\r
rx_sm <= APPLY_RXPCS_RST;\r
RX_SERDES_RST_OUT <= '0';\r
RX_PCS_RST_OUT <= '0';\r
LINK_RX_READY_OUT <= '0';\r
+ WAP_REQ_OUT <= '0';\r
cnt <= (others => '0');\r
if( wap_zero_s = '1' ) then\r
rx_sm <= NORMAL_OP;\r
RX_SERDES_RST_OUT <= '0';\r
RX_PCS_RST_OUT <= '0';\r
LINK_RX_READY_OUT <= '1';\r
+ WAP_REQ_OUT <= '0';\r
cnt <= (others => '0');\r
if( (lsm_s = '0') or (cv_s = '1') ) then -- DANGEROUS\r
rx_sm <= APPLY_RXPCS_RST; \r
RX_SERDES_RST_OUT <= '0';\r
RX_PCS_RST_OUT <= '0';\r
LINK_RX_READY_OUT <= '0';\r
+ WAP_REQ_OUT <= '0';\r
rx_sm <= POWERUP;\r
\r
end case;\r