教你轻松调DCT和ICC之间Timing与Congestion的一致性

点击标题下「蓝色微信名」可快速关注

转眼间,小编的公众号已经运营了一个月了,粉丝数量也有六百了。在此感谢各位的支持,小编一定会不忘初心,砥砺前行,不断分享更多干货。希望下个月本公众号粉丝数能够翻一翻,希望各位多帮忙转发宣传下,感谢还是感谢!小编开通赞赏功能后,也获得了六位童鞋的赞赏,很是激动,感谢你们(虽然没多少钱,仍然很有成就感)!

前天小编推送了,这篇文章提到了based DCT的综合来优化时序。由于DCT和ICC所调用的Timing engine不一样,因此经常会出现时序的不一致性问题。比如做DCT综合后,多少的setup违例是可以接受的,可以拿去做数字后端布局布线?如果DCT综合出来没有时序问题,ICC/ICC2中时序就一定是OK的吗?吾爱IC社区的小编希望通过今天的分享,让大家快速掌握如何Fine-tune DCT和ICC之间Timing和Congestion一致性等问题。值得注意的是,今天所讨论的topic是基于PT和ICC间的timing correlation是比较一致的情况。

图片[1]-教你轻松调DCT和ICC之间Timing与Congestion的一致性-JieYingAI捷鹰AI

在研究DCT和ICC timing congestion correlation问题时,最基本的东西需要准备好,小编整理了下一些相关需要检查的key points以及可以改善的地方。当你发现DCT和ICC之间timing congestion不一致时,可以有个明确的方向,从而帮助你快速完成设计实现。

create_mw_lib -technology tech.tf -mw_reference_library $ref_libr

这个设置是调correlation的核心。具体要设多少,没有一个定论,每个 design情况都不太一样。这里值得提的是derate的设置。DCT和ICC中有必 要按照signoff的要求来设置吗?如果是先进工艺,foundary往往都要求最后 signoff时对cell_delay,net_delay 设置一个derate值,而且还要分别对 launch,capture的data path,clock path 设置derate。由于DCT中只做一个 timing的优化和初步的placement,所以建议综合时按照signoff的标准来设 derate值,而ICC中考虑runtime和复杂性,ICC中可以相应做一个简化即可。

set_delay_estimation_options

-max_unit_horizontal_capacitance_scaling_factor1.03

-max_unit_vertical_capacitance_scaling_factor1.03

-max_unit_horizontal_resistance_scaling_factor1.03

-max_unit_vertical_resistance_scaling_factor1.03

set_ignored_layer -min M2

set_ignored_layer -max M6

最后,小编列举数字IC设计实现中常见的几种情况,供大家参考和思考。

1.DCT中setup(为何只谈setup?如果你要谈hold,那不是瞎扯嘛)没有或者有很小的violation,ICC中timing有比较大的setup violation

这种情况很有可能就是DCT中timing计算偏乐观,或者预留的timing margin不够等因素导致的。限于篇幅,这里不详细阐述。

2.DCT中setup没有violation,ICC中也看不到setup violation

这种情况有问题没?需要重新做综合吗?需要重新fine-tune icc的flow吗?估计不少数字工程师会觉得没问题,因为他们觉得setup都没问题了,肯定没问题了。可是小编告诉你,这里一定有问题。一方面DCT综合出来的结果,很有可能不是最优的,比如。另外一方面ICC/ICC2的flow肯定也不是最优的。ICC/ICC2中没有setup violation的database都好意思拿去抽RC,修hold(最终定版),这是不可取的。

一个资深工程师的价值不在于你会些什么,而在于同样的东西,你是否可以研究的比别人深入,理解的比别人更透彻,是否可以做的比别人更好。在数字IC设计中,衡量设计的好坏无非就是IC设计中的三要素Performance,Power,Area(PPA)。在同样的性能下,你能否做到功耗比别人做的低,能否做到面积比别人的小。这才是你的价值所在。

3.DCT中setup有很大的violation(比如400ps),ICC中timing差不多是满足时序要求

这种情况显然是DCT中约束过于严格,导致setup时序存在较大的违例。DCT中约束过于严苛,会导致过度优化,综合出一个较大的门级电路,最终体现就是面积更大。

4.DCT中setup有很大的violation,ICC中setup也有较大的violation

这种情况留给各位思考吧

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享