我有什么,我要做什么,我要怎么做,我要做到什么程度
在做Floorplan之前,需要明确Floorplan的目的:
1. 确定芯片面积
2. I/O单元的摆放
3. hard macro,模块的摆放
细分概念:
1、box
2、row
3、track
4、physical constrains
5、blockage &Halo
6、Instance Group
7、Hierarchical Partition
一、Box
分为Die box、IO box、Core box
思考题:为什么Core box和IO box留有空隙?
二、Row
定义在LEF的Site中,Row也有自己的方向,通常相邻的row会相互abut并且flip,这样相邻site可以共用一根电源线,节省Power资源。
SITE sitename
CLASS {PAD | CORE}
SYMMETRY {X|Y|R90}
SIZE width BY height
END sitename
Row由Site组成
三、Track
pitch指的是指最小宽度加上最小间距之和
四、Macro(推荐手动摆放,数量多可以自动摆放)
1、memory(ram、row)
2、IP(PLL,sensor,…)
a) 模块尽量摆放在靠近相应输入输出口的位置
macro之间要留有一定空隙,给予布线资源
合理设置macro摆放的角度
在GUI界面的Floorplan —> Automatic FloorPlan
—> Plan Design(可以自动摆放Macro)
同一个module下的单元尽量放在一起
五、Constraint
不加约束的话,module可以放在core的任何一个区域。
Guide(向导约束):“可进可出”的约束,属于该模块的单元可以放置在该范围内,也可以放在该范围外,不属于该模块的单元也可以放置在改向导范围内
Region(区域约束):“可进不可出”的约束,属于该模块的单元只能放置在指定区域内,但该区域内可以放置其他单元
Fence(限制约束):强约束,“不可进不可出”的约束,属于该模块的单元只能放置在该区域内,且不允许放置其他单元
将module挪进Core后,工具会默认设置成Guide约束
六、Placement Blockage
1、Hard:在设计的任何阶段都不能摆放任何block和cell
2、Soft:在Placement阶段不能摆放std cell ,但是在place opt、CTS、ECO place、place legalization时可以被place
3、Partial:需人为设定一个百分比值,在place之后,该区域的place density不能超过设定的百分比
4、Macro Only:不允许摆放macro,但是对于std cell,可以任意摆放
七、Route Blockage
不允许该区域内走线
八、Halo
Halo是基于macro生长,可以跟着macro一起移动,而blockage是基于area
九、Instance Group
用于将来自不同module的不同instance组织在一起,确保它们在布局时能够更紧密地摆放
十、Partition
待更新
Physical Design Input
把做Floorplan前需要导入的文件在这记录一下
(用到哪个文件再去细节学习)
-
Netlist(网表)
作用:描述了逻辑器件的连接关系,网表其实还是用verilog来写的,只不过是以逻辑门的形式呈现出来。
-
Lib(标准单元时序库文件)
包含std cell的时序信息,专门用来做时序综合、时序分析或者说功耗分析。一个lib文件主要包含std cell 的传播延时(cell delay)、输出负载(output load,即输出的电容负载)和输入的转换时间(input transition)。
用途:计算std cell 的 cell delay,也就是计算传播延时,计算原理:A发生变化后要过多久B才能发生变化
Timing Lib Module:NLDM(非线性延时模型,速度快但是精度低)、CCS(复合电流源延时模型,速度慢)
NLDM:本质是一个查找表,只要确定了input transition和output load,就能确定cell delay。但是如果input transition和output load不能再NLDM里找到对应的值,那么就要进行插值计算,这样得到的cell delay的精度必然会下降,那么就可以使用CCS的Lib文件。
CCS:在先进工艺中经常用到,能够提供精确的cell delay。它的本质也是一个查找表,但是除了拥有input transition和output load外,还拥有output charging current,也就是电流随时间变化的一个函数。因为电流是随时间变化的,所以每一个pin都会有比NLDM更多的查找表,工具会根据输出电流来计算cell delay。 -
LEF
数字后端设计需要两种维度的文件,分别是physical view和timing view。其中physical view包含LEF文件。
LEF文件需要描述所有std cell的一个物理特征,一种GDS版图的抽象形式,包含了每个单元电路的物理形状,但是只包含自动布局布线过程中我们需要关系的那部分信息,比如单元电路的形状、方向,pin的名称和位置等。
Macro IV:表示这是一个可以被调用的单元,名字叫IV
Class core:放置在core区域
Origin:原点坐标
SIZE 3 BY 12 :宽度3,高度12(单位在Tech LEF 里)
SYMMETRY:表示对称方向
SITE CORE:表示可以放置在core区域
PIN A:里面的内容描述的都是Pin A的形状,首先介绍A的方向(input),天线效应的尺寸(1.4),Port表示A是可以和外部连接,mental 1:在金属层1,形状是(0.5,5)到(1.0,5.5)
OBS:阻挡物,不允许设置的范围在mental 1 -
Design Constraints(设计约束文件)
设计约束文件包含DRC(Design Rule Constraints)和OPT(OPtimization Constraints,优化约束)
DRC:是半导体工艺厂提供的。
1、最小或最大金属宽度、间距
2、max transition and max cap(也叫load)
3、等等
SDC:Synopsys design constraints
待更新
LEF:一种GDS版图的抽象形式,一般也叫physical view,包含了每个单元电路的物理形状,但是只包含自动布局布线过程中我们需要关系的那部分信息,比如单元电路的形状、方向,pin的名称和位置等
Lib:描述std cell 的timing信息
Tech LEF:包含了每层mental的最小间距、最小宽度、方向、单位,电阻,电容等等(工艺参数)
ITF:获得金属互连线的寄生参数信息
MAP:物理层映射
Macro:或者也叫Block
DEF:包含物理设计细节