#include "xf_database/scan_col_2.hpp"
template < int burst_len, int vec_len, int ch_nm, int size0, int size1, int size2, int size3, int size4 > static void scanCol ( ap_uint <8*size0*vec_len>* c0vec_ptr, ap_uint <8*size1*vec_len>* c1vec_ptr, ap_uint <8*size2*vec_len>* c2vec_ptr, ap_uint <8*size3*vec_len>* c3vec_ptr, ap_uint <8*size4*vec_len>* c4vec_ptr, hls::stream <ap_uint <8*size0>> c0_strm [ch_nm], hls::stream <ap_uint <8*size1>> c1_strm [ch_nm], hls::stream <ap_uint <8*size2>> c2_strm [ch_nm], hls::stream <ap_uint <8*size3>> c3_strm [ch_nm], hls::stream <ap_uint <8*size4>> c4_strm [ch_nm], hls::stream <bool> e_row_strm [ch_nm] )
scan 5 columns from DDR/HBM buffers.
The LSB of first vector of first column specifies the number of rows to be scanned. For a following buffer, if the first vector is zero, same number of zeros will be emitted, otherwise, same number of rows will be read from the buffer.
Parameters:
burst_len | burst read length, must be supported by MC. |
vec_len | scan this number of items as a vector from AXI port. |
ch_nm | number of concurrent output channels per column. |
size0 | size of column 0, in byte. |
size1 | size of column 1, in byte. |
size2 | size of column 2, in byte. |
size3 | size of column 3, in byte. |
size4 | size of column 4, in byte. |
c0vec_ptr | buffer pointer to column 0. |
c1vec_ptr | buffer pointer to column 1. |
c2vec_ptr | buffer pointer to column 2. |
c3vec_ptr | buffer pointer to column 3. |
c4vec_ptr | buffer pointer to column 4. |
c0_strm | array of column 0 stream. |
c1_strm | array of column 1 stream. |
c2_strm | array of column 2 stream. |
c3_strm | array of column 3 stream. |
c4_strm | array of column 4 stream. |
e_row_strm | array of output end flag stream. |