cocotb_benches.dau_row_unpack_tb¶
Attributes¶
Functions¶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The two output words the tile emits for one packed word. |
|
A 16-byte quad row as its two 64-bit stream words (w0 = {value, key}, |
|
The bypass-mode input stream for a batch of quad rows: two words each. |
|
Drive a bypass batch (cfg_bypass must already be 1) and collect the |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nothing may appear on the output or status streams even with ready held |
|
Module Contents¶
- cocotb_benches.dau_row_unpack_tb._MASK32 = 4294967295¶
- cocotb_benches.dau_row_unpack_tb._INT32_MIN = -2147483648¶
- cocotb_benches.dau_row_unpack_tb._INT32_MAX = 2147483647¶
- cocotb_benches.dau_row_unpack_tb._BYTE_SPECS¶
- cocotb_benches.dau_row_unpack_tb._Q6_SPECS¶
- cocotb_benches.dau_row_unpack_tb._Q1_SPECS¶
- cocotb_benches.dau_row_unpack_tb._Q6_ROWS¶
- async cocotb_benches.dau_row_unpack_tb.byte_lane_unpack_matches_golden(dut)¶
- async cocotb_benches.dau_row_unpack_tb.sustained_ingest_meets_registry_floor(dut)¶
- async cocotb_benches.dau_row_unpack_tb.sign_versus_zero_extend(dut)¶
- async cocotb_benches.dau_row_unpack_tb.fields_crossing_bit_boundaries(dut)¶
- async cocotb_benches.dau_row_unpack_tb.boundary_widths_one_and_thirtytwo(dut)¶
- async cocotb_benches.dau_row_unpack_tb.width32_unsigned_reads_back_signed(dut)¶
- async cocotb_benches.dau_row_unpack_tb.q6_like_packing(dut)¶
- async cocotb_benches.dau_row_unpack_tb.q1_like_packing(dut)¶
- async cocotb_benches.dau_row_unpack_tb.single_row_batch(dut)¶
- async cocotb_benches.dau_row_unpack_tb.output_backpressure_holds_stable(dut)¶
- async cocotb_benches.dau_row_unpack_tb.repeated_batches_back_to_back(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bad_config_zero_width_drains_then_config_error(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bad_config_width_over_32_reports_config_error(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bad_config_offset_plus_width_over_64_reports_config_error(dut)¶
- async cocotb_benches.dau_row_unpack_tb.error_status_survives_backpressure(dut)¶
- async cocotb_benches.dau_row_unpack_tb.error_close_out_waits_for_backpressured_tail(dut)¶
- async cocotb_benches.dau_row_unpack_tb.idle_after_reset_is_quiescent(dut)¶
- async cocotb_benches.dau_row_unpack_tb.constrained_random_batches_match_golden(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bypass_passes_quad_rows_through_byte_identical(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bypass_is_zero_added_latency(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bypass_mode_is_batch_latched(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bypass_backpressure_holds_stable(dut)¶
- async cocotb_benches.dau_row_unpack_tb.mode_switches_between_batches_on_one_dut(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bypass_waits_for_backpressured_unpack_tail(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bypass_torn_row_reports_stream_error(dut)¶
- async cocotb_benches.dau_row_unpack_tb.bypass_torn_row_reports_error_under_backpressure(dut)¶
- cocotb_benches.dau_row_unpack_tb._signed32(value: int) int¶
- cocotb_benches.dau_row_unpack_tb._int_in_width(width: int) int¶
- cocotb_benches.dau_row_unpack_tb._pack(specs, fields) int¶
- cocotb_benches.dau_row_unpack_tb._expand(word: int, specs) list[int]¶
The two output words the tile emits for one packed word.
- cocotb_benches.dau_row_unpack_tb._quad_words(row) list[int]¶
A 16-byte quad row as its two 64-bit stream words (w0 = {value, key}, w1 = {aux1, aux0}) — the bypass-mode input framing (two words per row).
- cocotb_benches.dau_row_unpack_tb._bypass_words(rows) list[int]¶
The bypass-mode input stream for a batch of quad rows: two words each.
- async cocotb_benches.dau_row_unpack_tb._run_bypass(dut, words, *, ready_pattern=(1,)) list[int]¶
Drive a bypass batch (cfg_bypass must already be 1) and collect the forwarded stream. Bypass is 1:1 word-for-word (no widening), so the output is exactly
len(words)words; _send_words/_collect_output already assert hold-stability, last placement, and silent-success quiescence.
- cocotb_benches.dau_row_unpack_tb._drive_config(dut, specs) None¶
- cocotb_benches.dau_row_unpack_tb._drive_raw_config(dut, descriptors) None¶
- cocotb_benches.dau_row_unpack_tb._random_specs(rng)¶
- cocotb_benches.dau_row_unpack_tb._random_field(rng, spec: dau_core.operators.UnpackFieldSpec) int¶
- async cocotb_benches.dau_row_unpack_tb._start(dut) None¶
- async cocotb_benches.dau_row_unpack_tb._run(dut, words, specs, *, ready_pattern=(1,))¶
- async cocotb_benches.dau_row_unpack_tb._send_words(dut, words) None¶
- async cocotb_benches.dau_row_unpack_tb._send_bypass_flip(dut, words) None¶
- async cocotb_benches.dau_row_unpack_tb._send_unpack_then_bypass(dut, a_word, b_words) None¶
- async cocotb_benches.dau_row_unpack_tb._send_a_then_bad_b(dut, a_word) None¶
- async cocotb_benches.dau_row_unpack_tb._collect_output(dut, ready_pattern, *, expect_words: int) list[int]¶
- async cocotb_benches.dau_row_unpack_tb._assert_quiescent(dut) None¶
Nothing may appear on the output or status streams even with ready held high (silent-success contract).
- async cocotb_benches.dau_row_unpack_tb._expect_status(dut, *, error: bool, code: int = 0) None¶