-
Notifications
You must be signed in to change notification settings - Fork 13
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 amba fabrics #31
Closed
Closed
Add amba fabrics #31
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- In AXI4_Fabric, support read and write bursts. - Added new AXI4_Deburster, placed in front of slave IPs mem controller and slave boot rom, that converts burst requests from fabric into individual non-burst requests into slave IPs. - In MMU_Cache, changed cache-refill code to refill with a read-burst. - Re-tested ISA tests: all ok.
Detail: in a write-burst of length N, the deburster was sending N AXI4 responses to the requestor; it should send only 1.
Was our mistake ('wid' used to be in AXI3 spec, was removed in AXI4 spec). Tested on all RV64ACDFIMSU ISA tests: ok.
…ocations (no slave). Specifically: we were mistakenly popping an extra item from the awdata channel.
…ollows) The fabric uses an index (0..num_masters-1) to identify a master so it knows how to route responses. When num_masters=1, it's identification is a Bit#(0), on which equality tests are dicey. Fixed to assume a range (0..num_masters), so at least Bit #(1).
Using the modulus operator does not synthesise efficiently as wrap_boundary is not statically known to be a power of 2 without external knowledge of the AXI specification, putting it on a critical path with over -30ns WNS in the Connectal-based SSITH AWS SoC, and likely also AWSteria once FPGA builds are attempted. Instead, exploit the fact that the burst length is required to be a power of two, and use a bitmask to wrap the address within the aligned range.
Converts arbtitrary AXI4 read/write into aligned Load/Store; fully paramterized for AXI data bus and Load/Store data bus widths.
These are more economical (fewer FIFOs) than previous versions
This test attempts to recreate traffic patterns that were observed to cause data corruption in AWSteria.
…nges to addr and user fields in a master interface
Discarding this PR (which I opened). Many things need fixing; will fix and submit a fresh PR. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added Libraries/AMBA_Fabrics/ directory containing AXI4, AXI4_Lite and Adapter material, consolidating here from variants in a Bluespec-private repo and the Bluespec-public Flute repo.