template class xf::data_analytics::common::internal::ss

#include "stream_local_processing.hpp"

Overview

Stream-Stream Processing.

Parameters:

MType Processing datatype.
D Stream number for vectors.
A Function pointer A.
B Function pointer B.
C Function pointer C.
Latency Latency of function B.
template <
    typename MType,
    int D,
    MType(*)(MType op1, MType op2) A,
    void(*)(MType &reg, MType op) B,
    MType(*)(MType op) C,
    int Latency
    >
class ss

Methods

process

process overload (1)

void process (
    hls::stream <MType> op1Strm [D],
    hls::stream <MType> op2Strm [D],
    hls::stream <MType>& retStrm,
    const ap_uint <32> rows,
    const ap_uint <32> cols
    )

Stream-Stream vector processing. Assume vector op1 comes from op1Strm, op2 from op2Strm. Result ret will go to reStrm. tmp_1[k] = A(op1[k], op2[k]); tmp_2 = B(…B(B(0, tmp[0]), tmp[1]) …, tmp[k]); ret = C(tmp2); One thing must be notice that function B should not be chosen arbitrarily. Current only support B(reg, o) := reg+=op.

Parameters:

op1Strm Streams that get op1.
op2Strm Streams that get op2.
retStrm Streams that send ret.
rows Number of op1/op2.
cols Dimension of op1/op2.

process overload (2)

void process (
    hls::stream <MType> op1Strm [D],
    hls::stream <MType> op2Strm [D],
    hls::stream <bool>& eOpStrm,
    hls::stream <MType>& retStrm,
    hls::stream <bool>& eRetStrm,
    const ap_uint <32> cols
    )

Stream-Stream vector processing. Assume vector op1 comes from op1Strm, op2 from op2Strm. Result ret will go to reStrm. tmp_1[k] = A(op1[k], op2[k]); tmp_2 = B(…B(B(0, tmp[0]), tmp[1]) …, tmp[k]); ret = C(tmp2); One thing must be notice that function B should not be chosen arbitrarily. Current only support B(reg, o) := reg+=op.

Parameters:

op1Strm Streams that get op1.
op2Strm Streams that get op2.
retStrm Streams that send ret.
rows Number of op1/op2.
cols Dimension of op1/op2.