clk_rx_full(1) when ((quad_mode >= 8) and (IS_MODE(1) = c_IS_SLAVE)) else
clk_rx_full(2) when ((quad_mode >= 8) and (IS_MODE(2) = c_IS_SLAVE)) else
clk_rx_full(3) when ((quad_mode >= 8) and (IS_MODE(3) = c_IS_SLAVE)) else
- clk_tx_full(0) when ((quad_mode = 1) and (IS_MODE(0) = c_IS_MASTER)) else
- clk_tx_full(1) when ((quad_mode = 1) and (IS_MODE(1) = c_IS_MASTER)) else
- clk_tx_full(2) when ((quad_mode = 1) and (IS_MODE(2) = c_IS_MASTER)) else
- clk_tx_full(3) when ((quad_mode = 1) and (IS_MODE(3) = c_IS_MASTER)) else
+-- clk_tx_full(0) when ((quad_mode = 1) and (IS_MODE(0) = c_IS_MASTER)) else
+-- clk_tx_full(1) when ((quad_mode = 1) and (IS_MODE(1) = c_IS_MASTER)) else
+-- clk_tx_full(2) when ((quad_mode = 1) and (IS_MODE(2) = c_IS_MASTER)) else
+-- clk_tx_full(3) when ((quad_mode = 1) and (IS_MODE(3) = c_IS_MASTER)) else
'0';
-------------------------------------------------
-- attribute syn_preserve : boolean;
-- attribute syn_keep of rx_lsm_state : signal is true;
-- attribute syn_preserve of rx_lsm_state : signal is true;
--- attribute syn_keep of link_half_done_i : signal is true;
--- attribute syn_preserve of link_half_done_i : signal is true;
--- attribute syn_keep of link_full_done_i : signal is true;
--- attribute syn_preserve of link_full_done_i : signal is true;
--- attribute syn_keep of word_sync_rx_i : signal is true;
--- attribute syn_preserve of word_sync_rx_i : signal is true;
--- attribute syn_keep of word_sync_tx_i : signal is true;
--- attribute syn_preserve of word_sync_tx_i : signal is true;
begin
-- outputs
RX_SERDES_RST_OUT => rx_serdes_rst_i, -- CLK_REF based
RX_PCS_RST_OUT => rx_pcs_rst_i, -- CLK_REF based
- LINK_RX_READY_OUT => link_rx_ready_i, -- CLK_REF based
+ LINK_RX_READY_OUT => link_rx_ready_i, --LINK_RX_READY_OUT, -- CLK_REF based
STATE_OUT => rx_fsm_state
);
\r
when FIRST =>\r
rx_state_bits <= x"2";\r
- rx_data(7 downto 0) <= reg_rx_data_in;\r
+ rx_data(7 downto 0) <= reg_rx_data_in;\r
sync_k_i <= '1';\r
if( reg_rx_k_in = '1' ) then\r
case reg_rx_data_in is\r
end case;\r
\r
-- BUG: master ports don't reset correctly\r
--- if( (RESET = '1') or (link_rx_ready_qrx = '0') ) then\r
- if( (RESET = '1') ) then\r
+ if( (RESET = '1') or (link_rx_ready_qrx = '0') ) then\r
+-- if( (RESET = '1') ) then\r
rx_state <= SLEEP;\r
rx_dlm_word_i <= x"00";\r
rx_rst_word_i <= x"00";\r
\r
link_active_qtx <= link_active_int when rising_edge(CLK_TXI);\r
\r
- -- if not set, send toggling idles\r
+ -- if set send IDLE1, else IDLE0\r
send_steady_idle_int <= link_tx_ready_qtx and link_rx_ready_qtx and \r
link_half_done_qtx when (IS_MODE = c_IS_MASTER) else\r
link_tx_ready_qtx and link_rx_ready_qtx and\r