Skip to content

Conversation

@FrancescoConti
Copy link
Member

This pull request introduces support for asymmetric stream data widths and improves parameterization and flexibility across several HWPE-Stream modules. The main changes include the addition of a new module for handling asymmetric stream fencing, updates to existing modules to generalize element widths, and the introduction of a new address generator version. These changes enhance the configurability and capability of the HWPE-Stream infrastructure.

New module and interface enhancements:

  • Added new hwpe_stream_fence_asymmetric module to support synchronization between streams of different data widths, facilitating the joining of asymmetric streams. (rtl/basic/hwpe_stream_fence_asymmetric.sv, Bender.yml) [1] [2]
  • Updated hwpe_stream_intf_tcdm and hwpe_stream_intf_stream interfaces to include ELEMENT_WIDTH and to generalize STRB_WIDTH calculation, allowing support for arbitrary data and element widths. (rtl/hwpe_stream_interfaces.sv) [1] [2] [3]

Module parameterization and flexibility:

  • Modified hwpe_stream_serialize and hwpe_stream_fifo modules to use ELEMENT_WIDTH for calculating strobe widths, improving support for streams with non-byte-sized elements, and added new operational modes and logic for stream/contiguous element handling. (rtl/basic/hwpe_stream_serialize.sv, rtl/fifo/hwpe_stream_fifo.sv) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]

Address generator improvements:

  • Added a new hwpe_stream_addressgen_v4 module and corresponding control and flag structs to support more advanced address generation patterns. (Bender.yml, rtl/hwpe_stream_package.sv) [1] [2] [3]

These updates collectively make the HWPE-Stream platform more adaptable to a wider range of data widths and memory access patterns, improving its utility for heterogeneous and high-performance streaming applications.

arpansur added 5 commits July 31, 2025 10:33
…e widths are different

Second, this fence could be bypassed. this is used in conjuction with weight and normalization streams.
In the last tile the streams are fenced otherwise it is bypassed allowing only weight to propagate
…the mode !=0 is used. Otherwise mode=0 is used for the default previous existing mode.
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.

3 participants