作者:mervin_li
博客地址:https://blog.eetop.cn/1582944
变则通,通则久。事物都有其运行的规律,把握好规律,就能更好的实现人的目的。
在数字后端设计中,时序优化一直是关键问题,尤其追求高频高性能的设计中,时许问题常常贯穿始终。大大小小二十几个项目模块后端工作干下来,发现方法总比困难多,有一种太极生两仪,两仪生四象,四象生八卦,八卦生万物的赶脚。借用三十六计来总结,一点也不夸张。怎么说呢?时序的本质就是delay的控制,控制在setup和hold都满足的区间内即可。而影响时序的因素又有很多,每一个元素的优化都可以对时许产生好的帮助,铺陈开来,时序优化的方法就千变万化。本质就是控制cell和net的delay。
下面开始头脑风暴:
module guide的使用,经过几次迭代,可以看出critical的path的分布,有针对性的使用guide可以整体改善(效果因design 而异)
ndr aware opt,对关键路径设ndr属性,通过高层,宽线来减小net delay,达到优化目的;
useful skew,让工具适当借用skew来解关键路径的时序;
early clock flow,早期时钟树的使用可以优先控制clock cell的位置,占领有利位置;
H-tree,自然是为了时时钟树做的更平来改善时序;
overconstraint,早期阶段设uncertainty过约时序,可以减少后期的degrate,更快达到收敛;
rc factor,与overconstrait类似,但是更针对net,具体用法灵活多变;
path group分优先级,重点修reg2reg,提前占领有利资源;
multi bit cell的merge和split,利用cell的结构优化达到减少delay的目的;
mix buffer tree,invert和buffer混用得到一个更优的时钟树;
hight effort opt cell,设置高速cell的使用减少关键路径的延时;
extreme flow,利用工具自身的优化策略力度,加大力度;
slack adjustment,类似overconstraint,只是设置更精确,针对具体的group;
timing borrow之手改common path,increment修前后级;
incremental opt,利用工具进一步优化(效果不一定);
skew clock,利用工具进一步借skew(前提是有余量);
track opt,利用工具进一步优化走线(效果不一定);
psp flow,利用工具refineplace,来加少detour;
分层次绕线,对不同的path分优先级绕线;
swap vt/ size cell多争取setup余量,修hold(setup&hold互卡的时候);
target opt,针对某些关键violation的path单独修;
detour net修hold,借助net delay弥补小量的hold违例;
viapillar的使用;
memory的重新编译,选择更快的memory;
综合restructor,结合floorplan 物理信息优化;
调整cell的位置,控制net长度的占比(效果不一定);
控制finout的大小;
加shielding,防si的影响;
控制max net length;
cretical path的prePlace等
TDDR, TGDR 。。。。。。
方法千千万,抓住本质,因地制宜,知己知彼,灵活运用,方能百战百胜!
作者其他日志截图:
欢迎大家访问作者博客
觉得有帮助可以关注并点赞支持作者
(第一次注册需要在电脑端进行)
点击阅读原文访问作者博客