码迷,mamicode.com
首页 > 其他好文 > 详细

ICC中用Tcl脚本给版图中的Port/Terminal加Label的方法

时间:2017-12-20 13:56:05      阅读:777      评论:0      收藏:0      [点我收藏+]

标签:zzu   决定   com   百度   exp   后端   log   知识   index   

本文转自:自己的微信公众号《数字集成电路设计及EDA教程》

里面主要讲解数字IC前端、后端、DFT、低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程。

考虑到微信公众平台上面发布的很多推文百度搜索不到,所以以后的推文也会在这里进行转载。

 

图:

技术分享图片

 

 ICC中用Tcl脚本给版图中的Port/Terminal加Label的方法

在输出GDSII文件之前,为了方便后边导入Virtuoso用Calibre做LVS,最好给整个设计的输入输出端口打上Label,如果设计是模块级别的,没有IO和PAD,那么可以直接打在Port或者Terminal上,如果设计是Chip级别的,那么需要打在PAD上面。

ICC中用Tcl脚本给版图中的Port/TerminalLabel的方法:

 

set ALL_PORTS[get_ports -all]

 

foreach_in_collectionPORT_NAME $ALL_PORTS {

set xy_location[get_location $PORT_NAME]

setx_location  [lindex $xy_location 0]

sety_location  [lindex $xy_location 1]

 

#由于$PORT_NAME的属性是一个collection,无法直接用字符串相关命令来得到port的字符串格式的名字,因此,可以用命令collection_to_list将其转化为list:

set TEXT_NAME[collection_to_list $PORT_NAME]

 

#比如,一个端口的名字是tdo_pad,那么$PORT_NAME的值将是{tdo_pad},它的属性是一个只含一个元素的collection。$TEXT_NAME的值是{{port tdo_pad}},由于前缀{{port和后缀}}格式固定,因此我们可以用字符串操作命令来截取中间一段string得到端口的名字:

set TEXT_NAME_1[string range $TEXT_NAME 7 end-2]

 

#之后便可以用create_text命令来用指定层次给这些Port来打Label了。

#-origin控制Label的坐标位于Port金属的左下角;

#-hight控制Label的高度;

#-layer控制Label的层次,主要让Calibre工具识别它为一个Port。一般用金属所在的TXT层或者Label层,有的工艺直接用金属层也是可以被识别的;

#-orient控制Label的方向。

create_text-origin [list [expr $x_location] [expr $y_location]] \

       -height 1 \

       -layer 17 \

       -orient W $TEXT_NAME_1

}

 

之后给大家讲一下版图中加PAD(深亚微米设计中IO和PAD分离,且PAD有Stagger摆放形式,一般用脚本来决定其所在的位置是内侧还是外侧以及具体位置),并给PAD打LOGO的方法。

 

如果喜欢本公众号也请多多分享哟,谢谢您的关注技术分享图片

技术分享图片

ICC中用Tcl脚本给版图中的Port/Terminal加Label的方法

标签:zzu   决定   com   百度   exp   后端   log   知识   index   

原文地址:http://www.cnblogs.com/ASIC-Horizon/p/8072076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!