【makefile】sim_v1.0仿真脚本

makefile是Linux的一种编译脚本,可以帮助使用者更快的运行Linux中的项目。vcs编译和运行时往往需要一长串开关选项,手敲一长串命令显得冗长又容易出错。但将命令都写到makefile里,就可以通过“make target”执行vcs命令等

############################
 ##Filename     : sim.mf
## Description  : Makefile for compiling and running the UVM Platform
## History      : 0
## Author       : Laplace-2023
## Date         : 2023/09/16
## Modification : initial release for xxxx####public config#############
VERBOSITY = UVM_MEDIUM
SYS =
MOD =
TC  =
DF  =
TESTTIMESCALE = 1ps/1ps
SEED := $(shell date +%N)
LSF_QUE = 
HOST =
EXCEL = 0
SVN = 0
DEBUG = NODUMP
IS_REGRESSION = 0
IS_COV = 0
INCDIR = $(SIM_PATH)
SEED_DIR_EN = 0 
UPF = 
USR_CMD = 
############### creat tc dir ##########################
ifeq "$(DF)" ""
        tc_dir = $(TC)
else
        tc_dir = $(TC)_$(DF)
endif
#################select lsf host########################
HOST_QUE=
HOST_CMD=
​
ifeq "$(LSF_QUE)" ""
    HOST_QUE= wx_sz_veri
else 
    HOST_QUE= $(LSF_QUE)
endif
​
ifeq "$(HOST)" "NOLSF"
    HOST_CMD=
else ifeq "$(HOST)" ""
    HOST_CMD=bsub -Ip -P xxxx -q $(HOST_QUE) 
else
    HOST_CMD=bsub -Ip -P xxxx -q $(HOST_QUE) -m $(HOST)
endif
​
​
TEST_CASE = $(SIM_PATH)/tc/$(MOD)/$(TC).sv
VCS_COV= $(SIM_PATH)/vsif/$(MOD)/$(MOD)_vcscov.list
​
​
mk_dir:
  @if [ -d $(tc_dir) ]; then \
    echo $(tc_dir); \
  else \
    mkdir $(tc_dir); \
  fi
​
## coverage #################################################
ifeq ($(IS_COV),1)
    vcs_cov_opt = -cm cond+fsm+tgl+branch+line -cm_hier $(VCS_COV)   
else
    vcs_cov_opt =
endif
## compile vcs  ###############################################
vcs_cmp_opt = +vcs+lic+wait -sverilog -timescale=$(TIMESCALE) -full64 -debug_pp +notimingcheck +nospecify \
              +define+$(DF) -ntb_opts uvm-1.1 \
              +define+$(DEBUG)+UVM_REG_DATA_WIDTH=1024 \
              +incdir+$(SIM_PATH) \
              +incdir+$(INCDIR) $(MY_CMD) -error=IWNF -error=noMPD\
              +libext+.sv+.v+.vp+.vhd+.vh \
              -lca $(vcs_xstate_opt) $(vcs_pwr_sim_cmd) \
              -assert svaext \
              $(vcs_cov_opt) \
              -l vcs_cmp.log \
              -P $(VERDI_HOME)/share/PLI/VCS/LINUX64/novas.tab $(VERDI_HOME)/share/PLI/VCS/LINUX64/pli.a \
              $(TEST_CASE)## sim vcs  #############################################
vcs_sim_opt = +UVM_TESTNAME=$(TC) +UVM_VERBOSITY=$(VERBOSITY) \
              +ntb_random_seed=$(SEED) \
              $(vcs_cov_opt) \
              -l vcs_run.log -reportstats
​
​
#################### self common define #######################
COM_RTL_DEF  = +define+RTLSIM+RTLSIM_MEM+RANDOM_CLK+SIM_COVERAGE_MEM+MEM_MONITOR_NF
#################### filelist & sim_top #######################
VCS_FILE_LIST = -f $(SIM_PATH)/tb/$(MOD)/filelist/$(MOD)_dut_vcs.f
                -f $(SIM_PATH)/tb/$(MOD)/filelist/$(MOD)_sim.f
​
​
vcs_rtl: mk_dir
cd $(tc_dir) && $(HOST_CMD) vcs $(vcs_cmp_opt) $(COM_RTL_DEF) $(VCS_FILE_LIST)
cd $(tc_dir) && $(HOST_CMD) simv $(vcs_sim_opt) $(COM_RTL_DEF)
​
​
help:
@echo "============  sim.mf discription  ================="
@echo "vcs_rtl   : rtl sim with vcs"
@echo " make -f ../script/sim.mf SYS=xxx MOD=xxx TC=xxx vcs_rtl  "
@echo "vcs_rtl_verdi  : open verdi with vcs rtl filelist     "
@echo "make -f ../script/sim.mf SYS=xx MOD=xx TC=xx vcs_rtl_verdi  "
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值