routing update

route_auto这个命令表面看起来没啥变化,但内涵变了。

记得之前好像说过,对于高速的设计,我们推荐使用三部曲,而不是直接使用route_auto:

route_global

update_timing

route_track

update_timing

route_detail

update_timing

三部曲里,每个命令后面都带有update_timing。因为三部曲都是timing driven的,优先考虑critical path先绕,尽量让他们走直线。route_global后,critical path肯定多少有些变化,所以为了让route_track看到真实的critical path,需要update_timing。route_detail也是同样的原理。

扫描二维码关注公众号,回复: 10243867 查看本文章

而现在route_auto升级了,里面自带update_timing,所以效果和三部曲+update_timing基本上是一样的。意味着再也不需要三部曲了!

Timing driven route_global

timing driven global route (route.global.timing_driven)早就有了,但是现在针对先进工艺有了升级,在global route中间会update_timing。

其实原理和刚才讲的route_auto三部曲类似。route_auto分了三步,route_global也分了好几个phase: GR phase 0, GR phase 1, GR phase 2……phase和phase中间原来是没有update_timing的,也就是会出现phase 1/2/3可能看到的不是最真实critical path,对WNS来说,不是最好的。

现在有了一个新的app option:route.global.advance_node_timing_driven_effort,它会让global route在GR phase 3后做一个update_timing,然后基于更新的timing继续做一两轮的GR phase,这样得到的timing 会更好。

这个app option默认是high了,所以不需要设置。

crosstalk driven global route

这个feature (route.global.crosstalk_driven)也很早就有了。但是之前设不设其实没啥效果。为啥呢?因为routing global后只是glink,还没有真实的metal,所以看不到crosstalk。

最新的版本升级了,即便是global route,也能看到crosstalk了。当然,这个crosstalk value是通过算法预估出来的,和真实的crosstalk还有些区别,但有总比没有强。

GR有了crosstalk后,便有个好处,就是走GRO/GRE flow时(基于global route做timing 优化,详见文末链接),能看到带SI的timing,在这个阶段修SI就比post-route修SI要容易多了,所以timing能变好。

在最近的几个case里,能看到打开crosstalk driven global route后,WNS都有不少好处,TNS则变化不大。所以对WNS追求比较极致的同学可以试试 crosstalk driven GR + GRE。

猜你喜欢

转载自www.cnblogs.com/lelin/p/12586145.html
今日推荐