sim script

仿真脚本

Makefile文件,如果需要使用,需要改动到自己项目中。

ifeq ($(mode), )
	MODE= rtl_sim
else
	MODE= $(mode)
endif

ifeq ($(findstring chip_top,$(mode)),chip_top)
	FLIST = chip_top_sim
	TOP_MODULE = chip_top_tb
	VDEF+= +notimingcheck
	VDEF+= +nospecify
endif

ifeq ($(findstring syn_pre,$(mode)),syn_pre)
	FLIST = rtl_sim_pre_gate
	TOP_MODULE = dig_top_tb
	VDEF+= +notimingcheck
	VDEF+= +nospecify
endif

ifeq ($(findstring rtl,$(mode)),rtl)
	FLIST = rtl_sim
	TOP_MODULE = dig_top_tb
	VDEF+= +notimingcheck
	VDEF+= +nospecify
endif

VDEF+= +define+DUMP_FSDB
VDEF+= +define+YOUR_DEF

ifeq ($(findstring syn_post,$(mode)),syn_post)
	FLIST= dig_top_post
	TOP_MODULE = dig_top_tb
	VDEF+= +optconfigfile+notimingcheck.cfg
	VDEF+= +define+SYN_POST
	VDEF+= +sdfverbose +neg_tchk -negdelay
endif

ifeq ($(findstring syn_post_ff,$(mode)),syn_post_ff)
	VDEF+= +define+POST_FF
endif

ifeq ($(findstring syn_post_tt,$(mode)),syn_post_tt)
	VDEF+= +define+POST_TT
endif

ifeq ($(findstring syn_post_ss,$(mode)),syn_post_ss)
	VDEF+= +define+POST_SS
endif

COMP_OPT+= -l ${MODE}/log/uvm_comp.log
COMP_OPT+= -o ${MODE}/exec/simv
RUN_OPT+= +dumpfsdb
RUN_OPT+= -l ${MODE}/log/${TOP_MODULE}.log
RUN_OPT+= -ucli -do ${WAVE_DO_FILE}

ifeq ($(findstring vcd,$(mode)),vcd)
	WAVE_DO_FILE=./${TOP_MODULE}_vcd.do
	RUN_OPT+= -vcd ${MODE}/wave/${TOP_MODULE}.vcd
	WAVE_FILE= vcd
else
	WAVE_DO_FILE=./${TOP_MODULE}_fsdb.do
	RUN_OPT+= -vcd ${MODE}/wave/${TOP_MODULE}.vcd
	WAVE_FILE= fsdb
endif

run:comp
	./${MODE}/exec/simv	\
	${RUN_OPT}	\
	echo "${MODE}/log/{TOP_MODULE}.log"

comp:check_dir
	vcs -sv	\
	-nc	\
	-Mupdate +vcs_lic+wait \
	-timescale=1ns/1ps \
	-negdelay \
	-lca \
	-debug_region+cell\
	-j4 \
	-full64 \
	-debug_access+all \
	-P $VERDI_HOME/share/PLI/VCS/LINUX64/novas.tab \
	${VERDI_HOME}/share/PLI/VCS/LINUX64/pli.a \
	-f ../flsit/${FLIST}.f \
	${VDEF} \
	${COMP_OPT} \
	+lint=TFIPC-L \
	+lint=PCWM \
	+v2k

vd:
	novas -sv \
	-f ../flist/${FLIST}.f \
	${VDEF} \
	-preTitle ${MODE} \
	-top ${TOP_MODULE} \
	-ssf ${MODE}/wave/$TOP_MODULE.$WAVE_FILE \
	-sswr ${TOP_MODULE}.rc \
	&

clr:
	-rm -rf simv* csrc ucli.key 
	@rm ${MODE} -rf

check_dir:
	if [ ! -d ./${MODE} ]; then mkdir ${MODE} ${MODE}/exec ${MODE}/log ${MODE}/wave ; fi

wave.do文件

fsdb文件

##dig_top_tb.do
call \$fsdbDumpvars 0 "dig_top_tb"
run

vcd文件

call \$dumpvars 0 "dig_top_tb"
run
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值