You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
library/util_axis_fifo_asym: fix tlast behavior when tkeep=0
Fix tvalid low when tlast is present.
Before this commit, util_axis_fifo would suppress all transfers with tkeep=0,
even if tlast was asserted. This commit makes it so transfers with tlast
asserted are preserved.
The AXI-Streaming spec allows us to suppress transfers for which all tkeep bits
are 0 (all bytes are null bytes), but only in the case when tlast=0 as well.
Transfers where tlast is asserted can't be suppressed even when all bytes are
null.
Signed-off-by: Laez Barbosa <[email protected]>
// tlast is asserted for the atomic fifo instances on the following conditions:
157
+
// - for the most significant instance, tlast is the input tlast if any of the tkeep bits for the instance is asserted (so we are not suppressing this transfer)
158
+
// - for the least significat instance, tlast is the input tlast if no tkeep bits are asserted for any instance (transfer is all null bytes)
159
+
// - for the other instances, we store the input tlast if all the following instances have tkeep=0 for all bits and no less significant instance has stored it
160
+
// thus, the tlast is stored on the most significant instance that has non-null bytes (meaning not all tkeep bits are 0), if there are any.
0 commit comments