streamOneToN overload (5) - 2024.2 English

Vitis Libraries

Release Date
2024-11-29
Version
2024.2 English
#include "xf_utils_hw/stream_one_to_n/tag_select.hpp"
template <
    int _WInStrm,
    int _WTagStrm
    >
void streamOneToN (
    hls::stream <ap_uint <_WInStrm>>& data_istrm,
    hls::stream <bool>& e_data_istrm,
    hls::stream <ap_uint <_WTagStrm>>& tag_istrm,
    hls::stream <bool>& e_tag_istrm,
    hls::stream <ap_uint <_WInStrm>> data_ostrms [PowerOf2< _WTagStrm >::value],
    hls::stream <bool> e_data_ostrms [PowerOf2< _WTagStrm >::value],
    TagSelectT alg
    )

This function send element from one stream to multiple streams based on tags.

In this primitive, the tag is the index of ouput streams. The input data in data_istrms is distributed to the data_ostrm whose index is tag. Each tag is the index of output streams, and data_istrm and tag_istrm are synchronous.

Parameters:

_WInStrm the width of input data
_WTagStrm the width of tag, pow(2, _WTagStrm) is the number of ouput streams.
data_istrm the input stream.
e_data_istrm the end signal of input stream.
tag_istrm the tag stream.
e_tag_istrm the end signal stream of tags.
data_ostrms the output stream.
e_data_ostrms the end signals of data_ostrms.
alg algorithm selector