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

Feature Request: Option to remove buffer stage from AXI read/write #47

Open
leolitenstorrent opened this issue Jun 12, 2023 · 6 comments
Assignees
Labels
feature request New feature or request

Comments

@leolitenstorrent
Copy link

leolitenstorrent commented Jun 12, 2023

Hello PeakRDL Development Team,

I and my project team noticed that there is an additional buffer stage added to the read/write transactions of the AXI Bus. Would it be possible if you add an exporter option to remove the buffer stage, so the read/writes would take one less cycle?

Thank you very much!

@amykyta3
Copy link
Member

Are you using the latest version? I had a bug in a past version where an extra retiming register stage was accidentally enabled by default.

I did a quick check and I'm pretty sure the latency for AXI4-lite is 2 cycles if all the retiming features are disabled.

@leolitenstorrent
Copy link
Author

leolitenstorrent commented Jun 13, 2023

Hello Alex,

I am using the latest version (0.15.0). Just to confirm, the read/write is taking two clocks to complete after the request is asserted even after all of the retimes are disabled. Is this intended?

image

Thanks!

@amykyta3
Copy link
Member

Yes. Without any retime stages, 2 clocks is what is expected.

@leolitenstorrent
Copy link
Author

leolitenstorrent commented Jun 14, 2023

Hello Alex,

Would it be possible that there be an option to reduce the transaction to one clock?

According to the AXI standard, a one-cycle transaction is possible and will be very useful when the digital design operates at high clock frequencies or when low latency is required (i.e. a memory/serializer-deserializer module), which is my team’s case.

I understand that the purpose of the response buffer stage is that in case the ready signal is not 1. However, in cases that ready is 1, there will always be an extra cycle of delay that can add up.

We have been using PeakRDL for a long time and really appreciate the library. Our design, which we have been working on for few years and is large-scale, anticipates single-cycle AXI transactions. This way, we can incorporate even more of PeakRDL into our design process. We very much appreciate your consideration!

Thank you!

@amykyta3
Copy link
Member

Yeah I can see if I can tighten up the response time. I agree that if all optional retiming stages are removed, it should result in the minimum latency for a given protocol.

@amykyta3 amykyta3 self-assigned this Jun 15, 2023
@amykyta3 amykyta3 added the feature request New feature or request label Jun 15, 2023
@leolitenstorrent
Copy link
Author

Hello Alex,

Thank you!

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

No branches or pull requests

2 participants