2

嗨,我想知道如何将集合转换为tcl 中的列表。我得到的输出是集合的形式,但我想将其更改为列表。

4

3 回答 3

9

假设您正在使用一些 synopsys 工具:

  set MyList [get_object_name $MyCollection]

以上应该将您的收藏转换为列表。

于 2014-09-02T13:57:45.317 回答
8

通常我们在从使用 TCL 的某些工具(例如来自 synopsys 的设计编译器)中转储/查询数据时使用集合。这些集合看起来像列表,但普通列表命令无法访问。要访问它们,您需要使用“foreach_in_collection”命令并需要使用 get_object_name(或等效命令)并需要构建 get_object_name 输出的列表(lappend)。从此列表中,您可以使用所有 TCL 列表操作。

foreach_in_collection 和 get_object_name 是特定于工具的命令,在 TCL 中找不到,它们只能通过工具界面运行。

希望这可以帮助。

于 2013-07-31T13:27:53.393 回答
6

用户很可能在谈论 Synopsys Tcl“集合”——由 Synopsys 等 EDA 供应商提供的扩展,用于支持其 Tcl API 中的对象列表。

我迟到了,但这个简单的过程是你大部分时间想要的。请注意,由于您要将集合映射到对象“名称”列表,因此您会丢失此映射的信息:

proc col2list { col } {
   set list ""
   foreach_in_collection c $col { lappend list [get_object_name $c] }
   return $list
}
于 2014-09-16T18:42:13.027 回答