INVS里的DanglingWire的自动化修复实战

电子说

1.3w人已加入

描述

DanglingWire在INVS看来是可以进行trim的,这些也基本出现在PG gen的过程中,可能会来自于下列命令(或不仅限于下列命令):

  • sroute
  • editPowerVia
  • addStrip

既然大家已经了解了DanglingWire的出现原因,在进行trim收到操作前,用户需要对自己的PG 进行优化,来减少DanglingWire的出现几率,这里有包括但不限于以下的一些建议

  • 如果有PG ring的规划,需要优先创建core ring和block ring

  • 建立PG stripe,尽量extend到ring上,这里有几个选项用户可以关注

    GUI

  • 在没有 std-cell row的channel,不要创建可能会被macro打断的PG stripe , 譬如

    GUI

    上述工作完成后,用户需要使用verifyConnectivity进行查验,如有遗漏可以尽量补足。

    用户始终要明确:INVS的native命令是效率更高,收效更明显的处理手段。在任何手工/脚本操作前,都应该应用尽用INVS native 命令。

    反过来讲,一个完美的结果也不是一蹴(一个命令)而就的,打磨在所难免的,在日渐竞争的芯片后端岗位中,掌握别人不了解或者现在不了解的方法,是有机会能够让你获取【短暂的】领先的

    对于剩余的DanglingWire的问题,这里提供一个procedure(函数),进行解决。函数的基本使用方法如下

  1. 打开INVS数据库
  2. 在INVS,导入函数

GUI

这是ICerDev团队原创函数的第三次释放,版本信息如下

  • 版本号:V0.12
  • 交付时间:2023-01-10
  • 更新内容:添加trim_danlingwire函数
  1. 使用help查看函数帮助

    GUI

  2. 小试牛刀

    在使用trim_danlingwire函数之前,先来使用命令verifyConnectivity验证一下当前数据库的DanglingWire的状态

GUI

可以看到,当前数据库有606个DanglingWire的问题

GUI

查看细节可以看到,基本是M1的问题,基于上篇文章的讲解对于std-cell的M1 PG rail上的问题,在PG DB上是不用理会的,这些在后期会自动修复。

这里以M6层举例,一起看看这个函数的处理能力

step1: 在进行trim前,推荐使用show_only的方式来进行脚本运行评估(evaluate)

GUI

函数此时以评估模式运行,可以看到,在基于M6和VIA5的基础下,函数评估出整个系统会有87根M6共计5237的绕线资源属于DanglingWire的范畴,可以被优化掉。此时,用户可以通过GUI的红色高亮区域进行查验

GUI

从full-view视图可以看到,函数评估出来的可优化的点位主要集中在FP的下侧,zoom-in看一下究竟

GUI

用户大致查验这些高亮的区域,如果没有明细问题,就可以进行真实的trim

step2: trim DanglingWire

对于上述高亮区域,可以使用下面的命令进行trim

GUI

可以看到,刚才高亮的区域,此时已经被trim掉了

GUI

用户此时可以通过verifyConnectivity查看DanglingWire状态

GUI

可以看到,数据库中的DanglingWire从606 降到了548,其他的错误类型并未发生变化,

再进行GUI进行细节查看

GUI

可以看到刚才下部大面积的DanglingWire已经消失了,M6的DanglingWire也从60个降低到了2个,在这个数据库中,基本可以实现一次性全部修复。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • GUI

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分