test_hdl_cocotb

Attributes

_COCOTB_BENCH_PREFIX

_SV_TB_DIR

VERILATOR_BUILD_ARGS

Functions

_bar_noc_sim_sv(tmp_path) → pathlib.Path

Generate the broadcast-NoC sim harness (four key-filtered bar lanes)

_sort_noc_sim_sv(tmp_path) → pathlib.Path

Generate the sorted-scan sim harness (shared range partitioner into

test_int32_stream_aggregation_runs_real_cocotb_against_systemverilog(...) → None

test_record_gearbox_runs_real_cocotb_against_systemverilog(...) → None

test_wide_ingest_chain_runs_real_cocotb_against_systemverilog(...) → None

test_arrow_lite_stream_aggregation_runs_real_cocotb_against_systemverilog(...) → None

test_bar_aggregation_runs_real_cocotb_against_systemverilog(...) → None

test_asof_backward_runs_real_cocotb_against_systemverilog(...) → None

test_time_bucket_key_runs_real_cocotb_against_systemverilog(...) → None

test_record_gather_runs_real_cocotb_against_systemverilog(...) → None

test_hero_datapath_runs_real_cocotb_against_systemverilog(...) → None

test_bucket_agg_chain_runs_real_cocotb_against_systemverilog(...) → None

test_market_feature_runs_real_cocotb_against_systemverilog(...) → None

test_asof_feature_chain_runs_real_cocotb_against_systemverilog(...) → None

test_rolling_moments_runs_real_cocotb_against_systemverilog(...) → None

test_rolling_extremum_matches_golden(tmp_path, ...) → None

Every build of the tile against the same golden.

test_rolling_extremum_window_eight(tmp_path, monkeypatch) → None

A second window depth: the Hillis-Steele network gains a stage, and the

test_rolling_moments_window_two(tmp_path, monkeypatch) → None

test_streaming_dedup_runs_real_cocotb_against_systemverilog(...) → None

test_streaming_top_k_runs_real_cocotb_against_systemverilog(...) → None

test_streaming_top_k_k_one(tmp_path, monkeypatch) → None

test_axi_bar_job_runs_real_cocotb_against_systemverilog(...) → None

test_pair_key_filter_runs_real_cocotb_against_systemverilog(...) → None

test_range_partitioner_runs_real_cocotb_against_systemverilog(...) → None

test_burst_reader_streams_exactly_at_every_width_tier(...) → None

The width-tier contract: the reader reproduces the memory window

test_bitonic_sorter_runs_real_cocotb_against_systemverilog(...) → None

test_bitonic_sorter_small_capacity(tmp_path, ...) → None

test_range_partitioner_non_power_of_two_partitions(...) → None

test_row_predicate_filter_runs_real_cocotb_against_systemverilog(...) → None

test_normal_cdf_runs_real_cocotb_against_systemverilog(...) → None

The rendered CDF tile against its model, which is correctly rounded

test_fixed_point_exp_runs_real_cocotb_against_systemverilog(...) → None

Each registered operating point against the model it renders from.

test_fixed_point_ln_runs_real_cocotb_against_systemverilog(...) → None

The rendered ln tile against the model it renders from, with zero

test_fixed_point_divide_runs_real_cocotb_against_systemverilog(...) → None

test_datetime_format_runs_real_cocotb_against_systemverilog(...) → None

The tile shipped with no bench at all: its only test read constants out

test_fixed_point_sqrt_runs_real_cocotb_against_systemverilog(...) → None

test_row_map_alu_runs_real_cocotb_against_systemverilog(...) → None

test_row_unpack_runs_real_cocotb_against_systemverilog(...) → None

test_key_mask_dispatcher_routes_n_word_records(...) → None

test_key_mask_dispatcher_runs_real_cocotb_against_systemverilog(...) → None

test_key_mask_dispatcher_wide_front_runs_real_cocotb(...) → None

test_key_mask_dispatcher_multi_row_runs_real_cocotb(...) → None

test_stride_distributor_runs_real_cocotb(tmp_path, ...) → None

test_key_mask_dispatcher_hash_runs_real_cocotb(...) → None

test_key_mask_dispatcher_exact_branch_wide_runs_real_cocotb(...) → None

test_key_mask_dispatcher_exact_branch_narrow_runs_real_cocotb(...) → None

test_row_unpack_wide_quad_stream_runs_real_cocotb(tmp_path) → None

test_row_unpack_multi_slot_beats_run_real_cocotb(...) → None

test_keyed_predicate_filter_runs_real_cocotb_against_systemverilog(...) → None

test_keyed_map_alu_runs_real_cocotb_against_systemverilog(...) → None

test_field_sum_aggregation_runs_real_cocotb_against_systemverilog(...) → None

test_wide_row_predicate_filter_runs_real_cocotb_against_systemverilog(...) → None

test_wide_row_map_alu_runs_real_cocotb_against_systemverilog(...) → None

test_wide_field_sum_aggregation_runs_real_cocotb_against_systemverilog(...) → None

test_grouped_field_aggregation_runs_real_cocotb_against_systemverilog(...) → None

test_grouped_field_sum_aggregation_runs_real_cocotb_against_systemverilog(...) → None

test_key_membership_filter_runs_real_cocotb_against_systemverilog(...) → None

test_key_membership_filter_single_word_bitmap_runs_real_cocotb(...) → None

test_broadcast_hash_join_runs_real_cocotb_against_systemverilog(...) → None

test_broadcast_hash_join_small_key_space_runs_real_cocotb(...) → None

test_axi_bar_noc_runs_real_cocotb_against_systemverilog(...) → None

test_axi_sort_noc_runs_real_cocotb_against_systemverilog(...) → None

test_grouped_aggregation_runs_real_cocotb_against_systemverilog(...) → None

test_map_alu_runs_real_cocotb_against_systemverilog(...) → None

test_predicate_filter_runs_real_cocotb_against_systemverilog(...) → None

test_record_batch_aggregation_runs_real_cocotb_against_systemverilog(...) → None

_run_cocotb_verilator(*, sources, hdl_toplevel, ...[, ...]) → None

test_scratchpad_runs_real_cocotb_against_systemverilog(...) → None

test_scratchpad_capacity_sixteen(tmp_path, monkeypatch) → None

test_keyed_state_runs_real_cocotb_against_systemverilog(...) → None

test_keyed_state_capacity_eight(tmp_path, monkeypatch) → None

test_hash_grouped_aggregation_runs_real_cocotb_against_systemverilog(...) → None

test_hash_grouped_aggregation_capacity_eight(tmp_path, ...) → None

test_hash_grouped_aggregation_capacity_one(tmp_path, ...) → None

test_session_gap_runs_real_cocotb_against_systemverilog(...) → None

test_session_gap_capacity_eight(tmp_path, monkeypatch) → None

test_row_predicate_filter_runs_at_every_field_type(...) → None

The 128-bit row is the transport unit and the field TYPE says how many

Module Contents

test_hdl_cocotb._COCOTB_BENCH_PREFIX = 'dau_core.tests.cocotb_benches'
test_hdl_cocotb._SV_TB_DIR
test_hdl_cocotb._bar_noc_sim_sv(tmp_path: pathlib.Path) → pathlib.Path

Generate the broadcast-NoC sim harness (four key-filtered bar lanes) from the same composition data the shell top is walked from.

test_hdl_cocotb._sort_noc_sim_sv(tmp_path: pathlib.Path) → pathlib.Path

Generate the sorted-scan sim harness (shared range partitioner into four sorter lanes) with the splitters surfaced as a testbench-driven config input.

test_hdl_cocotb.test_int32_stream_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_record_gearbox_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path, in_width: int, record_words: int) → None
test_hdl_cocotb.test_wide_ingest_chain_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_arrow_lite_stream_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_bar_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_asof_backward_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_time_bucket_key_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_record_gather_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch, in_words: int, out_words: int) → None
test_hdl_cocotb.test_hero_datapath_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_bucket_agg_chain_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_market_feature_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_asof_feature_chain_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_rolling_moments_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_rolling_extremum_matches_golden(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch, value_width: int, find_max: int) → None

Every build of the tile against the same golden.

The point of the parameter sweep is the tile’s claim: extremum does not depend on the width it is computed in, so ONE implementation serves every signed integer type. If that were wrong, a width would disagree with the golden here rather than on silicon.

test_hdl_cocotb.test_rolling_extremum_window_eight(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch) → None

A second window depth: the Hillis-Steele network gains a stage, and the per-symbol reset has to keep working across it.

test_hdl_cocotb.test_rolling_moments_window_two(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch) → None
test_hdl_cocotb.test_streaming_dedup_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_streaming_top_k_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_streaming_top_k_k_one(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch) → None
test_hdl_cocotb.test_axi_bar_job_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_pair_key_filter_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_range_partitioner_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_burst_reader_streams_exactly_at_every_width_tier(tmp_path: pathlib.Path, data_width: int) → None

The width-tier contract: the reader reproduces the memory window bit-exactly at every catalog DATA_WIDTH (64/128/256/512).

test_hdl_cocotb.test_bitonic_sorter_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_bitonic_sorter_small_capacity(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch, capacity: int) → None
test_hdl_cocotb.test_range_partitioner_non_power_of_two_partitions(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_row_predicate_filter_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_normal_cdf_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None

The rendered CDF tile against its model, which is correctly rounded over every representable input.

test_hdl_cocotb.test_fixed_point_exp_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path, core_name: str, monkeypatch) → None

Each registered operating point against the model it renders from.

Driven off the registry rather than a hardcoded pair, so a third point is covered by adding an entry – and so the bench can never test a datapath the registry does not actually build.

test_hdl_cocotb.test_fixed_point_ln_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None

The rendered ln tile against the model it renders from, with zero tolerance – the model’s own 1 ULP deviation from the mathematics is a separate, measured question.

test_hdl_cocotb.test_fixed_point_divide_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_datetime_format_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None

The tile shipped with no bench at all: its only test read constants out of the SystemVerilog and exercised the Python golden, so the module was never instantiated and its measured resource number described an unverified design.

test_hdl_cocotb.test_fixed_point_sqrt_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_row_map_alu_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_row_unpack_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_key_mask_dispatcher_routes_n_word_records(tmp_path: pathlib.Path, num_partitions: int, record_input: int) → None
test_hdl_cocotb.test_key_mask_dispatcher_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_key_mask_dispatcher_wide_front_runs_real_cocotb(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_key_mask_dispatcher_multi_row_runs_real_cocotb(tmp_path: pathlib.Path, in_width: int, num_partitions: int) → None
test_hdl_cocotb.test_stride_distributor_runs_real_cocotb(tmp_path: pathlib.Path, in_width: int, num_partitions: int) → None
test_hdl_cocotb.test_key_mask_dispatcher_hash_runs_real_cocotb(tmp_path: pathlib.Path, in_width: int, num_partitions: int) → None
test_hdl_cocotb.test_key_mask_dispatcher_exact_branch_wide_runs_real_cocotb(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_key_mask_dispatcher_exact_branch_narrow_runs_real_cocotb(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_row_unpack_wide_quad_stream_runs_real_cocotb(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_row_unpack_multi_slot_beats_run_real_cocotb(tmp_path: pathlib.Path, monkeypatch, slots: int) → None
test_hdl_cocotb.test_keyed_predicate_filter_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_keyed_map_alu_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_field_sum_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_wide_row_predicate_filter_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path, slots: int, pipeline_depth: int) → None
test_hdl_cocotb.test_wide_row_map_alu_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path, slots: int, pipeline_depth: int) → None
test_hdl_cocotb.test_wide_field_sum_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path, slots: int) → None
test_hdl_cocotb.test_grouped_field_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_grouped_field_sum_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_key_membership_filter_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_key_membership_filter_single_word_bitmap_runs_real_cocotb(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_broadcast_hash_join_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_broadcast_hash_join_small_key_space_runs_real_cocotb(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_axi_bar_noc_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_axi_sort_noc_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_grouped_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_map_alu_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_predicate_filter_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_record_batch_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.VERILATOR_BUILD_ARGS
test_hdl_cocotb._run_cocotb_verilator(*, sources: tuple[pathlib.Path, ...], hdl_toplevel: str, test_module: str, tmp_path: pathlib.Path, parameters=None) → None
test_hdl_cocotb.test_scratchpad_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_scratchpad_capacity_sixteen(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch) → None
test_hdl_cocotb.test_keyed_state_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_keyed_state_capacity_eight(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch) → None
test_hdl_cocotb.test_hash_grouped_aggregation_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_hash_grouped_aggregation_capacity_eight(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch) → None
test_hdl_cocotb.test_hash_grouped_aggregation_capacity_one(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch) → None
test_hdl_cocotb.test_session_gap_runs_real_cocotb_against_systemverilog(tmp_path: pathlib.Path) → None
test_hdl_cocotb.test_session_gap_capacity_eight(tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch) → None
test_hdl_cocotb.test_row_predicate_filter_runs_at_every_field_type(field_type: str, tmp_path: pathlib.Path, monkeypatch: pytest.MonkeyPatch) → None

The 128-bit row is the transport unit and the field TYPE says how many fields it carries, so int16 packs eight values per row where int32 packs four. int32 is included so this bench is known to agree with the directed one, not merely to run; q16.16 is the case the old width parameter could not state at all – 32 bits like int32, a different type, and ordered correctly by the same comparator.