Commit 37cfba4e authored by Grzegorz Daniluk's avatar Grzegorz Daniluk

wr_endpoint: don't make RTU request when frame was not stored in the rx buffer

When rx buffer is full when new SOF arrives, the whole frame is dropped and not
stored in the buffer. However, RTU request was still generated by the
ep_rtu_header_extract.
This patch prevents ep_rtu_header_extract from generating rtu request, when
rxbuf is full on SOF.
parent 6a12587f
...@@ -496,7 +496,8 @@ package endpoint_private_pkg is ...@@ -496,7 +496,8 @@ package endpoint_private_pkg is
rtu_rq_o : out t_ep_internal_rtu_request; rtu_rq_o : out t_ep_internal_rtu_request;
rtu_full_i : in std_logic; rtu_full_i : in std_logic;
rtu_rq_abort_o : out std_logic; rtu_rq_abort_o : out std_logic;
rtu_rq_valid_o : out std_logic); rtu_rq_valid_o : out std_logic;
rxbuf_full_i : in std_logic);
end component; end component;
component ep_rx_early_address_match component ep_rx_early_address_match
......
...@@ -29,7 +29,8 @@ entity ep_rtu_header_extract is ...@@ -29,7 +29,8 @@ entity ep_rtu_header_extract is
rtu_rq_o : out t_ep_internal_rtu_request; rtu_rq_o : out t_ep_internal_rtu_request;
rtu_full_i : in std_logic; rtu_full_i : in std_logic;
rtu_rq_abort_o : out std_logic; rtu_rq_abort_o : out std_logic;
rtu_rq_valid_o : out std_logic rtu_rq_valid_o : out std_logic;
rxbuf_full_i : in std_logic
); );
end ep_rtu_header_extract; end ep_rtu_header_extract;
...@@ -84,7 +85,7 @@ begin -- rtl ...@@ -84,7 +85,7 @@ begin -- rtl
else else
rmon_drp_at_rtu_full_o <='0'; rmon_drp_at_rtu_full_o <='0';
if(snk_fab_i.sof = '1' and rtu_full_i = '0') then if(snk_fab_i.sof = '1' and rtu_full_i = '0' and rxbuf_full_i = '0') then
in_packet <= '1'; in_packet <= '1';
in_header <= '1'; in_header <= '1';
elsif(snk_fab_i.sof = '1' and rtu_full_i = '1') then elsif(snk_fab_i.sof = '1' and rtu_full_i = '1') then
......
...@@ -380,7 +380,8 @@ begin -- behavioral ...@@ -380,7 +380,8 @@ begin -- behavioral
rtu_rq_o => rtu_rq_o, rtu_rq_o => rtu_rq_o,
rtu_full_i => rtu_full_i, rtu_full_i => rtu_full_i,
rtu_rq_abort_o => rtu_rq_abort_o, rtu_rq_abort_o => rtu_rq_abort_o,
rtu_rq_valid_o => rtu_rq_valid); rtu_rq_valid_o => rtu_rq_valid,
rxbuf_full_i => rxbuf_full);
gen_with_rx_buffer : if g_with_rx_buffer generate gen_with_rx_buffer : if g_with_rx_buffer generate
U_Rx_Buffer : ep_rx_buffer U_Rx_Buffer : ep_rx_buffer
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment