数字后端IC工程师:你用TCL做过什么?
个人觉得TCL是数字后端工程师的法宝之一。我做过几年IC Design,也和很多IC designer接触过。目前大的EDA公司(比如Cadence, Synopsys)的IC后端产品都提供了完整的TCL解析器和一些基于DB的TCL API(程序接口),工程师通过自己编写的TCL,甚至可以自己写出placement tool。
各位愿意分享自己在IC 后端设计中用TCL作过的事情么?
Example: 我曾经用TCL写过一个简单的小脚本,可以报出一些特殊clock path上的local skew(当时工具没有提供这个:)
clock path上的local skew,PT不可以报嘛?
你的特殊指的是如何特殊?
现在后端工具,特别是synopsys的ICC都是用TK/TCL语言来做流程,我不明白你的特别之处
进行过一些简单应用
不做后端,但想听听你们
曾用来写控制脚本
这个不是前端板块么, tcl,perl几乎是后端必备的东西
想想以前还写过不少tcl:
- 画出整个clock tree,cell之间画flyline,基于tree的层次flyline线宽渐窄,可选择性的显示最后一级(一般不显示,显示就画面太花了),看穿gating cell,cell的颜色和线的颜色按RGB模式自己调色。设定快捷键一键清除屏幕上画的东西
- 遍历整个设计来检查最下层strap和M1/M2 rail之间,每层strap之间哪里少打了via,或者via阵列的尺寸比规定的要小
- 根据boundary上的net detour情况,来给边界上色,以图形化方式提醒设计者什么区域边界congestion比较紧,以后模块拼接时可能有潜在的toplevel timing问题
- 找出一个congested区域内的所有穿越型的1:1 buffer/inverter,自动把他们挪出去并reroute,降低区域的routing density
- 根据routing box去寻找jog并删除原有的,重新创建routing box来解决same layer jog问题. Talus独有的routing bug,ICC里基本没这现象
- 自动在PT里进行swap和size up去修setup,并导出PR工具直接可读的文件给PR工具做eco
- 在PR工具里trace任何一个pin或者net的所有endpoint或者startpoint(从timing path的角度)。 不用工具内建的方法,这样更快一些
- 给talus定一些快捷键,比如按1就是M1打开或者关闭,ctrl-1就是V1打开关闭,然后选中某个cell就直接前向或者后向trace出相关路径的所有起点终点,并在gui上画出来,帮助timing分析
- 工具bug修不掉的DRC,通过读取DRC mark,计算fat wire rule并生成相应metal layer blockage,基于该结果重新自动修DRC,然后删除blockage,解决工具无法fix的DRC。还有其他一些基于工具检查结果自动fix DRC的,比如open,short edge
- 检查什么地方少了dcap,edge cell(28nm专用)之类的,脚本自动添加回复
- 鼠标拉个框,返回穿过框内的指定的某几层layer的net,按照同一logic group来分类并把group按线的数量排序,方便画一下鼠标就看到某个区域logic group的连接是否有问题- 工具的tie hi/lo还不太好用时,自己写脚本去create wire/via进行tie hi/lo,速度快效果好
不错,都没有做过这些事,只是流程里面用用
好专业
太NB了,膜拜一下
原来TCL还可以干这么多事
哇,这里面全是高手呀。没做过后端,但是期望以后做后端。前辈们有没有什么建议呀,呵呵。前端转后端的。
工具bug修不掉的DRC,通过读取DRC mark,计算fat wire rule并生成相应metal layer blockage,基于该结果重新自动修DRC,然后删除blockage,解决工具无法fix的DRC。还有其他一些基于工具检查结果自动fix DRC的,比如open,short edge
可以展示下脚本吗?十分渴望。
貌似很高深啊………………
哭了,我懂得太少了,滴泪啊
学习了,好多东西药学啊
想知道TCL 是什么意思
你好,请教一下,用tcl写一个程式,处理gpio.v文件,将结果存为lab.v。要求:1 移除所有// 型注释。 2 移除所有/*......*/注释 。3 移除所有/*.........................................*/注释,怎么写呢?我是tcl初学者,求指导,谢啦
TCL 工具用于面很广泛:
1) Tcl 搜索工程代码,列出工程的整体树形拓扑结构。
2) Tcl 搜索工程中某个信号,具体是由哪个底层模块发出,最后到达了哪些模块,对于理解信号、数据路径很便捷。
3) 对代码进行整体格式对齐,使代码整洁美观,维护方便。
4) 对工作多个目标内容同时进行替换,采用正则表达式更灵活方便。
... ... 其他的功能待用户自己在实际中去挖掘。感觉什么操作不方便,就写个TCL 完成这一系列的不方便。
tcl可以直接在unix下编译运行吗
tcl是什么,小白求指导
