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

Burst Boundary checking #5

Open
stfarley opened this issue Jul 13, 2021 · 7 comments
Open

Burst Boundary checking #5

stfarley opened this issue Jul 13, 2021 · 7 comments

Comments

@stfarley
Copy link

Using the AXI4 Memory component I set up a test that starts a burst that crosses the 4k boundary. This did not cause any error. Is that a check that should be active?

@JimLewis
Copy link
Member

The check has not been implemented yet.

It would be easy to generate an error when a 4 K boundary is crossed on a burst. I am assuming that it would be best if the memory still saves the data as that will facilitate debug.

Alternately, at one point, I started a AXI4 Monitor that is responsible for checking the AXI interface for issues. I am wondering if that would be better than adding the check to the Axi4Memory.

Can you tell me about your use model?

@stfarley
Copy link
Author

stfarley commented Jul 13, 2021 via email

@Paebbels
Copy link
Member

I think this check should be configurable. The boundary limitation is artificially done by ARM and has no technical reason for the bus itself. It makes sense for the CPUs load/store unit or connected memories and caches, but it should have been defined independently from the pure bus specification. (Like limiting data width power of 2 sizes. E.g. 24 bit AXI-stream for an RGB image stream is not valid AXI ...)

Anyhow, if 2 user defined components are developed independently from any CPU or similar, users might want to explicitly cross the 4k boundary.

I'm ok if the check is on by default to follow the AXI specification, but it should be possible to relax it.

@JimLewis
Copy link
Member

It has been a while since this was posted, so I wanted to mention, this is on my todo list to address and will be in a future revision.

@SkydiverTricky
Copy link

It definitely needs an ON/OFF control set by the user. The Xilinx DDR mig allows bursts over the boundary, and even bursts large than 4k (their example design does an 8k burst!)

@SkydiverTricky
Copy link

Another note - I am pretty sure ARM used to provide the SVA for the AXI protocol assertions on their website, but I can no longer find it. The use guide for them is here:
https://developer.arm.com/documentation/dui0534/b/?lang=en

Might it be worth adding PSL versions?

@JimLewis
Copy link
Member

Either PSL or VHDL. I have had the intent of writing pure VHDL versions of them that report through the AlertLogPkg.

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

4 participants