因为不管是placer,还是optimizer,把cell放在当前位置都有它的理由,要么是对timing好,要么是对congestion好。从当前位置挪走了,timing/congestion都会受到影响。当然了,若只挪零点几um的距离,对timing/congestion的影响都微乎其微。但是积少成多,积微成著嘛,10个零点几ps,就累积成了几ps了,对时序就有了影响。所以,我们的目标是:让挪动距离越小越 好。设计里那么多的std cell,用什么尺度来衡量挪动距离(displacement)比较合适呢?
一般这个displacement参数,我们主要关心max displacement值。对于高性能cpu设计来说,它的值尽量不要超过100um。
一般超过这个值,可能就是一开始 place 的时候 stdcell 摆得不好,可能是局部 density 太高导致的,这个时候就可以给他打上 partition blockage,或者创建 region 去指导工具进行布局