Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
include $(BP_MK_DIR)/Makefile.paths
## Tool specific options
VCS_THREADS ?= 4
#VCS_BUILD_OPTS += -fgp=multisocket
VCS_BUILD_OPTS += -full64
VCS_BUILD_OPTS += -notice
VCS_BUILD_OPTS += -V
VCS_BUILD_OPTS += -sverilog
VCS_BUILD_OPTS += -f flist.vcs
VCS_BUILD_OPTS += +noportcoerce
VCS_BUILD_OPTS += -timescale=1ps/1ps
VCS_BUILD_OPTS += -diag timescale
VCS_BUILD_OPTS += -top testbench
VCS_BUILD_OPTS += -reportstats
VCS_BUILD_OPTS += -simprofile=time
VCS_BUILD_OPTS += -ignore initializer_driver_checks
VCS_BUILD_OPTS += -suppress=UNGB
ifeq ($(COVERAGE),1)
VCS_BUILD_OPTS += -cm line+tgl
VCS_BUILD_OPTS += -cm_dir $(DUT_PATH)/design
VCS_BUILD_OPTS += -cm_hier $(TB_PATH)/cm_hier.txt
endif
ifeq ($(ASSERT),1)
VCS_BUILD_OPTS += +define+BSG_NONSYNTH_ASSERT_ENABLE
VCS_BUILD_OPTS += -assert svaext # Enable elaboration system tasks
endif
ENABLE_VERDI ?= 0
ifeq ($(TRACE),1)
VCS_BUILD_OPTS += -debug_access+r
VCS_BUILD_OPTS += +define+BSG_NONSYNTH_WAVEFORM_TRACER_ENABLE
VCS_BUILD_OPTS += +define+BSG_NONSYNTH_WAVEFORM_TRACER_DEPTH=0
VCS_BUILD_OPTS += +define+BSG_NONSYNTH_WAVEFORM_TRACER_HIER=testbench.wrapper.processor.u.unicore.unicore_lite.core_minimal
ifeq ($(ENABLE_VERDI),1)
VCS_BUILD_OPTS += +define+BSG_NONSYNTH_WAVEFORM_TRACER_FSDB
else
VCS_BUILD_OPTS += +define+BSG_NONSYNTH_WAVEFORM_TRACER_VPD
endif
endif
ifeq ($(DROMAJO_COSIM),1)
VCS_BUILD_OPTS += -ldromajo_cosim
VCS_BUILD_OPTS += $(BP_DIR)/bp_be/test/common/dromajo_cosim.cpp
endif
ifeq ($(SPIKE_COSIM),1)
VCS_BUILD_OPTS += -lriscv
VCS_BUILD_OPTS += $(BP_DIR)/bp_be/test/common/spike_cosim.cpp
endif
%/flist.vcs:
@$(MKDIR) -p $(@D)
@$(CAT) $(END_PATH)/flist.vcs >> $@
@$(CAT) $(TB_PATH)/flist.vcs >> $@
@$(SED) -i "/^#/d" $@
LINT_FILE ?= $(DUT_PATH)/lint
lint.vcs: ## lints the design
lint.vcs: $(LINT_FILE)
$(LINT_FILE): VCS_BUILD_OPTS += +lint=all,noSVA-UA,noSVA-NSVU,noNS,noVCDE
$(LINT_FILE): $(addprefix $(DUT_PATH)/,$(BUILD_COLLATERAL))
@$(call bsg_fn_declare_log_rpt,$(DUT_TAG))
@$(CD) $(DUT_PATH); \
$(VCS) $(VCS_BUILD_OPTS) $(HDL_PARAMS) $(HDL_DEFINES) 2>&1 | $(TEE) -i $(LOG_FILE)
@$(call bsg_fn_info_search,$(LOG_FILE),$(RPT_FILE),"processes executed",100)
@$(call bsg_fn_sentinal_search,$(LOG_FILE),$(ERR_FILE),"simv up to date")
@$(TOUCH) $@
BUILD_FILE ?= $(DUT_PATH)/simv
build.vcs: ## builds a simv
build.vcs: $(BUILD_FILE)
$(BUILD_FILE): VCS_BUILD_OPTS += -o $(BUILD_FILE)
$(BUILD_FILE): $(addprefix $(DUT_PATH)/,$(BUILD_COLLATERAL))
@$(call bsg_fn_declare_log_rpt,$(DUT_TAG))
@$(CD) $(DUT_PATH); \
$(VCS) $(VCS_BUILD_OPTS) $(HDL_PARAMS) $(HDL_DEFINES) 2>&1 | $(TEE) -i $(LOG_FILE)
@$(call bsg_fn_info_search,$(LOG_FILE),$(RPT_FILE),"processes executed",100)
@$(call bsg_fn_sentinal_search,$(LOG_FILE),$(ERR_FILE),"simv up to date")
VCS_RUN_OPTS += +vcs+lic+wait
VCS_RUN_OPTS += +vcs+loopdetect +vcs+loopreport
VCS_RUN_OPTS += +v2k
VCS_RUN_OPTS += -no_save -suppress=ASLR_DETECTED_INFO
#VCS_RUN_OPTS += -fgp=num_threads:$(VCS_THREADS)
ifeq ($(ENABLE_VERDI),1)
DUMP_FILE ?= dump.fsdb
else
DUMP_FILE ?= dump.vpd
endif
ifeq ($(TRACE),1)
VCS_RUN_OPTS += +bsg_trace=$(DUMP_FILE)
endif
ifeq ($(COVERAGE),1)
VCS_RUN_OPTS += -cm line+tgl
VCS_RUN_OPTS += -cm_dir $(basename $(notdir $(SIM_TAG)))
VCS_RUN_OPTS += -cm_hier $(TB_PATH)/cm_hier.txt
endif
SIM_FILE ?= $(SIM_PATH)/$(SIM_PROG)
sim.vcs: ## runs a simulation
sim.vcs: $(SIM_FILE)
$(SIM_FILE): $(addprefix $(SIM_PATH)/,$(RUN_COLLATERAL))
$(SIM_FILE): $(BUILD_FILE)
@$(call bsg_fn_declare_log_rpt,$(SIM_TAG))
$(CD) $(SIM_PATH); \
$< $(VCS_RUN_OPTS) $(HDL_PLUSARGS) 2>&1
@$(call bsg_fn_fail_search,$(LOG_FILE),$(ERR_FILE))
@$(call bsg_fn_pass_search,$(LOG_FILE),$(ERR_FILE))
@$(call bsg_fn_sentinal_search,$(LOG_FILE),$(ERR_FILE),"finish called from file")
@$(call bsg_fn_stat_search,$(LOG_FILE),$(RPT_FILE))
ifeq ($(ENABLE_VERDI),1)
VCS_WAVE_BIN ?= $(VERDI)
VCS_WAVE_OPTS += -ssf
else
VCS_WAVE_BIN ?= $(DVE)
VCS_WAVE_OPTS += -full64 -vpd
endif
WAVE_COLLATERAL += $(DUMP_FILE)
wave.vcs: ## opens a waveform
wave.vcs: $(SIM_PATH)/$(DUMP_FILE)
@$(VCS_WAVE_BIN) $(VCS_WAVE_OPTS) $<
URG_OPTS += -full64
URG_OPTS += -report $(DUT_PATH)/coverage
ALL_COVDBS := design.vdb $(wildcard $(DUT_PATH)/*/*.vdb)
merge.vcs: ## merges VCS coverage
@$(CD) $(DUT_PATH); \
$(URG) $(URG_OPTS) $(addprefix -dir ,$(ALL_COVDBS))
@$(ECHO) "Coverage report generated in $(DUT_PATH)/coverage"
@$(ECHO) "View with web browser such as Firefox"
85dda010eThis file is pinned to the selected release. Download the original to open it in your design tool.