1 场景
在fix timing中,针对巨大的hold violations,需要插入巨大的delay,这时候如果插入buffer,则需要插入很多很多,所以一般会选择delay值很大的delay cell。但是delay cell的corner variation很大,特别是大的delay cell,则corner variation更大,而且级联的delay cell,会造成硅前报告和硅后实测delay大的variation。
2 解决办法
1. delay cell的选型不要太大
2. delay cell不要级联,中间穿插其他cell(后续文章我会给出innovus和PT检查脚本)
3. 调整tree结构,分析大的hold violation的问题来源,从源头解决问题。
3 总结
在遇见大的hold violations的时候,需要先分析问题来源,再解决问题,尽量不要一开始直接开始插cell修复timing。如果要插的话,则应该选用小delay值的delay cell,并且不允许级联,这样可以减少delay corner variation,以此降低修复timing的周期,而且可以降低硅前和硅后的差异。