码迷,mamicode.com
首页 > 其他好文 > 详细

论placer,legalizer和blockage,bound的关系

时间:2020-03-28 13:45:28      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:问题   话题   cer   作用   lock   padding   ati   介绍   site   

先问大家几个问题:

一:create_placement会把std cell 放进soft place blockage里吗?

二:在soft place blockage里创建一个hard bound,create_placement会把相应的std cell放进bound里去吗?

三:在hard place blockage里创建一个hard bound,legalizer会把std cell 从bound里挪出来吗?

 

std cell出门,靠两个工具,placerlegalizer。placer是宝马,可以让std cell从原点跑到floorplan的任何地方。legalizer是步行,坐宝马到了目的地后,得走一点点路,在附近找到一个合适的地方休息。std cell还有个亲戚,就是high-fanout-synthesis(简称HFS)和optimizer插入的buffer/inverter)。buffer不坐宝马,从天上掉下来后,然后也走走路(靠legalizer),找个合适的地方休息。

 

std cell并不能随心所欲,不能想去哪就去哪。它有两个约束,placement blockagebound。这两功能刚好相反,blockage是不让std cell进来,bound则是不让std cell出去。他们又有很多分类,bound分为soft bound和hard bound。blockage又分soft,hard,和partial以及各种特殊的blockage(比如buffer only等)。

 

一般情况下,blockage和bound分开工作,井水不犯河水。但是,偶尔会遇到bound和blockage overlap的情况,这种情况下,std cell该呆在里面呢?还是该出去呢?如果能正确理解工具的行为,那么将会把你的std cell弄的服服帖帖的,指哪打哪,精确去到你想去的地方。

 

Placer怎么处理blockage

hard blockage是霸王条款,没有商量,不允许placer把任何std cell进来。

soft blockage,有分别心。不允许placer把std cell放进来,但允许optimizer/HFS放buffer进来,为的是解DRC,优化时序。soft blockage也还算包容,已经进来的cell(也许是optimizer/HFS放的),则允许继续留在里面(place.coarse.enable_enhanced_soft_blockage=true),incremental place并不会把他们挪出去。

partial blockage,需要一个参数,即密度。std cell随时可以进来,但是不能超过这个密度阈值,否则,对不起,多余的人请出去吧。

所以placer手下的std cell和blockage的关系是:

 

Blockage  Type

Hard  

Soft

Partial

Place

进不去

进不去

能进去,但别进太多

Incremental Place

进不去

进不去

已经进去的可以呆着

能进去,但别进太多

 

Placer怎么处理bound

bound的目标很简单,指定一些std cell的位置,所以bound只是个约束。而placer的工作就是将这些宝贝疙瘩std cell放到bound里去。

Hard bound,顾名思义,是个硬性要求。所以placer不管三七二十一,会把这些cell全部装进这个bound里。

Soft bound,不是硬性条件,placer一般都会把std cell放进去,但也可能为了更好的时序,会被placer摆在bound外面一点。但一般不会离bound很远,多远取决于soft bound的effort。

注意事项:

:创建hard bound时,最好用leaf cell,而不要用hierarchy cell。因为如果指定hierarchy cell,将来optimizer插入的buffer如果逻辑上在这个hierarchy cell里,也会被认为符合这个约束,因此会被legalizer强制放进这个bound区域,可能对时序有很大的伤害。

:bound的利用率要在合理的范围之内。不要超过100%,也不要高达80%-90%,不然将来这里别的cell进不来。

:placer把cell放进bound后,cell并不是legalized。需要后续的legalizer把它们放好。

:一般的bound要在create placement后删除,让后面的步骤更好的优化时序。

 

另外还有HFSoptimizer新插入的buffer,也不会放进hard placement blockage,但可以放进soft/partial blockage。HFS/optimizer不会理睬bound,该放哪就放哪。

 

总结一下

placer/HFS/optimizer和blockage/bound的关系

技术图片

 

 

Legalizer介绍

Legalizer的作用,简单的说,就是把std cell放到附近合法的位置(legal location),越近越好。什么是legal locaction?感觉这是一个很复杂的话题。在较老的工艺里(比如28nm或者更老的),legal location就是把std cell放在row和site里,且没有overlap就是了。而新的工艺的legal location越来越复杂,因为不仅要考虑row/site和overlap,还要考虑两个cell 放在一起是不是有DRC?是不是导致将来的绕线DRC?会不会和PG太近,pin是不是在track上等等等等。好,打住,以后有专门的文章来介绍legalizer。

 

 

Legalizer和blockage

legalizer和blockage的关系比较简单。

hard blockage:legalizer会遵从hard blockage不让放std cell的约束。当std cell在hard blockage里时,legalizer会把它挪出来,放在外面的legal location;std cell在hard blockage外面时,当然不会挪进去。

soft blockage:legalizer不会遵从 soft blockage。在里面的继续呆在里面,在外面的继续呆在外面。在边界的,可能会为了找legal location会进进出出。总之一句话,legalizer 把soft blocakge当作空气。

partial blockage:legalizer不会遵从 partial blockage,和处理soft blockage行为相同。

 

 

Legalizer和bound

hard bound:legalizer会遵从hard bound的约束。当属于这个bound的std cell已经在bound里时,legalizer不会挪出来。当属于这个bound的std cell在bound外面时,legalizer会把他们挪进去。

soft bound:legalizer不会遵从soft bound。在里面的继续呆在里面,在外面的继续呆在外面。在边界的,可能会为了找legal location会进进出出。总之同一句话,legalizer 把soft bound当作空气。

 

 

总结一下

Legalizer和placement blockage,bound的关系:

技术图片

 

论placer,legalizer和blockage,bound的关系

标签:问题   话题   cer   作用   lock   padding   ati   介绍   site   

原文地址:https://www.cnblogs.com/lelin/p/12586612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!