示例一:
#************parameter input************* #※prepare the source list file and then make add the soucefile name #for example ,the Verilog source file's name is vlog_list.f then :make norsim src_list=file_list src_list = sim simv_name = simv vpdpluse_name = vcdpluse cov_file_name = coverage vdb_name = $(simv_name) #************constant command************ #compile NOR_VCS = vcs -full64 -sverilog +v2k -timescale=1ns/1ns \ -debug_all \ +notimingcheck \ +nospecify \ +vcs+flush+all \ -o $(simv_name) \ -l compile.log \ -f $(src_list).f #coverage compile switch COV_SW = -cm line+cond+fsm+branch+tgl #verdi dump wave compile option VERDI_SW = -P /opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/novas.tab \ /opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/pli.a #run option RUN_GUI = -R -gui -l run.log RUN_VPD = -R +vpdfile+$(vpdpluse_name).vpd -l run.log RUN_COV = -R $(COV_SW) -cm_name $(vdb_name) -cm_dir ./$(cov_file_name) -l run.log RUN_VER = -R +fsdb+autoflush -l run.log #************command************ #normally sim norsim: $(NOR_VCS) $(RUN_GUI) #post-process postsim: $(NOR_VCS) $(RUN_VPD) dve -vpd $(vpdpluse_name).vpd #coverage covsim: $(NOR_VCS) $(COV_SW) $(RUN_COV) dve -covdir $(cov_file_name).vdb #verdi versim: $(NOR_VCS) $(VERDI_SW) $(RUN_VER) verdi -sv -f $(src_list).f -ssf *.fsdb -nologo #rm clr: rm -rf *csrc ./*.daidir $(simv_name) *simv* DVE* ucli* *.vpd *.vdb *.log *.fsdb *novas* *.dat *Log *rc *conf
示例二:
.PHONY:comp run_dve run_verdi clean VCS = vcs -sverilog -timescale=1ns/1ns +vpi -l build.log -debug_pp +v2k -fsdb -full64 \ -ucli -i ucli_dump_fsdb.tcl \ -LDFLAGS -rdynamic \ -vcs+lic+wait \ -P /opt/Synopsys/Verdi2015/share/PLI/VCS/LINUX64/novas.tab \ /opt/Synopsys/Verdi2015/share/PLI/VCS/LINUX64/pli.a \ -Mupdate -R ifndef TB_SEED TB_SEED = 500 endif all:comp run_dve run_verdi comp: $(VCS) +define+TB_SEED=$(TB_SEED) +incdir+. \ adder8.v \ tb_adder8.v run_dve: dve -vpd vcdplus.vpd & run_verdi: verdi -f file.f -ssf top.fsdb -nologo -sv &
示例三:
vcs: vcs -sverilog\ +incdir+../dv\ +incdir+../de\ -f filelist/filelist_dv.sv\ -debug_pp\ -full64\ -timescale=1ns/1ns \ +define+CASE_FILE=\"case0.sv\"\ -l compile.log\ +define+CASE_INST="case0"\ -Mupdate -R \ +v2k\ -LDFLAGS -rdynamic \ -ucli -i ucli_sramc.tcl\ -fsdb \ -l sim.log verdi: verdi -top tb_top\ +incdir+../dv\ +incdir+../de\ -sverilog\ +define+CASE_FILE=\"case0.sv\"\ +define+CASE_INST="case0"\ -ssf sramc_tb.fsdb\ -f filelist/filelist_dv.sv\ -nologo \ & clean: ls \ | grep -v makefile \ | grep -v spyglass \ | grep -v filelist \ | grep -v ucli_sramc.tcl \ | xargs -I {} rm {} -r
示例四:
#-----------------------------------------------------------------------# #※prepare the source list file and then make add the soucefile name #for example ,the Verilog source file's name is vlog_list.f then :make norsim src_list=file_list .PHONY: verdi clean covsim norsim postsim mkdir default #-----------------------------------------------------------------------# rtl_list := ./file simv_name := simv vpdpulse_name := vcdpulse cov_file_name = coverage vdb_name = $(simv_name) date = $(shell date '+%Y-%m-%d_%H:%M:%S') #************constant command************ #compile VCS_OPTION = vcs -full64 \ -sverilog +v2k \ -timescale=1ns/1ps \ -debug_pp \ +notimingcheck \ +nospecify \ +vcs+flush+all \ -o $(simv_name) \ -f $(rtl_list).f \ -LDFLAGS -rdynamic \ -l ./output/$(date)/$@_compile.log #----------------------------------------------------------------------# #coverage compile switch COV_SW = -cm line+cond+fsm+branch+tgl VERDI_LIB = -P /opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/novas.tab \ /opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/pli.a #run option RUN_GUI = -R -gui -l ./output/$(date)/$@_run.log RUN_VPD = -R +vpdfile+$(vpdpulse_name).vpd -l ./output/$(date)/$@_run.log RUN_COV = -R $(COV_SW) -cm_name $(vdb_name) -cm_dir ./output/$@_$(cov_file_name) -l ./output/$(date)/$@_run.log RUN_VER = -R +fsdb+autoflush -l ./output/$(date)/$@_run.log #----------------------------------------------------------------------# default: mkdir $(sort $(strip $(tc))) #----------------------------------------------------------------------# #normally sim norsim: $(VCS_OPTION) $(RUN_GUI) #----------------------------------------------------------------------# #post-process postsim: $(VCS_OPTION) $(RUN_VPD) dve -vpd $(vpdpulse_name).vpd -full64 & #----------------------------------------------------------------------# #coverage covsim: $(VCS_OPTION) $(COV_SW) $(RUN_COV) dve -covdir $(cov_file_name).vdb #----------------------------------------------------------------------# #dve $(sort $(strip $(tc))): $(VCS_OPTION) $(RUN_VPD) dve -vpd $(vpdpulse_name).vpd -full64 & #----------------------------------------------------------------------# #verdi verdi: $(VCS_OPTION) $(VERDI_LIB) $(RUN_VER) verdi -sv -f $(rtl_list).f -ssf *.fsdb -nologo & #mkdir mkdir: -mkdir ./output/$(date) #----------------------------------------------------------------------# #rm clean: rm -rf *csrc ./*.daidir $(simv_name) *simv* DVE* ucli* *.vpd *.vdb *.log *.fsdb *novas* *.dat *Log *rc *conf # -mkdir ./output/$(date) #----------------------------------------------------------------------#