-
Notifications
You must be signed in to change notification settings - Fork 271
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: Change default master port setting from input to parameter #170
Comments
@WRoenninger: What do you think? |
Yes, as you mentioned, the intend was to have the default ports runtime configurable. However I have not seen this feature being used dynamically yet and see the overhead that arises when trying to use it. I am fine with changing it to a parameter. However this should probably be done after #157 as there is the whole config struct replacement going on. Also this ties in with an issue I see with the typedef struct packed {
int unsigned idx;
addr_t start_addr;
addr_t end_addr;
} rule_t; The main issue that can happen with this struct definition is that some tools do not like the typedef struct packed {
logic [31:0] idx;
logic [31:0] start_addr;
logic [31:0] end_addr;
} xbar_rule_32_t; This struct definition change should not have any influence on the behavior of |
Okay, I agree.
Yes, makes sense to me. |
Currently, the default master port feature of
axi_xbar
is set by the input signalsen_default_mst_port_i
anddefault_mst_port_i
instead of byparameter
s.The advantage of using input signals is that the default master port can be activated/deactivated and changed at run time. However, this may only happen when there is no unserved Ax beat. There are assertions that check that, but this restriction is not enforced in the synthesized logic. (Although it would be possible to enforce it in the synthesized logic at the expense of a few extra registers). Additionally, it is questionable whether changing the default port at run time has a real use case and therefore is a relevant feature.
The advantage of using
parameter
s would be that the activation of a default master port allows to omit the instantiation of the internal error slave, which also reduces the number of master ports on each of the internal demultiplexers by one. Additionally, for a crossbar with a single master port, this would allow to entirely omit the demultiplexer at each slave port. This is especially relevant in networks with high ID widths, where demultiplexers are very expensive.The text was updated successfully, but these errors were encountered: