TCL中关于Cells的一些使用方法?
前言
经过前两篇关于ports以及pins的用法讲解,自然而然大概可以猜出cells的使用方法了?
盲猜应该是get_cells类似的语法,其实正是如此。
先给出其他几篇博文的地址:
逻辑设计中复位的稳妥处理方法?
逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗?
TCL中关于管脚(Ports)的一些使用方法?
TCL中关于Pins的一些使用方法?
正文
同理给出一张示意图,再次声明cell的位置:
可见,cell的引脚是pin,我们上篇博文中的pins都是cell上的pins,也就是模块的引脚。
如果模块是顶层模块,那模块的引脚也称为管脚,叫做ports,具有具体的位置信息。
同样先以wavegen示例工程为例,我们来讲解有关cells的一些用法:
- 获取模块所有的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不仅包含用户定义的模块,还包含用户例化的原语等。
- 获取具有特定字符的cell:
例如获取带有clk字符的cell:
get_cells *clk*
OBUF_spi_clk
clk_gen_i0
clkx_nsamp_i0
clkx_pre_i0 clkx_spd_i0
- 获取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
- 获取包含特定字符的触发器:
下面展示部分:
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的一些使用方法?相关推荐
- TCL中关于Pins的一些使用方法?
前言 Ports,Pins,Cells,nets以及clock都是FPGA中模块的关键组成部分,地位差不多,tcl中对它们的操作也大同小异. 给出前几篇文章列表,便于查询: 逻辑设计中复位的稳妥处理方 ...
- TCL中Ports/Pins/Nets/Cells/Clocks之间的交互关系?
前言 先给出近期文章列表: 逻辑设计中复位的稳妥处理方法? 逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗? TCL中关于管脚(Ports)的一些使用方法? TCL中关于Pins的一些使用方 ...
- TCL中关于Nets的一些用法?
前言 往期博文: 逻辑设计中复位的稳妥处理方法? 逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗? TCL中关于管脚(Ports)的一些使用方法? TCL中关于Pins的一些使用方法? TC ...
- Py之pandas:pandas的read_excel()函数中各参数说明及函数使用方法讲解
Py之pandas:pandas的read_excel()函数中各参数说明及函数使用方法讲解 目录 pandas的read_excel()函数中各参数说明及函数使用方法讲解 read_excel()函 ...
- python tcl 控件_在Tkinter.Tcl()中使用Python函数
>我有一堆Python函数.我们称他们为foo,bar和baz.它们接受可变数量的字符串参数,并执行其他复杂的操作(如访问网络). >我希望"用户"(让我们假设他只熟悉 ...
- TCL语言笔记:TCL中的String命令
一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.strin ...
- c#中datagridview里checkbox的使用方法[转]
c#中datagridview里checkbox的使用方法[转] view plaincopy to clipboardprint? 1.属性设置checkboxcolumn name:cb_ ...
- TCL中变量嵌套使用
TCL中变量嵌套使用 在使用多重嵌套变量时候,因为 {} 对于tcl来说属于非运算符号,因此在使用变量嵌套,直接调用会出现问题 即变量不能正确调用: set mm_list "0 1&quo ...
- python返回绝对值的函数_Python中用于返回绝对值的abs()方法
Python中用于返回绝对值的abs()方法 方法abs() 返回x的绝对值,-x-零之间的(正极)的距离. 语法 以下是abs()方法的语法: abs( x ) 参数 x -- 这是一个数值表达式 ...
最新文章
- python中typing.NamedTuple示例
- expec不管异常 try_python3基础之异常处理(通俗易懂)
- 我的程序人生以及一些杂项
- linux弹性网卡,将弹性网卡附加到 ECS 实例上之后如何配置弹性网卡
- 阿联酋起源人工智能研究院(IIAI)诚邀优秀人才加盟
- JavaScript内存管理
- 前后端分离中后端常用的响应类
- 【BZOJ1597】【Tyvj2461】土地购买,第一次的斜率优化DP
- 乌克兰发布新版《网络安全战略》
- 教你复制百度文库中的内容
- android真机调试工具,ADB 安卓真机调试工具
- 计算机硬件系统基本的工作原理是,硬件系统基本组成及工作原理
- 工业级无线路由器自助设备无线联网
- 设随机过程{X(t)=Acos(ωt+Θ),t∈(一∞,+∞)},其中A,ω,Θ为相互独立的实随机变量,其中A的均值为2,方差为4,且Θ~U(-π,π),ω~U(-5,5),试问X(t)是否为平稳过程
- html数独游戏源代码,数独算法及源代码
- 学习日记5-C语言函数的应用
- 拍照识别植物app哪个好?来看看这几个工具
- 网页被劫持会造成什么影响
- 微信小游戏开发能否突破4M限制
- 这些强大的数据分析软件你都知道吗?
热门文章
- 首部网络支付风险防范自律规范出台
- 打开chm文件不能显示内容的解决办法
- ESX中的Linux热添加磁盘
- 如何建立JSP操作用以提高数据库访问效率
- golang 切片 接口_Go 经典入门系列 18:接口(一)
- mysql 安装包_ubuntu下安装mysql全记录
- uc的剪切板能关掉吗_罗永浩的“卖身契”有法律效力吗?
- python主程序流程图_python中的图形渲染(流程图可视化)
- begin end会产生事务吗_无线信号放大器会产生同频干扰吗?
- java反射原理三种,Java反射的原理,作用