【UG835】1 Vivado中Tcl 对象及其关系

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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipWeaver

觉得有用的话点个赞吧 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值