前言:上一篇分享了floorplan的规划流程,从方法论的层面分享了实际项目中的经验,接下来就是从细节方面入手,分享floorplan的注意事项。
布局floorplan一般经过这几个步骤:一,规划die,core 的size和几何形状;二,摆放memory和io pin或者IO pad;三,加blockage,加physical cell,。做完这些局可以进行下一个阶段的power plan了。这里先从这三个方面分享项目经验。
本篇先以block 项目为例分享经验,full chip的待来日再说。
一,规划core size和shape
通常会有几种情况,固定的core size和shape(这种比较直接);不确定的size,需要进行探索极限的。
第一种,大小固定,就比较直接了,拿到要求就可以直接开始做。但是,根据以往多个不同项目的经验来看,这里也是会有很多不同之处。简单的就是,给了具体的尺寸和形状,一般是给数据,需要自己去操作规划。这种就可以直接在gui界面里操作,core size 1000X1000,上下左右边界距离等。要么就是给def文件,直接defIn得到具体的core的大小形状,比较省事。
另外,有时候是同一系列产品需要做下一代的局部eco,所以会给后端一个block的gds文件,这个gds只包含了block的size和pin location,这样就需要后端工程师进行一个转换,把gds转成可以直接吃进的def文件。这种情况就比较麻烦,需要一些列的操作。个人经验参照日志《GDSII转DEF的flow简介》。当然类似的方法有很多,可以根据现有条件进行相应的操作。
第二种,大小不固定,需要后端探索测试得到性价比最高的形状尺寸。如果是层次化设计,那切的block的形状就是做top的工程师的工作经验决定。如果是展平化设计,那么就需要先计算利用率,然后进行不同利用率的测试。
利用率=std crea/(core area - macro area)
先确定一个较大的size,跑通flow,然后逐步压面积。至于形状可以先跑出几版分析是否需要换形状。
二,memory和IO的摆放
IO的摆放,可以使用ediPin来操作,也可参看《P&R中IO位置处理常用方法值editPin》。未完待续