什么是BOX?
景芯SoC做design planning的第一步就是确定floorplan的box,也就是设计的区域。这个区域可以划分为三个边界,如下图所示:
Die Box
最外面一圈,我们称为 Die Box,也就是用来放置 IO 单元,包括PAD,IO Filler;
Core Box
最里面一圈,我们称为Core Box,是整块芯片的核心区域,用来放置std cell,hard macro等功能单元;
IO Box
IO Pad内侧与Core Box之间的margin称为IO box, 它并没有任何实际限制,在不违反物理规则的情况下,很多Pad也可以伸进Core area;
什么是坐标?
在后端innovus中会经常生成box,比如创建一个blockage,定义芯片的形状等。所以,学会通过坐标来表示一个box是最基本的知识点。
setObjFPlanPolygon
比如我们定义一个power domain的形状为多边形:
setObjFPlanPolygon Group PD_SHUT 206.96 647 206.96 1593.02 1593.02 1593.02 1593.02 206.96 564 206.96 564 647
下图是景芯A72双核CPU的实战低功耗domain示意图,也是用setObjFPlanBoxList坐标创建的多边形。7个power domain是不是很酷,这2.5GHz DVFS低功耗hierarchy设计会让面试官眼前一亮!
Rectangle Box
首先我们来介绍最简单的矩形Box的坐标定义方法。只需要记住Box左下角(llx,lly)和右上角(urx,ury)的两点坐标就行,下图中例子用坐标表示就是(100,100,400,200)
Rectilinear Box
对于不规则的图形的表示方法,稍微复杂点,分为两种,
lBox List
lPolygon
Box List
所谓Box List,是把一个不规则图形分成两个规则的矩形,分别记录两个图形的左下角和右上角坐标,就能表达出这个图形了。
下图例子用坐标表示就是(100,100)(400,200)(300,200)(400,400)
景芯A72低功耗power domain就采用了大量的Box List来实现不规则图形:
Polygon
BoxList只能支持简单的不规则图形,更复杂的图案需要采用Polygon。在 Polygon表示方法中,我们需要记录每个拐点的坐标,然后依次顺序写出来,用顺时针或者逆时针顺序都可以的。如下图景芯SoC的红色power domain换成 polygon形式表示就是:
setObjFPlanPolygon Group PD_SHUT 206.96 647 206.96 1593.02 1593.02 1593.02 1593.02 206.96 564 206.96 564 647