dynamicFilter overload (1) - 2023.2 English

Vitis Libraries

Release Date
2023.2 English
#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.


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.