Refactor HyperBus into asynchronous, isochronous, and synchronous variants#36
Open
phsauter wants to merge 11 commits into
Open
Refactor HyperBus into asynchronous, isochronous, and synchronous variants#36phsauter wants to merge 11 commits into
phsauter wants to merge 11 commits into
Conversation
phsauter
marked this pull request as draft
July 21, 2026 09:33
phsauter
force-pushed
the
phsauter/top-split-peakrdl
branch
2 times, most recently
from
July 21, 2026 13:31
5b25d4e to
5be71ca
Compare
phsauter
marked this pull request as ready for review
July 21, 2026 14:24
phsauter
force-pushed
the
phsauter/top-split-peakrdl
branch
from
July 22, 2026 14:03
a4a5789 to
3f6b94c
Compare
Introduce asynchronous, isochronous, and synchronous top levels around a shared backend architecture. Extend the regression wrapper so each clocking arrangement is exercised.
Separate protocol-facing configuration, midend request processing, clock-domain bridges, and backend control. Add explicit drain/apply sequencing and harden segmented transaction handling.
Use reusable host and HyperBus stream structures across the midend and bridges. Isolate atomic read-modify-write sequencing and replace the legacy PHY adapters with explicit read and write adapters.
Group PHY-specific RTL under the backend, place transmit delay generation beside the PHY, and use one configurable clock-generation path for all top-level variants. Convert parameter and protocol checks to common_cells assertion macros.
Remove redundant host and isochronous buffering, adopt common_cells stream and address-decode primitives, and clarify request, atomic, configuration, and adapter control flow.
Add focused atomic-handler verification and exercise host buffering, sticky atomic errors, isochronous divider backpressure, transfer segmentation, topology variants, and maximum-burst throughput.
phsauter
force-pushed
the
phsauter/top-split-peakrdl
branch
from
July 23, 2026 15:52
3f6b94c to
f5307bd
Compare
This file contains hidden or 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
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.
Requires #34
This PR replaces the former monolithic HyperBus top with three clocking variants and restructures the controller into explicit
frontend,midend,bridge, andbackendstages. It also expands testing, hardens configuration updates, transaction segmentation, error handling, and atomic operation sequencing.Clocking variants
hyperbus_asynchronous, which uses independent system and PHY clocks, explicit CDCs, and PHY-domain reset synchronization.hyperbus_isochronous, which derives the PHY clock from the system clock using an integer divider and the 90-degree shift from the TX delay line.hyperbus_synchronous, which uses one shared clock and a TX delay line to generate the required 90-degree phase shift.Architecture and interfaces
AXI frontend -> midend -> bridge -> backendpipeline.phy_iflayer and rename the remaining data conversion blocks to read and write adapters.src/backend/.Configuration and transaction control
Verification