在运行一个uvm的环境时,makefile编写如下:
all: clean comp run
clean:
-rm -rf simv* *csrc *.log vc_hdrs.h ucli.key
comp:
vcs -sverilog -debug_all -CFLAGS -DVCS -timescale=1ns/1ps -f filelist.f -l comp.log
run:
./simv -gui -l run.log
当前工作目录下文件包括:
filelist.f makefile my_driver.sv run top_tb.sv
由于存在文件run,所以在运行make run时会存在问题。跟makefile的机制有关,makefile默认的target是文件,在运行时,会首先检测当前目录下是否存在这个文件,如果存在,则会abort掉make 进程,但目标不是文件的话,则会出现up to date的情况。解决的办法就是makefile中的“.PHONY”,上述脚本改为:
.PHONY: run
run:
./simv -gui -l run.log