Physicalimplementation——LEFandDEF
LEF
LEF 是Library Exchange Format 的⾸字母缩写,是C 家物理库的描述格式。LEF 分为tech lef 跟cell lef 两种,不论是哪个阶段的⼯具要使⽤lef 都必须先读⼊tech lef 再读⼊cell lef, 因为cell lef 中要引⽤tech lef 中定义的信息。
Tech lef 中定义了metal layer, via, design rule 等信息,请详细研读下⾯⼏张从油管上抠出来的图,图中较详细介绍了tech lef, cell lef 各包含哪些信息以及cell lef 跟cell abstract view 的对应关系。
layer type: routing, cut (contact), masterslice (poly, active), overlap.
design rule: width, pitch, spacing.名的英文
1. via definition.
2. metal direction.
3. resistance and capacitance per unit square.
4. antenna factor.
劳动的手抄报
Cell lef 中定义了cell 的⼏何形状跟abstract view:
1. site extension.
2. cell descriptions, cell dimensions.
3. layout of pins and blockages, capacitances.
check_design 会做lib/lef ⼀致性检查,可以报出哪些lib cell 没有对应的lef 哪些lef ⼜没有对应的lib cell. ⼯具会对有lib 没lef 的cell ⾃动设置dont_u 属性,所以⼀定要保证综合所⽤的所有std cell 对应的lef 都被读⼊。
读def 时,如果某些macro 的lef 缺失,⼯具会报PHYS-* 的Error, 没lef ⼯具⽆法知道cell 的长相,pin 的位置,所以⼀定要把所⽤到macro 的lef 都读⼊。
DEF
DEF 全称Design Exchange Format, ⽤于电路物理信息交互,是将数字实现前后端连接起来的桥梁。⽬前常⽤的DEF version 是5.8, 在DEF 中可以定义如下信息,本⽂不解析每⼀部分的含义,只概述做物理综合需要的部分信息。DEF file 有如下限定:标识符的长度不能超过2048 个字符,如net 跟cell 的名字,通常如果设计中的某些cell 名字太长,在综合结束后都会做
高的英文怎么说
change_name 的动作,将其名字长度限定在2048 个字符之内;
DEF 中的声明都是以";" 结束,⽽且必须在";"前加⼀个空格。
DEF 中每个ction 都只能指定⼀次,⽽且以"END SECTION" 结尾,DEF ⽂件通常都⽐较⼤,在拿到DEF 后可以⽤『 grep END 』来check 在当前的DEF file 中定义了哪些Section.
DEF 中,除了NETS ction 中 + ORIGINAL 之外,所有的objects 必须先定义后使⽤,其中⼀部分objects 从netlist 中读⼊,⼀部
分objects 从techlef/lef 中读⼊,⼀部分objects 在DEF 中定义。
、head
内网安全DEF 头部包含:
⽣成的⼯具及⼯具版本,此处为:Innovus 18.12-s102_1.
Linux 的操作系统;
⽂件⽣产的⽇期;
当前设计的名字;
产⽣DEF 的命令,此处为:defOut -floorplan ../fp.def
units
DEF ⽂件的第⼀部分定义了:
DEF 的版本号,此处为5.8;
加拿大法语区
分割符;
总线⽐特符;
设计名;
土耳其安全吗
Units distance microns, 此处为2000.
其他部分都好理解,需要特别说⼀下Units, 这个units 的定义不是随⼼所欲可以改的,协议规定该值必须⼩于等于tech lef 中在DATABASE MICRONS 中指定的值,最好两边值⼀致,在某些先进⼯艺点,如果两个值定义不⼀致,VIA 会出现偏移。该值⽤于DEF 中实际距离的计算,如果为2000 则表⽰ 1um = 2000 units。
Properties and Die Area
需要在Properties 部分定义DEF ⽤到的所有Property, 同时Core2Die 的距离也在Properties 部分定义,到⽬前为⽌除了7nm H300 其他⼯艺对Core2Die 的距离⽆特殊要求,7nm H300 有特别具体的要求,否则会出现Track 偏移的问题。DIEAREA 定义了当前设计的形状及⼤⼩,如果是矩形为两个坐标,如果是多边形会有⼀串坐标。对应的坐标值除以Units distance microns 中units 的值即为实际的距离。
ROWS
所有的std cell 都需要摆放在ROW 上,所以在DEF 中需要将所有⽤到的SITE 都定义全,SITE 从Tech lef 中读⼊。
在DEF 中有⼏个ction 的定义都需要指定⽅向,在ROW 的定义中也会指定⽅向,DEF 中的有效⽅向有以下⼏种。在上例中每两条相邻ROW 的⽅向差180 度,这样做的⽬的是:多条ROW 共⽤电源跟地。
TRACKs
要给每层可⽤于routing 的layer 定义好track 否则绕线资源不可⽤。这段原⽂描述⽐较好,翻译过来会变味,原⽂欣赏:"Defines the routing grid for a standard cell-bad design. Typically, the routing grid is generated when the floorplan is initialized. The first track is located at an offt from the placement grid t by the OFFSET value for the layer in the LEF file. The track spacing is the PITCH value for the layer defined in LEF."
Components
⽤于综合的DEF 该部分内容:
所有的hard macro 都应该定义为placed 或fixed.
将所有的physical only cell 都写出来,占位置;
如果有power swtich 最好也写出来,占坑;
芜湖旅游攻略
所有的hard macro 都应该有lef, 否则⼯具⽆法知道其形状,也会报错;
不要把STD cell 写出来,除⾮某些⼿⼯例化且有位置要求的STD cell.
Pins
学唱英文歌此处的pin 指hard macro 的输⼊输出端⼝,该部分定义每个pin 的位置,最好每个pin 都assign 好位置,但是通常在实现初期有⼀些pin 没⽤到如DFT 的pin, 没有位置可以接受。
VIAs and SPECIALNETs
综合⽤的DEF 不需要signal nets, 但⼀定要把Special nets 写出来,尤其对16nm 之后的⼯艺结点,Special nets 会占去许多绕线资源,对timing 跟Congestion 都有很⼤影响。