运行 使用 TCL 脚本对多个文件执行命令

Running a command on multiple files using TCL script

我正在使用某种工具 (Synopsys Design Vision),我是 运行 通过使用 TCL 脚本。

命令是这样的

analyze -library work -format verilog {/user/codes/abcd.v }

现在我有一个包含 5000 个 .v 扩展名文件的文件夹,这些文件的名称为 abcd_1、abcd_2、abcd_3.....abcd_5000。现在我想自动化脚本,以便该命令适用于每个文件。

我试过这样做

for { set a 1}  {$a < 5001} {incr a} {
analyze -library work -format verilog {/user/codes/abcd_$a.v }
#other commands
.
.
}

但是,它不工作并且出现错误。我没有那么多地使用 tcl 脚本。

请指出我哪里出错了,我该怎么做才能让它发挥作用。谢谢。

简而言之,使用引号而不是大括号,因为后者可以防止 variable substitution 发生:

for {set a 1}  {$a < 5001} {incr a} {
  analyze -library work -format verilog "/user/codes/abcd_$a.v"
  # ...
}

但是,您可能还想检查 file 命令到 assemble 文件路径。