4. Scan Chain设计规范:时钟域划分、扫描使能信号(SE)的扇出与布线约束、扫描时钟的同步要求

在DFT工程中,Scan Chain的设计规范直接决定了测试覆盖率、测试功耗以及芯片的良率。本章聚焦于三个核心设计维度:时钟域划分、扫描使能信号(SE)的扇出与布线约束、以及扫描时钟的同步要求。这些规范是确保扫描链在ATE(自动测试设备)上稳定运行、避免时序混乱和测试失效的基础。

4.1 时钟域划分:跨时钟域扫描链的隔离与合并策略

现代SoC通常包含多个异步时钟域(如CPU核、DDR、外设总线)。在插入扫描链时,必须遵循“同域同链、异域隔离”的原则。错误的跨时钟域合并会导致扫描移位时出现setup/hold violation,甚至功能逻辑的误触发。

核心原则: 扫描链的构建应优先在同一个物理时钟域内完成。对于跨时钟域路径,必须使用同步器或锁定延迟单元进行隔离,严禁将不同时钟域的触发器直接串联在同一扫描链中而不做处理。

4.1.1 时钟域划分的工程决策树

下表总结了不同时钟域关系下的扫描链设计策略:

时钟域关系 扫描链合并策略 风险等级 典型处理方式
同源同步时钟(同PLL,同频同相) 可直接合并为一条扫描链 低 无需额外隔离逻辑
同源同步时钟(同PLL,不同分频比) 建议分链,或使用相位对齐单元 中 插入锁定延迟单元(Lockup Latch)
异步时钟域(不同PLL或外部时钟) 必须分链 高 使用双锁存器同步器隔离
门控时钟域 需绕过门控逻辑,使用测试时钟 中 插入测试时钟MUX

4.1.2 跨时钟域扫描链结构示意

下图展示了一个典型的跨时钟域扫描链错误连接与正确隔离的对比:

跨时钟域扫描链隔离示意图 跨时钟域扫描链隔离策略对比 错误:直接串联异步域 FF_A (CLK_A) FF_B (CLK_B) 直接串联 CLK_A: ▁▁▁▂▂▂▁▁▁ CLK_B: ▂▂▁▁▁▂▂▁▁ ⚠ 时序违例风险 setup/hold violation 正确:插入锁定延迟单元隔离 FF_A Lockup FF_B CLK_A ──▶ FF_A CLK_B ──▶ Lockup + FF_B 锁定延迟单元在扫描模式下 提供半个时钟周期的延迟补偿
工程提示: 在大型SoC中,建议使用EDA工具(如Synopsys DFT Compiler或Cadence Genus)的“clock_domain”属性自动划分扫描链。手动划分时,务必检查所有跨时钟域路径是否已插入同步器。

4.2 扫描使能信号(SE)的扇出与布线约束

扫描使能信号(Scan Enable, SE)是扫描链中最重要的控制信号之一。它在功能模式与测试模式之间切换触发器的数据路径。SE信号的扇出(Fan-out)和布线延迟直接影响扫描链的建立时间(Setup Time)和保持时间(Hold Time)。

4.2.1 SE信号的扇出约束标准

SE信号通常需要驱动芯片中成千上万个触发器的SE端口。过大的扇出会导致信号斜率退化(Slew Degradation)和延迟不平衡。以下是推荐的扇出约束:

  • 最大扇出限制: 建议单个SE驱动器的扇出不超过 64 个触发器。对于高性能设计,建议限制在 32 个以内。
  • 缓冲器插入策略: 当扇出超过限制时,必须插入SE缓冲树(SE Buffer Tree),形成平衡的H-Tree或X-Tree结构。
  • 布线层约束: SE信号应使用高层金属(如M5、M6)进行布线,以减少RC延迟和串扰。

4.2.2 SE信号布线延迟的平衡要求

SE信号到达每个触发器的延迟必须尽可能一致。延迟偏差(Skew)过大会导致扫描移位时数据采样错误。下表列出了不同工艺节点下的SE延迟偏差容忍度:

工艺节点 最大SE Skew (ps) 推荐缓冲器类型 布线策略
28nm ≤ 150 ps LVT (Low Vt) 非对称H-Tree
16nm/12nm ≤ 80 ps ULVT (Ultra Low Vt) 对称H-Tree + 屏蔽线
7nm/5nm ≤ 40 ps ULVT + 自适应偏置 Mesh结构 + 时钟级布线

4.2.3 SE缓冲树结构示意

下图展示了一个典型的SE缓冲树(H-Tree)结构,用于平衡扇出和延迟:

SE缓冲树(H-Tree)结构图 扫描使能信号(SE) H-Tree 缓冲结构 SE 根驱动 BUF_1 BUF_2 BUF_3 BUF_4 BUF_5 BUF_6 扇出: 32 FF 扇出: 32 FF 扇出: 32 FF 扇出: 32 FF 目标:所有叶节点延迟偏差 ≤ 40ps (7nm工艺)
关键警告: 在布局布线(P&R)阶段,如果SE信号的Skew超过时钟周期的10%,必须重新综合SE缓冲树。切勿依赖后端工具自动修复,应提前在DFT网表中定义SE的“non-default rule”(NDR)布线规则。

4.3 扫描时钟的同步要求

扫描时钟(Scan Clock)在测试模式下通常由ATE直接提供,或通过芯片内部的PLL分频产生。扫描时钟的同步性直接影响扫描链的移位稳定性和故障诊断的准确性。

4.3.1 扫描时钟的同步域定义

在扫描移位过程中,所有触发器必须在同一个时钟沿(上升沿或下降沿)统一采样。如果扫描链中混入了不同沿触发的触发器,必须插入反相器或锁定延迟单元进行对齐。

  • 单沿同步: 推荐所有扫描触发器使用同一时钟沿(如上升沿)。
  • 混合沿处理: 如果设计中同时存在上升沿和下降沿触发的触发器,必须在它们之间插入一个锁定延迟单元(Lockup Latch),该单元由相反的时钟沿触发,以提供半个周期的延迟补偿。

4.3.2 扫描时钟的抖动与占空比要求

ATE提供的扫描时钟通常具有较高的抖动(Jitter)和占空比失真。设计时必须考虑以下容限:

参数 ATE典型值 设计容忍度 影响
时钟抖动 (Jitter) ±200 ps ≤ 周期 × 5% 过大的抖动会导致setup violation
占空比 (Duty Cycle) 45% ~ 55% 40% ~ 60% 占空比失真影响hold time margin
最小脉冲宽度 ≥ 500 ps ≥ 300 ps 过窄脉冲无法正确触发触发器

4.3.3 扫描时钟同步结构示意

下图展示了混合时钟沿触发器的同步处理方案:

扫描时钟同步与混合沿处理 扫描时钟同步:混合沿触发器处理 FF_1 (posedge) Lockup Latch FF_2 (negedge) CLK ▁▁▁▂▂▂▁▁▁ CLK ▁▁▁▂▂▂▁▁▁ CLK ▂▂▂▁▁▁▂▂▂ Lockup Latch 在时钟低电平期间透明,高电平期间锁存 提供半个时钟周期的延迟补偿,确保数据从posedge域正确传递到negedge域

4.4 综合设计规范清单

为了便于工程落地,以下清单总结了本章的核心设计规范:

  1. 时钟域划分: 每个异步时钟域独立成链;跨域路径必须插入锁定延迟单元或同步器。
  2. SE扇出控制: 单个SE驱动器的扇出 ≤ 64;使用H-Tree缓冲结构平衡延迟。
  3. SE布线约束: 使用高层金属布线;设置NDR规则,确保Skew在工艺容忍范围内。
  4. 时钟同步: 统一使用单沿触发;混合沿设计必须插入Lockup Latch。
  5. 时钟质量: 确保ATE时钟抖动 ≤ 周期×5%,占空比在40%~60%之间。
工程案例提示: 在某7nm AI芯片项目中,由于未对SE信号设置NDR规则,导致后端布线后SE Skew达到120ps,超过40ps的容忍度。最终通过重新综合SE缓冲树并指定M6层布线,将Skew降低至35ps,成功通过ATE测试。