ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

LEF/DEF 5.8 格式规范详解:物理设计中避坑与DRC通关的核心依据

LEF/DEF 5.8 格式规范详解:物理设计中避坑与DRC通关的核心依据

简介:本资源是Cadence官方发布的《LEF/DEF 5.8 语言参考》PDF手册,面向集成电路物理设计工程师、EDA工具使用者及VLSI课程学习者,系统解决LEF/DEF格式在工艺建模、单元库定义、布局布线描述与跨工具数据交换中的核心语法与规范理解问题。文件共1个PDF,大小2.48MB,完整涵盖LEF技术层定义、单元几何模型、间距规则、宏抽象描述,以及DEF模块布局、网络连接、物理约束与分区属性等关键章节,内容权威、结构清晰,适合作为数字后端设计流程中格式解析与调试的案头标准文档。目前已有2179人学习下载,读者可直接获取2017年正式版5.8语言规范全文,含版权说明、修订日志、术语索引及典型应用示例,无需二次整理即可用于工艺库开发、PDK验证或教学参考资料引用。

1. LEF/DEF 5.8 语言参考手册:不是“看懂就完事”的PDF,而是物理设计流程里真正会报错、卡住、改三遍还过不了DRC的底层契约

你手头正跑着一个 28nm 数字后端流程,innovus报出ERROR: LEF macro 'AND2X1' has no SIZE statement;或者tempus在时序签核时突然挂掉,日志里只有一行DEF parsing failed at line 4823: unexpected token 'PROPERTY';又或者你在调试天线效应(Antenna Violation)时翻遍工具文档,却找不到ANTENNAPINPOLYRATIO和ANTENNADIFFAREA到底该写在 LEF 还是 DEF 里、单位是 micron² 还是 square microns。这时候,你真正需要的不是某篇博客的模糊截图,也不是论坛里“删库跑路”式的一句“重装工具”,而是一份能让你逐字比对、精准定位、改完即生效的原始依据——这就是lefdefref-5.8.pdf的真实价值。

它不是教科书,不是入门指南,更不是“了解一下”的背景材料。它是 Cadence 在 2017 年冻结的、面向 16nm/14nm 工艺节点物理实现的格式法典:LEF 定义了工艺厂给你的“物理世界地图”(金属层怎么叠、间距多大、通孔怎么建),DEF 描述了你画的“电路施工蓝图”(模块放哪、线怎么走、电源怎么铺)。两者之间任何一处语法偏差、语义错位、版本不匹配,都会在 place & route 后期变成无法绕过的硬性错误。尤其当你在跨团队协作(比如 IP 提供方用 5.7,你用 5.8)、或对接第三方 PDK(某些老 PDK 仍卡在 5.6)、或调试 obscure DRC rule(如MAXVIASTACK 3与USEMINSPACING的交互逻辑)时,这份 PDF 就是你唯一能拍桌子说“规范白纸黑字这么写的”的底气。它适合所有在物理设计一线踩过坑的工程师:前端转后端的验证工程师、被 layout team 反复打回的 RTL 设计师、以及每天和check_legality做斗争的后端新人——只要你还在和.lef/.def文件打交道,你就绕不开它。


2. LEF 5.8 核心语法解析:从MACRO到LAYER,为什么你写的 LEF 总被工具当“脏数据”拒收

LEF 文件不是自由文本,它是一套严格分层、强顺序、弱容错的声明式语言。Cadence 工具(如 Innovus、SoC Encounter)在读取 LEF 时,会按固定顺序扫描并校验每个 section 的存在性、嵌套关系和字段完整性。一旦顺序错、字段缺、类型误,轻则跳过该 macro,重则直接 abort。本章带你拆开lefdefref-5.8.pdf第 1 章,直击最常翻车的 4 类语法结构,并给出可验证的最小可运行示例。

2.1MACRO声明必须包含SIZE、PIN、ORIGIN三要素,缺一不可

MACRO是 LEF 的核心单元,描述标准单元(如NAND2X1)、宏单元(如 RAM Macro)或 IO Cell 的物理轮廓与引脚定义。lefdefref-5.8.pdf第 114 页明确要求:SIZE必须出现在PIN之前,且ORIGIN必须在PIN内部声明。常见错误是把ORIGIN写在PIN外部,或漏掉SIZE。

# ✅ 正确:符合 LEF 5.8 语法(摘自 PDF 第 115 页 Example 1) MACRO NAND2X1 CLASS CORE ; ORIGIN 0.0 0.0 ; SIZE 0.96 BY 2.40 ; PIN A DIRECTION INPUT ; USE SIGNAL ; PORT LAYER M1 ; RECT 0.10 0.20 0.30 0.40 ; END END PIN Z DIRECTION OUTPUT ; USE SIGNAL ; PORT LAYER M1 ; RECT 0.70 0.20 0.90 0.40 ; END END END NAND2X1

逻辑说明:SIZE定义 macro 整体宽高(单位:micron),ORIGIN指定坐标系原点(默认为左下角),PIN下的PORT定义引脚在某层(如M1)上的几何区域。lefdefref-5.8.pdf第 117 页强调:SIZE是 mandatory 字段,无默认值;若缺失,Innovus 会报ERROR: Missing SIZE for macro NAND2X1并终止读取。

2.2LAYER定义必须严格区分ROUTING、CUT、IMPLANT类型,且TYPE关键字不可省略

LEF 中的LAYER不是简单罗列名称,而是对工艺层物理属性的完整建模。lefdefref-5.8.pdf第 15–42 页将LAYER分为 4 类,其中ROUTING(布线层)、CUT(通孔层)、IMPLANT(注入层)三类使用频率最高,但极易混淆。关键点在于:每类LAYER有专属 mandatory 字段,且TYPE关键字必须显式写出。

# ✅ 正确:ROUTING 层必须含 WIDTH、SPACING、PITCH(PDF 第 50 页) LAYER M1 TYPE ROUTING ; WIDTH 0.08 ; SPACING 0.08 ; PITCH 0.16 ; DIRECTION HORIZONTAL ; RESISTANCE 0.068 ; CAPACITANCE 0.00012 ; END # ✅ 正确:CUT 层必须含 `ENCLOSURE`(PDF 第 15 页) LAYER VIA1 TYPE CUT ; WIDTH 0.08 ; SPACING 0.08 ; ENCLOSURE M1 0.045 M2 0.045 ; # ← 必须指定上下层金属的 enclosure 值 END # ✅ 正确:IMPLANT 层必须含 `DIRECTION` 和 `WIDTH`(PDF 第 42 页) LAYER NIMP TYPE IMPLANT ; DIRECTION VERTICAL ; WIDTH 0.12 ; END

参数说明:ENCLOSURE是CUT层的核心字段,定义通孔对上层(M1)和下层(M2)金属的最小覆盖距离。若写成ENCLOSURE 0.045(缺层名),工具会报ERROR: Invalid ENCLSOURE syntax;若漏掉ENCLOSURE,则VIA1被视为无效层,后续VIA定义会失败。lefdefref-5.8.pdf第 16 页警告:“ENCLOSUREis required for all CUT layers”。

2.3VIA定义依赖VIA RULE,且VIA RULE GENERATE仅适用于规则阵列通孔

VIA在 LEF 中不是独立对象,而是VIA RULE的实例化结果。lefdefref-5.8.pdf第 162–175 页明确:VIA语句本身只声明名称和引用的VIA RULE,其几何形状、层叠关系全部由VIA RULE定义。而VIA RULE GENERATE是 Cadence 5.8 新增特性,用于生成规则排列的多通孔结构(如 2x2 array),但仅当通孔完全规则、无 offset 时才可用。

# ✅ 正确:先定义 VIA RULE,再引用(PDF 第 163 页) VIARULE VIA1_M1_M2 LAYER M1 ; RECT -0.04 -0.04 0.04 0.04 ; LAYER M2 ; RECT -0.04 -0.04 0.04 0.04 ; LAYER VIA1 ; RECT -0.04 -0.04 0.04 0.04 ; END VIA VIA1 VIARULE VIA1_M1_M2 ; END # ✅ 正确:VIA RULE GENERATE 用于规则阵列(PDF 第 175 页) VIARULEGENERATE VIA1_2X2 LAYER M1 ; RECT -0.04 -0.04 0.04 0.04 ; LAYER M2 ; RECT -0.04 -0.04 0.04 0.04 ; LAYER VIA1 ; RECT -0.04 -0.04 0.04 0.04 ; ROWCOL 2 2 ; STEP 0.16 0.16 ; END VIA VIA1_2X2_ARRAY VIARULEGENERATE VIA1_2X2 ; END

逻辑说明:STEP定义阵列中相邻通孔中心距,ROWCOL定义行列数。若STEP小于SPACING(如STEP 0.05 0.05但M1 SPACING 0.08),工具会在check_legality阶段报DRC: VIA spacing violation。VIA RULE GENERATE不支持非规则 offset,此时必须退回手写VIA RULE。

2.4NONDEFAULTRULE是解决宽线/厚线布线的关键,但必须与USEMINSPACING协同配置

先进工艺中,时钟线、电源线需加宽以降低 IR drop,但加宽后默认间距规则(SPACING)不再适用。NONDEFAULTRULE(NDR)就是为此设计的覆盖规则。lefdefref-5.8.pdf第 149 页指出:NDR 本身不生效,必须通过USEMINSPACING在MACRO或LAYER中显式启用。

# ✅ 正确:定义 NDR 并在 LAYER 中启用(PDF 第 161 页) NONDEFAULTRULE ndr_clk LAYER M2 WIDTH 0.32 ; # ← 宽线宽度 SPACING 0.16 ; # ← 宽线专用间距 END END LAYER M2 TYPE ROUTING ; WIDTH 0.08 ; SPACING 0.08 ; USEMINSPACING ndr_clk ; # ← 关键!启用该 NDR END # ✅ 正确:在 MACRO 中为特定引脚启用 NDR(PDF 第 118 页) MACRO CLKBUF_X4 SIZE 1.20 BY 2.40 ; PIN CLKIN DIRECTION INPUT ; USE SIGNAL ; PORT LAYER M2 ; RECT 0.10 0.20 0.30 0.40 ; END NONDEFAULTRULE ndr_clk ; # ← 为该 PIN 启用宽线规则 END END

参数说明:USEMINSPACING后接 NDR 名称,表示该层或该引脚在布线时采用 NDR 中定义的WIDTH和SPACING。若只定义 NDR 但未USEMINSPACING,工具仍用默认WIDTH 0.08和SPACING 0.08,宽线会因间距不足而 DRC fail。


3. DEF 5.8 结构精要:NETS、COMPONENTS、SPECIALNETS如何决定布局布线的最终形态

如果说 LEF 是“物理世界的宪法”,那么 DEF 就是“具体施工的工程图纸”。它不定义工艺能力,而是描述设计在硅片上的实际落位:模块在哪、线怎么连、电源怎么铺、哪些网络要特殊处理。lefdefref-5.8.pdf第 4 章(225 页起)是 DEF 的完整语法清单,但实战中 80% 的问题集中在NETS、COMPONENTS、SPECIALNETS三大 section。本章聚焦这三者,结合真实 debug 场景,告诉你如何写出工具不报错、DRC 不亮红灯、check_legality一次过的 DEF。

3.1COMPONENTS必须与 LEFMACRO名称严格一致,且SOURCE字段决定网表来源可信度

COMPONENTSsection 列出设计中所有实例化的单元(如U123 NAND2X1),其核心约束是:MACRO名必须 100% 匹配 LEF 中定义的MACRO名(大小写敏感、无空格)。lefdefref-5.8.pdf第 237 页规定SOURCE字段标识该 component 的来源,NETLIST表示来自综合网表(高可信),USER表示手动添加(低可信,可能被工具忽略)。

# ✅ 正确:COMPONENT 名与 LEF MACRO 名完全一致(NAND2X1,非 nand2x1 或 NAND2X1_) COMPONENTS 3 ; - U123 NAND2X1 + SOURCE NETLIST + PLACED ( 1200 2400 ) N ; - U456 INVX1 + SOURCE NETLIST + PLACED ( 1800 3600 ) N ; - U789 AOI22X2 + SOURCE USER + UNPLACED ; END COMPONENTS

逻辑说明:+ PLACED ( x y ) N表示已布局,坐标(x,y)单位为DATABASE MICRON(由UNITSsection 定义),N表示方向(North)。若 LEF 中 macro 名为NAND2X1,而 DEF 写成nand2x1,Innovus 会报WARNING: Component U123 references undefined macro nand2x1,并跳过该 instance,导致 net connectivity 断裂。SOURCE NETLIST是关键,它告诉工具该 component 的 pin connectivity 来自可信网表,SOURCE USER的 component 若未手动补全NETS,会被视为 floating。

3.2NETS是连接关系的唯一权威,ROUTED与FIXED状态决定布线器行为

NETSsection 定义所有信号网络的拓扑连接。lefdefref-5.8.pdf第 253 页强调:NETS中的PIN列表是 design connectivity 的 ground truth,与网表(.v/.vhd)必须一致;而ROUTED/FIXED/COVER等状态字段,则直接控制布线器(route_opt)是否对该 net 进行优化。

# ✅ 正确:ROUTED 网络提供完整几何路径,布线器将其作为约束(PDF 第 265 页) NETS 2 ; - clk_core + SOURCE NET + FIXED + SPECIAL + ROUTED M2 ( 1200 2400 ) ( 1200 3600 ) ( 1800 3600 ) ( 1800 2400 ) ; - reset_n + SOURCE NET + COVER + ROUTED M1 ( 1000 1000 ) ( 2000 1000 ) ; END NETS

参数说明:+ ROUTED后跟 layer 和一系列(x y)坐标,构成折线路径。+ FIXED表示该路径绝对不可修改(常用于 clock tree 或 power mesh),+ COVER表示仅占位、不参与电气分析(如 dummy fill)。若clk_core被标记+ FIXED,但路径中某段M2线宽小于 LEF 中M2 WIDTH,check_legality会报ERROR: Fixed net clk_core has illegal width on M2。+ SPECIAL是必需 flag,否则工具不识别该 net 为 special net。

3.3SPECIALNETS是电源/地/时钟等关键网络的独立声明区,必须与NETS中同名 net 严格对应

SPECIALNETS是 DEF 5.8 的重要增强,专用于声明 power、ground、clock 等具有特殊物理规则的网络。lefdefref-5.8.pdf第 307 页明确:SPECIALNETS中的 net 名必须与NETSsection 中同名 net 完全一致,且SPECIALNETS中的ROUTED路径是NETS中同名 net 的超集(即SPECIALNETS可以包含更多 routing segment)。

# ✅ 正确:SPECIALNETS 与 NETS 同名,且路径覆盖 NETS 中的路径(PDF 第 308 页) SPECIALNETS 2 ; - VDD + USE POWER + ROUTED M3 ( 0 0 ) ( 10000 0 ) ( 10000 10000 ) ( 0 10000 ) ; - VSS + USE GROUND + ROUTED M3 ( 0 0 ) ( 0 10000 ) ( 10000 10000 ) ( 10000 0 ) ; END SPECIALNETS

逻辑说明:+ USE POWER/GROUND/CLOCK是 mandatory flag,告知工具该 net 的电气角色。若SPECIALNETS中VDD的ROUTED路径未闭合(如缺最后一段(0 0)),check_legality会报WARNING: Special net VDD has open geometry;若NETS中无VDD,则SPECIALNETS的声明无效。SPECIALNETS的ROUTED路径精度(如是否带 corner rounding)直接影响 IR drop analysis 结果。

3.4DIEAREA和ROWS是布局合法性的基石,坐标单位必须与UNITS DATABASE严格对齐

DIEAREA定义芯片的物理边界矩形,ROWS定义标准单元摆放的网格行。lefdefref-5.8.pdf第 245 页和 299 页强调:二者坐标必须基于同一DATABASE MICRON单位,且ROWS的ORIGIN必须落在DIEAREA内部,SITE名必须与 LEF 中SITE定义一致。

# ✅ 正确:DIEAREA 与 ROWS 坐标单位统一,SITE 名匹配 LEF(PDF 第 155 页) DIEAREA ( 0 0 ) ( 10000 10000 ) ; ROWS 4 ; - ROW core_row_0 CORE X 0 Y 0 STEP 0.96 DO 100 ; - ROW core_row_1 CORE X 0 Y 2.40 STEP 0.96 DO 100 ; - ROW core_row_2 CORE X 0 Y 4.80 STEP 0.96 DO 100 ; - ROW core_row_3 CORE X 0 Y 7.20 STEP 0.96 DO 100 ; END ROWS

参数说明:STEP 0.96是 standard cell width(来自 LEFSITE定义),DO 100表示该行有 100 个 site。若DIEAREA是(0 0) (10000 10000)(单位 micron),而ROWS的Y坐标写成2400(误以为是 micron,实为 2400 * 0.001 = 2.4 micron),则check_legality会报ERROR: Row core_row_1 origin (0, 2400) is outside DIEAREA。SITE CORE必须在 LEF 中有对应SITE CORE ... END块,否则工具无法计算 row height。


4. LEF/DEF 协同避坑指南:5 个血泪经验总结,避免在check_legality阶段反复崩溃

LEF 和 DEF 不是孤立文件,它们通过MACRO名、LAYER名、SITE名、NET名形成强耦合。一个文件的微小偏差,会在另一个文件的解析或合法性检查中引爆。以下是我在多个 tapeout 项目中踩过的坑,按现象、原因、解决三步还原,每一条都对应lefdefref-5.8.pdf中的具体条款。

4.1 现象:Innovus ERROR: Cannot find macro 'IOBUF' in LEF library

原因:DEF 中COMPONENTS的IOBUF名与 LEF 中MACRO名不一致(如 LEF 是IOBUF_X1,DEF 写IOBUF),或 LEF 文件未被read_lef命令正确加载(路径错误、顺序错误)。
解决:

  1. 用grep "MACRO IOBUF" your.lef确认 LEF 中 exact macro name;
  2. 检查read_lef命令顺序:必须先read_lef tech.lef(工艺层),再read_lef lib.lef(单元库),最后read_def top.def;
  3. 在 Innovus 中执行report_library确认IOBUF是否在 loaded macros list 中。lefdefref-5.8.pdf第 114 页明确:“The macro name in the COMPONENT statement must exactly match the macro name in the LEF file”。

4.2 现象:check_legality报DRC: Via enclosure violation on VIA1

原因:LEF 中VIA1的ENCLOSURE值(如ENCLOSURE M1 0.045)小于工艺要求的最小值(如 0.05),或VIA1所在VIA RULE的RECT尺寸未覆盖ENCLOSURE区域。
解决:

  1. 查lefdefref-5.8.pdf第 15 页ENCLOSURE语法,确认格式为ENCLOSURE <layer1> <value1> <layer2> <value2>;
  2. 计算VIA1 RECT尺寸:若RECT -0.04 -0.04 0.04 0.04(宽高 0.08),则M1enclosure = 0.045 要求M1 RECT至少延伸至(-0.085, -0.085)到(0.085, 0.085);
  3. 修改VIA RULE中M1的RECT或增大ENCLOSURE值,确保满足工艺 rule deck。

4.3 现象:route_opt报ERROR: Net 'clk' has no pins connected

原因:NETSsection 中clk的PIN列表为空,或PIN名拼写错误(如U123/A写成U123/a),或COMPONENTS中U123未声明(导致U123/A无法解析)。
解决:

  1. 用grep -A 20 "NET clk" top.def提取完整 net block;
  2. 核对每个PIN格式:<inst_name>/<pin_name>,inst_name必须在COMPONENTS中存在,pin_name必须在对应 LEFMACRO的PIN中定义;
  3. 运行report_net -all -connections clk(Innovus)验证 connectivity。lefdefref-5.8.pdf第 254 页规定:“Each PIN in a NET statement must reference an existing component and pin”。

4.4 现象:check_power报WARNING: Power net 'VDD' has no special net definition

原因:SPECIALNETSsection 缺失VDD,或SPECIALNETS中VDD的+ USE POWERflag 缺失,或NETS中VDD未标记+ SPECIAL。
解决:

  1. 确保SPECIALNETS中VDD有+ USE POWER;
  2. 确保NETS中VDD有+ SPECIAL;
  3. 确保SPECIALNETS和NETS中VDD的ROUTED路径至少有一个 segment 重叠(工具据此关联二者)。lefdefref-5.8.pdf第 307 页:“A special net must be declared in both NETS and SPECIALNETS sections with identical names and the +SPECIAL flag”.

4.5 现象:check_antenna报Antenna ratio violation on net 'rst_n',但 LEF/DEF 中未见 antenna 相关 keyword

原因:天线效应检查依赖 LEF 中ANTENNAPINPOLYRATIO(poly 层天线比)和ANTENNADIFFAREA(diffusion 层天线比)的定义,若 LEF 未设置,工具用默认值(通常为 0),导致检查失效。
解决:

  1. 在 LEFTECHNOLOGYsection 添加:
    TECHNOLOGY ANTENNAPINPOLYRATIO 200 ; ANTENNADIFFAREA 400 ; END
  2. 确认lefdefref-5.8.pdf第 394 页:“These keywords must be defined in the TECHNOLOGY section of the LEF file to enable antenna checking”;
  3. 在 DEF 中NETS的rst_n添加+ ANTENNAflag(可选,用于 override)。

5. 天线效应(PAE)与工艺规则协同:从ANTENNA关键字到check_antenna的完整闭环

天线效应(Process Antenna Effect, PAE)是先进工艺(28nm 及以下)中导致栅氧击穿的致命风险,其本质是布线阶段金属面积远大于下方栅极面积,刻蚀过程中电荷累积击穿薄栅氧。lefdefref-5.8.pdf第 C 章(389 页起)是 Cadence 对 PAE 的官方应对方案,它不是理论科普,而是一套可落地的、与 LEF/DEF 深度绑定的检查框架。本章带你打通从 LEF 关键字定义、DEF 网络标记、到check_antenna命令执行的完整链路,重点讲清三个易混淆点:ANTENNAPINPOLYRATIO与ANTENNADIFFAREA的物理意义、+ ANTENNAflag 的作用时机、以及为何check_antenna必须在route_opt后执行。

5.1ANTENNAPINPOLYRATIO与ANTENNADIFFAREA:不是“越大越好”,而是工艺厂给你的安全阈值

lefdefref-5.8.pdf第 393 页定义:ANTENNAPINPOLYRATIO是 poly 层天线比阈值(单位:无量纲),ANTENNADIFFAREA是 diffusion 层天线比阈值(单位:square microns)。它们不是设计参数,而是工艺厂通过大量流片数据反推的安全上限。例如,某 16nm 工艺的ANTENNAPINPOLYRATIO 300意味着:任意一个 poly pin 上连接的 metal1 面积 / poly pin 面积 > 300 时,即判定为天线 violation。

# ✅ 正确:在 LEF TECHNOLOGY section 中定义(PDF 第 394 页) TECHNOLOGY NAME "TSMC16FF" VERSION "1.0" ANTENNAPINPOLYRATIO 300 ; # ← poly pin 天线比阈值 ANTENNADIFFAREA 600 ; # ← diffusion pin 天线比阈值(面积值) # 注意:ANTENNADIFFAREA 是绝对面积,非比值 END

参数说明:ANTENNAPINPOLYRATIO用于计算metal_area / poly_pin_area,ANTENNADIFFAREA用于计算metal_area(直接与阈值比较)。若工艺厂要求 poly 天线比 ≤ 300,你设成 500,check_antenna就不会报错,但 tapeout 时可能真烧毁;若设成 100,工具会过度插入 antenna diode,增加面积和功耗。必须严格采用 PDK 提供的值。

5.2+ ANTENNAflag:不是“开启检查”,而是“覆盖默认行为”的手术刀

NETSsection 中的+ ANTENNAflag 常被误解为“开启天线检查”,实则不然。lefdefref-5.8.pdf第 394 页说明:+ ANTENNA是一个override flag,用于标记该 net 的天线比计算方式与默认不同。默认情况下,工具对所有 net 计算天线比;+ ANTENNA的作用是:强制对该 net 使用更严格的计算模型(如考虑 multi-cut via 的 charge sharing)或禁用检查(+ NOANTENNA)。

# ✅ 正确:为高风险 reset 网络启用增强天线模型(PDF 第 394 页) NETS 1 ; - rst_n + SOURCE NET + SPECIAL + ANTENNA # ← 启用 enhanced antenna model,非开启检查 + ROUTED M1 ( 1000 1000 ) ( 2000 1000 ) ; END NETS

逻辑说明:+ ANTENNA本身不改变阈值,只改变计算逻辑。若你只想禁用某 net 的检查(如已知该 net 经过 antenna diode 保护),应写+ NOANTENNA。check_antenna命令默认检查所有 net,无需额外 flag。

5.3check_antenna必须在route_opt后执行:因为天线比 = 金属面积 / 栅极面积,而金属面积由布线决定

这是最常被忽视的时序陷阱。lefdefref-5.8.pdf第 395 页明确:“Antenna checking requires the routed geometry of nets. It cannot be performed before routing is complete.” 天线比的分子是metal layer 的实际布线面积,这个面积在place_opt阶段根本不存在(只有 pin location,无 wire),只有route_opt生成了ROUTED路径后,才能计算。

# ✅ 正确:check_antenna 的标准执行顺序(Innovus flow) place_opt # ... placement done ... route_opt # ... routing done, ROUTED paths exist ... check_antenna -verbose # ← 此时才有效

验证方法:执行report_net -connections rst_n,确认输出中包含ROUTEDsegment;若只有CONNECTED而无ROUTED,check_antenna会报WARNING: Net rst_n has no routed geometry, skipping antenna check。lefdefref-5.8.pdf第 395 页表格列出所有 required inputs for antenna calculation,第一项即 “Routed geometry of the net”。

5.4 天线修复的三种手段及 LEF/DEF 配合要点

check_antenna报错后,修复不是靠“调参数”,而是靠物理操作。lefdefref-5.8.pdf第 393 页给出三种标准手段,每种都需 LEF/DEF 协同:

修复手段LEF 要求DEF 配合工具命令
Insert antenna diodeLEF 中必须有MACRO ANTENNA_DIODE定义(含PIN A/C,SIZE,PORT)DEF 中NETS的rst_n需添加+ DIODEflagrepair_antenna -diode_cell ANTENNA_DIODE
Jump layerLEF 中 `NON

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进