H3 Class Hash
- ENTITY H3_HASH IS
Component for computing any hash function from universal H3 class. Universal hash functions have some interesting properties, for reference, check out this paper: https://www.cs.princeton.edu/courses/archive/fall09/cos521/Handouts/universalclasses.pdf. This component has default latency of 0 clock cycles, for larger inputs and outputs one can enable one pipeline stage and output register.
GenericsGeneric
Type
Default
Description
DATA_WIDTH
natural
256
Width of data, which will be hashed, currently supporting DATA_WIDTH <= 256
HASH_WIDTH
natural
64
Resulting hash width, currently supporting HASH_WIDTH <= 64
H3_TYPE
string
“AUTO”
Type of hash core, which will be used. Those are precomputed and stored in h3_pack.vhd. Names are defined like this: H3C_(input_width)x(output_width). Available values are:
“H3C_64x16”
“H3C_64x22”
“H3C_22x11”
“H3C_256x64”
“AUTO” - hash core will be selected automatically
PIPELINE
boolean
true
One pipeline stage will be inserted into H3 hash function, adding latency of 1 clock cycle.
OUT_REG
boolean
true
Add output register.
Port
Type
Mode
Description
CLK
std_logic
in
RESET
std_logic
in
DATA_IN
std_logic_vector(DATA_WIDTH - 1 downto 0)
in
Input data
DATA_IN_VLD
std_logic
in
DATA_IN_RDY
std_logic
out
DATA_OUT
std_logic_vector(HASH_WIDTH - 1 downto 0)
out
Output hash
DATA_OUT_VLD
std_logic
out
DATA_OUT_RDY
std_logic
in