【Backend Flow工程实践 21】DRC / Antenna / Metal Fill:为什么 route 之后还远没有结束?
作者Darren H. Chen方向Backend Flow / 后端实现流程 / EDA 工具工程 / Physical VerificationdemoLAY-BE-21_drc_antenna_fill标签Backend Flow、EDA、DRC、Antenna、Metal Fill、Routing、Physical Verification、Signoff、Layout Closure很多人第一次学习后端实现时会把 routing 当作最后一步。直观理解是floorplan 完成 placement 完成 CTS 完成 routing 完成 然后芯片版图就结束了但在真实后端工程中route 完成远远不等于版图结束。因为 route 只是把连接关系变成金属线和 via而这些几何图形还必须满足制造规则、电气规则、可靠性规则和签核工具规则。换句话说routing 的输出只是一个“候选版图”不是一个可以直接交付的制造版图。route 之后通常还要面对三类关键问题DRC : 几何设计规则是否满足工艺制造要求 Antenna : 等离子刻蚀过程中是否可能损伤 gate oxide Metal Fill : 金属密度是否满足 CMP 和制造均匀性要求这三件事情看起来像 route 后的检查和补丁但它们实际上直接影响芯片能否制造、能否签核、能否量产。本文从底层原理、架构模型和工程方法论角度解释为什么 route 之后还远没有结束以及 DRC / Antenna / Metal Fill 在后端闭环中到底扮演什么角色。一、Routing 只是连接闭合不是制造闭合Routing 的目标是把 netlist 中的连接关系转换成物理金属几何。例如一个 netN1: U1/Y U2/A U3/B在 routing 之后会变成M2 horizontal wire M3 vertical wire via stack pin access segment branch topology但是这些几何图形是否合法并不只取决于“有没有连上”。一个 net 即使电气上连通也可能存在金属间距太小 线宽不合法 via enclosure 不足 notch 形状非法 end-of-line spacing 不满足 金属密度不满足 antenna ratio 超限 pin access 形状不可靠 与 block boundary 冲突 与 macro obstruction 冲突所以 route 完成只能说明connectivity closed但还不能说明manufacturing closed physical verification closed reliability closed signoff closed这是很多初学者容易误解的地方。真实后端 flow 的阶段边界更接近下面这样route completed ↓ route DRC cleanup ↓ antenna check / fix ↓ metal fill insertion ↓ post-fill extraction ↓ post-fill timing / power check ↓ signoff DRC / LVS / PEX ↓ layout closure因此route 之后不是结束而是进入物理签核闭环。二、DRC 的本质把工艺制造约束转成几何约束系统DRC 是 Design Rule Check。它的表面含义是检查版图是否满足设计规则。但从底层看DRC 本质上是把工艺制造能力、光刻限制、刻蚀限制、CMP 限制、可靠性限制转化为一组可计算的几何约束。例如minimum width minimum spacing minimum area minimum enclosure end-of-line spacing notch spacing via enclosure cut spacing density window forbidden pitch same-net spacing different-net spacing这些规则不是凭空来的而是由制造工艺决定的。后端工具内部看到的是多层版图几何Layer M1: rectangles polygons pins obstructions Layer VIA1: cuts arrays Layer M2: wires shields blockagesDRC 引擎看到的是geometry set layer relation measurement rule violation marker因此DRC 检查的核心不是“检查线”而是对几何集合执行规则计算。可以抽象成Layout Geometry ↓ Layer Boolean / Edge Extraction ↓ Rule Measurement ↓ Violation Marker Generation ↓ Result Database / Report比如 minimum spacing 检查可以理解为对同一层金属图形提取边界 计算相邻边之间距离 小于规则值则生成 violation markervia enclosure 检查可以理解为对 via cut 与上下层 metal 做几何包含关系计算 如果 metal 对 cut 的包围不足 则生成 enclosure violation所以 DRC 是几何计算系统不是简单文本规则匹配。三、为什么后端工具内置 DRC 和 signoff DRC 结果可能不同真实项目中经常出现一种情况后端工具里检查没有问题 signoff PV 工具里还有 DRC violation这并不奇怪。原因在于后端工具内置 DRC 和 signoff DRC 的定位不同。后端工具里的 DRC 通常服务于实现过程帮助 routing 避免明显非法图形 帮助 route optimize 修复局部问题 帮助工程师快速定位可修复 violation 在交互式编辑时做即时检查signoff DRC 则服务于最终制造交付使用 foundry rule deck 覆盖完整制造规则 对复杂几何和特殊工艺规则更严格 使用签核级数据库和规则解释 输出正式 violation database两者关注点不同类型主要目标特点In-design DRC支持实现阶段快速修复快、局部、工程迭代友好Signoff DRC支持制造签核全量、严格、规则覆盖完整因此后端工程方法论不能只依赖一种检查。更合理的做法是route 阶段尽量用 in-design DRC 减少明显问题 阶段收敛后用 signoff DRC 找最终问题 把 signoff violation 分类后回推给后端修复 修复后再次导出并复查这就是 route 后 DRC closure 的基本闭环。四、DRC violation 不能只看数量要看类型和修复代价很多人看 DRC report 时只看 violation count。例如DRC violations: 128但在工程上单纯的数量意义有限。真正要看的是 violation 类型、分布、根因和修复代价。例如violation 类型可能根因修复代价spacingroute 太拥挤、NDR 冲突、pin access 差中等min areawire segment 太短、cut 旁金属不足较低via enclosurevia 与 metal 几何不匹配中等notchpolygon 形状复杂、route patch 不干净中等density金属密度不足或过高后期 fill 相关antenna长金属连接 gate缺少 diode 或跳层可能较高boundarymacro / block 边界约束不一致可能较高如果某类 violation 大量集中在一个区域说明不是局部修线问题而可能是上游决策出了问题。例如某个 macro channel 周围 spacing violation 很多可能说明macro channel 太窄 pin access 太差 routing blockage 不合理 power stripe 占用了过多 routing resource placement 把高连接 cell 推到了错误位置这时如果只靠 detail route 修复很可能越修越乱。工程上应该回到更高层次macro placement channel width routing layer assignment blockage strategy pin access strategy power route planning所以 DRC closure 的方法论是不要把所有 DRC 都当成 route 后局部修复问题要先判断它是不是 floorplan / placement / power plan / routing resource 的系统性问题。五、Antenna 的底层原理长金属在制造过程中可能积累电荷Antenna 问题和普通 DRC 不同。DRC 主要看几何规则而 antenna 关注的是制造过程中的电荷累积风险。在芯片制造过程中金属层刻蚀会经历等离子工艺。某些长金属线在制造中可能像天线一样收集电荷。如果这条金属线连接到 MOS gate而 gate oxide 很薄积累的电荷可能通过 gate oxide 放电造成损伤。抽象地说long metal area ↓ charge accumulation during plasma process ↓ connected gate oxide stress ↓ potential reliability failure这就是 antenna effect。因此 antenna rule 通常会定义类似关系metal area / gate area limit cut area / gate area limit partial metal area / gate area limit这不是简单的线宽线距问题而是制造阶段的电荷路径问题。六、为什么 antenna 经常在 routing 后暴露Antenna 风险依赖最终 routing topology。在 placement 阶段工具知道 cell 在哪里但不知道最终金属怎么走。只有 routing 之后才知道某个 gate 接了多长金属 经过了哪些 layer 用了哪些 via 是否先连接到 diffusion 是否存在可释放电荷的路径所以 antenna 常常是在 route 之后检查。典型风险场景包括一个 input pin 连接到很长的上层金属 net 在连接到 diffusion 之前已经形成很大金属面积 跨多个金属层的长距离连接 clock / reset / enable 等高扇出信号局部连接复杂 macro pin 到 standard cell input 的长线如果不处理 antenna即使版图 DRC clean也可能存在可靠性问题。七、Antenna 修复的两类基本方法Antenna 修复通常有两类方法。1. 插入 antenna diode思路是给可能积累电荷的金属提供泄放路径。抽象示意Before: Long Metal ─────────────── Gate After: Long Metal ─────┬───────── Gate │ Diode优点修复直接 对 routing topology 改动相对较小 适合部分长线输入端缺点增加面积 可能增加负载 可能影响 timing 需要合法 placement site 需要 power/ground 连接2. Metal jumper / layer hopping思路是改变制造过程中金属形成顺序让长金属面积不要过早连接到 gate。抽象示意Before: M2 ───────────────────── Gate After: M2 ───── Via ── M4 ── Via ───── Gate优点不一定增加 cell 可能减少某些 antenna ratio缺点占用 routing resource 增加 via 可能引入额外寄生 可能制造新的 DRC 或 timing 问题因此 antenna fix 不是孤立动作它会影响placement legality routing resource net capacitance timing slack power connection DRC closure这就是为什么 antenna 修复之后还要重新检查 timing 和 DRC。八、Metal Fill 的本质为制造均匀性补充金属密度Metal Fill 看起来像“在空白区域填一些金属块”。但它的底层原因是制造工艺中的 CMP。CMP 是 Chemical Mechanical Polishing用于平坦化晶圆表面。如果某些区域金属密度太低或太高抛光后的高度会不均匀从而影响后续工艺层。因此 foundry 通常会规定每一层金属在一定窗口内的密度范围。例如抽象规则在 100um x 100um 窗口内 M3 density must be between 20% and 80%如果某个区域金属太少就需要插入 dummy metal fill。抽象示意Before fill: ----------------------------- | | | routed wires | | | | | | | | | ----------------------------- After fill: ----------------------------- | [] [] [] [] | | [] | | [] [] [] | | | | [] [] [] [] | -----------------------------Metal Fill 的目标不是连接电路而是改善制造均匀性。但它会带来新的电气影响。九、为什么 Metal Fill 会影响 timing 和 extractionDummy metal 虽然不承载逻辑连接但它是真实金属。真实金属会产生寄生电容。例如一条信号线旁边插入 fill 后可能增加wire-to-fill coupling capacitance wire-to-ground capacitance effective capacitance local coupling environment这会影响net delay slew setup slack hold slack noise / SI power所以 Metal Fill 之后通常需要重新做post-fill extraction post-fill STA post-fill power analysis post-fill signoff check这就是为什么不能把 fill 当成纯版图装饰。它是制造约束与电气签核之间的耦合点。十、Route 后闭环的推荐架构一个相对稳健的 route 后闭环可以抽象为Routed Design Database ↓ In-design DRC Check ↓ Route DRC Repair ↓ Antenna Check ↓ Antenna Fix ↓ Metal Fill Insertion ↓ Post-fill Extraction ↓ Post-fill Timing / Power Check ↓ Export DEF / GDS / Netlist ↓ Signoff PV Tool ↓ DRC / LVS / PEX Results ↓ Violation Classification ↓ Backend Fix Loop这条链路的重点是每一个修复动作都可能改变版图每一次版图变化都可能影响 timing、power、DRC、antenna 和 extraction。因此 route 后 flow 不能设计成一次性脚本而应该设计成可迭代闭环。十一、Demo 设计LAY-BE-21_drc_antenna_fill这个 demo 的目的不是替代真实 signoff DRC而是建立一个最小工程模型让读者理解 route 后检查的结构。建议 demo 输入data/layout/routed_layout.def 数据中的抽象 routing wire 数据中的抽象 gate area 信息 数据中的抽象 layer rule 数据中的抽象 density window rule建议 demo 执行逻辑1. 读取 routed layout 摘要 2. 检查 wire spacing / min area / via enclosure 的抽象规则 3. 计算每个 net 的 antenna ratio 4. 对超过阈值的 net 生成 antenna violation 5. 对每个 density window 计算金属密度 6. 对低密度窗口给出 fill 建议 7. 输出 route 后检查报告建议 demo 输出reports/drc_summary.rpt reports/antenna_summary.rpt reports/fill_density_summary.rpt reports/post_route_closure_plan.rpt logs/post_route_check.log其中post_route_closure_plan.rpt可以按修复优先级输出[HIGH] short / spacing / via enclosure [HIGH] antenna ratio violation connected to input gate [MED ] density window below target [LOW ] cosmetic / optional cleanup这个 demo 的工程价值在于它把 route 后问题从“工具报错”拆成了可分类、可解释、可排序的 closure 任务。十二、方法论route 后问题要按依赖关系修不要乱修Route 后修复非常容易陷入混乱。如果修复顺序不对可能出现修 antenna 引入 DRC 修 DRC 破坏 antenna 插 fill 影响 timing 修 timing 又改 route 改 route 又产生新 DRC因此需要一个修复顺序策略。推荐顺序是1. connectivity 和 gross DRC 优先 2. routing DRC cleanup 3. antenna check / fix 4. metal fill insertion 5. post-fill extraction 6. post-fill timing / power check 7. signoff PV closure原因是connectivity 错误会让后面所有检查失去意义 严重 DRC 会影响 PEX 和 LVS antenna fix 会改变 routing 或 cell insertion fill 会改变寄生参数 post-fill timing 才接近最终版图状态工程上不要只问这个 violation 怎么修更应该问这个 violation 属于哪个 closure 层级 它应该在 fill 前修还是 fill 后修 它会不会改变 timing 它会不会触发重新 extraction 它是否需要回退到 floorplan / placement这才是后端工程方法论。十三、Route 后报告应该如何组织成熟 flow 不应该只保存最终 DRC count而应该保存一组分层报告。建议至少包括route_drc_summary.rpt route_drc_by_type.rpt route_drc_by_region.rpt antenna_by_net.rpt antenna_fix_plan.rpt metal_density_by_window.rpt fill_insertion_summary.rpt post_fill_timing_delta.rpt post_route_closure_summary.rpt这些报告的作用是按类型定位问题 按区域定位拥塞或设计缺陷 按 net 定位 antenna 风险 按窗口定位 density 问题 比较 fill 前后 timing delta 为 signoff handoff 提供依据报告设计得越清楚后续 PV handoff 和 ECO 修复越容易闭环。十四、总结Route 之后还远没有结束。Routing 只是完成了连接几何后端真正的收敛还必须通过 DRC、Antenna、Metal Fill、post-fill extraction、post-fill timing 和 signoff PV 闭环来确认。可以用一句话概括本文Route 解决的是“连得上”DRC / Antenna / Metal Fill 解决的是“造得出、用得稳、签得过”。从工程架构看route 后阶段不是一个尾声而是从实现工具内部闭环走向物理验证和制造签核的过渡区。从方法论看route 后问题不能简单按报错逐条修而要按类型、区域、根因、依赖关系和修复代价建立 closure plan。这也是 Backend Flow 从脚本执行走向工程成熟的关键一步。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2577718.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!