作者:mervin_li
博客地址:https://blog.eetop.cn/1582944
链接:https://blog.eetop.cn/blog-1582944-6945745.html
变则通,通则久。事物都有其运行的规律,把握好规律,就能更好的实现人的目的。
在数字后端设计中,时序优化一直是关键问题,尤其追求高频高性能的设计中,时许问题常常贯穿始终。大大小小二十几个项目模块后端工作干下来,发现方法总比困难多,有一种太极生两仪,两仪生四象,四象生八卦,八卦生万物的赶脚。借用三十六计来总结,一点也不夸张。怎么说呢?时序的本质就是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 。。。。。。
方法千千万,抓住本质,因地制宜,知己知彼,灵活运用,方能百战百胜!
作者:mervin_li
原文链接:EETOP
推荐阅读
- IP DV和SOC DV如何选?
- 38%的工程师遇到流片失败,一套科学的signoff checklist有多重要
- 怎么样才算一个优秀的SOC验证环境(四)-UVM环境复用
- 怎么样才算一个优秀的SOC验证环境(三)
更多IC设计技术干货请关注IC设计技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。