Skip to content

Conversation

@teqdruid
Copy link
Contributor

@teqdruid teqdruid commented Nov 6, 2025

Introduces a half-throughput channel demux. Use it in the ChannelMMIO implementation. Half-thoughput is acceptable since it only supports one message at a time anyway.

This was necessary to support even simple internal applications since they weren't anywhere close to meeting timing. Doubtless there'll be more timing enhancements coming down the pike.

Introduces a half-throughput channel demux. Use it in the ChannelMMIO
implementation. Half-thoughput is acceptable since it only supports one
message at a time anyway.

This was necessary to support even simple internal applications since
they weren't anywhere close to meeting timing. Doubtless there'll be
more timing enhancements coming down the pike.
@teqdruid teqdruid requested a review from Copilot November 6, 2025 23:49
@teqdruid teqdruid added the ESI label Nov 6, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds a new pipelined tree-structured channel demultiplexer implementation to improve scalability for large numbers of outputs in the MMIO subsystem. The new implementation uses half-stage buffering with ready-blocking semantics to reduce area and fanout pressure.

  • Adds two new demultiplexer module generators: ChannelDemuxN_HalfStage_ReadyBlocking (N-way leaf demux) and ChannelDemuxTree_HalfStage_ReadyBlocking (tree-structured demux)
  • Replaces the existing esi.ChannelDemux with the new tree demux in the ChannelMMIO.build_read method
  • The new implementation embeds selection signals into the channel payload as structured data

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@teqdruid
Copy link
Contributor Author

teqdruid commented Nov 7, 2025

Merging without review so as to build the new pycde package.

@teqdruid teqdruid merged commit 66351e8 into main Nov 7, 2025
7 checks passed
@teqdruid teqdruid deleted the teqdruid/bsp-common-enhancements branch November 7, 2025 01:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants