嵌入式学习小组
直播中

王丽娟

7年用户 148经验值
私信 关注

静态时序优化策略有哪些?

变则通,通则久。事物都有其运行的规律,把握好规律,就能更好的实现人的目的。
在数字后端设计中,时序优化一直是关键问题,尤其追求高频高性能的设计中,时许问题常常贯穿始终。大大小小二十几个项目模块后端工作干下来,发现方法总比困难多,有一种太极生两仪,两仪生四象,四象生八卦,八卦生万物的赶脚。借用三十六计来总结,一点也不夸张。怎么说呢?时序的本质就是delay的控制,控制在setup和hold都满足的区间内即可。而影响时序的因素又有很多,每一个元素的优化都可以对时许产生好的帮助,铺陈开来,时序优化的方法就千变万化。本质就是控制cell和net的delay。

回帖(1)

汤敏树

2020-12-10 14:20:31

  • 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
举报

更多回帖

发帖
×
20
完善资料,
赚取积分