-
Notifications
You must be signed in to change notification settings - Fork 326
AXI_XBAR pipeline #116
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
Conversation
andreaskurth
left a comment
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_demuximplementation which has the benefit that the crossing AXI busses inside ofaxi_xbarcan now be pipelined.The issue was that the
axi_demuxcould 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_muxthis 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 parameterPipelineStagestoaxi_pkg::xbar_cfg_t. This addsaxi_multicutsin the crossed connections in the xbar between the demuxes and muxes.
axi_pkg: Add documentation toxbar_cfg_t.