IC设计中Makefile的应用
结合自己理解并参考: 与
1. Makefile作用?
-
编写makefile文件本质上是帮组make如何一键编译,进行批处理,makefile文件包含的规则命令使我们不需要繁琐的操作,提高了开发效率。 Makefile可以根据指定的依赖规则和文件是否有修改来执行命令。常用来编译软件源代码,只需要重新编译修改过的文件,使得编译速度大大加快。
2. Makefile应用
-
利用Makefile 实现简单的前端设计流程,包括VCS编译,Verdi仿真,DC综合,后续流程待补充。 目录结构
-
其中dc_script 为dc综合脚本, 参考以前博客,需要修改set_env.tcl中RTL_FILE的路径为自己的设计文件(.v)保存路径。 RTL为自己的设计(.v)文件,flist.f包含所有文件的路径。 Makefile文件如下,参考以前博客。
#use "make" for help
help:
@echo "make help"
@echo "make com to compile"
@echo "make sim to run simulation"
@echo "make clean to delete temporary files"
#need to midify design name
design_name = div_top
fsdb_name = $(design_name).fsdb
# use command "make com" to run vsc and product fsdb file
com:
cd RTL && vcs
-full64
-f flist.f
-debug_all
-l com.log
+v2k -P ${
Verdi_HOME}/share/PLI/VCS/LINUXAMD64/novas.tab ${
Verdi_HOME}/share/PLI/VCS/LINUXAMD64/pli.a
# cd RTL && ./simv -l sim.log +fsdbfile+$(fsdb_name)
#simulation:product fsdb file and sim log
sim: ./RTL/simv
cd RTL && ./simv -l sim.log +fsdbfile+$(fsdb_name)
# use verdi to observe the waveform
verdi:
cd RTL && verdi
+v2k
-f flist.f
-ssf $(fsdb_name) & #use fsdb file
# run dc for synthesize
syn:
cd dc_script && dc_shell -64bit -topographical -f top_syn.tcl | tee -i syn.log
#delete all files except .v and makefile
clean:
#rm -rf `ls | grep -v "Makefile"|grep -v "flist.f" | grep -v ".v" | grep -v "dc_script"`
make -C RTL clean
make -C dc_script clean
/RTL目录下MakeFile
#delete temporary files clean: rm -rf `ls | grep -v "Makefile"|grep -v "flist.f" | grep -v ".v"`
dc_script目录下Makefile
#delete temporary files clean: rm -rf `ls | grep -v "Makefile"|grep -v "script" | grep -v ".*.tcl"`
以下为实际效果:
-
make make com :调用vcs编译 make sim:调用vcs仿真 make verdi 波形,shifrt+l可刷新重新编译结果 make clean 删除所有子目录下的临时生成文件
