从Scan Chain到ATPG:芯片DFT测试的自动化向量生成与故障诊断

张开发
2026/4/15 22:54:13 15 分钟阅读

分享文章

从Scan Chain到ATPG:芯片DFT测试的自动化向量生成与故障诊断
1. 扫描链测试基础从触发器到测试向量想象一下你手里拿着一块刚下线的芯片如何确保它内部数十亿个晶体管都正常工作这就是扫描链Scan Chain技术的用武之地。简单来说扫描链就像给芯片内部装了一条观测通道让我们能够像串糖葫芦一样把内部状态一个个拉出来检查。扫描链的核心是把普通触发器Flip-Flop改造成带有多路选择器的扫描触发器。当扫描使能信号SE为低电平时触发器正常工作当SE为高电平所有触发器就串联成一条超长的移位寄存器。我常用一个形象的比喻就像把原本各自独立的储物柜触发器用传送带扫描链连接起来检查时可以把所有物品数据依次取出查看。在实际项目中设计扫描链需要考虑几个关键参数链长度单条长链测试时间较长但占用引脚少多条短链测试效率高但需要更多测试引脚时钟域划分不同时钟域的触发器必须分属不同扫描链功耗控制测试模式下可能产生远高于正常工作的瞬时功耗// 典型的扫描触发器Verilog描述 module scan_ff ( input clk, // 时钟 input se, // 扫描使能 input si, // 扫描输入 input d, // 功能数据输入 output reg q, // 功能数据输出 output so // 扫描输出 ); always (posedge clk) begin q se ? si : d; end assign so q; endmodule2. ATPG实战故障模型与向量生成ATPG自动测试向量生成工具是扫描测试的大脑它的任务是找出能暴露芯片制造缺陷的测试向量。最常用的故障模型是stuck-at模型它假设芯片可能存在的缺陷是某个节点永远 stuck-at-1 或 stuck-at-0。我在28nm项目中使用Mentor的Tessent工具时发现一个高效的ATPG流程需要关注故障列表生成工具会先提取设计中所有可能的故障点向量生成算法常用的是D算法和PODEM算法故障压缩通过智能算法减少需要检测的故障点数量典型的ATPG命令行操作如下read_netlist -verilog design.v set_faults -model stuck add_faults -all run_atpg -auto write_patterns -format STIL -output test.stil实测数据显示现代ATPG工具对组合逻辑的故障覆盖率能达到99%以上但对时序相关故障如路径延迟的覆盖率通常只有80-90%。这就需要在项目中结合其他测试方法进行补充。3. 测试协议与DFT Compiler实战在Design Compiler中插入扫描链是个精细活我总结了一套经过量产验证的流程3.1 扫描链配置首先需要设置扫描链的基本参数set_scan_configuration -chain_count 4 \ -clock_mixing no_mix \ -add_lockup true \ -insert_terminal_lockup true这里我通常根据芯片规模选择4-8条扫描链太多会增加ATE复杂度太少会延长测试时间。3.2 测试协议定义精确的时序定义对测试可靠性至关重要set_dft_signal -type ScanClock -port clk \ -timing {45 55} -view existing_dft set_dft_signal -type ScanEnable -port scan_en \ -active_state 1 -view spec3.3 异步复位处理这是新手最容易踩坑的地方。对于异步复位触发器必须特殊处理set_dft_signal -type Reset -port async_reset \ -active_state 0 -view existing_dft set_autofix_configuration -type reset \ -method mux -control test_mode记得在RTL代码中标记这些特殊触发器// synopsys dc_tcl_script_begin set_dont_touch [get_cells sync_ff*] // synopsys dc_tcl_script_end4. ATE测试与故障诊断当测试向量送到ATE自动测试设备执行时真正的挑战才开始。去年我们有个案例某批芯片在ATE测试中表现出随机失效但实验室复现率极低。通过分析扫描链的失败日志我们发现失效模式分析失效集中在特定扫描链的固定位置热图定位将失效点位映射到芯片版图上呈现规律分布物理分析SEM检查发现金属层存在微桥接缺陷最终我们改进了金属刻蚀工艺使良率从72%提升到93%。这个案例展示了完整的DFT闭环设计阶段插入扫描链 → ATPG生成测试向量 → ATE执行测试 → 失效分析 → 工艺改进对于测试工程师我建议重点关注测试时间优化合理设置scan clock频率平衡测试成本和覆盖率功耗管理测试模式下可能产生2-3倍于正常工作的功耗数据压缩使用EDT嵌入式确定性测试等技术减少测试数据量在40nm以下工艺节点我们还必须考虑新的故障类型如小延迟缺陷Small Delay Defect晶体管级故障Cell Internal Defect动态故障Dynamic Fault这些都需要扩展传统的stuck-at测试方法引入新的测试模式和故障模型。

更多文章