应用Synopsys InDesign ICV技术提高物理验证的效率
周治华zhouzhihua@huawei.com
海思半导体(成都)
摘要
随着半导体工艺不断的演进,芯片复杂度和规模不断的增加,后端设计的挑战越来越大, 后端设计花费的时间也越来越长。Signoff阶 段两个主要的问题:怎样去减少物理验证的迭代次数, 和怎样减小Dummy Metal对时序的影响,并且怎么能精确快速的检查到这 些影响,已经变得越来越重要。Synopsys的InDesign ICV技术满足我们的这些需求,并且可以大大提高效率。
本文首先介绍InDesign ICV的概念,然后介绍设计怎么利用InDesign ICV完成DRC的检查,并且自动修复DRC,以及怎么使用 InDesign ICV插入dummy metal,并且能尽量减小dummy metal对时序的影响。文中用一个700k instances 的模块为例, 来分析 InDesign ICV带来的效果。
关键词:InDesign, ICV, DRC, Autofix, Dummy, Timing-aware
Abstract
As the scale of process increase tremendously, as well as the design size is growing, backend flow gets ultra complex and turnaround time(TAT) get longer. Two main challenges during signoff stage: how to reduce number of iterations on physical verification, and how to reduce and evaluate the timing impact induced by dummy metal insertion, become very critical and necessary. InDesign ICV meets the requirements, and improves the efficiency for the project.
This paper introduces the principle of InDesign ICV technology within IC Compiler, and describes how to use InDesign ICV to finish DRC checking and auto fix DRC violations, as well as how to do timing-aware dummy metal insertion. A design with 700K instances will be used as an test design.
1. InDesign ICV先进思想简介
在数字芯片设计中,物理验证是一个非常关键的步骤, 物理验证 做得充分与否, 直接影响到芯片的良律, 更有甚者直接导致芯片 无法工作, 然而物理验证的特殊性使得我们每每都会在时序收敛 完成后再走这个流程. 当芯片规模越来越大的时候, 物理验证花 费的时间越来越多, 特别是tape out 点比较赶的时候, 这更加令人无法控制.
在先进工艺面前,传统的物理验证方法有着不可避免的缺陷, 主要包括在DRC检查和修复、以及Dummy metal插入两个方 面。
(a) 传统物理验证的DRC检查流程是PR工具先写出GDS,然后 用物理验证工具检查DRC,再根据DRC结果返回到PR工具 做手动修改。手动修改的正确性难以保障,所以修复过程要 循环反复多次,才能得到一个DRC clean的design。可以看 到,传统流程在修DRC的过程中要耗费大量人力时间。
(b) 传统Dummy metal插入方法是PR工具先写出GDS,然后用 物理验证工具插入dummy metal。由于物理验证工具不具备 检查时序功能,所以dummy metal对信号的时序干扰未知。 而且dummy metal的GDS size很大,对其抽取RC再进行静 态时序分析难度很大。可以看出,传统的dummy metal插入 方法会对信号时序造成未知的干扰,而且难以去分析这些干扰。
基于上述问题, Synopsys 在推出了一个创新的的流程InDesign ICV flow,即在IC Compiler中调用ICV去完成物理验证。 ICV是 Synopsys的物理验证工具,是传统物理验证工具Hercules的升级版本,功能更强大、效率更高。ICV能提供signoff quality的 DRC检查,LVS检查,Dummy metal的插入等很多功能。
InDesign ICV flow能很好的解决上述两个问题,并且大大提高 了物理验证的效率。
(a) IC Compiler调用ICV进行DRC检查,然后基于检查的结果 ICC用router自动修复这些DRC Violation。这个创新的方式 能节省大量数据导出、导入的时间、和手动修复DRC的时 间、和大大减少反复修DRC的次数。而这节省的些时间对物 理验证阶段是非常的宝贵。
(b) IC Compiler调用ICV插dummy metal,在保证dummy metal 是signoff quality的情况下,ICC还能保护时序非常敏感的信 号线不受dummy metal的影响。同时ICC将新生成的dummy metal存入size很小的FILL view中。StarRC读Milkyway 时,能非常方便的抽取DummyMetal的耦合电容,所以PrimeTime能快速的分析Dummy Metal对时序带来的影响。 这个创新的flow能很好的保护时序敏感的信号,而且能方便 快捷的分析dummy metal对时序的影响。
当芯片制造工艺进入45nm、28nm、甚至更先进时,DRC Violation数量越来越多,手动修复DRC已经是非常的困难。而 且在先进工艺里,dummy metal对信号的影响也越来越明显, 如果不去保护好敏感信号,一些细微的时序变化可能导致芯片 的失败。所以,在步入45nm、28nm年代,InDesign ICV flow 是必不可少的。
2. InDesign ICV 应用流程
2.1 DRC检查和自动修复流程
如图1所示,DRC检查和自动修复推荐在post-route阶段、 timing ECO已经完成之后使用。其基本步骤如下:
第一步是数据准备阶段。主要是准备foundry提供的rule deck。 TSMC提供的是iDRC格式的rule deck。先在配置文件里将工艺 选项、检查规则等选项配置好,然后用ICV将iDRC格式转换成 ICV自己的格式语言PXL。
第二步是在ICC中调用ICV去做DRC检查。ICC打开需要做DRC 检查的CEL,然后通过命令signoff_drc得到signoff quality的 DRC结果。
第三步是生成配置文件。用户使用ICV自带的一个perl脚本,去 读取signoff_drc的log文件,产生一个给自动修复DRC使用的配 置文件。该配置文件内容包含金属层(有DRC violation的金属 层)名字,和DRC violation对应的rule描述。有了这个配置文 件,自动修复DRC的时候才更有针对性。
第四步是ICC用Zrouter去自动修复DRC,如图2所示。ICC运 行命令signoff_autofix_drc,它首先读取signoff_drc的结果, 然后在有DRC violation之外的区域生成route guide,禁止 这些区域做rerouting。之后ICC在有DRC violation的区域做 reroute. Reroute完成后,ICC自动调用signoff_drc来检查DRC violation。基于新的DRC结果,ICC会做第二次reroute和第二 次signoff_drc来检查DRC。检查结束后,自动修复流程结束。 过程中,会保存两次修复之后的结果和两次自动调用signoff_ drc的DRC report。用户可以通过最后的DRC report查看DRC 的修复情况。

图 1 InDesign ICV Flow View

图 2 InDesign ICV Flow Detail View
Indesign ICV DRC Autofix示例脚本:

2.2 Timing-aware dummy metal插入流程
如图3所示,在design已经是timing和DRC clean之后,通过signoff_metal_fill插入dummy metal,具体步骤如下:

图 3 InDesign ICV Dummy Metal Insertion Flow View
第一步是数据准备阶段。主要是准备foudary提供的rule deck。TSMC提供的是iFill格式的rule deck。先要将配置文件的工艺、检 查规则等选项配置好,然后用ICV将iFill格式转换成ICV自己的语言格式PXL。
第二步是选择需要保护的信号,比如高速时钟信号等。
第三步是调用signoff_metal_fill来产生dummy metal。有些配置选项很重要。常用的选项有
■-mode(选择生成的FILL view是flat的还是hierarchical的)
■-bounding_boxes/excluded_bounding_boxed (选定某块区域加dummy metal)
■-timing_preserve_nets (选定哪些net是timing preserved)
■-space_to_critical_nets (指定禁止插入dummy metal的间距)
signoff_metal_fill运行结束后,ICC会生成一个FILL view, 它包含了刚插入的所有dummy metal。
第四步是调用signoff_drc再进行一次DRC的检查,确保插入的metal没有引起新的DRC violation。
第五步是用StarRC抽取Milkyway的CEL view和FILL view。在StarRC中打开选项
■MILKYWAY_ADDITIONAL_VIEWS: FILL
这样就将dummy metal的影响添加到SPEF中。使用Primetime进行STA分析,然后可以对比加dummy metal之前和之后的时序, 分析dummy metal对时序的影响.
Timing-aware dummy insertion示例脚本:

3. Indesign ICV技术应用及结果分析
3.1 应用描述
由于传统物理验证的流程费时费力,而且一直没有一个理想的方法来减小和分析dummy metal对时序的影响。而Synopsys的 InDesign ICV技术刚好满足我们的需求。因此我们在一个实际的40nm项目中,使用了一个子模块进行Indesign ICV流程的评估。
子模块大小约为700K instances,routing已经完成,而且有一定数量的DRC violation尚没有去修复。因此可以让工具自动去修 复。Timing基本收敛,还有少部分slack。由于我们评估的是dummy metal对timing的变化影响,因此少部分slack并不影响评估。 在插入dummy metal时,我们对所有的时钟信号进行了double spacing的保护,希望对时钟树的影响减小。Rule deck使用的是 TSMC的iDRC 1.3a.
3.2 Signoff_drc/Signoff_autofix_drc 结果分析
图 4三列分别是signoff_drc的结果,和signoff_autofix_drc的两次自动修复后的结果。从表中可以看到,最终只剩下3个DRC violation,修复率达到95%。而观察剩下的三个DRC violation,我们发现它处于一个congestion区域。而InDesign ICV flow建议 先把design的congestion解掉。

图 4 Signoff_autofix_drc Results View
基于上述结果,我们对InDesign ICV的自动修复能力做了仔细的分析,结果如图 5所示。首先将DRC violation类型分成两类。一类是ICC不能检测到的:比如由于CEL view和FRAM view不一致,或者是runset含有比techonology file更复杂的rule。还有一类是 ICC能检测到,但是detail routing阶段并没有完全修复 (congestion或者其他问题)。分析后发现,对于前者,InDesign ICV基本都 能修复;对于后者,也能很大程度上修复(design不要有很严重的congestion)。

图 5 Signoff_autofix_drc Repair Capability View
评估中用了两个core来跑ICV,signoff_drc runtime大概是1.5hrs,signoff_autofix_drc runtime大概是3.5hrs,整个流程下来, runtime总共是5hrs。整个流程下来时间很短,而且因为是工具自动修复,用户可以并行去完成别的任务。
3.3 Timing-aware dummy metal insertion评估结果
为了评估timing-aware dummy insertion(TA-Fill)的结果,我们还做了一次non timing-aware dummy insertion(NTA-Fill),然后拿 两次结果做对比。在TA-Fill过程中,对design所有的clock net用double spacing进行了保护。而NTA-Fill没有去保护任何信号。 图 6列举了dummy metal插入之前的QoR,TA-Fill和NTA-Fill之后分别的QoR。并且详细列出了dummy metal对setup、hold、 removal、recovery、min-period、noise、max_transition、max_capacitance的影响。可以看到,TA-Fill对timing/DRC几乎没有 什么影响。而NTA-Fill对removal和recovery影响很大,如果芯片的margin不够,可能会导致芯片的失败。

图 6 Dummy Metal Insertion Results View
图 7详细列出了TA-Fill对每条critical path的timing的具体影响。可以观察到,timing的变化都在几个ps之内,非常小,远远满足我们的需求。

图 7 Slack Variation View
4. 结论及建议
基本结论:
(1)用InDesign ICV做DRC的自动修复(signoff_autofix_drc),能达到很高的修复率。而且runtime很短,半天时间可以完成。整 个DRC检查和修复需要人工参与的很少,用户可以同时去完成其它任务。这大大提高了物理验证的效率。
(2)用InDeisng ICV做timing-aware的dummy insertion (signoff_metal_fill),其对critical path 的timing的影响非常小,保持在几个ps之内,这保证了我们的芯片能正常的工作,满足了我们的需求。
建议:
(1)ICV支持multi-core,建议将multi-core打开,可以加快ICV的运行速度。
(2)Signoff_autofix_drc暂时不支持power net的DRC 修复。同时为了保护clock net,clock net上的DRC violation也不修复。
(3)建议在signoff_metal_fill 加上选项 –remove_floating_via_fills,可以将插入dummy过程中的floating via删除,以避免DRC violation。
(4)如果要对多边形block插dummy metal,要在signoff_metal_fill加上选项 –exclude_bounding_box 来定义需要加dummy metal区域。
(5)将ICC和ICV的版本更新到2010.12,signoff_autofix_drc的runtime将会提高4~5倍。
5. 致谢
在项目的实施过程中,感谢项目组领导的信任和同事的热情帮助,让我能够有机会尝试一个非常创新、对项目很有帮助的flow。另外,还要感谢Synopsys工程师李燕华,在flow的应用过程中,得到了他的大力支持和很多宝贵的意见。
6. 参考文献
(1)Synopsys: Automated DRC Repair Using IC Validator and IC Compiler Application Note.
(2)Synopsys ICC User Guide.
(3)Synopsys IC Validator User Guide.



