cocotb_benches.dau_row_unpack_wide_tb

Functions

_decode_beat(beat) → tuple[int, int, int, int]

One 128-bit output beat back into the (key, value, aux0, aux1) quad

_start(dut) → None

_collect_beats(dut, ready_pattern, *, expect_beats) → list[int]

Collect whole-row beats with the valid/ready hold rule asserted and the

_assert_quiescent(dut) → None

_run(dut, words, specs, *[, ready_pattern])

_run_bypass(dut, words, *[, ready_pattern])

Drive a bypass batch (two words per row) and collect the gearboxed

sustained_ingest_meets_registry_floor(dut)

wide_unpack_emits_one_quad_row_per_beat(dut)

wide_sustains_one_row_per_cycle(dut)

wide_backpressure_holds_stable(dut)

wide_bypass_gearboxes_two_words_into_one_beat(dut)

wide_bypass_backpressure_holds_stable(dut)

wide_bypass_torn_row_reports_stream_error(dut)

wide_bad_config_drains_then_config_error(dut)

wide_bypass_torn_row_reports_error_under_backpressure(dut)

_send_one_unpack_row(dut, word) → None

Present one complete unpack batch (a single packed word carrying last)

wide_bypass_waits_for_backpressured_unpack_tail(dut)

wide_error_close_out_waits_for_backpressured_tail(dut)

wide_mode_switches_between_batches_on_one_dut(dut)

wide_random_batches_match_golden(dut)

Module Contents

cocotb_benches.dau_row_unpack_wide_tb._decode_beat(beat: int) → tuple[int, int, int, int]

One 128-bit output beat back into the (key, value, aux0, aux1) quad row: bits [63:0] = w0 = {value, key}, [127:64] = w1 = {aux1, aux0}.

async cocotb_benches.dau_row_unpack_wide_tb._start(dut) → None
async cocotb_benches.dau_row_unpack_wide_tb._collect_beats(dut, ready_pattern, *, expect_beats: int) → list[int]

Collect whole-row beats with the valid/ready hold rule asserted and the silent-success quiescence check after the batch’s last beat.

async cocotb_benches.dau_row_unpack_wide_tb._assert_quiescent(dut) → None
async cocotb_benches.dau_row_unpack_wide_tb._run(dut, words, specs, *, ready_pattern=(1,))
async cocotb_benches.dau_row_unpack_wide_tb._run_bypass(dut, words, *, ready_pattern=(1,))

Drive a bypass batch (two words per row) and collect the gearboxed whole-row beats: len(words)/2 beats out.

async cocotb_benches.dau_row_unpack_wide_tb.sustained_ingest_meets_registry_floor(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_unpack_emits_one_quad_row_per_beat(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_sustains_one_row_per_cycle(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_backpressure_holds_stable(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_bypass_gearboxes_two_words_into_one_beat(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_bypass_backpressure_holds_stable(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_bypass_torn_row_reports_stream_error(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_bad_config_drains_then_config_error(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_bypass_torn_row_reports_error_under_backpressure(dut)
async cocotb_benches.dau_row_unpack_wide_tb._send_one_unpack_row(dut, word) → None

Present one complete unpack batch (a single packed word carrying last) and wait for it to be accepted.

async cocotb_benches.dau_row_unpack_wide_tb.wide_bypass_waits_for_backpressured_unpack_tail(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_error_close_out_waits_for_backpressured_tail(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_mode_switches_between_batches_on_one_dut(dut)
async cocotb_benches.dau_row_unpack_wide_tb.wide_random_batches_match_golden(dut)