streamOneToN overload (6) - 2023.1 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.1 English
#include "xf_utils_hw/stream_one_to_n/tag_select.hpp"
template <
    typename _TIn,
    int _WTagStrm
    >
void streamOneToN (
    hls::stream <_TIn>& data_istrm,
    hls::stream <bool>& e_data_istrm,
    hls::stream <ap_uint <_WTagStrm>>& tag_istrm,
    hls::stream <bool>& e_tag_istrm,
    hls::stream <_TIn> 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:

_TIn the type of input & output 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 of tag stream.
data_ostrms the output stream.
e_data_ostrms the end signals of data_ostrms.
alg algorithm selector.