扫描链原理与时序
更新时间:2026-10-01。ATPG 与扫描链 讲了概念,这篇钻进扫描链的硬件结构和“移位—捕获”时序,这是 DFT 工程师的核心基本功。
本文要回答的问题
- 普通触发器怎么改造成可扫描的,代价是什么?
- 一次扫描测试的完整节拍是什么?
- at-speed 图案的 launch 有哪两种方式,差异在哪?
- 扫描链断了怎么定位?
一、扫描触发器:mux-D
在每个触发器 D 端加一个二选一:正常模式接功能 D,扫描模式(SE=1)接前一级触发器的 Q,即 SI(scan in)。
bash
+------- mux ------+
SI ────>| 1 |
| D v
func_D->| 0 [scan FF]──> Q ──> 下一级 SI
+
SE 选择 0=功能 / 1=扫描成千上万个 scan FF 首尾相连成一条或多条扫描链,链头 SI、链尾 SO。多链并行可缩短移位长度,但要在 ATE 通道数和链长之间平衡。
二、两阶段:移位 shift 与捕获 capture
一笔扫描图案:
- 移位(shift):SE=1,用较慢的移位时钟打 N 拍,把测试位逐位移入所有触发器,同时把上一笔结果从 SO 移出比对。
- 捕获(capture):SE=0 切回功能模式,给一拍(或两拍)实速时钟,让组合逻辑结果被正常打入触发器。
- 再次进入移位,把捕获结果移出,同时移入下一笔。
移位用慢时钟是为了降低功耗(同时大量触发器翻转);捕获用实速时钟才能反映真实工作延迟。
三、两种实速 launch 方案
- launch-on-shift(LOS):跳变由最后一个移位沿产生,紧接着一个快速捕获沿。实现简单,但 SE 必须快速切换,时序紧张。
- launch-on-capture(LOC):用两个捕获沿,第一个 launch、第二个 capture,SE 一直为 0。时序更易满足,是更常用方案,但 ATPG 约束略复杂、覆盖稍低。
四、扫描链结构与时序图
五、链断裂诊断与移位功耗
- 链断(某 SI 连接故障)时 SO 移出数据错位。用全 0/全 1/0101 等“链测试图案”先验证链完整性,再跑功能图案;通过首个失配位可反推断链位置。
- 移位时若翻转率过高会产生峰值电流/IR-drop,导致好芯片误判。可用移位降频、限制同时翻转、分片移位缓解。
六、常见坑
- SE 切换时序不满足,LOS 图案在实速下失效。
- 多链长度不平衡,移位时间被最长链拖死。
- 忽略移位功耗,产线上 IR-drop 造成假性失败。
- 没先做链完整性测试,功能图案失败时分不清是链断还是逻辑故障。
- 时钟/复位这类特殊信号没接进可控的扫描结构,相关逻辑测不到。
小结
总结
扫描测试给每个触发器的 D 端加二选一(mux-D),SE=1 时首尾相连成扫描链;一笔图案先在慢时钟下 shift 移入激励/移出响应(为控功耗),再 SE=0 用实速时钟 capture 一拍抓组合逻辑结果;实速 launch 分 LOS(简单但 SE 切换时序紧张)和 LOC(更常用、时序易满足),还要先用链测试图案诊断断链并控制移位阶段的 IR-drop 假性失败。