Skip to content

[rtl] Add the 2x2 AXI-Stream switch - #7

Merged
drewbabel merged 6 commits into
mainfrom
axis-switch
Aug 1, 2026
Merged

[rtl] Add the 2x2 AXI-Stream switch#7
drewbabel merged 6 commits into
mainfrom
axis-switch

Conversation

@drewbabel

@drewbabel drewbabel commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Adds a 2x2 AXI-Stream switch that routes each packet on its tdest field, arbitrating per packet so beats from two sources never interleave on one output. Each output owns a round-robin arbiter and a skid buffer, and the input side asserts tready only when its granted output will take the beat that cycle. The testbench runs both sources against random destinations, forced contention on a single output, and random backpressure, checking per-flow data and tlast order, packet atomicity at each output, and output handshake stability.

The proof covers AXI-Stream compliance on all four ports, routing and mux correctness, packet atomicity, symbolic end-to-end beat delivery over a solver-chosen source, destination, and beat index, and a bounded wait per output under fair source and sink assumptions. Child instances are read as plain RTL so their own assume statements cannot constrain the switch and rig the result. Every formal task now gets its own CI job.

@drewbabel
drewbabel merged commit 96b440a into main Aug 1, 2026
34 checks passed
@drewbabel
drewbabel deleted the axis-switch branch August 1, 2026 02:17
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.

1 participant