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。如下图所示

Box/坐标/方向/Row的更多相关文章

  1. 行盒(line box)垂直方向的属性详解:从font-size、line-height到vertical-align

    视觉格式化模型 在一个文档中,每个元素都被表示为0.1或多个矩形的盒子.确定这些盒子的尺寸, 属性 --- 像它的颜色,背景,边框方面 --- 和位置是渲染引擎的目标.① 在CSS中,使用标准盒模型描 ...

  2. 【CSS3】 CSS3:弹性盒子(Flex Box)

    Flex布局是什么 如何指定一个容器为Flex布局 Flex的基本语法 display flex-direction justify-content align-items flew-wrap ali ...

  3. Flexible Box布局基础知识详解

    1.基本概念,借用阮一峰老师的一张图: 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis).主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫 ...

  4. CSS:CSS弹性盒子布局 Flexible Box

    一.简介 flexbox:全称Flexible Box, 弹性盒子布局.可以简单实现各种伸缩性的设计,它是由伸缩容器和伸缩项目组成.任何一个元素都可以指定为flexbox布局.这种新的布局方案在200 ...

  5. BFC(Box,Formatting,Context) —— 块级格式化上下文

    Box:CSS布局的基本单位 Formatting context是页面中的一块渲染区域,最常见的是BFC和IFC,CSS3增加了GFC和FFC BFC定义:块级格式化上下文,它是一个独立的渲染区域, ...

  6. bounding box的简单理解

    1. 小吐槽 OverFeat是我看的第一篇深度学习目标检测paper,因为它是第一次用深度学习来做定位.目标检测问题.可是,很难懂...那个bounding box写得也太简单了吧.虽然,很努力地想 ...

  7. BFC(Box Formatting Context)的原理

    BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等).虽然我知道如何利用 BFC 解决这些问题, ...

  8. 2015年---移动端webapp知识总结

    没想到这样又过了5个月了,近期辞职了,所以我有时间来做总结. 这段时间里我学习了很多东西,而且都是我们移动端webapp的同学值得去学习的. 我先告诉大家我这次写的总结,有以下内容: 1.body的背 ...

  9. 使用C#控制台应用程序完成一个2048小游戏

    曾经使用C#控制台应用程序写的一个2048,现在翻出来回顾一下 Box类是2048中每一个小格子的相关信息,包括格子的横纵坐标.格子的值和格子是否刚合并这些信息. Grid类是网格的相关信息,包括网格 ...

随机推荐

  1. springBoot代码和依赖分开打包

    目的: 1.分离代码和依赖(包括第三方的引入包) 2.分离配置文件到外部 3.修改/META-INF/MANIFEST.MF中加载依赖包的位置和启动类,包含第三方依赖jar包 先查看项目的结构 由于我 ...

  2. 今天才知道a标签的href="#"是回到页面顶部

    如题,真的是,做了一年多的开发,今天才知道a标签的href="#"是回到顶部.以前一直以为这是个多么了不起的功能. 顺便扩展一下滑动隐藏和显示按钮(从别处拷贝来的代码) $( do ...

  3. Web简单小结

    一.HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应:<h1 onclick="this.innerHTML='你点我干啥'">请点击这里& ...

  4. (C语言)学生成绩排序-期末考倒数第二题结构体数组排序

    假设学生的基本信息包括学号.姓名.三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型.输入n(n<50)个学生的成绩信息,按照学生的个人平均分从高到低输出他们的信息.如果平均分相同 ...

  5. C语言实现反转链表 II(指定2个节点反转)

    要求: 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明:1 ≤ m ≤ n ≤ 链表长度. 示例: 输入: 1->2->3->4->5->NULL, m ...

  6. GD库的基本信息,图像的旋转、水印、缩略图、验证码,以及图像类的封装

    GD库检测 <?php phpinfo(); ?> GD库安装• Windows 使用phpstudy • Linux 编译安装 –with-gd• Linux 编译安装扩展 GD库支持的 ...

  7. caffe+win10+git使用sh文件

    在windows下是否可以执行sh文件呢,搜了一下,可以安装了git就可以执行,当然这不是唯一答案. 然后联想到caffe下有一些.sh文件可以尝试,就用create_mnist.sh尝试把. cre ...

  8. ALSA lib-ext plugin

    参考pcm_speex.c #include <stdio.h> #include <string.h> #include <unistd.h> #include ...

  9. SpringMVC起步

    SpringMVC: SpringMVC是Spring的一个组件,作为控制器,可以替代Servlet SpringMVC的开发过程: 请求发送 DispatcherServlet查询一个或多个Hand ...

  10. RN开发-Android原生交互

    在使用RN开发过程中,难免有些原生功能需要要自己来实现,下面总结一下在使用RN与原生开发交互. 1.在原生代码中定义实现类 1.1  首先继承 ReactContextBaseJaveModule抽象 ...