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 = simvvpdpluse_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-SP2VERDI_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来选择我们需要的波形。或者也可以像教程中写的直接拖动实例化模块(我用自己的工程文件没成功,可能是太菜了)。

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



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部