signal fifo_opt_empty_synch_synch : std_logic;
signal fifo_rd_en_hub : std_logic;
begin
- SEND_ERROR: process (SYSTEM_CLK, RESET)
+ SEND_ERROR: process (SYSTEM_CLK, RESET,SYNCH_CURRENT)
begin
if rising_edge(SYSTEM_CLK) then
if RESET = '1' then
end if;
end if;
end process SEND_ERROR;
- PACKET_NUM: process (SYSTEM_CLK, RESET)
+ PACKET_NUM: process (SYSTEM_CLK, RESET,fifo_rd_en)
begin
if rising_edge(SYSTEM_CLK) then
if RESET = '1' then
end if;
end process PACKET_NUM;
MED_PACKET_NUM_OUT <= packet_number;
- LINK_STATUS : process (SYSTEM_CLK)
+ LINK_STATUS : process (SYSTEM_CLK,RESET)
begin
if rising_edge(SYSTEM_CLK) then
if RESET = '1' then
AlmostEmpty => fifo_opt_almost_empty,
AlmostFull => fifo_opt_almost_full
);
- DATA_SEND_TO_LINK: process (TX_CLK, RESET, DATA_VALID_IN)
+ DATA_SEND_TO_LINK: process (TX_CLK, RESET, DATA_VALID_IN,fifo_opt_empty_synch,fifo_opt_empty_synch_synch)
begin
if rising_edge(TX_CLK) then --falling ???
if RESET = '1' then
elsif MED_READ_IN = '1' and fifo_empty = '1' and data_valid_out_i = '1' then
data_valid_out_i <= '0';
fifo_rd_en_hub <= '0';
+ elsif data_valid_out_i = '1' and fifo_empty = '0' then
+ data_valid_out_i <= '1';
+ fifo_rd_en_hub <= MED_READ_IN;
end if;
end if;
end process READING_THE_FIFO;
begin
if rising_edge (SYSTEM_CLK) then
if RESET = '1' then
- SYNCH_CURRENT <= IDLE;
+ SYNCH_CURRENT <= IDLE; --NORMAL_OPERATION_2;--IDLE; --sim
cv_i <= (others => '0');
else
SYNCH_CURRENT <= SYNCH_NEXT;
begin
case (SYNCH_CURRENT) is
when IDLE =>
- fifo_rst <= '0';
+ fifo_rst <= '1';
fifo_wr_en <= '0';
fsm_debug_register(2 downto 0) <= "001";
rx_rst_i <= '0';
SYNCH_NEXT <= NORMAL_OPERATION_1;
end if;
when NORMAL_OPERATION_2 =>
- fifo_rst <= '0';
+ fifo_rst <='0';--RESET;--'0';sim
fifo_wr_en <= not rx_k_synch_i(0);
fsm_debug_register(2 downto 0) <= "111";
rx_rst_i <= '0';