-
Notifications
You must be signed in to change notification settings - Fork 276
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
AXI_XBAR pipeline #116
AXI_XBAR pipeline #116
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this important change, @WRoenninger!
I have one major question on the counter and a few minor comments.
Edit: This was reverted to keep compatibility for existing code for now. |
fb2f523
to
fed9392
Compare
Rebased onto current master, also changed around the Bender dependencies to match current tags. |
fed9392
to
628888c
Compare
Rebased onto current master for ci fix by #129. |
628888c
to
bd288d2
Compare
bd288d2
to
c02cbff
Compare
@accuminium There seems to be an issue with the build and deploy ci, where there is some lock failure between the (push) and (pull_request) scripts. |
Thanks, I also noticed that. In a PR, each of the CI jobs should actually only run once (triggered by the |
Replaced by #268. Closed. |
This adds a change to the
axi_demux
implementation which has the benefit that the crossing AXI busses inside ofaxi_xbar
can now be pipelined.The issue was that the
axi_demux
could forward multiple AWs to different master ports of the module. This then has the effect, that Ws are forwarded in the same sequence. However combined with anaxi_mux
this could lead to deadlocks, if the AWs where stalled for example due to pipelining.This PR fixes this issue by preventing AWs to be forwared to a different master port as long as there are still Ws in flight to another.
Changelog:
tb_axi_xbar
: Add parameters, make more configurable for ci.axi_demux
: Remove FIFO between AW and W channel, is now a register plus counter.Prevents AWs to be emmitted downstream to a different master port as long as Ws
are still in flight to another. This prevents deadlock, if there is stalling
downstream.
axi_xbar
: Add parameterPipelineStages
toaxi_pkg::xbar_cfg_t
. This addsaxi_multicuts
in the crossed connections in the xbar between the demuxes and muxes.
axi_pkg
: Add documentation toxbar_cfg_t
.