在TCL中将列表制作成集合

问题描述 投票:0回答:3

我想从列表创建一个集合。

friends1
是姓名列表。

我正在尝试做:

    set friends2 ""          
    foreach frnd $friends1 {
        append_to_collection friends2 $frnd
    }

错误:参数“object_spec”至少需要一个集合 当“集合”参数为空时追加到集合(SEL-014)

有什么想法吗?谢谢!

collections tcl synopsys-vcs
3个回答
1
投票

我相信 Synopsys 集合只能由 Synopsys 对象组成,例如网络、引脚等。Friend 不是 Synopsys 对象...但假设您有 Synopsys 对象名称列表,您可以使用相应的“get”函数将列表变成集合。

set col_of_nets [get_nets $nets]
set col_of_pins [get_pins $pins]
...

要向后移动(集合到名称列表),请使用 get_object_name。

set names_of_nets [get_object_name $col_of_nets]
...

1
投票

这是老问题了。但仍然没有得到答复。

您需要先创建一个集合才能追加到它。

这是一个关于如何操作的简短视频...

https://www.usessionbuddy.com/user/vlsicoder/termtosvg_v6ai8tfv.svg/


0
投票

如果有人登陆这里使用 Innovus 脚本,

append_to_collection
只能将对象附加到集合。所以首先让你的
friend2
成为一些东西的集合。

例如,如果您的

frnd
是一个 pin 对象。

set friend2 [get_pin <pin_name>]  ;# Create a collection of PIN first
foreach frnd $friend1 {
    append_to_collection friends2 $frnd
}

或者,如果您

friend1
已经是一个收藏了。

set friend2 [get_pin <pin_name>]
foreach_in_collection frnd $friend1 {
    append_to_collection friends2 $frnd
}
© www.soinside.com 2019 - 2024. All rights reserved.