@
- def 文件介绍
- 基本定义
- VIAS 定义
- NDR 定义
- COMPONENT
- PINS
- BLOCKAGES
- SPECIAL NETS
- NETS
- FILLS
def 文件介绍
DEF: Design Exchange Format , 描述了数字电路在布局布线后的连接关系和位置关系,是将数字实现前后端连接起来的桥梁。
目前常用的 def version 是 5.8,限制为:
- 标识符的长度不能超过 2048 个字符,如 net 跟 cell 的名字,通常如果设计中的某些 cell 名字太长,在综合结束后都会做 change_name 的动作,将其名字长度限定在 2048 个字符之内;
- DEF 中的声明都是以"
;
" 结束,而且必须在";
"前加一个空格; - DEF 中每个 section 都只能指定一次,而且以"
END SECTION
" 结尾,DEF 文件通常都比较大,在拿到 DEF 后可以用『 grep END 』来 check 在当前的 DEF file 中定义了哪些 Section; - DEF 中,除了 NETS section 中 + ORIGINAL 之外,所有的 objects 必须先定义后使用,其中一部分 objects 从 netlist 中读入,一部分 objects 从 techlef/lef 中读入,一部分 objects 在 DEF 中定义。
基本定义
上述图片中定义如下内容:
- DEF 的版本号,此处为5.8;
- 定义分割符;
- 总线比特符;
- 设计名;
- Units distance microns, 此处为 2000(表示 1um=2000units)。
在 Properties 部分定义 DEF 用到的所有 Property, 同时 Core2Die 的距离也在 Properties 部分定义,到目前为止除了7nm H300 其他工艺对 Core2Die 的距离无特殊要求,7nm H300 有特别具体的要求,否则会出现 Track 偏移的问题。
DIEAREA : 定义Die Area的面积(单位是db unit)
DIEAREA 定义了当前设计的形状及大小,如果是矩形为两个坐标,如果是多边形会有一串坐标。对应的坐标值除以Units distance microns 中 units 的值即为实际的距离。
所有的 std cell 都需要摆放在 ROW 上,所以在 DEF 中需要将所有用到的 SITE 都定义全,SITE 从 Tech lef 中读入。
ROW row_6 siteA 1000 1000 N DO 1 BY 10 STEP 0 900
row_6: Row 的名字
siteA: 构成 Row 的 site 名字
1000 1000 : 第一个 Row 的起始位置
DO 1 BY 10: X,Y 方向重复创建的 Row 的个数
STEP 0 900: X,Y ROW 的间隔
TRACKS Y 9000 DO 187 STEP 9000 LAYER M5
Y: TRACK 的方向
9000:TRACK 的起始位置
DO:TRACK 的数目
STEP: 相邻间隔
LAYER: 使用的层数
GCELLGRID
:GCELL 是 routing 的时候计算 congestion 用的,把整个版图分为一个个格子; 然后给每个格子分配 routing resource,和需要穿过该 gcell 的 net 来对比,分配 routing resource 和计算 congestion。
GCELLGRID X -10 DO 2 STEP 2290
X: GCELLGRID 方向
-10:起始位置
DO:复制个数
STEP:相邻间隔
VIAS 定义
- myUnshiftedVia+ VIARULE myViaRule+ CUTSIZE 20 20 # xCutSize yCutSize+ LAYERS metal1 cut12 metal2+ CUTSPACING 30 30 # xCutSpacing yCutSpacing+ ENCLOSURE 20 50 50 20 # xBotEnc yBotEnc xTopEnc yTopEnc+ ROWCOL 2 3 ;+ ORIGIN 10 -10+ OFFSET 0 0 20 -20
NDR 定义
NONDEFAULTRULES 5 ;
- doubleSpaceRule #Needs extra space, inherits default via rules+ LAYER metal1 WIDTH 200 SPACING 1000+ LAYER metal2 WIDTH 200 SPACING 1000+ LAYER metal3 WIDTH 200 SPACING 1000 ;
END NONDEFAULTRULES
COMPONENT
COMPONENT 的定义(实例化的单元,位置信息,Placement状态等)
- inst_name module_name + placement status +placement_status (location)
如果是 physical cell 则或带上 SOURCE DIST
PINS
BLOCKAGES
SPECIAL NETS
special nets 是电源网络定义。
综合用的 DEF 不需要 signal nets, 但一定要把 Special nets 写出来,尤其对 16nm 之后的工艺结点,Special nets 会占去许多绕线资源,对 timing 跟 Congestion 都有很大影响。
NETS
nets 是普通信号链接关系定义