#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.
Parameters:
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. |