cocotb_benches.dau_key_mask_dispatcher_tb

Attributes

ERR_STREAM

_MASK32

_MASK64

_ROWS

Functions

sustained_ingest_meets_registry_floor(dut)

dispatch_routes_rows_by_key_mask(dut)

negative_keys_mask_two_complement(dut)

all_rows_to_one_partition(dut)

torn_row_errors_every_lane(dut)

backpressure_holds_rows_stable(dut)

repeated_batches_back_to_back(dut)

constrained_random_batches_match_golden(dut)

_num_parts(dut) → int

_signed32(value) → int

_random_rows(rng) → list[tuple[int, int, int, int]]

_start(dut) → None

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

_send_rows(dut, rows) → None

_drive_torn_first_row(dut) → None

_drive_and_collect(dut, golden, ready_pattern)

Drive all partition output/status streams and reassemble per-partition

_assert_quiescent(dut, num_parts) → None

_collect_all_status(dut, *[, only])

_unpack_rows(words) → list[tuple[int, int, int, int]]

Module Contents

cocotb_benches.dau_key_mask_dispatcher_tb.ERR_STREAM = 2
async cocotb_benches.dau_key_mask_dispatcher_tb.sustained_ingest_meets_registry_floor(dut)
cocotb_benches.dau_key_mask_dispatcher_tb._MASK32 = 4294967295
cocotb_benches.dau_key_mask_dispatcher_tb._MASK64 = 18446744073709551615
cocotb_benches.dau_key_mask_dispatcher_tb._ROWS
async cocotb_benches.dau_key_mask_dispatcher_tb.dispatch_routes_rows_by_key_mask(dut)
async cocotb_benches.dau_key_mask_dispatcher_tb.negative_keys_mask_two_complement(dut)
async cocotb_benches.dau_key_mask_dispatcher_tb.all_rows_to_one_partition(dut)
async cocotb_benches.dau_key_mask_dispatcher_tb.torn_row_errors_every_lane(dut)
async cocotb_benches.dau_key_mask_dispatcher_tb.backpressure_holds_rows_stable(dut)
async cocotb_benches.dau_key_mask_dispatcher_tb.repeated_batches_back_to_back(dut)
async cocotb_benches.dau_key_mask_dispatcher_tb.constrained_random_batches_match_golden(dut)
cocotb_benches.dau_key_mask_dispatcher_tb._num_parts(dut) → int
cocotb_benches.dau_key_mask_dispatcher_tb._signed32(value: int) → int
cocotb_benches.dau_key_mask_dispatcher_tb._random_rows(rng: random.Random) → list[tuple[int, int, int, int]]
async cocotb_benches.dau_key_mask_dispatcher_tb._start(dut) → None
async cocotb_benches.dau_key_mask_dispatcher_tb._run(dut, rows, *, ready_pattern=(1,))
async cocotb_benches.dau_key_mask_dispatcher_tb._send_rows(dut, rows) → None
async cocotb_benches.dau_key_mask_dispatcher_tb._drive_torn_first_row(dut) → None
async cocotb_benches.dau_key_mask_dispatcher_tb._drive_and_collect(dut, golden, ready_pattern)

Drive all partition output/status streams and reassemble per-partition rows (phase-shifted ready per lane so lanes stall out of step). A lane expecting rows completes on its last word; a zero-row lane on its success status. Afterwards the streams must fall quiescent.

async cocotb_benches.dau_key_mask_dispatcher_tb._assert_quiescent(dut, num_parts: int) → None
async cocotb_benches.dau_key_mask_dispatcher_tb._collect_all_status(dut, *, only: set[int] | None = None)
cocotb_benches.dau_key_mask_dispatcher_tb._unpack_rows(words: list[int]) → list[tuple[int, int, int, int]]