原创 Timing ECO技巧和策略总结

2017-6-20 23:17 12478 25 25 分类: EDA/ IP/ 设计与制造

本文档主题其实就是介绍如何修Timing。


首先明确什么时候开始fix Timing?下面这三种情况下都可以应用。

1、 deadline要到了

2、 PR tool已经尽力帮你做到最好还是不行

3、 Signoff STA timing 接近meet ,具体点讲就是:timing violation条数不能太多和slack不能太差;transition、fanout、capacitance、routing drc violation、IR drop、EM violation不能有一项很差。


Timing ECO 常用Strategy 和Skills

通常是先修setup,后修hold。

那先看下修setup的策略:

1、 remove noise on clock path if 存在,可以在PT里面查看clock path上的noise。具体指令如下所示:

PT 指令:report_timing -nos -path_type full_clock_expanded -crosstalk


通常launch clock上的delta那一栏代表noise,如果是正的就是具体的noise大小


capture clock上delta那一栏如果是负值就代表具体的noise值,如果超过5ps就应该要修。

那为何产生clock noise?主要原因有:小buffer推很长的线;clock和signal线靠太近;clock routing 频繁地换层。

如果noise数量只有几根 ,可以考虑手修,如果太多,就应该要回去重新run CTS。

下面介绍手修clock noise的方法:

(1) add shielding nets

(2) 增加clock 和其他nets的space

(3) 可以考虑用上层的金属走clock net,甚至可以用最top 层的metal,因为顶层的线noise最小;更甚至可以cut power stripe if 绕线真的已经完全挤不开空间可以这么尝试。

(4) sizeup driver buffer

(5) add repeater


2、 remove big noise on data paths if possible,当然这个针对的是big的太小的数量太多没法修干净。至于修的方法跟前面写的差不多。


3、 try to reduce delay on common data path。具体解法如下:swap cell vt 阈值电压from hvt/svt to lvt/ulvt;sizeup cell ; adding high drive strength buffer; routing with wide metal layer ;routing with top metal layer。


4、 use useful skew ;可以考虑加快launch clock,或者增加capture clock的delay。不过通常加快lauch clock的限制条件更多,当遇到ICG时是不能加快的,同时还要考虑走线长度,走线太长就得不到好处。还有一点需要特别注意就是加buffer垫延时,这个buffer加的位置如果前面都是INV,那一定要在隔偶数个INV插入,如果前面时buffer则无此注意事项。如果要大面积使用userful skew ,可以用capture clock加buffer的方法。Userful skew要注意的事项还是比较多的,所以一定慎用。


修hold方法:(一定要注意setup,因为前面setup已经修好)

1、 remove noise on clock path or data path if possible

2、 考虑将path上的low vt cell换成high vt cell,这个要换完整主要就得依靠工具了。

3、 size down cell ,不过还是要慎用,因为可能带来transition问题。

4、 都不行,最后只能add repeater,这里做两个提醒:一是如果没有足够的setup余量,可以考虑先增大setup 余量再来修hold;二是遇到density密度大,没什么空间加buffer时可以考虑将有slack 的path上面积大的cell换成小的cell,腾出空间插入buffer。当然要大量插单元还是应该让tool去做。


下面谈谈使用Timing ECO的原则注意顺序:(记住ECO只是用来小修小补,切忌伤筋动骨)

1、 能swap cell 的绝不add cell

2、 能sizeup/size down cell的绝不插buffer

3、 能够少插cell一定要少插,比如能在common path上差入就不要在各个endpoint电上差入

4、 能不route就不route,因为route一次时间要很久

5、 每步操作一定要注意drc问题,drc异常就要先停下来看下

6、 确保逻辑等价


在做timing ECO过程中,删除可以使用ecoDeleteRepeater,但是用deleteInst一定小心谨慎。对于routing metal的线要删除则可以随便删没关系。


在做完eco之后:对于新手可以用FV做检查;check timing ;check DRC


打开postroute database,在做ECO之前,下面的几个设置一定要设上,否则你会等崩溃掉。

1、 setEcoMode –reset

2、 setEcoMode –refinePlace false

3、 setEcoMode –update Timing false

4、 setNanoRouteMode –routeWithEco true

5、 setNanoRouteMode –routeSelectedNetOnly false


如果你用的ICExplore的flow fix setpu指令:

1、 loadECO ./ice_eco_netlist_setup

2、 source ./ice_eco_def_setup


在做ECO绕线之前,一定先做:

1、 checkPlace

2、 ecoPlace

3、 checkPlace

4、 ecoRoute

5、 checkRoute

6、 verify_drc

7、 defOut –floorplan –routing ./fix_setup.def

8、 saveDesign –relativePath –absoluteLibPath ./fix_setup.inn –compress(存.db)


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
25
关闭 站长推荐上一条 /3 下一条