Tcl:将带方括号的参数传递给过程 (SDC)

Tcl: pass argument with square brackets to procedure (SDC)

提问人:JoshTitle 提问时间:10/1/2023 更新时间:10/1/2023 访问量:41

问:

我想构建一个 SDC 模拟器。 这是我的流程:

proc set_false_path { body ... }
proc get_pins { body ...}

我使用 tcl 内置的“source”来读取 SDC 文件,MY_SDC_FILE.sdc(MY_SDC_FILE.sdc 中有很多文件)

在文件中,有一个命令:

set_false_path -through [get_pins my_pin[1]]

它将报告“无效的命令名称”1“错误

我尝试像“proc 1 { body ...}”一样做 proc,但如果有像 [100000] 这样的情况,则很耗时。 任何修复错误的方法,谢谢。

参数传递 TCL 括号 proc

评论


答:

0赞 Colin Macleod 10/1/2023 #1

您可以通过适当的报价来避免此问题:

set_false_path -through [get_pins {my_pin[1]}]

TCL的报价规则记录在 https://www.tcl-lang.org/man/tcl/TclCmd/Tcl.htm

评论

0赞 JoshTitle 10/1/2023
谢谢,但我不能用 {} 修改 my_pin[1],这个文件来自其他人。
1赞 Colin Macleod 10/1/2023
好吧,尝试一个包含有效 Tcl 代码的文件恐怕不太可能起作用。source
1赞 Colin Macleod 10/1/2023
实际上,你可以用 tcl-lang.org/man/tcl/TclCmd/unknown.htm 做一个黑客来捕捉 、 等的执行,并以某种方式处理它们。[1][100000]
0赞 JoshTitle 10/1/2023
欣赏,它现在可以工作了。