前言

经过前两篇关于ports以及pins的用法讲解,自然而然大概可以猜出cells的使用方法了?
盲猜应该是get_cells类似的语法,其实正是如此。
先给出其他几篇博文的地址:

逻辑设计中复位的稳妥处理方法?

逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗?

TCL中关于管脚(Ports)的一些使用方法?

TCL中关于Pins的一些使用方法?

正文

同理给出一张示意图,再次声明cell的位置:


可见,cell的引脚是pin,我们上篇博文中的pins都是cell上的pins,也就是模块的引脚。
如果模块是顶层模块,那模块的引脚也称为管脚,叫做ports,具有具体的位置信息。

同样先以wavegen示例工程为例,我们来讲解有关cells的一些用法:

  1. 获取模块所有的cells,get_cells:
get_cells
IBUF_rst_i0
IBUF_rxd_i0
OBUF_dac_clr_n
OBUF_dac_cs_n
OBUF_led_i0
OBUF_led_i1
OBUF_led_i2
OBUF_led_i3
OBUF_led_i4
OBUF_led_i5
OBUF_led_i6
OBUF_led_i7
OBUF_spi_clk
OBUF_spi_mosi
OBUF_txd
char_fifo_i0
clk_gen_i0
clkx_nsamp_i0
clkx_pre_i0
clkx_spd_i0
cmd_parse_i0
dac_spi_i0
lb_ctl_i0
lb_sel_pin_IBUF_inst
resp_gen_i0
rst_gen_i0
samp_gen_i0 samp_ram_i0
uart_rx_i0 uart_tx_i0

可见获得的cell都是例化名,而不是模块本身的名字,这也提醒我们如果模块就一个的话,用模块名作为例化名是不是更好识别一点(也不见得如此,关键看代码风格,以及公司规定之类)。

还可以看出,cells不仅包含用户定义的模块,还包含用户例化的原语等。

  1. 获取具有特定字符的cell:

例如获取带有clk字符的cell:

get_cells *clk*
OBUF_spi_clk
clk_gen_i0
clkx_nsamp_i0
clkx_pre_i0 clkx_spd_i0
  1. 获取cell的属性:

例如上面我们得到了好多带有clk字符的cell,那么我们获取任意一个的属性:

set inst [get_cells clk_gen_i0]clk_gen_i0report_property $instProperty         Type    Read-only  Value
CLASS            string  true       cell
FILE_NAME        string  true       E:/A1_PRJ/blog_prj/wave_gen/wave_gen.srcs/sources_1/imports/Sources/kintex7/wave_gen.v
IS_BLACKBOX      bool    true       0
IS_DEBUGGABLE    bool    true       0
IS_MATCHED       bool    true       0
IS_ORIG_CELL     bool    true       1
IS_PRIMITIVE     bool    true       0
IS_REUSED        bool    true       0
IS_SEQUENTIAL    bool    true       0
LINE_NUMBER      int     true       206
NAME             string  true       clk_gen_i0
PRIMITIVE_COUNT  int     true       69
REF_NAME         string  true       clk_gen
REUSE_STATUS     enum    true       

用的指令是从ports开始就使用过的:

set inst [get_cells clk_gen_i0]

report_property $inst

  1. 获取包含特定字符的触发器:
    下面展示部分:
get_cells -hier -filter {REF_NAME == FDRE} *samp*clkx_nsamp_i0/bus_samp_src_reg[0] clkx_nsamp_i0/bus_samp_src_reg[10] clkx_nsamp_i0/bus_samp_src_reg[1] clkx_nsamp_i0/bus_samp_src_reg[2]
# 内容太多,不一一展示

我觉得这么多就够了,其他的例如:

获取所有的时序单元逻辑
get_cells -hier -filter {IS_SEQUENTIAL == 1}

获取模块uart_rx_i0下两层的LUT3
get_cells -filter {REF_NAME == LUT3} uart_tx_i0//*

可自行尝试。

TCL中关于Cells的一些使用方法?相关推荐

  1. TCL中关于Pins的一些使用方法?

    前言 Ports,Pins,Cells,nets以及clock都是FPGA中模块的关键组成部分,地位差不多,tcl中对它们的操作也大同小异. 给出前几篇文章列表,便于查询: 逻辑设计中复位的稳妥处理方 ...

  2. TCL中Ports/Pins/Nets/Cells/Clocks之间的交互关系?

    前言 先给出近期文章列表: 逻辑设计中复位的稳妥处理方法? 逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗? TCL中关于管脚(Ports)的一些使用方法? TCL中关于Pins的一些使用方 ...

  3. TCL中关于Nets的一些用法?

    前言 往期博文: 逻辑设计中复位的稳妥处理方法? 逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗? TCL中关于管脚(Ports)的一些使用方法? TCL中关于Pins的一些使用方法? TC ...

  4. Py之pandas:pandas的read_excel()函数中各参数说明及函数使用方法讲解

    Py之pandas:pandas的read_excel()函数中各参数说明及函数使用方法讲解 目录 pandas的read_excel()函数中各参数说明及函数使用方法讲解 read_excel()函 ...

  5. python tcl 控件_在Tkinter.Tcl()中使用Python函数

    >我有一堆Python函数.我们称他们为foo,bar和baz.它们接受可变数量的字符串参数,并执行其他复杂的操作(如访问网络). >我希望"用户"(让我们假设他只熟悉 ...

  6. TCL语言笔记:TCL中的String命令

    一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.strin ...

  7. c#中datagridview里checkbox的使用方法[转]

    c#中datagridview里checkbox的使用方法[转] view plaincopy to clipboardprint? 1.属性设置checkboxcolumn     name:cb_ ...

  8. TCL中变量嵌套使用

    TCL中变量嵌套使用 在使用多重嵌套变量时候,因为 {} 对于tcl来说属于非运算符号,因此在使用变量嵌套,直接调用会出现问题 即变量不能正确调用: set mm_list "0 1&quo ...

  9. python返回绝对值的函数_Python中用于返回绝对值的abs()方法

    Python中用于返回绝对值的abs()方法 方法abs() 返回x的绝对值,-x-零之间的(正极)的距离. 语法 以下是abs()方法的语法: abs( x ) 参数 x -- 这是一个数值表达式 ...

最新文章

  1. python中typing.NamedTuple示例
  2. expec不管异常 try_python3基础之异常处理(通俗易懂)
  3. 我的程序人生以及一些杂项
  4. linux弹性网卡,将弹性网卡附加到 ECS 实例上之后如何配置弹性网卡
  5. 阿联酋起源人工智能研究院(IIAI)诚邀优秀人才加盟
  6. JavaScript内存管理
  7. 前后端分离中后端常用的响应类
  8. 【BZOJ1597】【Tyvj2461】土地购买,第一次的斜率优化DP
  9. 乌克兰发布新版《网络安全战略》
  10. 教你复制百度文库中的内容
  11. android真机调试工具,ADB 安卓真机调试工具
  12. 计算机硬件系统基本的工作原理是,硬件系统基本组成及工作原理
  13. 工业级无线路由器自助设备无线联网
  14. 设随机过程{X(t)=Acos(ωt+Θ),t∈(一∞,+∞)},其中A,ω,Θ为相互独立的实随机变量,其中A的均值为2,方差为4,且Θ~U(-π,π),ω~U(-5,5),试问X(t)是否为平稳过程
  15. html数独游戏源代码,数独算法及源代码
  16. 学习日记5-C语言函数的应用
  17. 拍照识别植物app哪个好?来看看这几个工具
  18. 网页被劫持会造成什么影响
  19. 微信小游戏开发能否突破4M限制
  20. 这些强大的数据分析软件你都知道吗?

热门文章

  1. 首部网络支付风险防范自律规范出台
  2. 打开chm文件不能显示内容的解决办法
  3. ESX中的Linux热添加磁盘
  4. 如何建立JSP操作用以提高数据库访问效率
  5. golang 切片 接口_Go 经典入门系列 18:接口(一)
  6. mysql 安装包_ubuntu下安装mysql全记录
  7. uc的剪切板能关掉吗_罗永浩的“卖身契”有法律效力吗?
  8. python主程序流程图_python中的图形渲染(流程图可视化)
  9. begin end会产生事务吗_无线信号放大器会产生同频干扰吗?
  10. java反射原理三种,Java反射的原理,作用