cocotb_benches.dau_session_gap_tb ================================= .. py:module:: cocotb_benches.dau_session_gap_tb Attributes ---------- .. autoapisummary:: cocotb_benches.dau_session_gap_tb.CAPACITY cocotb_benches.dau_session_gap_tb._ROWS Functions --------- .. autoapisummary:: cocotb_benches.dau_session_gap_tb.session_gap_matches_golden cocotb_benches.dau_session_gap_tb.session_gap_boundary_is_exclusive cocotb_benches.dau_session_gap_tb.session_gap_drain_is_key_sorted cocotb_benches.dau_session_gap_tb.session_gap_time_order_violation_is_refused cocotb_benches.dau_session_gap_tb.session_gap_capacity_bounds_distinct_keys cocotb_benches.dau_session_gap_tb.session_gap_bad_parameters_are_refused cocotb_benches.dau_session_gap_tb.session_gap_colliding_keys_probe_correctly cocotb_benches.dau_session_gap_tb.session_gap_is_patient cocotb_benches.dau_session_gap_tb._start cocotb_benches.dau_session_gap_tb._run cocotb_benches.dau_session_gap_tb._send_rows cocotb_benches.dau_session_gap_tb._collect_output cocotb_benches.dau_session_gap_tb._accept_status cocotb_benches.dau_session_gap_tb._signed32 Module Contents --------------- .. py:data:: CAPACITY .. py:data:: _ROWS :value: [(1, 0), (2, 1), (2, 2), (1, 5), (1, 20), (3, 21)] .. py:function:: session_gap_matches_golden(dut) :async: .. py:function:: session_gap_boundary_is_exclusive(dut) :async: .. py:function:: session_gap_drain_is_key_sorted(dut) :async: .. py:function:: session_gap_time_order_violation_is_refused(dut) :async: .. py:function:: session_gap_capacity_bounds_distinct_keys(dut) :async: .. py:function:: session_gap_bad_parameters_are_refused(dut) :async: .. py:function:: session_gap_colliding_keys_probe_correctly(dut) :async: .. py:function:: session_gap_is_patient(dut) :async: The binding LID requirement: random relay-station delays on every channel change NOTHING about the emitted sequence. State is fresh per batch, so the same rows replay identically by construction. .. py:function:: _start(dut) -> None :async: .. py:function:: _run(dut, rows, *, gap, granted_keys, delay_seed=None) :async: .. py:function:: _send_rows(dut, rows, *, gap=None) -> None :async: .. py:function:: _collect_output(dut, *, stall=None) :async: .. py:function:: _accept_status(dut) :async: .. py:function:: _signed32(value: int) -> int