功能ECO之后,中后端工程师的“复查清单”
专栏:NanDigits Aug. 1, 2026, 7:25 p.m. 23 阅读
本文基于实战经验,梳理出一份功能ECO后中后端工程师需要**重做(Must)**、**视情况重做(Optional)**以及**重点关注**的复查清单,希望能为相关从业者提供一份清晰的实操参考。

在芯片后端实现流程中,功能ECO(Engineering Change Order) 往往被视为一场“外科手术”——在前端RTL已经冻结、后端物理设计基本收敛的情况下,对网表进行局部逻辑修正。一次成功的功能ECO,可以避免重新跑全套APR(Auto Placement & Routing),从而节省数周乃至数月的流片时间。

然而,功能ECO绝非“打补丁”那么简单。逻辑变了,物理实现、时序、功耗、物理验证乃至动态仿真都可能受到连锁影响。对中后端工程师而言,功能ECO完成后,真正的工作才刚刚开始

本文基于实战经验,梳理出一份功能ECO后中后端工程师需要重做(Must)视情况重做(Optional)以及重点关注的复查清单,希望能为相关从业者提供一份清晰的实操参考。

 

一、第一步:逻辑等效性检查(Formal Verification)

状态:必须重做(Must)

在动手做任何物理实现之前,首先要确认ECO脚本在逻辑层面没有“改坏”设计。这一步的输出完全来自逻辑等效性检查工具,比如 Synopsys Formality 或 Cadence Conformal。

后端工程师需要重点审查 Formal Verification 工具生成的报告(.summary / .rpt),关注以下几点:

  • 所有被修改的逻辑锥(Logic Cone)是否都被正确识别和验证;

  • 是否存在 Unmapped / Unmatched Points,即工具无法匹配的逻辑节点;

  • 最终等效性检查结果是否为 Pass

二、第二步:ECO物理实现(Place & Route)

状态:必须重做(Must)

逻辑验证通过后,需要将ECO修改在物理上真正“落地”。主要包括ECO摆放(ECO Place)和ECO绕线(ECO Route)。这一步的输出由APR工具(如 Cadence Innovus 或 Synopsys ICC2)完成。

2.1 ECO摆放与绕线

  • 对于 Pre-mask ECO(光罩尚未制造),工具可以自由调用库中的标准单元,通过 addInst 实例化新单元,再执行 ecoPlaceecoRoute 完成摆放与绕线。

  • 对于 Post-mask ECO(光罩已制造),只能使用预先散布在芯片中的备用单元(Spare Cells)。此时工具同样支持自动ECO映射(Automatic ECO Mapping),将新逻辑综合到可用的备用单元上,而非依赖工程师手动逐个指定。

需要重点检查的报告包括:

  • 是否有ECO单元未能成功摆放(Unplaced Cells);

  • 新增绕线区域是否存在拥塞(Routing Congestion);

  • 是否有DRC违例(可先由APR内置检查快速筛查)。

2.2 时钟树综合(CTS)的处理

状态:视情况重做(Optional / 谨慎决策)

这是实践中极易踩坑的环节。需要明确一个工程原则:

  • 如果ECO仅修改了数据路径(Data Path),未触碰时钟路径,则无需重做CTS

  • 如果ECO涉及时钟分频器、时钟MUX选择端,或插入了超过3~5个带时钟使能(Enable)的DFF,则已经改变了时钟树的物理结构。此时不建议做CTS ECO(即局部时钟树绕线),因为将时钟延时(Insertion Delay)和Skew恢复到原有收敛状态极其困难,风险极高。

  • 更稳妥的做法:一旦时钟路径改动较大,直接放弃ECO方案,重新跑全套APR。这在工程上反而比强行做CTS ECO更省时、更可靠。

因此,针对CTS,后端工程师的决策逻辑是:小改可尝试,大改则重跑

 

三、第三步:静态时序分析(STA)签核

状态:必须重做(Must)

物理实现完成后,所有工艺角(Corner)的建立时间(Setup)和保持时间(Hold)都必须重新进行Signoff级别的静态时序分析。

需要特别关注的点包括:

  • ECO新增路径的时序是否收敛;

  • 周边受影响路径的时序余量(Slack)是否仍然充足;

  • 若Hold Time出现违例,可能需要插入延时单元(Delay Buffer),这会进一步影响面积和功耗,需评估连锁反应。

 

四、第四步:带SDF的数字后仿真(Gate-level Simulation)

状态:必须重做(Must)——这一点极其关键,却常被忽视!

静态时序分析(STA)虽然能覆盖同步路径的建立/保持时间,但无法捕获以下两类致命问题:

  • 异步逻辑冒险(Glitch):组合逻辑变化产生的毛刺可能导致DFF误触发;

  • X态传播(X-Propagation):ECO引入的新逻辑可能在复位或上电过程中产生未知态,并传播至关键状态机;

  • 跨时钟域(CDC)同步器采样错误:新增延时的SDF反标可能改变同步器的采样沿行为。

因此,必须从ECO后的版图中提取寄生参数,反标生成新的SDF文件,重新跑一遍带时序信息的门级后仿真。这一步通常在STA收敛之后、最终物理验证之前进行。如果后仿发现功能异常,往往需要返回修改ECO方案或调整时钟相位。

 

五、第五步:功耗与电压降(Power IR EM)分析

状态:视情况重做(Optional / 抽检)

对于纯粹的逻辑功能修补(Functional ECO),通常仅改动少量组合逻辑门(一般小于芯片总面积的0.5%)。功耗、IR-Drop和电迁移(EM)的变化微乎其微。

  • 除非ECO恰好发生在电源网格(Power Grid)极其薄弱的拥挤区域,或者替换的单元翻转率(Toggle Rate)异常高,否则无需跑全套Redhawk/Voltus动态分析。

  • 工业界的常见做法是:跑一次快速静态IR检查(Static IR)作为“兜底”验证,而非强制重做全套动态功耗签核。

 

六、第六步:物理验证(Physical Verification)——以Calibre收官

状态:必须重做(Must),且必须是最后一步

物理验证包含DRC(设计规则检查)、LVS(版图与电路图一致性检查)和Antenna(天线效应检查)。这里需要明确工具使用的层次

  • APR工具内置的DRC/LVS(如Innovus QRC / ICC2 Zroute DRC):仅用于迭代过程中的快速筛查,精度有限,不可作为最终签核依据。

  • Calibre(或Synopsys ICV)独立验证必须是流片(Tapeout)前的最后一道物理关卡,做完整的Signoff DRC + LVS。

特别强调LVS的准备工作:APR工具导出的Verilog网表仅包含逻辑连接,而Calibre LVS需要的是带电源地(PG)连接的SPICE/CDL格式网表。工程师必须先将带PG信息的Verilog网表通过 v2cdl 或工具的 write_verilog -pg 选项转换为CDL,否则LVS会因电源地悬空而产生大量“Missing Port”错误。

流程顺序:APR内置快速检查(迭代用) → STA & 后仿收敛 → Calibre最终签核(收官)。

 

七、最终交付:GDSII导出

状态:必须重做(Must)

在完成Calibre签核后,导出最终的GDSII光罩数据。导出前需再次确认:

  • 所有层次(Layer)映射正确;

  • 没有遗漏的Filler单元或封边(Seal Ring);

  • 导出版本与Calibre检查所用的GDS完全一致。

 

八、总结:一张清晰的“复查清单”

检查项是否必须关键工具 / 注意事项
逻辑等效性检查(Formal)✅ 必须Formality / Conformal,仅依赖逻辑报告,无APR介入
ECO摆放与绕线(Place & Route)✅ 必须Innovus / ICC2,关注摆放失败与拥塞
时钟树处理(CTS)⚠️ 视规模而定改动>3~5个DFF时,建议直接重跑APR而非做CTS ECO
静态时序分析(STA)✅ 必须全工艺角Setup/Hold Signoff
带SDF的门级后仿真✅ 必须极易被遗漏,用于捕获Glitch X态 CDC隐患
功耗/IR/EM分析⚠️ 视情况而定小规模ECO通常只做静态IR抽检
APR内置DRC/LVS✅ 必须(迭代用)用于快速调试,精度有限
Calibre DRC + LVS✅ 必须(签核用)流片前最后一步,需先将Verilog转CDL(带PG连接)
GDSII最终导出✅ 必须确保与Calibre检查版本完全一致

 

功能ECO之所以充满挑战,是因为它打破了后端流程原有的“线性收敛”状态,迫使工程师在已经高度耦合的物理设计中进行精准修改。清晰的复查清单、果断的决策(该重跑就重跑)、以及对动态仿真(SDF后仿)的足够重视,是确保ECO最终成功流片的三根支柱。

感谢阅读,更多文章点击这里:【专栏:NanDigits】
最新20篇 开设专栏