找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 454|回复: 0

[转帖] Cadence物理库 LEF 文件语法学习

[复制链接]

9

主题

-5

回帖

83

积分

实习生

积分
83
发表于 2023-6-7 20:45:52 | 显示全部楼层 |阅读模式
一、LEF简介
LEF是 Library Exchange Format 的缩写,描述了设计的库信息,库数据包括了 layer、via、placement site type 、macro cell 定义。

1.1 通用规则
标识符如 net name 、cell name 都限制在2048字符以内
距离定义单位为微米。
距离精度由 UNITS 语句控制
LEF语句以分号(;)结尾. 语句的最后一个字符与分号之间必须有一个空格。
1.2 管理 LEF 文件
可以在一个 LEF 文件中定义设计所需的所有的库信息;但这样做将创建一个复杂且难以管理的大文件。所以可以将库信息分成两个文件,一个是“technology”LEF文件,另一个是“cell library”LEF文件。

technology LEF file:工艺 LEF 文件包含设计的所有工艺信息,例如布局布线设计规则以及层的处理信息。一个 technology LEF 文件可以包括以下任何一个LEF语句:
  1. [VERSION statement]
  2. [BUSBITCHARS statement]
  3. [DIVIDERCHAR statement]
  4. [UNITS statement]
  5. [MANUFACTURINGGRID statement]
  6. [USEMINSPACING statement]
  7. [CLEARANCEMEASURE statement ;]
  8. [PROPERTYDEFINITIONS statement]
  9. [FIXEDMASK ;]
  10. [LAYER (Nonrouting) statement
  11. | LAYER (Routing) statement] ...
  12. [MAXVIASTACK statement]
  13. [VIA statement] ...
  14. [VIARULE statement] ...
  15. [VIARULE GENERATE statement] ...
  16. [NONDEFAULTRULE statement] ...
  17. [SITE statement] ...
  18. [BEGINEXT statement] ...
  19. [END LIBRARY]
复制代码

cell library LEF file :单元库LEF文件包含设计所需的宏和标准单元信息。
库LEF文件可以包含以下任何LEF语句:
  1. [VERSION statement]
  2. [BUSBITCHARS statement]
  3. [DIVIDERCHAR statement]
  4. [VIA statement] ...
  5. [SITE statement]
  6. [MACRO statement
  7.   [PIN statement] ...
  8.   [OBS statement ...] ] ...
  9. [BEGINEXT statement] ...
  10. [END LIBRARY]
复制代码


注:读取 LEF 文件时,必须先读取 technology LEF file,因为在 cell library LEF file 中会用到在technology LEF file 定义的一些库信息。

二、Layer (Cut)
通过分配名称和设计规则来定义每个 cut 层。每个 cut 层都必须分开定义。由低而上的顺序中定义图层。例如:
  1. poly masterslice
  2. cut01 cut
  3. metal1 routing
  4. cut12 cut
  5. metal2 routing
  6. cut23 cut
  7. metal3 routing
复制代码

这个对做过版图的朋友而言应该很容易理解,就是 poly + via + metal1 + via1 + metal2 + via2 +…多层叠加,cut 层实际上就是用来定义 vias的。

语法:
  1. LAYER layerName
  2. TYPE CUT ;
  3. [MASK maskNum ;]
  4. [SPACING cutSpacing
  5.    [CENTERTOCENTER]
  6.    [SAMENET]
  7.    [ LAYER secondLayerName [STACK]
  8.     | ADJACENTCUTS {2 | 3 | 4} WITHIN cutWithin [EXCEPTSAMEPGNET]
  9.     | PARALLELOVERLAP
  10.     | AREA cutArea
  11.    ]
  12. ;] ...
  13. [SPACINGTABLE ORTHOGONAL
  14.        {WITHIN cutWithin SPACING orthoSpacing} ... ;]
  15. [ARRAYSPACING [LONGARRAY] [WIDTH viaWidth] CUTSPACING cutSpacing
  16.    {ARRAYCUTS arrayCuts SPACING arraySpacing} ... ;]
  17. [WIDTH minWidth ;]
  18. [ENCLOSURE [ABOVE | BELOW] overhang1 overhang2
  19.   [ WIDTH minWidth [EXCEPTEXTRACUT cutWithin]
  20.   | LENGTH minLength]
  21. ;] ...
  22. [PREFERENCLOSURE [ABOVE | BELOW] overhang1 overhang2 [WIDTH minWidth] ;] ...
  23. [RESISTANCE resistancePerCut ;]
  24. [PROPERTY propName propVal ;] ...
  25. [ACCURRENTDENSITY {PEAK | AVERAGE | RMS}
  26.   { value
  27.   | FREQUENCY freq_1 freq_2 ... ;
  28.       [CUTAREA cutArea_1 cutArea_2 ... ;]
  29.       TABLEENTRIES
  30.        v_freq_1_cutArea_1 v_freq_1_cutArea_2 ...
  31.        v_freq_2_cutArea_1 v_freq_2_cutArea_2 ...
  32.        ...
  33.   } ;]
  34. [DCCURRENTDENSITY AVERAGE
  35.   { value
  36.   | CUTAREA cutArea_1 cutArea_2 ... ;
  37.       TABLEENTRIES value_1 value_2 ...
  38.   } ;]
  39. [ANTENNAMODEL {OXIDE1 | OXIDE2 | OXIDE3 | OXIDE4} ;] ...
  40. [ANTENNAAREARATIO value ;] ...
  41. [ANTENNADIFFAREARATIO {value | PWL ( ( d1 r1 ) ( d2 r2 ) ...)} ;] ...
  42. [ANTENNACUMAREARATIO value ;] ...
  43. [ANTENNACUMDIFFAREARATIO {value | PWL ( ( d1 r1 ) ( d2 r2 ) ...)} ;] ...
  44. [ANTENNAAREAFACTOR value [DIFFUSEONLY] ;] ...
  45. [ANTENNACUMROUTINGPLUSCUT ;]
  46. [ANTENNAGATEPLUSDIFF plusDiffFactor ;]
  47. [ANTENNAAREAMINUSDIFF minusDiffFactor ;]
  48. [ANTENNAAREADIFFREDUCEPWL
  49.    ( ( diffArea1 diffAreaFactor1 ) ( diffArea2 diffAreaFactor2 ) ...) ; ]
  50. END layerName
复制代码

实例:
  1. LAYER mcon
  2.   TYPE CUT ;

  3.   WIDTH 0.17 ;                # Mcon 1
  4.   SPACING 0.19 ;              # Mcon 2
  5.   ENCLOSURE BELOW 0 0 ;       # Mcon 4
  6.   ENCLOSURE ABOVE 0.03 0.06 ; # Met1 4 / Met1 5

  7.   ANTENNADIFFAREARATIO PWL ( ( 0 3 ) ( 0.0125 3 ) ( 0.0225 3.405 ) ( 22.5 408 ) ) ;
  8.   DCCURRENTDENSITY AVERAGE 0.36 ; # mA per via Iavg_max at Tj = 90oC

  9. END mcon
复制代码

这里由于涉及的语法很多,就不一一讲解了,等后面用到时,再进行更新,先对上面的实例进行讲解。

语句 描述
WIDTH 通孔宽度(正方形)
SPACING 通孔之间最小间距
ENCLOSURE BELOW :指定通孔边界与下方相邻金属层边界的最小间距
ABOVE:指定通孔边界与上方相邻金属层边界的最小间距



看图解释,通孔宽度也就是指的上图中间方块(这里有点像长方形了)的宽度,overhang1 是指的通孔左右两边距离金属边界的间距,overhang2 是指的通孔上下两边距离金属边界的间距。



而 SPACING 就是指的通孔之间的间距。

三、Layer(Masterslice or Overlap)
在设计中定义 MasterSlice(非布线)或 overlap layers。 Masterslice layers 通常是多晶硅层,只有在宏单元在多晶硅层上有 pins 时才会定义。

语法:
  1. LAYER layerName
  2. TYPE {MASTERSLICE | OVERLAP} ;
  3. [MASK maskNum ;]
  4. [PROPERTY propName propVal ;] ...
  5. [PROPERTY LEF58_TYPE
  6.    "TYPE [NWELL | PWELL | ABOVEDIEEDGE | BELOWDIEEDGE | DIFFUSION | TRIMPOLY | TRIMMETAL | REGION]
  7.    ];" ;
  8. [PROPERTY LEF58_TRIMMEDMETAL
  9.    "TRIMMEDMETAL metalLayer [MASK maskNum]
  10.    ]; " ;
  11. END layerName
复制代码

语句
描述
LAYER layerName
指定该层的名称。此名称将在以后引用该层时使用。
TYPE
指定层的用途 ,有两种

- MASTERSLICE : 层固定在基座阵列中。如果 pins 出现在 MASTERSLICE 层中,则必须定义 vias 以允许布线器连接那些 pin 和第一个布线层。Masterslice层不允许用来布线。在 MASTERSLICE 层和相邻布线层之间必须定义一个 cut 层


- OVERLAP: 用于直线块重叠检查的图层。


实例:
  1. LAYER nwell
  2.   TYPE MASTERSLICE ;
  3.   PROPERTY LEF58_TYPE "TYPE NWELL ;" ;
  4. END nwell

  5. LAYER pwell
  6.   TYPE MASTERSLICE ;
  7.   PROPERTY LEF58_TYPE "TYPE PWELL ;" ;
  8. END pwell
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
EDA1024论坛免责声明
请勿上传侵权资料及软件! 如果发现资料侵权请及时联系,联系邮件: fenxin@fenchip.com QQ: 2322712906. 我们将在最短时间内删除。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EDA1024技术论坛

GMT+8, 2024-5-18 14:38 , Processed in 0.046758 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表