问题描述
1.进入dc后运行tcl脚本,总是提示 "can't open scripts xxxx:",使用ls -l 查看脚本权限发现均为rwx;
解决方法:进入dc后,使用source+路径+文件名的命令,如:
/work目录下有三个文件夹,分别为/scripts, /srl, /reports,运行/scripts下的run.tcl文件:
dc_shell> source ./scripts/run.tcl
注意:在dc中也可使用cd命令,但使用cd进入scripts目录后直接source文件仍存在上述问题;
2.tcl脚本中使用read_verilog或analyze读取多个verilog文件,总是提示 "can't open files xxxx:"
解决方法:使用大括号列表的形式,如:
read_verilog{……}
或
analyze -format verilog {./src/a.v
./src/b.v
./src/c.v
./src/d.v}
注意:
1.多个文件之间不需要加符号分隔,只需一个文件一行即可;
2.tcl脚本中verilog源文件的路径是相对dc运行的路径而言的。比如文件结构为/mywork/src/a.v,在/mywork目录下运行dc,脚本位置在/mywork/scripts/run.tcl,那么脚本中指明verilog源文件的位置应当是相对于/mywork的,故为./src/a.v而非…/src/a.v.
3.analyze和read的区别:read后还需要link和current_design操作,以指明顶层模块;analyze则和elaborate连用,且可指定参数例化顶层(parameter)。
3.运行dc后会在目录下产生大量的中间文件,难以管理;
解决方法:
在脚本中加入以下内容:
file mkdir ./work
define_design_lib WORK -path ./work
这样会在dc运行目录下自动生成一个文件夹work,中间文件将存储在这里。
后续继续补充~