VCS 和Verdi 联合仿真Makefile

记录一下使用VCS和Verdi联合仿真的Makefile:

  • 先上代码
#tb.v must include this part:

#initial begin 
#    $fsdbDumpfile("fifo.fsdb");
#    $fsdbDumpvars(0);
#end
#after above,we also need $stop to finish dump in initial bolck.
#************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 =  filelist
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_HOME = /opt/synopsys/verdi/Verdi_O-2018.09-SP2

VERDI_SW = -P $(VERDI_HOME)/share/PLI/VCS/linux64/novas.tab \
		$(VERDI_HOME)/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:
run_vcs:
	$(NOR_VCS) $(VERDI_SW) $(RUN_VER)
 
vd:
	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

以上代码来自于这两篇文章,写的非常好,感谢大佬们。我只是搬运工,然后自己修改了一下。
Makefile脚本启动VCS+Verdi
VCS+Verdi联合仿真教程

直接输入make run_vcs 和make vd即可运行。

使用中的一些问题

  • filelist.f的生成
# 可将某路径下的 .v文件添加到filelist中
find [文件路径] -name "*.v"  > filelist.f

#如果还需添加其他文件,如test.txt。 >> 可在不删除内容的情况下添加文件
find [文件路径] -name "*.txt"  >> filelist.f
  • tb文件

testbench 中须添加这部分,此外最好加上$stop 命令,不然会一直dump下去。

#initial begin 
 	 $fsdbDumpfile("top.fsdb");
 	 $fsdbDumpvars(0);
end
  • 环境配置的问题

VERDI_HOME 指定了verdi的安装路径,需要根据自己的需要进行更改。

  • VCS license的问题

遇见了已经加了环境变量,在启动时还是提示VCS没有license的问题,一定要正确 source ~/.barshrc,并备份原有的.bashrc文件。

  • verdi波形需要拖动或选择

执行完上述命令后,我们只是生成了fsdb文件,并打开了verdi,需要在波形仿真界面选择signal-> get signals来选择我们需要的波形。或者也可以像教程中写的直接拖动实例化模块(我用自己的工程文件没成功,可能是太菜了)。

才开始学,暂时就是这样,以后有了问题再写…


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值