cocotb_benches.dau_range_partitioner_tb¶
Attributes¶
Functions¶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Drive all partition output/status streams and reassemble per-partition |
|
After a batch completes, nothing more may appear on any output or status |
|
|
|
Wait for a status beat from every (or |
|
Module Contents¶
- cocotb_benches.dau_range_partitioner_tb.ERR_STREAM = 2¶
- cocotb_benches.dau_range_partitioner_tb._MASK32 = 4294967295¶
- cocotb_benches.dau_range_partitioner_tb._MASK64 = 18446744073709551615¶
- cocotb_benches.dau_range_partitioner_tb._INT32_MIN = -2147483648¶
- cocotb_benches.dau_range_partitioner_tb._INT32_MAX = 2147483647¶
- cocotb_benches.dau_range_partitioner_tb._ROWS¶
- cocotb_benches.dau_range_partitioner_tb._SPLITTERS = [10, 20, 30]¶
- async cocotb_benches.dau_range_partitioner_tb.partition_routes_rows_by_range(dut)¶
- async cocotb_benches.dau_range_partitioner_tb.boundary_key_lands_in_upper_partition(dut)¶
- async cocotb_benches.dau_range_partitioner_tb.all_rows_to_one_partition(dut)¶
- async cocotb_benches.dau_range_partitioner_tb.negative_keys_partition_signed(dut)¶
- async cocotb_benches.dau_range_partitioner_tb.last_lands_on_each_partitions_final_row(dut)¶
- async cocotb_benches.dau_range_partitioner_tb.int32_extreme_keys_partition_signed(dut)¶
- async cocotb_benches.dau_range_partitioner_tb.backpressure_on_every_stream(dut)¶
- async cocotb_benches.dau_range_partitioner_tb.torn_row_status_survives_backpressure(dut)¶
- async cocotb_benches.dau_range_partitioner_tb.status_backpressure_stalls_the_front(dut)¶
- async cocotb_benches.dau_range_partitioner_tb.constrained_random_streams_match_golden(dut)¶
- cocotb_benches.dau_range_partitioner_tb._num_parts(dut) int¶
- cocotb_benches.dau_range_partitioner_tb._default_splitters(dut) list[int]¶
- cocotb_benches.dau_range_partitioner_tb._spread_splitters(lo: int, hi: int, count: int) list[int]¶
- cocotb_benches.dau_range_partitioner_tb._signed32(value: int) int¶
- cocotb_benches.dau_range_partitioner_tb._random_monotonic_splitters(rng: random.Random, count: int) list[int]¶
- cocotb_benches.dau_range_partitioner_tb._random_rows(rng: random.Random) list[tuple[int, int, int, int]]¶
- cocotb_benches.dau_range_partitioner_tb._set_splitters(dut, splitters: list[int]) None¶
- async cocotb_benches.dau_range_partitioner_tb._start(dut) None¶
- async cocotb_benches.dau_range_partitioner_tb._run(dut, rows, splitters, *, ready_pattern=(1,))¶
- async cocotb_benches.dau_range_partitioner_tb._send_rows(dut, rows) None¶
- async cocotb_benches.dau_range_partitioner_tb._drive_torn_first_row(dut) None¶
- async cocotb_benches.dau_range_partitioner_tb._drive_and_collect(dut, golden, ready_pattern)¶
Drive all partition output/status streams and reassemble per-partition rows. Each active partition gets an independent (phase-shifted) ready pattern so lanes stall out of step. A partition that expects rows completes on its last word; a partition that expects zero rows completes on its success status. After completion the streams must fall quiescent.
- async cocotb_benches.dau_range_partitioner_tb._assert_quiescent(dut, num_parts: int) None¶
After a batch completes, nothing more may appear on any output or status stream even with every ready held high (no trailing/duplicated beats).
- async cocotb_benches.dau_range_partitioner_tb._drain_partition_output(dut, partition: int) None¶
- async cocotb_benches.dau_range_partitioner_tb._collect_all_status(dut, *, only: set[int] | None = None)¶
Wait for a status beat from every (or
only) partition; return (error, code) per partition (None for partitions not collected).
- cocotb_benches.dau_range_partitioner_tb._unpack_rows(words: list[int]) list[tuple[int, int, int, int]]¶