vcs makefile

主要参考:

VCS使用Makefile教程_vcs makefile-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_45243340/article/details/129255218?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170524049516800227431373%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170524049516800227431373&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-129255218-null-null.142^v99^pc_search_result_base3&utm_term=vcs%20%20makefile&spm=1018.2226.3001.4187基于vcs2018,写了一个小module,编译通过,执行正常。

如下:

.PHONY : comp sim clean 
#当使用make命令行指定此目标时,这个目标所在规则定义的命令、无论目标文件是否存在都会被无条件执行。
PROJECT = test
UVM_VERBOSITY = UVM_LOW
DEBUG = 
#-debug/-debug_all/-debug_pp (在这里可以对debug的命令进行选择)
#-debug    —— (对应TB中的$vcdpluson加载波形函数)使能DVE、VERDI波形调试和UCLI命令行调试等;
#-debug_all  —— 使能所有的debug调试功能;
#-debug_pp  —— 同-debug_all,但是更加节约资源;
CM_PATH = ./ #指定覆盖率文件放置的路径

comp : 
	vcs \
	-kdb \
	-sverilog \
	+v2k \
	-timescale=1ns/10ps \
	$(DEBUG) \
	-f filelist \
	+vcs+lic+wait \
	-full64 \
	-LDFLAGS -Wl,--no-as-needed \
	-l compile.log 
sim :
	./simv  \
	+fsdb+autoflush \
	-l sim.log

clean	:
	rm -rf *.log simv *.daidir csrc *.key DVEfiles *.vpd 
#
#	-ucli \#使能UCLI命令
#	-lca \# vcs参数,表示使用vcs“用户限制使用”功能,即vcs提供的一些功能,但该功能还未经过充分验证。
#	-kdb \# Knowledge Database (KDB),生成kdb.elab++,位于simv.daidir目录下
#	-sverilog \#  编译支持SystemVerilog语法;
#	+v2k \# 编译支持Verilog—2001语法;
#	-timescale=time_unit/time_precision \# 添加仿真时间单位、精度;
#	$(DEBUG) \#
#	-ntb_opts uvm \# —— 常用参数uvm,这里表示加载uvm库文件
#	-f filename  \#   —— 指定源文件的路径名列表
#	-cm line|cond|fsm|tgl|branch|assert\# —— 覆盖率收集,常用命令 -cm line+cond+fsm+tgl
#	-cm_dir $(CM_PATH) \#  —— 指定覆盖率文件放置的路径
#	+vcs+lic+wait \#—— 当所有的license都不可用时,等待vcs的license
#	-full64 \# 以64位模式编译设计并创建64位可执行文件用于64位模式下的模拟,如果不加上这个option,在仿真时,当出现内存超过4GB时,仿真会停止,但出现内存超过4GB可能是正常现象。
#	-o $(PROJECT)   \#  ——指定编译后产生的文件名,默认编译后的文件名为simv,在这为PROJECT指定的名字
#	-l compile.log \# 生成编译的日志
#sim :
#	./simv  \
#	+fsdb+autoflush \ # 命令行参数autoflush,一边仿真一边dump波形,如果没有该参数,那么不会dump波形,需要在ucli命令run 100ns后键入fsdbDumpflush才会dump波形


只需要在当前文件夹下创建一个filelist,把待编译的文件都列进去即可。

不过我用这个vcs2018,如果带着uvm编译会报错,不知道咋解决,后续再看吧。

 #error “UVM_ERROR: THIS VERSION OF VCS DOESN’T SUPPORT VCSMX_FAST_UVM.

你可能感兴趣的:(笔记,vcs,makefile)