Skip to content

Expose AxiLookBits in axi_burst_splitter to avoid logic explosion - #436

Open
briann-bui wants to merge 3 commits into
pulp-platform:develfrom
briann-bui:fix/issue-341-axi-look-bits
Open

Expose AxiLookBits in axi_burst_splitter to avoid logic explosion#436
briann-bui wants to merge 3 commits into
pulp-platform:develfrom
briann-bui:fix/issue-341-axi-look-bits

Conversation

@briann-bui

Copy link
Copy Markdown

Fixes #341.

This PR exposes the AxiLookBits parameter in axi_burst_splitter (and cascades it through to axi_burst_splitter_gran and axi_to_axi_lite).

Previously, the internal demux always instantiated with AxiLookBits hardcoded to the full IdWidth, which caused a massive logic explosion (counter array size of 2**IdWidth) when dealing with large AXI IDs. By exposing this parameter (defaulting to IdWidth for backwards compatibility), users can now override it appropriately.

@imchenwu
imchenwu changed the base branch from master to devel July 24, 2026 14:48

@imchenwu imchenwu left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, thnaks for working on it :).

  1. axi_burst_unwrap instantiates its internal demux with the same hardcoded .AxiLookBits(IdWidth) and should also expose this parameter, otherwise it has the same issue.
  2. When exposing the new parameter, please add a one-line comment explaining its usage and the implicit constraint (AxiLookBits <= AxiIdWidth). You can simply point to the existing documentation in doc/axi_demux.md.
  3. It would be good to add a parameter check in the end of axi_burst_splitter_gran, e.g.
    assume (AxiLookBits > 0 && AxiLookBits <= IdWidth) else
      $fatal(1, "AxiLookBits (%0d) must be in ]0, IdWidth (%0d)]!", AxiLookBits, IdWidth);

also add the corresponding check in axi_to_axi_lite module.

@briann-bui

Copy link
Copy Markdown
Author

Hi @imchenwu, I've pushed a new commit to address all 3 of your requested changes. Could you please take another look when you have a moment? Thanks!

Comment thread src/axi_burst_splitter.sv
Comment thread src/axi_burst_splitter_gran.sv
Comment thread src/axi_burst_unwrap.sv Outdated
Comment thread src/axi_to_axi_lite.sv
Comment thread src/axi_to_axi_lite.sv
Comment thread src/axi_burst_splitter_gran.sv Outdated
@briann-bui

Copy link
Copy Markdown
Author

@imchenwu, I have addressed all six review threads in commit 4089aac5:

  • added the requested AxiLookBits/AXI_LOOK_BITS parameter documentation;
  • moved the AxiLookBits parameter check from axi_burst_splitter_gran_counters into axi_burst_splitter_gran;
  • verified the complete synthesis source set and axi_synth_bench compile successfully with Bender 0.30.0 and VCS X-2025.06.

All conversations are resolved. Could you please review again when convenient? Thanks!

@imchenwu
imchenwu force-pushed the fix/issue-341-axi-look-bits branch from 4089aac to f7cae9d Compare July 28, 2026 14:15
@briann-bui

Copy link
Copy Markdown
Author

Hi @imchenwu, thanks for approving this PR. Is there anything else needed before it can be merged?

@imchenwu

Copy link
Copy Markdown
Collaborator

Hi @briann-bui this PR changes the ports and downstream calling modules will require an update, so I would merge it in the next major release, together with the official release of common_cells v2.

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.

Expose AxiLookBits as a parameter in axi_burst_splitter

2 participants