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 EXTRA_ARGS += +define+NUM_ROWS=$(NUM_ROWS) +define+HASH_BITS=$(HASH_BITS) +define+LANES=$(LANES) 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