文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。
吾爱 IC 社区
吾爱 IC 社区(52-ic.com)是一个专业交流和分享数字 IC 设计与实现技术与经验的 IC 社区
之前小编在知识星球上分享过 ICC 和 Innovus 中修复 short 的方法以及自动化修复脚本,基本上属于项目后期的神器。据说自从有了这套脚本后大家都不怕绕线后的 short 了。
社区的老铁们也都知道小编一直提倡不要去手工修 short 和 drc。传统手工修复方法特别耗时耗力,效率极低。
常见修复 short 和 drc的方法有以下几种:
加 route guide
调整 cell 位置
guide buffer
删线
如果你对这些方法还不太懂,请移步小编知识星球查阅。目前小编的知识星球成员即将破千,欢迎喜欢交流,追求进步的小伙伴们加入我们的大家庭,让我们一起学习成长。
在 Innovus 中如果你想通过加 route guide 来解决 short 或 drc,你会发现为何 nanoroute engine 看不到自己所加的 route guide 呢?如果遇到过这种情况的小伙伴,请在文章末尾点个赞,让小编知道下。
那是因为在 Innovs 中是根据drc violation marker来进行 ecoRoute 的,所以各位在加完 route guide 后还需要多做一步操作 ----verify_drc。
可是很多小伙伴私信 verify_drc 出来的结果经常惨不忍睹,不知道从哪里看起,更不知道报出来 drc 的真实性。所以小编觉得有必要做下这方面内容的分享。
如何检查 DRC?
首先大家思考下面两个问题。Innovus 是根据什么来进行 drc 检查的呢?Innovus 中报出来的 drc violation 一定都是真的吗?
Innovus 中的 violation browser 界面通常会看到有 checkPlace,nanoRoute,verify_drc 三大类。
不论是 NanoRoute 还是 verify_drc,它们的检查都是基于**tech lef(S 家为 tech file)**中定义的 route rule 来做的。而这个 route rule 是根据 physical drc signoff 用的 drc runset 来进行简化改写的。
因此,不同 foundary 或 vendor 提供的 tech file 可能会不太一样,而且用不同的 tf 跑出来的 drc 情况也会有差异。大厂提供的往往更靠谱哦!
NanoRoute 只会报出 regular object 的 drc violation,而 verify_drc 则检查的范围更广,除了检查 regular object 外,还会检查 special object 等。
【思考题】Nanroute 报出来没 short 和 open,是不是意味着 power 和 ground 就一定是没有 short 和 open?
在 innovus 中做 verify_drc 前一定要设置好 verify 的 mode,否则 verify 出来的结果是不准确的。文章末尾会给出 verify_drc mode 的设置及应用建议,记得往下看哦。
NanoRoute DRC Violation Table
绕线完成后工具会报出 nanoroute 的 drc,这些信息会在 log 按照 violation 的类型分类显示。下面列出所有 drc violation 的详细描述。类型虽然有很多,常见的大约也就五六种类型,而且大部分类型的 drc violation 与 short 相关。
如何查看 DRC Violation?
通过 Tools -> Violation Browser 可以打开如下界面。它会列出所有类型的 drc 的详细信息,点击 vilolation 的点就会自动 highlight 到对应的坐标位置。
如果你对 drc violation 类型不太了解,可以查阅对应工艺的 design manual,基本上可以找到答案。
如果 DRC Violation 类型太多,你也可以选择 hide 其他类型,只 show 某一种类型的 drc,这样就可以更有针对性的分析解决问题。
如何 Fix DRC Violation?
以上图中显示的 drc violation 为例。通过点击对应的 violation 点即可 hightligh 过去,效果如下图所示。稍微有点项目经验的小伙伴一看就知道是 VSS 的这个 via 和并行走线的 signal net(L4_001335) 存在 space 问题。
这个 DRC Violation 是非常好 fix 的。聪明的工程师会在 VSS via 边上打上一个 M2 的 route blockage,然后让工具自己 ecoRoute。还有一类工程师会手工把边上那条信号线拉开,人工走线。虽然两种方法都一定有效果,但是如果这类 drc violation 特别多,前者的修复方法是非常高效的。
Verify_drc 应用建议
在 verify_drc 前首先要明确 verify 的目的是什么?因为 verify_drc 有很多选项,如果不假思索都采用默认值,那么结果可能都没办法看的。
verify 前一定要先设置 verify 的 mode,通过如下命令来实现。
set_verify_drc_mode
由于 option 太多,这里重点提几个常用的选项。其他大家可以通过 man 进一步学习。
这里可以将你验证过的假错加到这里面来,这样可以避免工具误报,甚至可以防止工具过度优化假错。
由于经常拿来 verify_drc 的 database 都是没有插 filler 的,nw 相关 drc 我们并不想让工具去 check。那么我们可以通过设置 layer_range 为 Metal layer 来实现。
这个选项也比较经常使用,用途是你仅对某个区域进行快速的 drc 检查。
如果你只想看信号线的 drc,可以带上这个选项来 skip 掉 pg net 的 drc check。
好了,今天的内容分享就到这里。另外,因为公众号更改推送规则,小编分享的每篇干货不一定能及时推送给各位。为了避免错过精彩内容,请关注星标公众号,点击 “在看”,点赞并分享到朋友圈,让推送算法知道你是社区的老铁,这样就不会错过任何精彩内容了。
如果你想和小编有更进一步的沟通交流的机会,欢迎加入小编知识星球,让我们一起学习成长,共同进步。相信在这里能让你成就一个更完美的自己。
小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****):
在这里,目前已经规划并正着手做的事情:
ICC/ICC2 lab 的编写
基于 ARM CPU 的后端实现流程
利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现
基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程
时钟树结构分析
低功耗设计实现
定期将项目中碰到的问题以案例的形式做技术分享
基于 90nm 项目案例实现教程(ICC 和 Innovus 配套教程)
数字 IC 行业百科全书
吾爱 IC 社区知识星球星主为公众号” 吾爱 IC 社区” 号主,从事数字 ic 后端设计实现工作近八年,拥有55nm,40nm,28nm,22nm,14nm等先进工艺节点成功流片经验,成功tapeout 过三十多颗芯片。
这里是一个数字 IC 设计实现高度垂直细分领域的知识社群,是数字 IC 设计实现领域中最大,最高端的知识交流和分享的社区,这里聚集了无数数字 ic 前端设计,后端实现,模拟 layout 工程师们。
在这里大家可以多建立连接,多交流,多拓展人脉圈,甚至可以组织线下活动。在这里你可以就数字 ic 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。
最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有 858 位星球成员,感谢这858 位童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。
欢迎关注 “吾爱 IC 社区”
微信号:ic-backend2018
https://mp.weixin.qq.com/s/J6PC4OR5qy8Xnl3n5_WI6w