串扰、SI、噪声签核:coupling、glitch、delta delay 与 SI-aware STA
更新时间:2026-09-25。本文是芯片设计专家层正文。基础布局布线见 P&R 入门,时序签核见 STA 入门 与 MMMC 高级 STA,板级 SI/PI 另见 封装与信号完整性。
一、耦合电容为什么在先进工艺变严重
早期金属线较宽、间距较大,线间电容相对不明显。工艺缩小后,线宽和间距变小、厚度相对不变,相邻信号线侧壁形成的耦合电容占总电容比例越来越高:
aggressor(攻击线)快速翻转
│ 耦合电容 Cc
▼
victim(受害线)被注入电荷 → 毛刺或延迟变化一根线不再只受驱动器和对地电容影响,还会被邻居翻转「推一把」。耦合影响取决于:
- 平行长度;
- 线间距和所在金属层;
- 驱动器强度;
- 攻击线翻转速率;
- 攻击与受害翻转时间是否重叠;
- victim 当前逻辑是否允许毛刺传播。
下图把耦合的物理结构与两条后果画在一起。两根相邻金属线侧壁之间是耦合电容 Cc,各自对地还有 Cg:工艺缩小使侧壁 Cc 在总电容中的占比从早期的一两成上升到先进节点的一半以上,于是邻居翻转注入的电荷,足以同时改变 victim 的电平形状和翻转时刻。
读图抓住一条主线:电荷从 aggressor 经 Cc 注入 victim,之后走向哪条后果,取决于 victim 当时是稳定还是在翻转。稳定时注入电荷表现为电压尖峰(glitch);翻转时表现为对充放电电流的帮助或对抗(delta delay)。这也解释了为什么驱动器强度是关键变量——强 victim driver 像一根拉紧的弹簧,同样的注入电荷引起的电压扰动更小。
二、两类后果:功能 glitch 与时序 delta delay
1. glitch(功能噪声)
victim 本应稳定为 0 或 1,但相邻 aggressor 同时同向/反向翻转,把它拉出一个尖峰:
- 若毛刺到达触发器 D 端且在建立/保持窗口附近,可能被误采样;
- 若毛刺进入时钟、异步复位、中断等控制网络,后果更严重;
- 若毛刺在组合逻辑中衰减且没被沿捕获,可能无害。
所以噪声工具不能只看电压峰值,还要做 glitch propagation / noise immunity:毛刺能否通过后续单元、是否到达敏感端点。
2. delta delay(时序噪声)
aggressor 与 victim 同时翻转时,耦合电容会加快或拖慢 victim:
| 翻转方向 | 对 victim 延迟影响 |
|---|---|
| aggressor 与 victim 同向 | 米勒效应下可能帮助翻转,延迟变小 |
| aggressor 与 victim 反向 | 对抗翻转,延迟变大 |
| victim 稳定、aggressor 翻转 | 主要产生 glitch |
- 反向耦合使数据晚到,恶化 setup;
- 同向耦合可能让数据过早变化,恶化 hold;
- 这就是 SI-aware STA 报告中的 crosstalk delta delay。
两类噪声的判据完全不同,签核时必须分别出报告,不能用一张 slack 表覆盖:
| 维度 | 功能噪声(glitch) | 时序噪声(delta delay) |
|---|---|---|
| victim 状态 | 本应稳定为 0/1 | 正在翻转 |
| 失效形式 | 尖峰被误采样、误入控制网 | 到达时间变早/变晚,破坏 hold/setup |
| 判定依据 | 毛刺高度/宽度是否越过接收端噪声容限,能否传播到端点 | delta 叠加后 slack 是否仍为正 |
| 危险端点 | 时钟、异步复位、中断、电源控制 | 触发器 D 端建立/保持窗口 |
| false path 能否豁免 | 不能,功能错误与时序无关 | 随时序例外处理 |
| 典型最坏角 | 快角、锐利边沿、强 aggressor | 慢角大电容看 setup,快角看 hold |
三、SI-aware STA 在算什么
传统 STA 只考虑寄生电容到地,线延迟固定。SI-aware 签核会:
- 从 SPEF 读取耦合电容矩阵;
- 根据每个 driver 的 transition 和时钟周期计算信号切换窗口;
- 判断 aggressor/victim 的窗口是否重叠;
- 用驱动器强度、负载和网络拓扑计算 glitch / delta delay;
- 选择让每个 victim 最差的 aggressor 组合;
- 更新路径 arrival time,输出 SI 后的 setup/hold slack。
无 SI 时序:arrival = cell delay + wire delay
有 SI 时序:arrival = cell delay + wire delay ± crosstalk delta整个签核不是「跑一次工具看红绿」,而是一个必须闭环到新寄生的迭代环。关键在于环的最后一步:任何 spacing、shielding、resize、插 buffer 都改变了耦合关系,因此不能在旧 SPEF 上直接判过,必须重新提取寄生再进入下一轮。
图中 verify → spef 的回边是这个流程最容易被省掉、也最危险的一步。真实项目里反复出现的事故是:工程师在违例 victim 旁加了屏蔽线,旧报告上该网络确实干净了,却没注意屏蔽线把另一侧邻居的耦合电容抬高,直到流片前最后一次全量提取才爆出新违例。把「重提寄生」写成强制回边,就是为了堵这个漏洞。
签核必须在对应 PVT/RC corner 下做:慢角连高阻线/大电容常关注 setup 噪声,快角锐利边沿可能制造强 glitch 和 hold 问题。具体 worst corner 由工艺签核手册规定。
四、哪些网络最危险
- 长平行、高扇出、绕线拥塞区的数据线;
- 时钟树、复位、中断、enable 等控制网;
- 深度低功耗或多个 aggressor 同时开关的总线;
- 弱驱动长线,尤其是经过上层长线的控制信号;
- 模拟/OSC/PLL 周边的数字噪声源(还要看衬底/电源耦合);
- 多周期路径端点,若工具的噪声窗口假设错误,可能误报或漏报。
五、修复手段
| 修法 | 对 glitch | 对 delta delay | 代价 |
|---|---|---|---|
| 增加 spacing | 强 | 强 | 布线资源 |
| 加 shielding(两侧夹 VDD/VSS) | 强 | 强 | 绕线资源、电容增加 |
| victim driver upsizing | 强 | 有帮助 | 功耗/前级负载 |
| aggressor driver downsizing | 有帮助 | 有帮助 | 可能恶化 aggressor 时序 |
| 插入 buffer 打断长平行段 | 强 | 强 | 延迟/功耗 |
| 换层 / 缩短平行长度 | 强 | 强 | reroute |
| 调整时钟/useful skew | 弱 | 有用 | 多角风险 |
| 调整翻转方向/时序窗口 | 中 | 中 | 依赖调度 |
修一条 victim 时可能把噪声推给另一条网络,因此修完要重跑 SI-aware STA 和常规时序、DRC。
六、常见误区
- 只跑普通 STA,认为 STA clean 就包含串扰:传统流程可能没有 SI delta;
- 只看 glitch 峰值,不看它能否传播到时序元件;
- 所有串扰都一刀切 shield,导致面积和布线拥塞恶化;
- 对时钟网只关心 skew,不看外部 aggressor 注入;
- 用旧 SPEF 做 SI:每次布线/ECO 后耦合关系都会变;
- 忽略多 aggressor 同时翻转的最坏组合。
七、怎么判断一条串扰违例是否真实
SI 报告为了不漏报通常比较悲观。收到一条 crosstalk 违例时,先做以下确认:
- 打开 victim 和 aggressor 的切换窗口,确认它们在同一签核场景中真的可能重叠;
- 检查 SPEF 是否来自最终布线,旧寄生会制造大量假耦合;
- 看 victim 驱动器强度和接收端类型,毛刺是否足以越过噪声容限;
- 运行 glitch propagation,确认毛刺能否到达触发器、锁存器或控制端点;
- 对 delta delay 路径分别看 setup 最坏角和 hold 最坏角;
- 若用 multicycle/false path 豁免,确认串扰毛刺不会在非时序端点造成功能错误。
特别注意:一条路径即使在时序上是 false path,也不代表可以忽略它的功能 glitch。若它驱动复位、时钟门控使能或电源控制逻辑,错误脉冲仍可能直接改变硬件状态。
八、检查清单
- [ ] 最终布局布线后提取耦合 SPEF;
- [ ] 所有签核 corner 运行 SI-aware STA 和 noise/glitch;
- [ ] glitch 报告按能否传播到端点过滤,不误杀也不漏控制网;
- [ ] setup/hold slack 使用包含 crosstalk delta 的结果;
- [ ] 时钟/复位/中断/低功耗控制网单独审查;
- [ ] spacing/shield/buffer/resize 修后重跑 SI、STA、DRC;
- [ ] SPEF/网表/ECO 版本一致,无旧寄生误签;
- [ ] 剩余 noise waiver 有波形和传播证据。
先建立机制直觉可读进阶篇片上信号完整性:串扰与开关噪声(耦合电容/毛刺致命条件/SSN 地弹),本篇聚焦签核方法与违例分诊。
总结
先进工艺中线间耦合电容让相邻 aggressor 的翻转既能在稳定 victim 上打出可能被误采样的 glitch,也能通过同向/反向耦合改变 victim 延迟,分别造成功能噪声和 setup/hold delta delay;SI-aware 签核基于最终 SPEF、驱动器强度和切换时间窗选择最坏 aggressor 组合,重新计算到达时间并跟踪毛刺能否传播到触发器或控制端点。修复要优先用 spacing、缩短平行长度、shielding、增强 victim 驱动、插 buffer 和重新布线,并在每次 ECO 后用新的耦合寄生重跑普通时序、SI 时序和物理验证,因为任何改动都可能把噪声转移到下一根线。