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

Box/坐标/方向/Row的更多相关文章
- 行盒(line box)垂直方向的属性详解:从font-size、line-height到vertical-align
视觉格式化模型 在一个文档中,每个元素都被表示为0.1或多个矩形的盒子.确定这些盒子的尺寸, 属性 --- 像它的颜色,背景,边框方面 --- 和位置是渲染引擎的目标.① 在CSS中,使用标准盒模型描 ...
- 【CSS3】 CSS3:弹性盒子(Flex Box)
Flex布局是什么 如何指定一个容器为Flex布局 Flex的基本语法 display flex-direction justify-content align-items flew-wrap ali ...
- Flexible Box布局基础知识详解
1.基本概念,借用阮一峰老师的一张图: 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis).主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫 ...
- CSS:CSS弹性盒子布局 Flexible Box
一.简介 flexbox:全称Flexible Box, 弹性盒子布局.可以简单实现各种伸缩性的设计,它是由伸缩容器和伸缩项目组成.任何一个元素都可以指定为flexbox布局.这种新的布局方案在200 ...
- BFC(Box,Formatting,Context) —— 块级格式化上下文
Box:CSS布局的基本单位 Formatting context是页面中的一块渲染区域,最常见的是BFC和IFC,CSS3增加了GFC和FFC BFC定义:块级格式化上下文,它是一个独立的渲染区域, ...
- bounding box的简单理解
1. 小吐槽 OverFeat是我看的第一篇深度学习目标检测paper,因为它是第一次用深度学习来做定位.目标检测问题.可是,很难懂...那个bounding box写得也太简单了吧.虽然,很努力地想 ...
- BFC(Box Formatting Context)的原理
BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等).虽然我知道如何利用 BFC 解决这些问题, ...
- 2015年---移动端webapp知识总结
没想到这样又过了5个月了,近期辞职了,所以我有时间来做总结. 这段时间里我学习了很多东西,而且都是我们移动端webapp的同学值得去学习的. 我先告诉大家我这次写的总结,有以下内容: 1.body的背 ...
- 使用C#控制台应用程序完成一个2048小游戏
曾经使用C#控制台应用程序写的一个2048,现在翻出来回顾一下 Box类是2048中每一个小格子的相关信息,包括格子的横纵坐标.格子的值和格子是否刚合并这些信息. Grid类是网格的相关信息,包括网格 ...
随机推荐
- u盘变成Read-only file system
先查看U盘的设备号,然后修改后重新挂载 fdisk -l sudo dosfsck -v -a /dev/sdb4
- [AH2017/HNOI2017] 影魔 - 线段树
#include<bits/stdc++.h> #define maxn 200010 using namespace std; int a[maxn],st[maxn][2],top,L ...
- Android开发菜单以及子菜单
package com.example.androidtest; import android.app.Activity; import android.os.Bundle; import andro ...
- mysql 表中数据不存在则插入,否则更新数据
在很多时候我们会操作数据库表,但是在向表中插入数据时,会遇到表中已经存在该id的数据或者没有该id的数据的情况,没有该id的数据的情况时直接插入就OK,遇到已经存在该id的数据的情况则更新该id的数据 ...
- mybatis第一天02
mybatis第二天02 1.映射文件之输入输出映射 1.1映射文件之输入映射类型(parameterType) 1.1.1简单类型 当parameterType为简单类型时,我们只需要直接填写“in ...
- MySQL的DQL语言(查)
MySQL的DQL语言(查) DQL:Data Query Language,数据查询语言. DQL是数据库中最核心的语言,简单查询,复杂查询,都可以做,用select语句. 1. 查询指定表的全部字 ...
- Ubutu安装oracle jdk1.8
环境: Ubuntu 18.04 LTS x64位 系统用户 hou 工具: jdk-8u171-linux-x64.tar.gz 实验的心 步骤: 第一步: 查看有没有装jdk,按住 ctr+a ...
- Dataset: online data
From Kaggle: Appliances Energy Prediction Energy consumption of the Netherlands International Energy ...
- C语言--“.”与“->”有什么区别?
这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过. 下面说说我对它们的理解. 一般情况下用“.”,只需要声明一个结构体.格式是,结构体类型名+结构体名.然后用结构 ...
- msfconsole启动失败并报错`not_after=': bignum too big to convert into `long'的解决方法
1.启动msfconsole失败并报如下错误: /usr/share/metasploit-framework/lib/msf/core/payload/android.rb:86:in `not_a ...