4. ECO时序修复的物理与逻辑边界

在后期时序修复中,逻辑上“能修”和物理上“能落”是两件事。ECO 工程师最常遇到的困境是:时序报告显示某条路径需要插入两级缓冲,逻辑上完全可行,但打开物理数据库后发现目标区域没有可用的 spare cell,或者绕线通道已被占用,最终只能退而求其次选择更弱的修复方案,甚至放弃修复。理解 ECO 的物理与逻辑边界,本质上是在回答一个问题:在已有的物理版图上,我还有多少可用的修复资源,它们分布在哪里,能支撑多大力度的修复?

一、可用的逻辑资源:spare cell、gate array 与可编程单元

后期 ECO 不能随意新增标准单元,因为新增单元意味着新增版图行、新增电源轨连接,这在已经完成布局布线和签核的数据库里几乎不可接受。因此,业界普遍在布局阶段就预埋“可编程”的逻辑资源,供后期修改使用。

Spare cell(备用单元)是最常见的形式。设计者在布局阶段按一定密度撒入若干标准单元,通常包括反相器、缓冲器、与非门、触发器、多路选择器等基础类型。这些单元的输入被接到固定电平或已知信号,输出悬空或接到不影响功能的负载,因此在功能上“透明”。ECO 时,通过修改金属层和少量通孔,把这些单元重新连接到目标路径上,实现缓冲插入、逻辑重组或路径切换。Spare cell 的关键参数是类型、数量、位置和驱动能力。一个区域内只有弱驱动反相器,就无法承担长线驱动的修复任务;只有触发器而没有组合逻辑,就无法实现组合路径的重新布线。

Gate array(门阵列)则是在芯片上预先铺设规则的门阵列结构,通常由未连接的晶体管阵列组成,后期通过金属层定制实现所需逻辑。它的优势是密度高、可实现复杂逻辑,但需要专门的金属层编程,且时序特性不如标准单元可预测。在先进工艺中,gate array 更多用于结构化 ASIC 或特定可编程区域,在通用 ECO 流程中不如 spare cell 普遍。

可编程单元是更广义的概念,包括可配置的时钟单元、可编程延迟单元、可重构的缓冲链等。例如,某些设计会预埋可旁路或可级联的缓冲器链,ECO 时通过选择抽头点来调整延迟。这类资源的修复粒度更细,但灵活性受限于预定义的连接方式。

ECO 可用逻辑资源与物理约束关系 逻辑资源 Spare Cell INV / BUF / NAND / DFF / MUX Gate Array 未连接晶体管阵列 + 金属编程 可编程单元 可配置缓冲链 / 时钟单元 物理约束 金属层资源 M1~M8 可用轨道 / 通孔 布线资源与拥塞 全局/详细路由溢出、阻塞 阻塞与禁布区 IP 边界 / 宏单元 / 电源网格 修复空间评估 可用单元清单 类型 / 数量 / 坐标 / 驱动 可绕线通道 剩余轨道 / 通孔可用性 修复力度上限 可插缓冲级数 / 可绕线长度 后期物理数据库中的修复空间评估流程 ① 提取可用资源 spare cell 坐标与类型 ② 检查绕线通道 目标区域剩余轨道 ③ 评估阻塞与禁布 IP/宏单元/电源网格 ④ 确定修复方案 可行性与力度 评估结论:逻辑资源决定“能不能修”,物理资源决定“能修多好” 两者交集才是 ECO 的实际可行域

二、金属层与布线资源:ECO 的物理通道

Spare cell 只是“逻辑种子”,真正把种子连成功能电路的是金属层。后期 ECO 通常只允许修改部分金属层,常见策略是只改高层金属(如 M4 以上),因为低层金属已被标准单元引脚和局部互连大量占用,改动风险高、DRC 违例多。这意味着 ECO 工程师必须清楚:目标区域的高层金属是否还有可用的水平/垂直轨道,通孔是否还能从器件层连接到目标金属层。

布线资源分为全局路由(global route)和详细路由(detailed route)两个层次。全局路由给出每个 GCell 的通道容量和溢出情况,详细路由则决定具体轨道分配。在后期数据库中,可以通过报告每个区域的剩余轨道数、溢出量、通孔可用性来量化布线资源。一个实用的判断方法是:如果目标区域全局路由溢出为正,说明该区域已经拥塞,新增绕线大概率失败;如果溢出为零但剩余轨道很少,则只能支持短距离、少通孔的连接。

三、阻塞与拥塞:不可忽视的硬边界

阻塞(blockage)是物理数据库中明确禁止布线的区域,包括宏单元(SRAM、IP 核)内部、电源网格(power grid)、时钟树主干、模拟模块隔离区等。这些区域即使有 spare cell,也无法穿越布线。拥塞(congestion)则是软边界:区域没有明确禁布,但布线需求超过供给,导致绕线失败或时序恶化。

在评估修复空间时,需要把阻塞和拥塞叠加到 spare cell 分布图上。一个常见的误区是只看 spare cell 数量,忽略它们是否被阻塞区包围。例如,某区域有 20 个 spare cell,但全部位于 SRAM 宏单元与电源条之间,实际可用的绕线通道只有一两条,修复能力极其有限。

四、在后期物理数据库中评估修复空间

实际工程中,评估修复空间通常按以下顺序展开。首先,从物理数据库中提取所有 spare cell 的实例名、类型、坐标、驱动能力、输入输出连接状态,形成可用资源清单。其次,针对待修复路径的起点和终点,确定其所在的 GCell 和金属层范围,检查该范围内全局路由的溢出情况和详细路由的剩余轨道。然后,叠加阻塞层信息,排除被宏单元、电源网格覆盖的区域。最后,综合判断可用的修复手段:是插入缓冲、调整驱动、还是重新绕线。

以下是一个简化的评估示例,用于说明如何把上述信息组织成可判断的表格。示例数据为合理假设,不代表任何实际设计。

评估项 目标区域 A 目标区域 B 判断
可用 spare cell 数量 12(INV×8, BUF×4) 3(INV×3) A 资源充足,B 偏少
最大驱动能力 BUF_X4 INV_X1 A 可驱动长线,B 只能局部修复
全局路由溢出 0 +3 A 可绕线,B 已拥塞
剩余轨道(M5) 6 条 1 条 A 支持多通孔连接,B 仅单线
阻塞覆盖 无 SRAM 边界覆盖 40% B 可用通道进一步压缩
结论 可插入 2 级缓冲并绕线 仅可插入 1 级弱缓冲,风险高 优先在 A 区域修复
在实际项目中,建议把 spare cell 分布、阻塞层、全局路由溢出图叠加到同一张版图视图上,用颜色区分“可用”“受限”“不可用”三类区域。这样可以在几秒内判断某条路径的修复潜力,而不是逐条尝试 ECO 命令后再看结果。

五、边界意识如何影响修复策略

理解物理与逻辑边界后,修复策略会发生变化。当 spare cell 充足但布线拥塞时,优先选择利用已有连接、减少新增绕线的方案,例如调整已有单元的驱动强度、交换引脚分配,而不是插入新缓冲。当 spare cell 稀少但布线资源充裕时,可以考虑远距离调用 spare cell,通过较长绕线把信号引到资源丰富的区域再引回。当两者都受限时,需要回到逻辑层面,评估是否可以通过路径重组、时钟调整或功能降级来规避物理瓶颈。

最终,ECO 修复不是“有 spare cell 就能修”,而是在逻辑资源、金属层、布线通道、阻塞与拥塞共同构成的可行域内,寻找代价最小、风险可控的修复点。后期物理数据库中的评估工作,就是把这片可行域画出来,让每一次 ECO 决策都有据可依。