当前位置:   article > 正文

Vivado Objects的解释_vivado怎么添加变量到objects

vivado怎么添加变量到objects



objects的基本概念

objects的系统框图
 cell 可以是 verilog 中实例化后的模块,也可以是一些 LUT、DSP48E 等资源,它们有相应的pin,pin 与 pin 之间的连线为 net,port 与 pin 不同,port 是 FPGA 和外部打交道的管脚。 每个 port 都会占用一个 FPGA 的外部管脚,称为 package pin,每个 package pin 都在 IO BANK 中。
 下面是五个常用的 TCL 命令,它们都有一些常用的共同参数,下面分别介绍:
五种常见的TCL命令及参数
 上图也可以看出,-hierarchical 课可以简写为 -hier, -of_objects 可以简写为 -of,-filter 的意思是过滤出符合条件的 objects

-of_objects

objects之间的关系
Example_1:
实例
get_cells -of [get_nets -of [get_pins -of [get_cells wbDataForInput_IBUF_inst] -filter {DIRECTION == OUT}]]
 结果:wbDataForInputReg_reg validForEgressFifo_reg[o]_i_1 wbDataForInput_IBUF_inst
 先是通过 get_cells wbDataForInput_IBUF_inst 找到图中 IBUF 这个 cell,然后获得其 pin:get_pins -of [get_cells wbDataForInput_IBUF_inst] -filter {DIRECTION==OUT},注意这里有一个过滤条件,是通过 cell 找到 pin,这个 pin 是输出的 pin;
 通过 pin 去找到 net:[get_nets -of [get_pins -of [get_cells wbDataForInput_IBUF_inst] -filter {DIRECTION == OUT}],找到上面蓝色的 net,最后通过 net 找到与之相连的 cell:
 get_cells -of [get_nets -of [get_pins -of [get_cells wbDataForInput_IBUF_inst] -filter {DIRECTION == OUT}]]
 得到三个与之相连的 cells:
 wbDataForInputReg_reg validForEgressFifo_reg[o]_i_1 wbDataForInput_IBUF_inst
 下面继续举例,如何使用参数 -of_objects
Example_2:
实例
 先指定蓝色 cell,get_cells demuxState_reg,使用 Tcl 命令 get_pins -of 获得它的 pins:
 get_pins -of [get_cells demuxState_reg],得到下面绿色框内的 pins;
实例
 再获得指定 pin 的 cell,通过下面的 Tcl 命令找到响应 pin 的 cell:
 get_cells -of [get_pins demuxState_reg]
实例
 通过特定的 net 找到相应的 cell:
实例
 下面的例子方法相同:
实例
在这里插入图片描述
实例

hierarchical

-hier 表示按层次寻找
-hier 参数含义
例如:
 Tcl 命令: get_cells {A* B*}
 注意 A 后面的 * 是通配符,使用上面的 Tcl 命令后就得到
 A B 这两个模块。结果可以看出,它只从顶层寻找,并没有再往下找:
 如果使用参数 -hier,例如下Tcl命令: get_cells -hier [A* B*]
 得到: A A/A1 A/A2 B B/B1 B/B2
 如果使用分隔符“/”呢?
 例如 Tcl 命令: get_cells B/*
 很容易想到得到如下结果: B/B1 B/B2
 注意,分隔符和参数 -hier 不能同时使用,如果同时使用,就会找不到与之匹配的模块,上图中有示意。
 最后讲下带有参数 -filter 的 Tcl 命令,用于过滤出一些符合条件的模块显示出来:
 例如 Tcl 命令:get_cells -hier -filter {NAME =~ B}
 就会得到: B B/B1 B/B2
 最后需要注意的是 B2 的实例化名字为:
-hier 参数含义

I/O PORT

I/O PORT含义和例子

I/O BANK和PACKAGE PIN

在这里插入图片描述

I/O BANK和Package Pin含义和例子


在工程中实际使用

pRRU5614使用TCL获取信息(net\pin\cell)
pRRU5614使用TCL获取信息(net\pin\cell)
pRRU5614使用TCL获取信息(net\pin\cell)
 上图中 clk_out1_clk_wiz_jesd 为 wrclk,I_LVDS_RXCLK_P[1] 为 rdclk。


 pRRU5614 使用 TCL 获取信息(ports):
pRRU5614使用TCL获取信息(ports)
pRRU5614使用TCL获取信息(ports)

pRRU5614使用TCL获取信息(ports)
pRRU5614使用TCL获取信息(ports)
pRRU5614使用TCL获取信息(ports)
pRRU5614使用TCL获取信息(ports)


 pRRU5614 使用 TCL 获取信息(iobanks):
pRRU5614使用TCL获取信息(iobanks)
pRRU5614使用TCL获取信息(iobanks)


 pRRU5614使用TCL获取信息(package_pins):
pRRU5614使用TCL获取信息(package_pins)


总结

 介绍了 Xilinx 中 sch 的基本结构的实际名称,例如 LUT、BRAM、FIFO 等都可以是 cell,而 cell 的 input/output 管脚称为 pin,工程中顶层的 IO 为 port,其中相互连接的是 net,驱动这些 cell 的是 clock,而实际上这些资源都是分布在 bank 和 package_pin 中。
 我们可以利用 get_XXX 命令来获取 nets/cells/clocks/ports/pins/iobanks/package_pins,结合 -filter -of -hier 等参数可以获取关键信息,例如可以获取整体设计的所有 IO(ports),然后通过这些 IO 查找到其连接到的 cell 和相关 pin,也可以获取到管脚的 planning信息,例如所属 bank(iobanks)、其电平标准(package_pins)。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号