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 ®, 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. |