AxiStreamFrame assumes byte width 1 without TKEEP. Expected: self.width / 8 as default.
likewise opened this issue · 2 comments
If I connect a AXIS source to an AXIS sink, without (the optional) TKEEP
, the self.byte_lanes
is incorrectly 1
rather than all lanes enabled.
self.source = AxiStreamSource(AxiStreamBus.from_prefix(dut, "sink"), dut.clk, dut.reset)
Root cause is AxiStreamFrame
assumes byte width 1 if optional TKEEP[]
is not present, but it should default to self.width // 8
because the AXIS specification mentions "when TKEEP is absent, TKEEP defaults to all bits HIGH" and "The width of the data payload is an integer number of bytes."
Fix: https://github.com/alexforencich/cocotbext-axi/blob/master/cocotbext/axi/axis.py#L290
- self.byte_lanes = 1
+ self.byte_lanes = self.width // 8
I will also put a pull request on GitHub: #47
@alexforencich this is addressed?
Yes it is, I forgot to close this one after merging the PR.