数字IC前端设计——DC综合篇(生成filelist.f)
在数字IC前端设计流程中,很多时候(DC、VCS等)需要生成rtl的filelist.f,而不是在编译指令的时候输入大量的.v或是.sv文件。下面提供一个脚本用于生成该filelist文件。核心在于采用find指令输出v和sv文件重定向到filelist.f中。
set RTL_PATH "../rtl/"
# -o means or
sh find $RTL_PATH -name "*.v" -o -name "*.sv" > ../output/filelist.f
对于多个路径下的设计文件,可以使用重定向追加(>>)至filelist.f中。
set RTL_PATH1 "../rtl1/"
set RTL_PATH2 "../rtl2/"
sh find $RTL_PATH1 -name "*.v" -o -name "*.sv" > ../output/filelist.f
sh find $RTL_PATH2 -name "*.v" -o -name "*.sv" >> ../output/filelist.f
NOTE:重定向(>)会覆盖源文件,重定向(>>)不会覆盖原文件。
DC下读取filelist.f文件
核心要点是使用cat指令将filelist.f中的文件路径按字符串的格式输出到RTL_FILES中。
set DESIGN_NAME "top"
sh find $RTL_PATH -name "*.v" -o -name "*.sv">./output/filelist.f
set RTL_FILES [sh cat ./results/filelist.f]
# 指定工作路径work
define_design_lib work -path ./work
analyze -format sverilog $RTL_FILES
elaborate $DESIGN_NAME
current_design $DESIGN_NAME
link