cocotb_benches.dau_grouped_field_sum_aggregation_tb

Attributes

_MASK32

_MASK64

_INT32_MIN

_INT32_MAX

_ROWS

_Q1_MASK

Functions

sustained_ingest_meets_registry_floor(dut)

_record_words(rows, field_mask) → list[int]

q1_mask_emits_one_record_per_group(dut)

full_mask_walks_every_field(dut)

sparse_masks_emit_ascending_field_order(dut)

single_group_batch_closes_at_input_end(dut)

every_row_its_own_group(dut)

zero_valued_fields_sum_to_zero_per_group(dut)

reappearing_key_opens_a_new_group(dut)

negative_keys_and_sums_are_twos_complement(dut)

int32_extreme_sums_accumulate_int64(dut)

group_count_reports_groups_of_last_batch(dut)

repeated_batches_relatch_the_mask(dut)

backpressure_on_the_record_drain(dut)

group_boundary_under_backpressure_holds_input(dut)

zero_mask_drains_batch_then_reports_config_error(dut)

torn_row_reports_stream_error(dut)

torn_row_on_a_group_boundary_reports_stream_error(dut)

torn_row_after_emitted_group_records_invalidates_the_batch(dut)

error_status_survives_backpressure(dut)

success_status_survives_backpressure(dut)

constrained_random_batches_match_golden(dut)

_start(dut) → None

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

_pack_rows(rows) → list[int]

_send_words(dut, words) → None

_send_rows(dut, rows) → None

_collect_output(dut, ready_pattern, *, expect_words) → list[int]

_assert_quiescent(dut) → None

After the batch's record stream drains, nothing more may appear on

_expect_status(dut, *, error[, code]) → None

Module Contents

cocotb_benches.dau_grouped_field_sum_aggregation_tb._MASK32 = 4294967295
cocotb_benches.dau_grouped_field_sum_aggregation_tb._MASK64 = 18446744073709551615
cocotb_benches.dau_grouped_field_sum_aggregation_tb._INT32_MIN = -2147483648
cocotb_benches.dau_grouped_field_sum_aggregation_tb._INT32_MAX = 2147483647
cocotb_benches.dau_grouped_field_sum_aggregation_tb._ROWS
cocotb_benches.dau_grouped_field_sum_aggregation_tb._Q1_MASK = 10
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.sustained_ingest_meets_registry_floor(dut)
cocotb_benches.dau_grouped_field_sum_aggregation_tb._record_words(rows, field_mask: int) → list[int]
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.q1_mask_emits_one_record_per_group(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.full_mask_walks_every_field(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.sparse_masks_emit_ascending_field_order(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.single_group_batch_closes_at_input_end(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.every_row_its_own_group(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.zero_valued_fields_sum_to_zero_per_group(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.reappearing_key_opens_a_new_group(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.negative_keys_and_sums_are_twos_complement(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.int32_extreme_sums_accumulate_int64(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.group_count_reports_groups_of_last_batch(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.repeated_batches_relatch_the_mask(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.backpressure_on_the_record_drain(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.group_boundary_under_backpressure_holds_input(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.zero_mask_drains_batch_then_reports_config_error(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.torn_row_reports_stream_error(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.torn_row_on_a_group_boundary_reports_stream_error(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.torn_row_after_emitted_group_records_invalidates_the_batch(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.error_status_survives_backpressure(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.success_status_survives_backpressure(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb.constrained_random_batches_match_golden(dut)
async cocotb_benches.dau_grouped_field_sum_aggregation_tb._start(dut) → None
async cocotb_benches.dau_grouped_field_sum_aggregation_tb._run(dut, rows, *, field_mask: int, ready_pattern=(1,))
cocotb_benches.dau_grouped_field_sum_aggregation_tb._pack_rows(rows) → list[int]
async cocotb_benches.dau_grouped_field_sum_aggregation_tb._send_words(dut, words) → None
async cocotb_benches.dau_grouped_field_sum_aggregation_tb._send_rows(dut, rows) → None
async cocotb_benches.dau_grouped_field_sum_aggregation_tb._collect_output(dut, ready_pattern, *, expect_words: int) → list[int]
async cocotb_benches.dau_grouped_field_sum_aggregation_tb._assert_quiescent(dut) → None

After the batch’s record stream drains, nothing more may appear on the output or status streams even with ready held high.

async cocotb_benches.dau_grouped_field_sum_aggregation_tb._expect_status(dut, *, error: bool, code: int = 0) → None