Cadence物理库 LEF 文件语法学习【持续更新】

我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索。
file
关注公众号,拉你进“IC设计交流群”。

一、LEF简介

LEF是 Library Exchange Format 的缩写,描述了设计的库信息,库数据包括了 layer、via、placement site type 、macro cell 定义。

1.1 通用规则

  1. 标识符如 net name 、cell name 都限制在2048字符以内
  2. 距离定义单位为微米。
  3. 距离精度由 UNITS 语句控制
  4. LEF语句以分号(;)结尾. 语句的最后一个字符与分号之间必须有一个空格。

1.2 管理 LEF 文件

可以在一个 LEF 文件中定义设计所需的所有的库信息;但这样做将创建一个复杂且难以管理的大文件。所以可以将库信息分成两个文件,一个是“technology”LEF文件,另一个是“cell library”LEF文件。

  • technology LEF file:工艺 LEF 文件包含设计的所有工艺信息,例如布局布线设计规则以及层的处理信息。一个 technology LEF 文件可以包括以下任何一个LEF语句:
[VERSION statement]
[BUSBITCHARS statement]
[DIVIDERCHAR statement]
[UNITS statement]
[MANUFACTURINGGRID statement]
[USEMINSPACING statement]
[CLEARANCEMEASURE statement ;]
[PROPERTYDEFINITIONS statement]
[FIXEDMASK ;]
[LAYER (Nonrouting) statement
 | LAYER (Routing) statement] ...
[MAXVIASTACK statement]
[VIA statement] ...
[VIARULE statement] ...
[VIARULE GENERATE statement] ...
[NONDEFAULTRULE statement] ...
[SITE statement] ...
[BEGINEXT statement] ...
[END LIBRARY]
  • cell library LEF file :单元库LEF文件包含设计所需的宏和标准单元信息。
    库LEF文件可以包含以下任何LEF语句:
[VERSION statement]
[BUSBITCHARS statement]
[DIVIDERCHAR statement]
[VIA statement] ...
[SITE statement]
[MACRO statement
  [PIN statement] ...
  [OBS statement ...] ] ...
[BEGINEXT statement] ...
[END LIBRARY]

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

二、Layer (Cut)

通过分配名称和设计规则来定义每个 cut 层。每个 cut 层都必须分开定义。由低而上的顺序中定义图层。例如:

poly masterslice
cut01 cut
metal1 routing
cut12 cut
metal2 routing
cut23 cut
metal3 routing

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

语法:

LAYER layerName
TYPE CUT ;
[MASK maskNum ;]
[SPACING cutSpacing
   [CENTERTOCENTER]
   [SAMENET]
   [ LAYER secondLayerName [STACK]
    | ADJACENTCUTS {2 | 3 | 4} WITHIN cutWithin [EXCEPTSAMEPGNET]
    | PARALLELOVERLAP
    | AREA cutArea
   ]
;] ...
[SPACINGTABLE ORTHOGONAL
       {WITHIN cutWithin SPACING orthoSpacing} ... ;]
[ARRAYSPACING [LONGARRAY] [WIDTH viaWidth] CUTSPACING cutSpacing
   {ARRAYCUTS arrayCuts SPACING arraySpacing} ... ;]
[WIDTH minWidth ;]
[ENCLOSURE [ABOVE | BELOW] overhang1 overhang2
  [ WIDTH minWidth [EXCEPTEXTRACUT cutWithin]
  | LENGTH minLength]
;] ...
[PREFERENCLOSURE [ABOVE | BELOW] overhang1 overhang2 [WIDTH minWidth] ;] ...
[RESISTANCE resistancePerCut ;]
[PROPERTY propName propVal ;] ...
[ACCURRENTDENSITY {PEAK | AVERAGE | RMS}
  { value
  | FREQUENCY freq_1 freq_2 ... ;
      [CUTAREA cutArea_1 cutArea_2 ... ;]
      TABLEENTRIES
       v_freq_1_cutArea_1 v_freq_1_cutArea_2 ...
       v_freq_2_cutArea_1 v_freq_2_cutArea_2 ...
       ...
  } ;]
[DCCURRENTDENSITY AVERAGE
  { value
  | CUTAREA cutArea_1 cutArea_2 ... ;
      TABLEENTRIES value_1 value_2 ...
  } ;]
[ANTENNAMODEL {OXIDE1 | OXIDE2 | OXIDE3 | OXIDE4} ;] ...
[ANTENNAAREARATIO value ;] ...
[ANTENNADIFFAREARATIO {value | PWL ( ( d1 r1 ) ( d2 r2 ) ...)} ;] ...
[ANTENNACUMAREARATIO value ;] ...
[ANTENNACUMDIFFAREARATIO {value | PWL ( ( d1 r1 ) ( d2 r2 ) ...)} ;] ...
[ANTENNAAREAFACTOR value [DIFFUSEONLY] ;] ...
[ANTENNACUMROUTINGPLUSCUT ;]
[ANTENNAGATEPLUSDIFF plusDiffFactor ;]
[ANTENNAAREAMINUSDIFF minusDiffFactor ;]
[ANTENNAAREADIFFREDUCEPWL
   ( ( diffArea1 diffAreaFactor1 ) ( diffArea2 diffAreaFactor2 ) ...) ; ]
END layerName

实例:

LAYER mcon
  TYPE CUT ;

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

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

END mcon

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

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

在这里插入图片描述

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

在这里插入图片描述

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

三、Layer(Masterslice or Overlap)

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

语法:

LAYER layerName
TYPE {MASTERSLICE | OVERLAP} ;
[MASK maskNum ;]
[PROPERTY propName propVal ;] ...
[PROPERTY LEF58_TYPE
   "TYPE [NWELL | PWELL | ABOVEDIEEDGE | BELOWDIEEDGE | DIFFUSION | TRIMPOLY | TRIMMETAL | REGION]
   ];" ;
[PROPERTY LEF58_TRIMMEDMETAL
   "TRIMMEDMETAL metalLayer [MASK maskNum]
   ]; " ;
END layerName
语句描述
LAYER layerName指定该层的名称。此名称将在以后引用该层时使用。
TYPE指定层的用途 ,有两种
- MASTERSLICE : 层固定在基座阵列中。如果 pins 出现在 MASTERSLICE 层中,则必须定义 vias 以允许布线器连接那些 pin 和第一个布线层。Masterslice层不允许用来布线。在 MASTERSLICE 层和相邻布线层之间必须定义一个 cut

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

实例:

LAYER nwell
  TYPE MASTERSLICE ;
  PROPERTY LEF58_TYPE "TYPE NWELL ;" ;
END nwell

LAYER pwell
  TYPE MASTERSLICE ;
  PROPERTY LEF58_TYPE "TYPE PWELL ;" ;
END pwell
  • 5
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
引用\[1\]: 在使用Cadence PCB软件时,需要使用Allegro软件来导入PCB文件并转化为AllegroPCB封装。具体步骤包括选择ASCLL文件、打开Allegro软件导入PCB文件、转化完成的PCB AD原PCB、导出AllegroPCB封装、生成的封装文件。\[1\] 引用\[2\]: 关于Cadence PCB仿真和Allegro PCB SI的使用方法,可以通过查看图文教程来了解如何使用Allegro PCB SI进行仿真波形的查看、生成各种仿真报告以及进行PDN分析等功能。\[2\]\[3\] 根据提供的引用内容,关于Cadence PCB文件的具体信息并未提及。如果您有关于Cadence PCB文件的具体问题,请提供更多的信息,以便我能够为您提供更准确的答案。 #### 引用[.reference_title] - *1* [cadence学习笔记(5)-从其他PCB(AD、PADS)导出Allegro使用的封装](https://blog.csdn.net/qq_44742284/article/details/125015454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Cadence PCB 仿真宝典【目录】](https://blog.csdn.net/fydar/article/details/124672556)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪天鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值