cocotb_benches.dau_key_mask_dispatcher_hash_tb

MODE == DispatchMode.HASH: dest = the top log2(N) bits of the low 32 bits of key * 0x9E3779B9. The multiplier and bit-extraction are contract — a row’s partition is part of the answer — so this bench proves the HDL computes the identical partition the golden does, key for key, including the strided keys MASK mode crowds onto a fraction of the lanes.

Runner passes parameters={“MODE”: 2, “NUM_PARTITIONS”: 4} at either IN_WIDTH; the width is detected from the dut so one module covers both fronts.

Attributes

_STRIDED_ROWS

_MIXED_ROWS

Functions

_wide(dut) → bool

_send(dut, rows) → None

_run(dut, rows, *[, ready_pattern])

hash_dispatch_matches_the_golden_partition_for_partition(dut)

hash_dispatch_spreads_strided_keys(dut)

The motivating case: MASK crowds strided keys onto a fraction of

hash_dispatch_drops_nothing(dut)

hash_dispatch_keeps_a_key_on_one_lane_in_order(dut)

hash_dispatch_backpressure_holds_rows_stable(dut)

hash_dispatch_repeated_batches_back_to_back(dut)

Module Contents

cocotb_benches.dau_key_mask_dispatcher_hash_tb._STRIDED_ROWS
cocotb_benches.dau_key_mask_dispatcher_hash_tb._MIXED_ROWS
cocotb_benches.dau_key_mask_dispatcher_hash_tb._wide(dut) → bool
async cocotb_benches.dau_key_mask_dispatcher_hash_tb._send(dut, rows) → None
async cocotb_benches.dau_key_mask_dispatcher_hash_tb._run(dut, rows, *, ready_pattern=(1,))
async cocotb_benches.dau_key_mask_dispatcher_hash_tb.hash_dispatch_matches_the_golden_partition_for_partition(dut)
async cocotb_benches.dau_key_mask_dispatcher_hash_tb.hash_dispatch_spreads_strided_keys(dut)

The motivating case: MASK crowds strided keys onto a fraction of the lanes; HASH mixes the whole key and reaches more of them.

async cocotb_benches.dau_key_mask_dispatcher_hash_tb.hash_dispatch_drops_nothing(dut)
async cocotb_benches.dau_key_mask_dispatcher_hash_tb.hash_dispatch_keeps_a_key_on_one_lane_in_order(dut)
async cocotb_benches.dau_key_mask_dispatcher_hash_tb.hash_dispatch_backpressure_holds_rows_stable(dut)
async cocotb_benches.dau_key_mask_dispatcher_hash_tb.hash_dispatch_repeated_batches_back_to_back(dut)