由于某种原因,我需要在 tcl 中将 foreach_in_collection (SDC 命令)重建为“foreach”。
这是快照代码:
proc set_disable_timing { argv } { body ... }
proc get_cells { argv } { body ... }
这里有一个过程“foreach_in_collection”,我尝试像 foreach 一样构建:
proc foreach_in_collection {item collection script } {
foreach collection $collection_list {
uplevel [list set $item $collection]
uplevel 1 $script
}
}
我的源文件包含如下代码
set all_cells [get_cells -hier my_cell*]
foreach_in_collection cell $all_cells {
set_disable_timing $cell
}
但是 tcl 报告无效命令“-hier” 如何解决问题
看起来就是你想要的
proc foreach_in_collection {item collection script } {
upvar x $item
foreach x $collection {
uplevel $script
}
}
当
x
设置为 foreach_in_collection 中的值时,cell
也会在调用 foreach_in_collection 的上下文中设置为相同的值。
然后当您
uplevel $script
时,即使用正确的值调用set_disable_timing。