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


    本文转自:自己的微信公众号《数字集成电路设计及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的方法。

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

  • 相关阅读:
    Prometheus之Dockerfile编写、镜像构建、容器启动
    十五、数据库高并发处理方式
    十四、.NET CORE3.1 使用EFCORE(Microsoft.EntityFrameworkCore) 创建数据表
    云筹优化APS发布超强的可视化排产甘特图【+视频演示】
    如何解决xrdp远程连接UOS后黑屏的问题
    在linux下获取硬盘序列号
    linux下休眠/待机命令
    inotifywait的安装及基本使用
    Shell 脚本获取当前目录下全部文件夹名
    【转】第 4 章 Netperf 网络测试
  • 原文地址:https://www.cnblogs.com/ASIC-Horizon/p/8072076.html
Copyright © 2020-2023  润新知