axi
axi copied to clipboard
Expose `AxiLookBits` as a parameter in `axi_burst_splitter`
The module axi_burst_splitter instantiates an axi_demux and sets its AxiLookBits to the full ID width of the bus:
axi_demux #(
.AxiIdWidth ( IdWidth ),
.aw_chan_t ( aw_chan_t ),
.w_chan_t ( w_chan_t ),
.b_chan_t ( b_chan_t ),
.ar_chan_t ( ar_chan_t ),
.r_chan_t ( r_chan_t ),
.axi_req_t ( axi_req_t ),
.axi_resp_t ( axi_resp_t ),
.NoMstPorts ( 2 ),
.MaxTrans ( MaxTxns ),
.AxiLookBits ( IdWidth ), // !!!!
.SpillAw ( 1'b0 ),
.SpillW ( 1'b0 ),
.SpillB ( 1'b0 ),
.SpillAr ( 1'b0 ),
.SpillR ( 1'b0 )
This makes the module unusable with AXI buses that have a large ID width, since the logic on axi_demux_simple
(instantiated by axi_demux) explodes due to this parameter:
localparam int unsigned NoCounters = 2**AxiIdBits;
(AxiIdBits is set to AxiLookBits)
Could you expose AxiLookBits as a parameter of axi_burst_splitter? (and other modules that depend on it, e.g. axi_to_axi_lite)
I think this is a good idea, happy to review a PR with this change!