Change latching behaviour of "last_word_in" latches

During testing a scenario arose, where a toggling in the last_word
signal lane while the rest of the signals were not valid was falsely
latched.
All entities with "last_word_in" latches were modifies to only latch
the signal when in valid state.
This commit is contained in:
John Ring 2023-06-22 08:18:23 +02:00
parent 35baf341c7
commit d2c0b37c27
27 changed files with 273 additions and 273 deletions

View File

@ -135,7 +135,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in = '1') then
if (last_word_in = '1' and valid_in = '1') then
last_word_in_latch_next <= '1';
end if;

View File

@ -161,7 +161,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_dds = '1') then
if (last_word_in_dds = '1' and valid_in_dds = '1') then
last_word_in_latch_next <= '1';
end if;

View File

@ -131,7 +131,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in = '1') then
if (last_word_in = '1' and valid_in = '1') then
last_word_in_latch_next <= '1';
end if;

View File

@ -161,7 +161,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_dds = '1') then
if (last_word_in_dds = '1' and valid_in_dds = '1') then
last_word_in_latch_next <= '1';
end if;

View File

@ -173,7 +173,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in = '1') then
if (last_word_in = '1' and valid_in = '1') then
last_word_in_latch_next <= '1';
end if;

View File

@ -490,7 +490,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_dds = '1') then
if (last_word_in_dds = '1' and valid_in_dds = '1') then
last_word_in_latch_next <= '1';
end if;

View File

@ -201,7 +201,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -197,7 +197,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -197,7 +197,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -194,7 +194,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -193,7 +193,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -190,7 +190,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -147,7 +147,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_dds = '1') then
if (last_word_in_dds = '1' and valid_in_dds = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -190,7 +190,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -190,7 +190,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -192,7 +192,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_dds = '1') then
if (last_word_in_dds = '1' and valid_in_dds = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -199,7 +199,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -197,7 +197,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -236,7 +236,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -232,7 +232,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -271,7 +271,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -270,7 +270,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_r = '1') then
if (last_word_in_r = '1' and valid_in_r = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -254,7 +254,7 @@ begin
-- ###GENERATED END###
-- Last Word Latch Setter
if (last_word_in_dds = '1') then
if (last_word_in_dds = '1' and valid_in_dds = '1') then
last_word_in_latch_next <= '1';
end if;
-- Data Available Setter

View File

@ -852,7 +852,7 @@ begin
data_out_sig <= (others => '0');
-- Last Word Latch Setter
if (last_word_in = '1') then
if (last_word_in = '1' and empty = '0') then
last_word_in_latch_next <= '1';
end if;

View File

@ -629,7 +629,7 @@ begin
-- Last Word Latch Setter
-- NOTE: Assumes meta and user traffic are not consumed concurrently
if (last_word_in_user = '1' or last_word_in_meta = '1') then
if ((last_word_in_user = '1' and empty_user /= (empty_user'range => '1')) or (last_word_in_meta = '1' and empty_meta /= (empty_meta'range => '1'))) then
last_word_in_latch_next <= '1';
end if;

View File

@ -671,7 +671,7 @@ begin
-- Last Word Latch Setter
-- NOTE: Assumes meta and user traffic are not consumed concurrently
if (last_word_in_user = '1' or last_word_in_meta = '1') then
if ((last_word_in_user = '1' and empty_user /= (empty_user'range => '1')) or (last_word_in_meta = '1' and empty_meta /= (empty_meta'range => '1'))) then
last_word_in_latch_next <= '1';
end if;