- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本小节核心内容
请同学们务必自学TCL 语言基本语法!
TCL 语言抽象程度很高,是一种非常简单易用的编程语言,而且是 EDA 工具领域的一
种通用控制语言,基本上大部分EDA 工具都支持TCL 语言。使用TCL 语言编写的脚本可以
使EDA 工具高度自动化。
对于 IC 设计来说,TCL 语言其实主要分为三个部分。第一部分就是TCL 自己本身的内
建指令。第二部分,是synopsys 的公司EDA 工具自定义的指令。第三部分,用户也可以自
定义。在Synopsys 的TCL 中,我们通过TCL 语言来对电路的各种设计对象进行抓取和处理。
电路中的设计对象包括:clock、design、cell、pin、port、ref、net 等,本小节重点学习
如何使用synopsys TCL 抓取objects :
1、如果我们想抓取返回design 中对应的ports object,就可以使用get_ports 指令。例
如,如何查看design 当中有没有一个port 叫做CLK?可以使用get·ports CLK 的指令。结果
返回一个{CLK} ports。我们想查看design 当中所有的port,就可以使用 get_ports *,其中
*可以通配任何字符,结果就返回了所有的端口列表。假设我们有 port 名字叫 {CLKA CLKB
OUTA OUTB INA INB}。如果我们想得到所有C 开头的port 怎么做?输入get_ports C*,就
可以得到相应的结果。
2、DC 如何抓取CELL 信息:使用get_cells 指令来返回design 中对应的cell 的instance
name object。如果我们想查看design 当中有没有一个cell 叫做U4?可以使用get_cells U4
指令,DC 会返回{U4} 。如果我们想查看 design 当中所有的cell,则可以使用get_cells *指
令,返回{U1 U2 U3 U4} 。如果我们想查看design 当中以3 为结尾的cells,使用get_cells *3
指令,返回{U3} 。
3、DC 内部使用get_nets 的指令来得到design 中net 的object。例如,查看design 当
中有没有一个 net 以 INV 开头?使用 get_nets INV*,返回{INV0 INV1} 。如果我们想查看
design 当中所有的nets ,可以使用get_nets *指令,返回design 内部所有的net。如果我
们想查看 design 当中有多少个 net?我们可以通过以下方法。第一种方法,我们首先通过
get_nets *获取包含所有net 的collection,然后通过get_object_name 的指令得到所有的net
名称的list,然后使用TCL 语言自带的llength 指令,计算list 的长度,计算结果便是net 的
数量。第二种方法,直接使用 synopsys TCL 指令 sizeof_collection 计算包含所有 net 的
collection 的长度。同学们要注意两条指令的区别!
4 、如果我们想查看design 当中有哪些pin 的名字叫做Z?可以使用 get_pins */Z 指令,
返回相应的结果。如果我们想查看design 当中有哪些pin 的名字以Q 开头?可以使用get_pins
*/Q* ,也会返回相应的结果。
通过以上内容,同学们应该熟悉了object。object 是对于tcl 脚本一个重要的扩展;常
见的对象有四种 cell, net, port, pin ;每种 object 有它的属性。任何一个属性都可以用
get_attribute 得到,list_attribute –class * 可以得到所有 object 的属性,部分属性可以用
set_attribute 来设置。
理解了属性,就能做更多的事情了。比如,我们可以使用get_* -f 指令,-f 这个option
可以用来过滤属性,以得到我们想要的object。例如,想得到所有方向是input 的port,使
用 get_ports * –f “direction==in” ,可以返回所有方向是 input 的port。想得到所有方向是
output 的pin,使用-f “direction ==out” ,
您可能关注的文档
- 芯动力——硬件加速设计方法 (16).pdf
- 芯动力——硬件加速设计方法 (17).pdf
- 芯动力——硬件加速设计方法 (18).pdf
- 芯动力——硬件加速设计方法 (19).pdf
- 芯动力——硬件加速设计方法 (20).pdf
- 芯动力——硬件加速设计方法 (21).pdf
- 芯动力——硬件加速设计方法 (22).pdf
- 芯动力——硬件加速设计方法 (23).pdf
- 信号与系统 (10)孙露-趁早.pdf
- 信号与系统 (9)孙露-趁早.pdf
- 初中英语人教版七年级上册第四单元Where is my schoolbag ! Section A .ppt
- 初中英语人教版七年级上册第四单元Where is my schoolbag Section B 2.ppt
- 初中英语人教版七年级下册 Unit 6 I'm watching TV. Section A 11a.pptx
- 注册土木工程师培训课件.ppt
- 初中生物济南版七年级上册第一章奇妙的生命现象 第三节生物学的探究方法.ppt
- 初中英语人教版七年级上册第四单元Where is my schoolbag Section B 2.pptx
- 注册安全工程师案例课件.ppt
- 初中物理人教版八年级上册第二章第4节噪声的危害和控制课件(共19张PPT).pptx
- 注册安全工程师王阳课件.ppt
- 初中数学青岛版八年级上2.4《线段的垂直平分线》课件(16张PPT).ppt
原创力文档


文档评论(0)