hashPartition - 2023.2 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.2 English
#include "xf_database/hash_partition.hpp"
template <
    int HASH_MODE,
    int KEYW,
    int PW,
    int EW,
    int HASHWH,
    int HASHWL,
    int ARW,
    int CH_NM,
    int COL_NM
    >
void hashPartition (
    bool mk_on,
    int depth,
    hls::stream <int>& bit_num_strm,
    hls::stream <ap_uint <KEYW>> k0_strm_arry [CH_NM],
    hls::stream <ap_uint <PW>> p0_strm_arry [CH_NM],
    hls::stream <bool> e0_strm_arry [CH_NM],
    hls::stream <ap_uint <16>>& o_bkpu_num_strm,
    hls::stream <ap_uint <10>>& o_nm_strm,
    hls::stream <ap_uint <EW>> o_kpld_strm [COL_NM]
    )

Hash-Partition primitive.

Parameters:

HASH_MODE 0 for radix and 1 for Jenkin’s Lookup3 hash.
KEYW width of key, in bit.
PW width of max payload, in bit.
EW element data width of input table, in bit.
HASHWH number of hash bits used for PU selection.
HASHWL number of hash bits used for partition selection.
ARW width of address for URAM
CH_NM number of input channels, 1,2,4.
COL_NM number of input columns, 1~8.
mk_on input of double key flag, 0 for off, 1 for on.
depth input of depth of each hash bucket in URAM.
bit_num_strm input of partition number, log2(number of partition).
k0_strm_arry input of key columns of both tables.
p0_strm_arry input of payload columns of both tables.
e0_strm_arry input of end signal of both tables.
o_bkpu_num_strm output of index for bucket and PU
o_nm_strm output of row number each time
o_kpld_strm output of key+payload