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. 软件工程概论,java web项目

    需要网站系统开发需要掌握的技术: 实施Java的WEB项目需要掌握的技术如:面向对象分析设计思想,设计模式和框架结构,XML语言,网页脚本语言,数据库,应用服务器,集成开发环境Java语言是完全面向对 ...

  2. Educational Codeforces Round 76 (Rated for Div. 2)F - Make Them Similar

    题意: 给你n个数字(<230),求出一个数字使得所有数字^这个数字之后,二进制状态下的1的个数相同. 解析: 因为最大数字二进制数有30位,所以分为前15位和后15位,分别枚举0-1<& ...

  3. 数据预处理 | 使用 Pandas 进行数值型数据的 标准化 归一化 离散化 二值化

    1 标准化 & 归一化 导包和数据 import numpy as np from sklearn import preprocessing data = np.loadtxt('data.t ...

  4. 《深入理解java虚拟机》读书笔记九——第十章

    第十章 早期(编译期)优化 1.Javac的源码与调试 编译期的分类: 前端编译期:把*.java文件转换为*.class文件的过程.例如sun的javac.eclipseJDT中的增量编译器. JI ...

  5. BZOJ的思维题

    5085:最大 给你一个n×m的矩形,要你找一个子矩形,价值为左上角左下角右上角右下角这四个数的最小值,要你最大化矩形 的价值. 关键点是要想到把这些值排序 值从小到大考虑,比如说现在最小的值是(x1 ...

  6. tk(三)按钮的事件绑定

    (三)按钮的事件绑定 ==1.普通的Button绑定事件== (1)说明: Button 使用 command=功能函数 来绑定 Button(win, text="确定", co ...

  7. SQLserver 数据类型转换

    1:CAST  方法 CAST(任何有效的表达试  AS 要转换的数据类型 [数据类型的长度,可选]) 例:SELECT  CAST(10000 as varchar(10)) SELECT  CAS ...

  8. Qt Gui 第三章~第四章

    一.图片资源的调用 如上图是我图片存放的位置跟qrc的命名: 如下则是qrc对应的编写格式: <RCC> <qresource> <file>images/icon ...

  9. Eclipse创建JSP、HTML、CSS文件默认字符集设置成UTF-8

    问题:在使用eclipse的时候总是发现新创建的JSP文件.HTML文件等默认总是ISO-8859-1,每次都要修改成自己使用的utf-8的,很是麻烦,因此在网上查看了一下发现是可以修改字符集的默认值 ...

  10. try_except_finally

    blog: python中的try/except/else/finally  python文档:错误和异常 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出 ...