# #--================================================ =============== #-- File name : Makefile #-- Author: shzhang #-- Date : 2023/11/01 #-- Abstract : Cadence Xcelium Xrun Makefile #--================================================ =============== # ################################################ ##### .PHONY: com run clean ################################################ ##### export cpto_sw_v200_tb_path = .. ################################################ ##### SIM_DIR = . LOG_DIR = ../log FSDB_DIR = ../wave/fsdb SHM_DIR = ../wave/shm TC_DIR = ../tc/cfg COV_DIR = ../cov/imc/cov_work ################################################ ##### TOP_BENTCH = top TOP_DUT = cpto_sw_v200_top ################################################ ##### uvm_version = uvm_1.1d export UVM_HOME = /DigData/shzhang/uvm/uvm-1.1d export UVM_PKG = /DigData/shzhang/uvm/uvm-1.1d/src/uvm_pkg.sv export UVM_EXT_HOME = /tools/edaTools/Cadence/XCELIUM20.09.007/tools/methodology/UVM/CDNS-1.1d ################################################ ##### TOP_FILE = ${cpto_sw_v200_tb_path}/th/cpto_sw_v200_top.sv COMMON_FILE= ${cpto_sw_v200_tb_path}/tt/uvm_plus_arg_def.sv ################################################ ##### tc = cpto_sw_v200_basic_test seed = $(shell date + %s%N | cut -b 12-) fsdb=on vbt = UVM_MEDIUM errnum = 10 gui=off ################################################ ##### TIMESCALE + = -timescale 1ns/100ps #TIMESCALE + = -vtimescale 1ns/100ps ################################################ ##### DFILELIST = -f ./incfilelist.f VFILELIST = -f ./vincfilelist.f CFILELIST = -f ./cfilelist.f ################################################ ##### #compile options SYS_COM_OPTS + = -v2001 -sv -disable_sem2009 SYS_COM_OPTS + = -uvmhome $(UVM_HOME) -uvmexthome $(UVM_EXT_HOME) -uvm $(UVM_PKG) #SYS_COM_OPTS + = -uvmnocdnsextra SYS_COM_OPTS + = -64bit SYS_COM_OPTS + = -notimingcheck SYS_COM_OPTS + = -access + rwc -accessreg + rwc SYS_COM_OPTS + = -genhier SYS_COM_OPTS + = -debug -plidebug -fsmdebug #SYS_COM_OPTS + = -linedebug #SYS_COM_OPTS + = -uvmlinedebug -classlinedebug SYS_COM_OPTS += -parseinfo include SYS_COM_OPTS + = -date SYS_COM_OPTS + = -dumpstack SYS_COM_OPTS + = -negdelay SYS_COM_OPTS + = $(TIMESCALE) SYS_COM_OPTS + = -lwdgen SYS_COM_OPTS + = -dpi SYS_COM_OPTS + = + cli + 3 SYS_COM_OPTS + = -errormax 10 SYS_COM_OPTS + = -relax ################################################ ##### #cov options #COV_COM_OPTS + = -coverage B:E:F:T:U COV_COM_OPTS + = -covfile ./cov_config.ccf ################################################ ##### #USER options USR_COM_OPTS + = -top $(TOP_BENTCH) #USR_COM_OPTS + = -define MACRO ################################################ ##### ################################################ ##### #SIM_OPTS SYS_SIM_OPTS + = -licqueue SYS_SIM_OPTS + = + UVM_TC_CFG_NAME=$(tc) SYS_SIM_OPTS + = -f $(TC_DIR)/$(tc).cfg SYS_SIM_OPTS + = + UVM_VERBOSITY=$(vbt) SYS_SIM_OPTS + = + UVM_MAX_QUIT_COUNT=$(errnum) SYS_SIM_OPTS + = -svseed $(seed) -randwarn COV_SIM_OPTS + = -covoverwrite COV_SIM_OPTS + = -covworkdir $(COV_DIR) COV_SIM_OPTS + = -covbaserun $(tc) WAVE_SIM_OPTS + = + loadpli1=${VERDI_HOME}/share/PLI/IUS/LINUX64/boot/debpli.so:debpli_boot WAVE_SIM_OPTS + = + dump_fsdb=$(fsdb) ################################################ ##### com: @echo "******************************"; @echo "******XRUN Compile Start******" @echo "******************************"; xrun -compile -elaborate \ $(SYS_COM_OPTS) \ $(USR_COM_OPTS) \ $(COV_COM_OPTS) \ $(DFILELIST) $(COMMON_FILE) $(TOP_FILE) $(VFILELIST) $(CFILELIST) \ -l $(SIMDIR)/xrun_compile.log @echo "******************************"; @echo "*******XRUN Compile End*******" @echo "******************************"; #$(WAVE_COM_OPTS) \ ################################################ ##### ################################################ ##### run: @echo "************************************************ *****"; @echo "******Simulation Start:$(tc),$(seed),$(vbt);*******" @echo "************************************************ *****"; xrun -R \ $(SYS_SIM_OPTS) \ $(WAVE_SIM_OPTS) \ $(COV_SIM_OPTS) \ + ntb_random_seed=$(seed) \ -l $(LOG_DIR)/$(tc)/$(tc)_$(seed).log @echo "************************************************ *****"; @echo "******Simulation Start:$(tc),$(seed),$(vbt);*******" @echo "************************************************ *****"; ################################################ ##### ################################################ ##### imc_merge: cd ../cov/imc/cov_work/scope & amp; & amp; \ rm -rf merged* & amp; & amp; \ cd ../../ & amp; & amp; \ imc -execcmd "merge * -overwrite -out merged" ################################################ ##### ################################################ ##### indago: @echo "debug is indago" @cd ./xrun & amp; & amp; indago @echo "Welcom indago!" ################################################ ##### ################################################ ##### Verdi: verdi \ -2001 \ -autoalias \ -sv -ntb_opts uvm-1.1 \ /DigData/shzhang/Project/digital_all/cbb/verification/bt/cpto_sw_v200/tt/uvm_plus_arg_def.sv \ -f ./incfilelist.f \ /DigData/shzhang/Project/digital_all/cbb/verification/bt/cpto_sw_v200/th/cpto_sw_v200_top.sv \ -f ./vincfilelist.f \ -top top \ + libext + .v + .V + .vg + .vb + veo + .h + .sv \ &. ################################################ ##### ################################################ ##### clean: -rm -rf xcelium.d* xrun.key *.history verdiLog *.log -rf -rf novas* -rm -rf $(SIM_DIR)/xcelium.d* $(SIM_DIR)/csrc* $(SIM_DIR)/vc_hdrs.h $(SIM_DIR)/*.log ################################################ #####