【Tessent Shell Users Manual】【Ch3】Design Introspection and Editing(未完待续)

Tessent Shell 提供了一系列用于检查(examining/introspecting)和编辑design的命令。


Design Introspection


Tessent Shell 的 Introspection 命令用于检查设计数据模型中的设计对象。通过这些命令可以访问工具内部的数据结构,可以使你灵活的使用Tcl脚本,并把所有的计算密集型过程放在工具的后台执行。

或者说是对设计数据进行检索,然后使用 Tcl 脚本使定制的设计流程自动化

这些命令作用于对象规范(object specifications),返回值是集合(collections)

【简单来说,Design Introspection 就是获取设计的一些信息,对设计进行编辑等。】


Object Specification Format


Object Specification 列出了特定命令所作用的设计对象(如module、pins、nets等)。

Object Specification 可以是对象的名称、Tcl中的list的名称或者是集合(collection)的名称。

对于用唯一ID的设计对象,如instances,IDs 也可以作为对象名称。

add_schematic_objects命令的几种有效的 Object Specification 的如下所示:

在这里插入图片描述

所有作用于用户指定对象的 Tessent Shell 命令都可以将 Object Specification 作为参数。


Collections


Collections 是对Tcl的一个拓展,专门用于Tessent Shell,Tcl本身的命令(如foreach、puts)等无法识别collections。

collection 表示的是一组设计对象。(设计对象的数量可以是0)

Design Introspection 相关的命令会返回设计对象的 collections。对象保存在工具内部的数据结构中,工具返回 string handle 到 collection中。string handle 由 @ 和数字 ID 构成,例如@1

换句话说,完整数据仍然是保留在工具内部的数据结构中,collections 中的内容类似一个指针。这样 Tcl 接口不会因数据量太大而过载。

在 tessent shell 中直接使用 Design Introspection 相关命令会显示 collection 中前 50 个元素的名称(即设计对象的名称),因为名称比collections 的 ID 更加有用。但是,在非交互模式下(例如执行dofile)名称是不会显示的。

在这里插入图片描述

只有在 Termial 直接使用 Design Introspection 命令的时候才会显示设计对象的命令,其他情况下读取到的都是 string handle。

在这里插入图片描述

如果想要获取 collection 中的设计对象的一些具体信息,就需要配合管理 collection 的其他命令,如下所示:

在这里插入图片描述


使用get_instancesget_name_list命令返回的内容就是对象的 collections,如下所示:

在这里插入图片描述

在该示例中,第一条命令返回了名称的 collection。对象保存在工具内部的数据结构中,工具返回 string handle 到 collection 中。这个时候,puts 命令并不会输出内容。

下面的这个示例中,get_instances 命令创建的 collection 被保存在变量 instCollection 中(这意味着 collection 被引用)。

在这里插入图片描述

当你unset变量instCollection、给变量 instCollection 赋新值或者是Tcl变量引用的集合超范围的时候,Tessent Shell 就会删除该collection。

在下面这种情况中,get_pins 命令创建的 collection 被传递给 get_attribute_value_list 命令。这个 collection 也被引用,但是 Tessent shell 会在get_attribute_value_list返回值的时候删除该collection。

在这里插入图片描述

此外,collection可以引用不存在的对象(使用编辑命令(如delete_pins)删除的对象)。对象被删除之后,内部属性“is_valid”会被设置为false。所有将collection指针作为输入的命令都会自动忽略属性“is_valid”为false的对象。

Collections的持续时间

当Collections被保存在变量中或者是别传递到命令的时候,collection被引用。当collection被不再被引用的时候,工具会自动将其删除。

不能对collection使用Tcl list之外的其他Tcl自身的命令(如foreach等),因为这些命令不会引用collection。

Collections内容的Transcript

get_name_list命令可以返回collection中名称的列表,配合puts等命令就可以将其内容输出到日志文件中。

Tessent Shell提供了一些命令对 collection 进行创建、管理和查询,部分命令如下表所示:

在这里插入图片描述

get_* 这一类命令返回的是 collection,不是使用 TCL 的命令对其进行操作,但是 ger_*_list 返回的就是普通的 list,这个时候是可以使用标准的 TCL 命令对其进行操作的。

Syntax

常用的 collection 相关的命令的语法

foreach_in_collection itr_var collection {
   
   body}

Examples

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值