Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AxiStreamSink cannot handle tdata X-bytes for bytes to ignore (tkeep=0) #64

Open
svsi opened this issue Jun 20, 2023 · 1 comment
Open

Comments

@svsi
Copy link

svsi commented Jun 20, 2023

The AxiStreamSink reads and converts tdata without respecting the tkeep bits. This can be a problem as some developers are driving tdata bits and bytes to X or U if the respective tkeep bits are low (0). This is for instance done by the Xilinx AXI4-Stream Data Width Converter when downsizing the bus and the ratio is NOT an integer multiple.

One work-around would be to set the COCOTB_RESOLVE_X environment variable to a value different from VALUE_ERROR (default). I do not like the solution though as in general I would like to see the exception if any output of a DUT that has no validity qualifier returns something else than 0 or 1.
Therefore, I convert tdata manually to 0,1 inside the top VHDL file (in my case the testbench). However, I would prefer to have this issue fixed in a future release of cocotbext-axi.

@alexforencich
Copy link
Owner

This is really related to the crappy BinaryValue type in cocotb that has totally screwed up indexing. When that gets fixed, then I'm definitely going to properly utilize it when extracting byte lanes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants