Skip to content
Snippets Groups Projects

Fixed eop generation in every 4th TLP for Wupper PCIe Gen5 (DATA_WIDTH = 1024)

Merged Frans Schreuder requested to merge phase2/FLX-2484_Wupper_Gen5_fix_eop_straddle into phase2/master
1 file
+ 8
10
Compare changes
  • Side-by-side
  • Inline
@@ -583,15 +583,13 @@ begin
rw_state <= CONT_WRITE; --default
if (ToHostWriteCount_s > x"02" and DATA_WIDTH = 256) or
(ToHostWriteCount_s(7 downto 1) > x"01" and ToHostWriteCount_s(0) = '1' and DATA_WIDTH = 512) or
(ToHostWriteCount_s(7 downto 1) > x"02" and ToHostWriteCount_s(0) = '0' and DATA_WIDTH = 512) or
(ToHostWriteCount_s(7 downto 1) > 1 and ToHostWriteCount_s(0) = '1' and DATA_WIDTH = 512) or
(ToHostWriteCount_s(7 downto 1) > 2 and ToHostWriteCount_s(0) = '0' and DATA_WIDTH = 512) or
(ToHostWriteCount_s(7 downto 2) > x"01" and ToHostWriteCount_s(1 downto 0) = "11" and DATA_WIDTH = 1024) or
(ToHostWriteCount_s(7 downto 2) > x"01" and ToHostWriteCount_s(1 downto 0) = "10" and DATA_WIDTH = 1024) or
(ToHostWriteCount_s(7 downto 2) > x"01" and ToHostWriteCount_s(1 downto 0) = "01" and DATA_WIDTH = 1024) or
(ToHostWriteCount_s(7 downto 2) > x"02" and ToHostWriteCount_s(1 downto 0) = "00" and DATA_WIDTH = 1024)
then
(ToHostWriteCount_s(7 downto 2) > 1 and ToHostWriteCount_s(1 downto 0) = "11" and DATA_WIDTH = 1024) or
(ToHostWriteCount_s(7 downto 2) > 1 and ToHostWriteCount_s(1 downto 0) = "10" and DATA_WIDTH = 1024) or
(ToHostWriteCount_s(7 downto 2) > 1 and ToHostWriteCount_s(1 downto 0) = "01" and DATA_WIDTH = 1024) or
(ToHostWriteCount_s(7 downto 2) > 2 and ToHostWriteCount_s(1 downto 0) = "00" and DATA_WIDTH = 1024) then
do_re_fifo <= '1';
end if;
if (ToHostWriteCount_s = x"01" and DATA_WIDTH = 256) or
@@ -773,7 +771,7 @@ begin
end case;
end if;
rq_header_valid <= '0';
elsif rq_data_valid = '1' or rq_data_valid_p1 = '1' then
elsif rq_data_valid = '1' or rq_data_valid_p1 = '1' then --rq_header_valid = 0
s_m_axis_rq.tvalid <= '1';
if (ToHostWriteCount_s /= x"00" and DATA_WIDTH=256) or
(ToHostWriteCount_s /= x"00" and ToHostWriteCount_s /= x"01" and DATA_WIDTH=512) or
@@ -864,7 +862,7 @@ begin
s_m_axis_rq.tdata(1023 downto 0) <= rq_data(127 downto 0) & --128 bits data
rq_data_p1(1023 downto 128); --896 bits data from last clock cycle
if ToHostWriteCount_p1_s /= 0 then -- greater than 1, but 0 is covered in the else statement.
if ToHostWriteCount_p1_s > 4 then -- greater than 1, but 0 is covered in the else statement.
axis_rq_tuser_bits.is_eop <= "0000"; --No TLP ending
axis_rq_tuser_bits.is_eop0_ptr <= "0"&x"0"; --
else
Loading