微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 后端面试--每日一题(026)

后端面试--每日一题(026)

时间:10-02 整理:3721RD 点击:
In regular backend flow with only one functional mode SDC, please explain timing closure methodology/issue/fixes in pre-CTS, post-CTS and post-Route stages.
在只有一个function SDC的普通后端流程中,对于pre-CTS, post-CTS 和 post-Route这三步,请分别讲述它们在时序收敛上的方法,一般会遇到的问题和解决方法。
难度:3
暂时不考虑DFT。后续的每日一题中,会加入DFT mode SDC。

没人回答?我抛个砖:
pre-CTS: 重在调整floorplan,buffer tree结构
Post-CTS: 重在调整clock tree,buffer tree结构或者size
Post-Route: 微调clock tree/buffer tree的size,routing channel和图层,实在不行,回到CTS

要看是top level还是blocklevel的,这两个讲究是不太一样的。
如果仅仅针对sdc文件来说。
1> prcts文件如果没有做过timing borrowing,那么只需要在给过来的sdc文件中加入max transition以及max fanout的contstraint就行了,这两个constraint最好加上。加的值根据经验值。
max transiton决定了你对critical path的预估程度。(因为tran是可以传递的,所以最好设置要和post route的值相差不远,如果你的floorplan不好,导致最后你某些地方的tran做的比较差,到0.4ns,好比,结果你Place的时候,设为0.2,那么明显是不合理的。fanout比较特殊,对你芯片面积影响很大,timing影响也比较大,个人觉得工艺不同,最好fanout选择不要一样)
对于post-cts阶段,其实工具进化到现在,不管是s还是c,都可以用一些command来来设置uncertainty以及latency了,sdc可以和之前保持一致。但是可能有一些设置,事实上还是和timing相关的。 最大的就是uncertainty了,setup hold的。事实上,这个值也是case by case的。该值决定了你的timing clousure的难易程度,需要自己把握。还有个比较重要的值,是clock tree的fanout ,该值对clock有很大的影响,当然也会影响density,需要把握。(此值和sdc无关)
如果上面一切顺利的话,到post-route阶段,假设之前的fanout和transiton都比较好,并且uncertainty也控制的比较好,density也还不错。还未爆掉。此时就没什么什么好改的了,之前对sdc的一些constraint都记录在了scenarios里面。直接routing就是了。
所以总结下来,sdc文件一共要改的就是transtion和fanout了,其他的各家工具的command皆有体现,记录在各自的scenario里面就好了。

是不是我的提问不清楚
我觉得首先应该回答,
pre-CTS时,使用ideal clock,只fix setup
post-CTS后,使用propagate clock,可以只fix setup,检查hold,但可以不fix hold
post-Route后,依然使用propagate clock,fix setup和hold
然后,就是楼上2位提到的,具体遇到的问题和解决方法了
除去“post-CTS后,检查hold,但可以不fix hold”那句话,我说的部分的难度是2,你们说的部分的难度是3。

嗯,学习了!

谢谢各位,学习了

谢谢大家,学习了!

preCTS和postCTs主要就是差个clock skew的问题
还有build clock的方法,这个很重要,
很多inter-clock path violation都是由于没有balance好造成的
所以你在postCTS后的timing有时候有很奇怪的结果,
postRoute主要是SI 影响,timing 会变差些,
可以做postrouteopt来修复回来,减少下crosstalk的影响,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top