Internals of Combine-Split-Unit

This document describes the structure and execution of Combine-Split-Unit, implemented as combineCol function and splitCol function.

Combine Unit Structure Split Unit Structure

The Combine Unit primitive is used to combine two or more streams into one wider stream. And the Split Unit is used to split one big stream into several thinner streams. Due to different numbers of input streams of combineUnit / output streams of spiltUnit. Four versions of combine/split unit are provided, including:

  • 2-stream-input combine unit
  • 3-stream-input combine unit
  • 4-stream-input combine unit
  • 5-stream-input combine unit
  • 2-stream-output split unit
  • 3-stream-output split unit
  • 4-stream-output split unit
  • 5-stream-output split unit

For the combine unit, the input streams are combined from left to right, with the corresponding inputs from stream1 to streamN. (aka. output stream = [input stream1, input stream2, …, input streamN]).

For the split unit, the output streams are split from right to left, with the corresponding inputs from stream1 to streamN. (aka. [output streamN, …, output stream2, output stream1] = input stream).

Caution

  • All input/output streams are ap_uint<> data type.
  • The maximum number of supported streams are 5 for both combine and split unit. When the input/output stream numbers are more than 5, the combination of 2 or more combine/split unit are required.