1.3 第一类 Tcl 对象和关系
Vivado 中的 Tcl 命令直接访问网表、器件和项目中的对象模型。这些模型是Vivado 第一类 (first-class)模型,这代表他们不只是一个字符串表示,它们可以被操作和查询。除了一些例外情况,一般的“things”可以作为对象被查询,这些对象有一些可以查询的属性以及具有帮助获取其他相关对象的关系。
1.3.1 对象类型及定义
Vivado中有很多对象类型,最基本以及最重要的类型是与设计网表中的实体相关的类型,这些类型定义如下:
-
Cell:
Cell是一个实例,可以是网表中的硬件基元(Primitive),也可以是一个层级(hierarchical)。例子包括 flip-flop,LUT,I/O buffer,RAM和DSP。层级实例是其他Cell组合的封装。 -
Pin:
Pin是Cell中的一个逻辑连接点。Pin可以将cell的内部结构抽象出来并简化以方便使用,可以存在层级的或者硬件基元cell中。例子包括clock,data,reset,触发器的输出引脚。 -
Port:
Port是对象边界上的一个连接,用于将内部条目连接到对象的外部。顶层网表或设计中的Port通常连接到die(被封装的集成电路裸片)上的I/O pad,连接到fpga的引脚,并在系统级设计中连接外部与fpga。层次单元、模块或实体内部的Port表示为层次单元上的Pin。 -
Net:
Net是最终在物理上直接连接在一起的导线(wire)或导线列表。网可以是分层的,也可以是平面的,但总是将按Pin列表整理在一起。 -
Clock:
Clock是一种在设计中传播到时序逻辑的周期信号。Clock可以是主时钟域或由时钟原语如DCM、PLL或MMCM生成。一个时钟大致相当于一个TIMESPEC PERIOD约束,是静态时序分析算法的基础。
//------------------------------------begin
也就是说,在Vivado综合或实现后的网表中,Port一般指的是I/O Port,而内部模块的接口用Pin来查询。

//------------------------------------end
1.3.2 查询对象
所有的第一类对象都可以通过Tcl命令get_*进行查询,语法如下:
get_object_type pattern
模式(pattern)是一个搜索模式,包括用层次分隔符来获得限定之下的名称。对象通常通过应用层次结构的每一层的字符串模式匹配进行查询,而且搜索模式还支持通配符样式的搜索模式,以便更容易地找到对象,例如:
get_cells */inst_1
该命令在顶层下的层次结构的第一层中搜索名为inst_1的单元格。要在层次结构的每一层递归地搜索模式,请使用以下语法:
get_cells -hierar

本文详细介绍了Vivado中Tcl对象模型的基本概念,包括对象类型定义、查询方法、属性获取与过滤、对象关系处理等内容。读者将了解到如何通过Tcl命令操作设计网表中的各种对象。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



