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 amba fabrics #31

Closed
wants to merge 34 commits into from
Closed

Conversation

rsnikhil
Copy link
Collaborator

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.

rsnikhil and others added 30 commits October 2, 2018 15:59
- 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
darius-bluespec and others added 4 commits November 17, 2024 12:36
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
@rsnikhil rsnikhil closed this Nov 18, 2024
@rsnikhil
Copy link
Collaborator Author

Discarding this PR (which I opened). Many things need fixing; will fix and submit a fresh PR.

@rsnikhil rsnikhil deleted the add_AMBA_Fabrics branch November 18, 2024 15:56
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

Successfully merging this pull request may close these issues.

8 participants