1. DFT概述
1.1 什么是DFT(可测试性设计)
DFT(Design for Testability,可测试性设计) 是指在芯片前端逻辑设计阶段,就预先植入专门用于测试的硬件结构,使得芯片在制造完成后能够高效、低成本地检测出物理缺陷。DFT 不是“事后补测”,而是与 RTL 设计同步进行的可测试性架构设计。
核心思想: 通过增加少量硬件开销(通常为 5%~15%),将芯片内部的逻辑节点变得“可控”和“可观”,从而用有限的测试向量覆盖数亿个晶体管的潜在故障。
DFT 设计通常包含以下三大基础技术:
| DFT 技术 | 英文缩写 | 核心作用 | 典型硬件开销 |
|---|---|---|---|
| 扫描链 | SCAN | 将普通寄存器替换为扫描寄存器,串行移入/移出测试数据 | 5%~10% |
| 内建自测试 | BIST | 芯片内部自动生成测试向量并压缩响应,常用于存储器 | 2%~8% |
| 边界扫描 | JTAG/IEEE 1149.1 | 在芯片 I/O 边界插入测试单元,支持板级互连测试 | 1%~3% |
1.2 DFT 在芯片设计中的重要性
随着工艺节点进入 7nm/5nm/3nm,单颗芯片集成的晶体管数量已超过 500 亿个。没有 DFT,制造缺陷的检测将完全依赖功能测试,而功能测试的覆盖率通常不足 60%。DFT 的重要性体现在以下四个维度:
- 降低测试成本: 自动测试设备(ATE)按测试时间收费。DFT 通过扫描链并行加载,将测试时间从小时级压缩到分钟级。
- 提升缺陷覆盖率: 结构测试(SCAN + ATPG)可达到 95%~99% 的 stuck-at 故障覆盖率,远高于功能测试。
- 支持良率分析: DFT 输出的 fail log 可直接用于定位失效物理位置,帮助工艺良率快速爬坡。
- 满足车规/航空可靠性: ISO 26262(汽车功能安全)和 DO-254(航空电子)强制要求芯片内建测试结构。
⚠ 工程警示: 某 28nm 通信芯片项目因 DFT 插入过晚(RTL freeze 后才开始),导致扫描链时序收敛失败,最终被迫删除 30% 的测试点,覆盖率从 98% 降至 82%,流片后因测试逃逸导致 200 万美元的召回损失。
1.3 DFT 与测试覆盖率的关系
测试覆盖率 是衡量 DFT 设计有效性的核心指标,通常定义为:
测试覆盖率 = (检测到的故障数 / 总可测故障数) × 100%
DFT 与测试覆盖率之间存在直接的因果链:
| DFT 设计质量 | 典型覆盖率范围 | 测试逃逸风险 | 工程代价 |
|---|---|---|---|
| 无 DFT(纯功能测试) | 40%~60% | 极高 | 测试向量开发周期长,ATE 时间成本高 |
| 基础 SCAN + ATPG | 90%~95% | 中等 | 面积增加 5%~8%,时序需额外收敛 |
| SCAN + 压缩 + BIST | 95%~98% | 低 | 面积增加 8%~12%,需额外 DFT 验证 |
| 全 DFT(含 at-speed、X-tolerant) | 98%~99.5% | 极低 | 面积增加 10%~15%,设计周期延长 2~4 周 |
1.4 测试覆盖率的关键指标
在 DFT 工程实践中,需要同时关注以下三类覆盖率指标:
- Stuck-at 故障覆盖率: 检测固定为 0 或固定为 1 故障的能力,是 DFT 验收的基本门槛(通常要求 >95%)。
- Transition 延迟故障覆盖率: 检测信号跳变速度是否满足时序要求,at-speed 测试的核心指标(通常要求 >85%)。
- 桥接故障覆盖率: 检测相邻金属线短路导致的逻辑错误,在先进工艺中越来越重要。
💡 工程经验: 在 7nm 以下节点,Transition 故障覆盖率的重要性已超过 Stuck-at。建议 DFT 团队在项目初期就将 at-speed 测试结构(如 OCC、PLL 分频)纳入设计计划,避免后期因时序问题被迫降频测试。
1.5 DFT 设计流程概览
一个完整的 DFT 设计流程通常包含以下 6 个阶段:
- DFT 规划: 确定扫描链数量、压缩比、BIST 实例数,制定测试策略文档。
- RTL 插入: 在 RTL 代码中例化 DFT 控制器(如 JTAG TAP)、扫描链使能信号。
- 综合与扫描链插入: 使用 DFT 编译器将普通寄存器替换为扫描寄存器,并连接成链。
- ATPG 向量生成: 自动测试向量生成工具根据网表产生测试向量。
- DFT 仿真验证: 在门级仿真中验证扫描链移位和捕获功能正确。
- ATE 测试与覆盖率签收: 将向量加载到自动测试设备,收集 fail log 并计算最终覆盖率。