mirror of
https://github.com/SikongJueluo/Mini-Nav.git
synced 2026-07-13 04:25:32 +08:00
- Add cocotb benchmark infrastructure under hw/sim/benchmarks/retrieval/ with Makefile - Implement test_retrieval_benchmark.py supporting configurable topk-k, read/write noise - Add cluster-based synthetic dataset generator with configurable bit-flip rates - Add reference model functions: match_topk, match_topk_from_scores, score_rows_with_read_noise - Add .justfile shortcuts: cam-test-retrieval-no-noise, cam-test-retrieval-read-noise - Add TOPK_K to Verilator EXTRA_ARGS via cocotb-common.mk - Add unit tests for topk sorting logic and stateful read-noise scoring
84 lines
2.4 KiB
Makefile
84 lines
2.4 KiB
Makefile
ifndef SIM_ROOT
|
|
$(error SIM_ROOT must be set before including mk/cocotb-common.mk)
|
|
endif
|
|
|
|
ifndef RTL_ROOT
|
|
$(error RTL_ROOT must be set before including mk/cocotb-common.mk)
|
|
endif
|
|
|
|
ifndef TOPLEVEL
|
|
$(error TOPLEVEL must be set before including mk/cocotb-common.mk)
|
|
endif
|
|
|
|
ifndef COCOTB_TEST_MODULES
|
|
$(error COCOTB_TEST_MODULES must be set before including mk/cocotb-common.mk)
|
|
endif
|
|
|
|
ifndef VERILOG_SOURCES
|
|
$(error VERILOG_SOURCES must be set before including mk/cocotb-common.mk)
|
|
endif
|
|
|
|
SIM ?= verilator
|
|
TOPLEVEL_LANG ?= verilog
|
|
|
|
NUM_ROWS ?= 4096
|
|
HASH_BITS ?= 512
|
|
LANES ?= 8
|
|
TOPK_K ?= 4
|
|
|
|
EXTRA_ARGS += +define+NUM_ROWS=$(NUM_ROWS) +define+HASH_BITS=$(HASH_BITS) +define+LANES=$(LANES) +define+TOPK_K=$(TOPK_K)
|
|
EXTRA_ARGS += --trace --trace-fst --trace-structs
|
|
|
|
COMPILE_ARGS += -Wall -Wno-fatal
|
|
COMPILE_ARGS += -I$(RTL_ROOT) -I$(RTL_ROOT)/core -I$(RTL_ROOT)/noise -I$(RTL_ROOT)/random
|
|
COMPILE_ARGS += +define+SIM_DEBUG
|
|
COMPILE_ARGS += $(EXTRA_DEFINES)
|
|
|
|
WRITE_NOISE_EN ?= $(NOISE_EN)
|
|
WRITE_NOISE_RATE_NUM ?= $(NOISE_RATE_NUM)
|
|
WRITE_NOISE_RATE_DEN ?= $(NOISE_RATE_DEN)
|
|
WRITE_NOISE_BITS ?= $(NOISE_BITS)
|
|
READ_NOISE_EN ?= $(NOISE_EN)
|
|
READ_NOISE_RATE_NUM ?= $(NOISE_RATE_NUM)
|
|
READ_NOISE_RATE_DEN ?= $(NOISE_RATE_DEN)
|
|
READ_NOISE_BITS ?= $(NOISE_BITS)
|
|
|
|
ifneq ($(strip $(WRITE_NOISE_EN)),)
|
|
COMPILE_ARGS += -GWRITE_NOISE_EN=$(WRITE_NOISE_EN)
|
|
endif
|
|
ifneq ($(strip $(WRITE_NOISE_RATE_NUM)),)
|
|
COMPILE_ARGS += -GWRITE_NOISE_RATE_NUM=$(WRITE_NOISE_RATE_NUM)
|
|
endif
|
|
ifneq ($(strip $(WRITE_NOISE_RATE_DEN)),)
|
|
COMPILE_ARGS += -GWRITE_NOISE_RATE_DEN=$(WRITE_NOISE_RATE_DEN)
|
|
endif
|
|
ifneq ($(strip $(WRITE_NOISE_BITS)),)
|
|
COMPILE_ARGS += -GWRITE_NOISE_BITS=$(WRITE_NOISE_BITS)
|
|
endif
|
|
ifneq ($(strip $(READ_NOISE_EN)),)
|
|
COMPILE_ARGS += -GREAD_NOISE_EN=$(READ_NOISE_EN)
|
|
endif
|
|
ifneq ($(strip $(READ_NOISE_RATE_NUM)),)
|
|
COMPILE_ARGS += -GREAD_NOISE_RATE_NUM=$(READ_NOISE_RATE_NUM)
|
|
endif
|
|
ifneq ($(strip $(READ_NOISE_RATE_DEN)),)
|
|
COMPILE_ARGS += -GREAD_NOISE_RATE_DEN=$(READ_NOISE_RATE_DEN)
|
|
endif
|
|
ifneq ($(strip $(READ_NOISE_BITS)),)
|
|
COMPILE_ARGS += -GREAD_NOISE_BITS=$(READ_NOISE_BITS)
|
|
endif
|
|
|
|
export PYTHONPATH := $(SIM_ROOT):$(PYTHONPATH)
|
|
export QUIET ?= 1
|
|
export VERBOSE ?= 0
|
|
export COCOTB_LOG_LEVEL ?= INFO
|
|
export PYTHONWARNINGS ?= ignore::pytest.PytestDeprecationWarning
|
|
|
|
SUPPRESS_VERILATOR_WARNINGS ?= 0
|
|
ifeq ($(SUPPRESS_VERILATOR_WARNINGS),1)
|
|
COMPILE_ARGS += -Wno-WIDTHEXPAND
|
|
COMPILE_ARGS += -Wno-UNOPTFLAT
|
|
endif
|
|
|
|
include $(shell cocotb-config --makefiles)/Makefile.sim
|