微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > timing optimization

timing optimization

时间:10-02 整理:3721RD 点击:
timing optimization有三种 1、Pre-cts 2、post-cts 3、postroute
(1) pre-cts我认为是在route和cts之前执行,也就是place之后执行
(2)post-cts我认为是在route之前但是cts之后执行
以上两点都是在route之前执行,有没有布线,那么encounter怎么知道满足不满足时序啊?
(3)Postroute我认为是在route执行
第三点是在route之后执行,就是即便有violation,已经不上线了,还怎么优化呢?

timing的计算都是基于时序模型来的, 比如elmore,arnordi等,
随着布线的展开,模型越来越精确,
在route之前,都是采取virtual route的概念, 比如elmore模型来算的,
比route之后当然要不准,但是也算是个近似模拟,
因此place和route的关系很密切的, 几乎决定了timing的主要,
90下由于SI的影响, route之后通常timing会degrade一些,
因此通过postroute opt来补偿回来,这一步几乎都是必须的,

》以上两点都是在route之前执行,有没有布线,那么encounter怎么知道满足不满足时序啊?
IC compile在place阶段的时序计算,个人认为是两方面进行的:
(1)data line 进行global route。只是单纯考虑cell位置后,最短距离配线。用于估算data ine上迟延。不属于真实route.
(2)pace阶段的时钟,是ideal的,没有真实delay。
进行时序分析。
CTS阶段,真实的做时钟,并且布线(detail route).这时时钟上有真实的Delay。
进行时序分析。

》 (3)Postroute我认为是在route执行
》第三点是在route之后执行,就是即便有violation,已经不上线了,还怎么优化呢?
route阶段也会考虑timing,进行buffer的插入等动作,是可以优化的。
encounter的原理与ICC大同小异吧 纯属个人见解。

一样的, 一般在place,cts阶段多给timing留些余量, 然后到了route的时候即使损失些也能补回来,
比如place的时候clock uncertainty 放0.3 , 真正signoff的时候是0.1
前面做的越好, route之后就越容易收敛,
所有pr工具原理都是一样的,只是各家叫法不一样,

感谢各位的解释,我还有一事不明,我在place完了以后,做了cts,然后开始执行post-cts timing optimization操作,这时我发现工具已经给我route完了,在看了report后发现有violation,这时该怎么办呢?是找到相应的path,手动加buffer还是再执行post-cts timing optimization操作?

post-cts 的时候 应该包括很多,可以buffer,可以sizing, 可以reroute 等等。一般 post-cts 主要做hold fix, setup也做些recovery,如果差不多,就可以route, 然后最后做post route 的timing optimization和timing closure。

刚开始描述的问题不是很清楚,在做post-cts的时候这时还没route,一旦执行post-cts optimization后,encounter就会route,(1)如果没有violation的话,就可以在这个route的基础上直接执行globaldetailrout了吗?(2)如果还有violation怎么办呢?

仁兄见解完全正确。
<<
IC compile在place阶段的时序计算,个人认为是两方面进行的:
(1)data line 进行global route。只是单纯考虑cell位置后,最短距离配线。用于估算data line上迟延。不属于真实route.
(2)pace阶段的时钟,是ideal的,没有真实delay。
进行时序分析。
>>
你这里提到的data line进行global route。其实ICC在place阶段默认的应该是virtual route. 就是你说的最短距离配线(斯坦纳树问题)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top