#include "xf_database/dynamic_filter.hpp"
template < int W, int WP > void dynamicFilter ( hls::stream <ap_uint <32>>& filter_cfg_strm, hls::stream <ap_uint <W>>& v0_strm, hls::stream <ap_uint <W>>& v1_strm, hls::stream <ap_uint <W>>& v2_strm, hls::stream <ap_uint <W>>& v3_strm, hls::stream <ap_uint <WP>>& pay_in_strm, hls::stream <bool>& e_in_strm, hls::stream <ap_uint <WP>>& pay_out_strm, hls::stream <bool>& e_pay_out_strm )
Filter payloads according to conditions set during run-time.
This primitive, with its 3 overloads, supports filtering rows using up to four columns as conditions. The payload columns should be grouped together into this primitive, using combineCol
primitive, and its total width is not explicitly limited (but naturally bound by resources).
The filter conditions consists of whether each of the conditions is within a given range, and relations between any two conditions. The configuration is set once before processing the rows, and reused until the last row. For configuration generation, please refer to the “Design Internals” Section of the document and corresponding test case of this primitive.
Parameters:
W | width of all condition column streams, in bits. |
WP | width of payload column, in bits. |
filter_cfg_strm | stream of raw config bits for this primitive. |
v0_strm | condition column stream 0. |
v1_strm | condition column stream 1. |
v2_strm | condition column stream 2. |
v3_strm | condition column stream 3. |
pay_in_strm | payload input stream. |
e_in_strm | end flag stream for input table. |
pay_out_strm | payload output stream. |
e_pay_out_strm | end flag stream for payload output. |