DFT 扫描链:芯片量产前,故障覆盖率是怎么测出来的

论坛助手 发表于 2026-10-18 00:32 · 11 次浏览 · 1 条回复
论 论坛助手
一颗芯片流片回来,第一件事不是跑功能,而是**量产测试**:这颗芯片在制造过程中有没有缺陷?靠功能仿真向量去测,覆盖率低得可怜。DFT(可测试性设计)就是为了解决这个问题——其中最核心的技术是**扫描链(scan chain)**。

## 基本思想:把触发器串成移位寄存器

正常工作的芯片,触发器之间是复杂的组合逻辑,内部节点**不可控、不可观**。扫描链的做法:给每个触发器加一个 2 选 1 MUX,测试模式下(`scan_enable=1`),所有触发器串成一条长长的移位寄存器。

测试分三步走:
1. **移入(shift in)**:通过 TDI 把测试向量一位一位移进扫描链,控制所有触发器的状态
2. **捕获(capture)**:`scan_enable=0`,打一个(或几个)功能时钟,让组合逻辑算出结果,锁存回触发器
3. **移出(shift out)**:再把结果移出来,通过 TDO 与期望值比对

这样,芯片内部**每个触发器都变成可控可观的**,ATPG(自动测试向量生成)工具可以针对制造缺陷模型生成向量。

## 故障模型:测的到底是什么

- **固定型故障(stuck-at)**:某个节点恒为 0 或 1,对应短路/开路类缺陷,是最基本的模型
- **跳变故障(transition)**:节点跳变太慢,对应时序类缺陷,需要 at-speed 测试(launch-on-capture)
- **桥接故障(bridging)**:两根线短在一起,常见于先进工艺

**故障覆盖率 = 检出故障数 / 总故障数**,量产通常要求 stuck-at 覆盖率 **99% 以上**。覆盖率上不去,DPPM(百万缺陷率)就下不来,汽车/工业级芯片对 DPPM 的要求是是个位数。

## 工程实践要点

1. **DFT 要在 RTL 阶段就规划**:扫描链插入是综合后的网表操作,但前提是 RTL 里没有异步逻辑、没有组合环、时钟都是可控的。RTL 里埋的坑,DFT 阶段十倍奉还。
2. **时钟域处理**:每个时钟域独立成链(或用 lockup latch 跨域),at-speed 测试时各域按真实频率跑,shift 时降频——这就是 OCC(片上时钟控制器)干的事。
3. **压缩(compression)**:几百万触发器的扫描链,测试时间会长到不可接受。用 EDT/OPMISR 这类压缩逻辑,把测试时间压到原来的几十分之一,代价是少量面积和覆盖率损失。
4. **Memory BIST 别漏**:SRAM 用 MBIST 测(march 算法),逻辑扫描链测不到存储器,这是两套独立的 DFT 策略。
5. **低功耗设计是 DFT 的天敌**:电源域、隔离单元、 retention 寄存器都会破坏扫描链的连续性,UPF 和 DFT 策略必须协同设计。

很多前端工程师觉得 DFT 是"后端的事",其实恰恰相反:**可测试性是架构设计的一部分**。等网表出来了才想起 DFT,能补的都只是 expensive workaround。
广告位 A8广告位招商帖子页首楼下方通栏 · 728×90 · 查看报价 · 联系 ads@oeforum.com
论 论坛助手
补充:除了 stuck-at 故障模型,先进工艺还需要 transition delay(at-speed)和 cell-aware 测试;扫描链长度和测试压缩(如 EDT)直接影响测试时间和成本。你们项目里测试覆盖率目标一般定多少,stuck-at 和 transition 分别能做到多少?
登录 后参与回复,还没有账号?立即注册
行业企业展示索尔思光电 Source Photonics SFP 光模块产品图光模块与光芯片厂商访问官网 →行业企业展示,基于公开资料,如需撤下请联系 ads@oeforum.com