zoukankan      html  css  js  c++  java
  • Box/坐标/方向/Row

    1.Box, 我们在做design planning的第一步就是确定floorplan的box,也就是设计的区域。这个区域可以划分为三个边界,如下图所示: 

    上图中,按对应的颜色框框可以分为:Die Box,IO Box,Core Box.

    红色框,也就是最外面一圈,我们称为Die Box,也就是用来放置IO单元,包括Pad,Io Filler等

    绿色框,也就是最里面一圈,我们称之为Core Box。是整块芯片的核心区域,放置std cell,hard macro等功能单元.

    黄色框,就是io pad内部与core box之间的margin称为IO box, 它并没有任何实际限制,在不违反物理规则的情况下,很多Pad也可以伸进core area.

    2.

    Rectangle Box: 首先我们来介绍的是最简单的矩形Box的坐标定义方法。对于这种Box,我们只需要记住Box左下角(llx,lly)和右上角(urx,ury)的两点坐标就行,下图中例子用坐标表示就是(100,100,400,200)

    Rectilinear Box:对于不规则的图形的表示方法,就有点复杂了。分为两种,Box List和Polygon。

    Box List:所谓Box List,是把一个不规则图形分成两个规则的矩形,分别记录两个图形的左下角和右上角坐标,就能表达出这个图形了。

    下图例子用坐标表示就是(100,100)(400,200)(300,200)(400,400)

    Polygon: BoxList只能支持简单的不规则图形,假如你需要画一个U字形或者T字形,这时你就需要采用Polygon了。在Polygon表示方法中,我们需要记录每个拐点的坐标,然后依次顺序写出来,用顺时针或者逆时针顺序都是可以的。如上图换成polygon形式表示就是:

    (100,100)(100,200)(300,200)(350,400)(400,400)(400,100)

     3.方向

    首先N,S,W,E就是大家熟悉的North, South, West, East. 另一种写法分别称为Rotate 0,Rotate 180,Rotate 90,Rotate 270。每个标准单元默认都放置于左下角,也就是R0位置,逆时针旋转90度就是R90位置,依次类推。

    而FN,FS,FW,FE则代表Flip North,Flip South,Flip West, Flip East,表示反转以后的方向,对应着Mirror Y(沿Y轴翻转),Mirror X(沿X轴翻转),Mirror XR90,Mirror YR90。

    Row。我们知道row是表征Floorplan横向排列的一个重要网格,可以将它解释为“排”,它对std cell的摆放起着限制约束作用。Row是placement的基础,因为需要摆放std cell的地方,就必须要首先创建row。下面我们来介绍下Row的各个内容和属性。

    Row是由SITE组成的。SITE定义的是最小的布局单位。如下图所示

     

    我们可以在Lef中找到Site定义:

    SITE unit_8t                       site名字

      CLASS CORE ;               site类别

      SYMMETRY X Y ;           site方向

      SIZE 0.100 BY 0.640 ;    site宽度,高度

    END unit_8t

    SITE的类别通常分为core和pad,分别对应着std cell的row和io cell的row。SITE的方向通常有X,Y,R90三个参数。X代表可以沿X轴翻转,Y代表可以沿Y轴翻转,R90代表可以任意翻转。SIZE定义了site的宽度,通常std cell都是site的整数倍高度,宽度。

     有了SITE定义以后,我们就可以生成最基本的row了,如下图所示:

    Row也有自己的方向,如上图箭头所示,通常相邻的row会相互abut并且flip,这样相邻site可以共用一根电源线,节省Power资源。

     所有std cell都必须snap到row上面,这是最基本的place规则。

    默认的std cell摆放方向遵从Row的方向,即方向箭头一致,但是根据cell本身的symmetry,std cell的摆放位置也可以有如下选择:

     

    这是最常见的row,实际design中,我们还能经常见到一些其他种类的row。

    常见的有double height,trible height的row,用来摆放两倍高,三倍高的cell。

    这边值得注意的是,一般我们只允许创建整数倍高的row,而在Voltage island中,我们允许创建非整数倍高的Row,比如默认电压区域用的是9T单元,而在Voltage island中我们使用了12T的cell,这时候就需要创建非整数倍高度的row。如下图所示

     

  • 相关阅读:
    拜师鸟哥之linux学习体会(1)——计算器概论
    LeetCode刷题1
    jupyter notebook直接打开.md格式的文件
    [图论]最短网络:prim
    [图论]最短网络:kruskal
    [图论]最优布线问题:kruskal
    A+B Problem
    [图论]最优布线问题:prim
    [图论]求连通分量
    [图论]连通图:深搜(邻接矩阵)
  • 原文地址:https://www.cnblogs.com/lelin/p/11154849.html
Copyright © 2011-2022 走看看