streamNToOne overload (6) - 2024.2 English

Vitis Libraries

Release Date
2024-11-29
Version
2024.2 English
#include "xf_utils_hw/stream_n_to_one/tag_select.hpp"
template <
    typename _TIn,
    int _WTagStrm
    >
void streamNToOne (
    hls::stream <_TIn> data_istrms [PowerOf2< _WTagStrm >::value],
    hls::stream <bool> e_data_istrms [PowerOf2< _WTagStrm >::value],
    hls::stream <ap_uint <_WTagStrm>>& tag_istrm,
    hls::stream <bool>& e_tag_istrm,
    hls::stream <_TIn>& data_ostrm,
    hls::stream <bool>& e_data_ostrm,
    TagSelectT alg
    )

This function selects from input streams based on tags.

In this primitive, each tag decides the source of the output. It is assumed that input element has a corresponding channel-selection tag. The output data in data_ostrms only contains the input data .

Parameters:

_TIn the type of input data
_WTagStrm the width of tag, pow(2, _WTagStrm) is the number of input streams.
data_istrms the input streams
e_data_istrms the end flag of input streams
tag_istrm the tag stream, streams and data_istrm and tag_istrm are synchronous.
e_tag_istrm the end signal stream, true if data_istrms and tag_istrm are ended.
data_ostrm the output stream.
e_data_ostrm the end signals of data_ostrm.
alg algorithm selector