bfGenStream - 2023.2 English

Vitis Libraries

Release Date
2023.2 English
#include "xf_database/bloom_filter.hpp"
template <
    bool IS_BRAM,
    int STR_IN_W,
    int BV_W
void bfGenStream (
    hls::stream <ap_uint <STR_IN_W>>& msg_strm,
    hls::stream <bool>& in_e_strm,
    hls::stream <ap_uint <IS_BRAM?16:64>>& bit_vet_strm,
    hls::stream <bool>& out_e_strm

Generate the bloomfilter in on-chip RAM blocks, and emit the vectors upon finish.

This primitive calculates hash values of input, and marks corresponding bits in the on-chip RAM blocks. RAM blocks can be configured to be 18-bit BRAM or 72-bit URAM.

The bloom-filter bit vectors are built into internally allocated buffers, and streamed out after the filter has been fully built.


IS_BRAM choose which types of memory to use. True for BRAM. False for URAM
STR_IN_W W width of the streamed input message, e.g., W=512.
BV_W width of the hash value. bit_vet_strm should send out MEM_SPACE=2^BV_W (bit) data in total.
msg_strm input message stream.
in_e_strm the flag that indicate the end of input message stream.
bit_vet_strm the output stream of bit_vector.
out_e_strm the flag that indicate the end of output stream.