Cadence Xrun UVM Makefile

#
#--==============================================================
#-- 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 && \
    rm -rf merged* && \
    cd ../../ && \
    imc -execcmd "merge * -overwrite -out merged"
#######################################################

#######################################################
indago:
    @echo "debug is indago"
    @cd  ./xrun && 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
#######################################################

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值