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

Add support for external #4

Closed
PeterCDMcLean opened this issue Mar 30, 2022 · 2 comments
Closed

Add support for external #4

PeterCDMcLean opened this issue Mar 30, 2022 · 2 comments
Assignees
Labels
feature request New feature or request
Milestone

Comments

@PeterCDMcLean
Copy link

As is mentioned in the known limitations, PeakRDL-regblock has no support for external registers or regfile. Having support for external is necessary for certain common use cases:

  • FIFO read access
  • Mapping to block RAM read
  • Any other read that must be qualified with a 'read enable' and has arbitrary latency

My suggestion is that the 'out' struct get a scoped 'read enable' signal for any external read. The 'in' struct will contain a 'valid' signal indicating the read is complete and the 'in' data is to be forwarded back to the axi/ahb/cpu bus

@amykyta3
Copy link
Member

Yep thats essentially the plan.

For external addrmap and regfile child nodes, the hwif_in/hwif_out structs will contain handshake signals that follow the internal CPUIF protocol described here: https://peakrdl-regblock.readthedocs.io/en/latest/cpuif/internal_protocol.html

External reg and field nodes will have a simpler handshake that allows for arbitrary access latency. Probably pretty similar to the internal protocol, but just without the address bus.

@amykyta3
Copy link
Member

Published in v0.13.0

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
Development

No branches or pull requests

2 participants