cocotb_benches.dau_streaming_dedup_tb

Attributes

_MASK32

_MASK64

_INT32_MIN

_INT32_MAX

_KEY_SPACE

Functions

_rows(keys)

Quad rows carrying keys. The value and aux fields are deliberately

all_distinct_keys_are_all_counted(dut)

one_key_repeated_counts_once(dut)

consecutive_duplicate_keys_are_counted_once(dut)

neighbouring_keys_in_one_word_keep_every_bit(dut)

a_second_batch_continues_the_accumulation(dut)

cfg_clear_starts_a_fresh_accumulation(dut)

the_count_port_reports_the_emitted_record(dut)

out_of_range_keys_report_range_error(dut)

a_torn_row_reports_stream_error(dut)

backpressure_on_the_count_word_and_gaps_in_the_input(dut)

success_status_survives_backpressure(dut)

constrained_random_batches_match_golden(dut)

_golden(rows)

_start(dut) → None

_pack_rows(rows) → list[int]

_send_words(dut, words, *[, gaps]) → None

_send_rows(dut, rows, *[, gaps]) → None

_run_batch(dut, rows, *[, clear, ready_pattern, gaps]) → int

_collect_count(dut, ready_pattern) → int

Consume the batch's one-word count record, then its success close-out.

_assert_quiescent(dut) → None

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

Module Contents

cocotb_benches.dau_streaming_dedup_tb._MASK32 = 4294967295
cocotb_benches.dau_streaming_dedup_tb._MASK64 = 18446744073709551615
cocotb_benches.dau_streaming_dedup_tb._INT32_MIN = -2147483648
cocotb_benches.dau_streaming_dedup_tb._INT32_MAX = 2147483647
cocotb_benches.dau_streaming_dedup_tb._KEY_SPACE = 4096
cocotb_benches.dau_streaming_dedup_tb._rows(keys)

Quad rows carrying keys. The value and aux fields are deliberately varied junk: a dedup reads w0.lo and nothing else, so rows that differ in every other field are still duplicates.

async cocotb_benches.dau_streaming_dedup_tb.all_distinct_keys_are_all_counted(dut)
async cocotb_benches.dau_streaming_dedup_tb.one_key_repeated_counts_once(dut)
async cocotb_benches.dau_streaming_dedup_tb.consecutive_duplicate_keys_are_counted_once(dut)
async cocotb_benches.dau_streaming_dedup_tb.neighbouring_keys_in_one_word_keep_every_bit(dut)
async cocotb_benches.dau_streaming_dedup_tb.a_second_batch_continues_the_accumulation(dut)
async cocotb_benches.dau_streaming_dedup_tb.cfg_clear_starts_a_fresh_accumulation(dut)
async cocotb_benches.dau_streaming_dedup_tb.the_count_port_reports_the_emitted_record(dut)
async cocotb_benches.dau_streaming_dedup_tb.out_of_range_keys_report_range_error(dut)
async cocotb_benches.dau_streaming_dedup_tb.a_torn_row_reports_stream_error(dut)
async cocotb_benches.dau_streaming_dedup_tb.backpressure_on_the_count_word_and_gaps_in_the_input(dut)
async cocotb_benches.dau_streaming_dedup_tb.success_status_survives_backpressure(dut)
async cocotb_benches.dau_streaming_dedup_tb.constrained_random_batches_match_golden(dut)
cocotb_benches.dau_streaming_dedup_tb._golden(rows)
async cocotb_benches.dau_streaming_dedup_tb._start(dut) → None
cocotb_benches.dau_streaming_dedup_tb._pack_rows(rows) → list[int]
async cocotb_benches.dau_streaming_dedup_tb._send_words(dut, words, *, gaps: int = 0) → None
async cocotb_benches.dau_streaming_dedup_tb._send_rows(dut, rows, *, gaps: int = 0) → None
async cocotb_benches.dau_streaming_dedup_tb._run_batch(dut, rows, *, clear: bool = True, ready_pattern=(1,), gaps: int = 0) → int
async cocotb_benches.dau_streaming_dedup_tb._collect_count(dut, ready_pattern) → int

Consume the batch’s one-word count record, then its success close-out.

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