DFT可测性设计方向,怎样才能成为大牛?

发布时间:2026/7/11 3:04:24
DFT可测性设计方向,怎样才能成为大牛? 做DFT这么多年我见过太多工程师把ATPG覆盖率当成唯一的KPI盯着那个99%的数字沾沾自喜直到产线负责人拿着第一批样品测试数据找上门来那一刻才真正明白——覆盖率不是数字游戏而是连接芯片质量与商业成败的生命线。本文将分享我在多个成功流片项目中验证的DFT实战技巧从扫描链设计到ATPG覆盖率提升全是干货。DFT扫描链ATPGBISTMBISTJTAG故障覆盖率Tessent一、为什么DFT是芯片设计的必修课现代芯片内部动辄数十亿晶体管一旦制造出来你不可能打开芯片看内部电路对不对只能从外部输入→输出来测试。但芯片内部极其复杂很多逻辑节点根本测不到。DFTDesign for Testability可测性设计的核心理念很简单在设计阶段预先插入测试结构让原本深藏在芯片内部的节点变得可控、可观测。虽然会增加5%-20%的芯片面积开销但能将整体测试成本降低高达70%这在量产阶段意味着巨大的经济效益。DFT技术的两大基础评价指标是可控性Controllability精确设置内部节点逻辑值的能力。没有可控性你就无法给被测电路施加正确的激励。可观测性Observability通过主输出端验证内部状态的能力。没有可观测性即使电路内部出了问题你也看不到。二、扫描链Scan ChainDFT的基础设施扫描链是DFT最基础、最核心的技术。它的原理并不复杂将普通触发器替换为带多路选择器的扫描触发器Scan Flip-Flop在测试模式下把这些触发器串接成一条移位寄存器链。2.1 扫描触发器的工作原理扫描触发器比普通触发器多了一个2选1的多路选择器MUX由扫描使能信号scan_enable / SE控制正常工作模式SE0数据从D端输入从Q端输出与普通触发器无异。扫描移位模式SE1数据从SIScan-In端输入从SOScan-Out端输出触发器作为移位寄存器工作。测试时在Scan-In阶段加载激励信号在Capture阶段捕获组合逻辑响应最终通过Scan-Out移出比对。这样原本深藏在芯片内部的时序单元就变成了可以直接读写的外部接口。2.2 全扫描 vs 部分扫描扫描类型实现方式覆盖率面积开销适用场景全扫描Full Scan所有时序单元替换为扫描触发器极高通常99%较大约10-15%对覆盖率要求高的数字逻辑部分扫描Partial Scan选择性替换关键路径触发器中等约90-95%较小约5-8%面积敏感、时序紧张的设计实际项目中我通常推荐全扫描方案。部分扫描虽然省面积但覆盖率的天花板就在那里后期想补都补不上。除非面积确实紧张到无法妥协否则不要轻易选择部分扫描。2.3 扫描链设计的三个关键原则扫描链设计不是简单地把触发器串起来需要考虑以下因素原则一按时钟域划分扫描链不同时钟域的触发器必须分配到独立的扫描链。混用时钟域会导致时序混乱测试数据不可靠。多时钟域设计是现在的常态这个原则必须严格遵守。原则二按物理位置分区将物理位置相近的触发器划分到同一条扫描链可以显著减少布线拥塞和时序问题。某次28nm项目中我们将扫描链按模块物理位置分区后ATPG覆盖率提升了12%同时测试时间减少了35%。原则三保持扫描链平衡不平衡的扫描链会导致测试时间浪费。建议单条扫描链长度控制在500个触发器以内过长会增加移位时间和功耗。如果设计规模很大采用EDTEmbedded Deterministic Test压缩技术是标准做法。三、ATPG自动测试向量生成的黑魔法有了扫描链下一步就是生成测试向量。ATPGAutomatic Test Pattern Generation自动测试向量生成工具通过分析电路结构自动生成能够检测特定故障的输入激励序列。3.1 故障模型测试的假想敌ATPG不是漫无目的地测试而是针对预设的故障模型来生成向量。就像体检时预设常见疾病做对应项目而不是把身体拆开来看。 Stuck-At Fault固定型故障节点永久卡住在0s-a-0或1s-a-1模拟制造缺陷如导线断裂、短路到电源/地。这是最经典的故障模型覆盖率通常要求≥99%。 Transition Fault转换故障节点无法完成0→1或1→0的翻转模拟延迟缺陷。在先进工艺中越来越重要覆盖率通常要求≥95%。 Path Delay Fault路径延迟故障特定路径的延迟超过允许范围模拟工艺波动导致的时序劣化。检测难度大但对高性能芯片至关重要。 Bridging Fault桥接故障相邻线路意外短路模拟光刻缺陷或金属残留。在深亚微米工艺中发生率上升。3.2 ATPG的工作流程ATPG工具的核心工作流可以概括为以下步骤读取网表从设计团队获取综合后的门级网表以及ATPG库文件和DRC规则。建立ATPG模型工具解析网表构建内部电路拓扑结构识别所有可测节点。ATPG DRC检查检查扫描链连接、时钟控制、三态总线等是否符合测试规则。DRC不通过后续工作无法进行。生成故障列表根据选定的故障模型枚举所有可能的故障点。生成测试向量工具通过算法如PODEM、FAN等自动求解能够激活并传播故障的输入组合。覆盖率验证用生成的向量仿真统计检测到的故障数与总故障数的比例。四、ATPG覆盖率提升实战技巧大公开这是本文的核心部分。覆盖率提升不是简单的数字游戏而是需要结合电路特性、工具参数和团队协作的系统工程。以下技巧都来自真实项目的血泪经验。4.1 扫描链分区与平衡优化前面提到扫描链分区的重要性这里补充一些实操细节平衡技术适用场景操作要点预期效果物理平衡模块化设计按模块物理位置分组减少布线拥塞提升覆盖率5-10%时序平衡时序紧张设计关键路径触发器分散到多条链避免单条链时序瓶颈功耗平衡低功耗设计避免同一时刻大量触发器翻转降低测试模式IR Drop4.2 Clock Gating结构的测试支持复杂SoC中广泛使用ICGIntegrated Clock Gating以降低功耗但其使能逻辑可能成为测试盲区。这是我在项目中踩过的大坑。关键检查点ICG的TETest Enable端是否接入scan chain在shift阶段TE是否能强制打开ICG保证时钟正常传输在capture阶段ICG是否恢复为功能逻辑控制推荐做法对关键路径上的ICG添加test point或专用控制逻辑确保其在ATPG中可被充分激励。某项目中忽略这一点导致覆盖率直接掉了8%花了两周时间才定位到根因。4.3 主动引入Test Point与Observation Point当常规ATPG无法覆盖深层组合逻辑时可以借助工具自动插入测试点Test Point, TP来打破长路径使用insert_test_point命令或多轮尝试不同数量的TP如1%、2%、3%资源占比。观察每次ATPG后coverage变化趋势选取最优配置。TP插入位置应靠近覆盖率损失严重的区域可通过fault诊断定位。同时考虑增加Observation PointOP以增强输出端可观察性。实战经验合理使用TP/OP可显著减少test pattern数量并提高覆盖率。但TP/OP本身会引入面积和时序开销需要在覆盖率提升与物理代价之间找到平衡点。我的建议是先跑一轮ATPG看覆盖率缺口再针对性地插入TP而不是一开始就盲目插满。4.4 Sequential Pattern攻克Non-Scan Cell的利器在真实芯片中总存在无法直接控制的时序单元non-scan cell比如时钟门控单元、异步复位路径、模拟模块接口寄存器等。传统扫描测试模式难以有效覆盖这类逻辑。Sequential Pattern时序测试模式通过多拍时钟序列来激活和观测non-scan cell的状态。在Tessent工具中配置方法如下# 设置ATPG引擎为全速模式 set_atpg_mode fullspeed # 启用时序模式同时保留基础扫描模式 set_pattern_type -basic on -sequential on # 设置时序深度根据设计复杂度调整通常4-8 set_atpg_sequential_depth 4 # 查看不同depth下的预期覆盖率 report_sequential_fault_depth在28nm以下的先进工艺节点中单个non-scan cell可能导致数百万门级设计的测试覆盖率下降5-10%。启用Sequential Pattern后通常可以将这部分损失的覆盖率补回大半。4.5 多次Pattern生成策略ATPG工具具有一定的随机性和启发式搜索特性单次run可能未收敛到最优解。我的做法是对同一设计多次执行create_pattern保留最高覆盖率结果。结合不同的seeding策略或pattern ordering尝试。尤其适用于EABEncoding Abort类fault其检测对向量顺序敏感。4.6 深入分析ATPG Coverage报告覆盖率报告不是看一眼数字就完事的。以下是我分析报告时的关注重点Fault类别含义处理建议AUAuto-Uncontrollable自动不可控故障检查扫描链连接、时钟/复位控制信号ANAuto-Unobservable自动不可观测故障检查扫描链输出连接、添加Observation PointUCUncontrolled不可控故障检查输入端口约束、blackbox处理UOUnobserved不可观测故障检查输出端口连接、扫描链完整性EAB编码容量不足导致放弃增加EDT channel数、调整abort limitTCTiming Critical时序关键路径无法测试与项目组协商采用功能测试向量补充注意区分AU和ANAU是控制端的问题信号进不去AN是观测端的问题信号出不来。定位思路完全不同不要混为一谈。五、BIST与MBIST芯片的自检系统扫描测试和ATPG虽然强大但需要外部ATE设备配合。对于大规模量产测试成本中ATE机台费用占比很高。BISTBuilt-In Self Test内建自测试将测试电路集成到芯片内部实现自给自足的测试。5.1 BIST的基本架构典型的BIST系统包含三个核心模块测试向量生成器TPG通常使用LFSR线性反馈移位寄存器生成伪随机测试序列无需存储大量测试数据。被测电路CUT即芯片的正常功能逻辑在BIST模式下接收TPG生成的激励。响应分析器ORA使用MISR多输入签名寄存器将测试响应压缩成固定长度的签名与预期签名比对判断Pass/Fail。5.2 MBIST内存测试的专用方案芯片内嵌SRAM容量持续提升内存区块往往成为良率与可靠度的主要风险来源。MBISTMemory BIST是专门为存储器阵列设计的自测试方案。MBIST的核心测试算法包括算法复杂度检测故障类型适用场景March C-10N固定故障、转换故障、地址故障通用SRAM测试March C14N上述 读干扰故障高密度SRAMMarch LR22N上述 耦合故障先进工艺SRAMCheckerboard4N单元间耦合故障快速筛查测试在Tessent MBIST架构中关键指示信号包括RUN指示当前Controller及下属Memory进入测试状态。GOGO1表示测试开始输出向量GO0表示有比较器报出Fail。DONE表示MBIST测试已结束。结合GO和DONE可判定测试最终结果。MBIST修复率要求在汽车电子等安全关键领域MBIST修复率通常要求达到99.99%。这意味着几乎不能有任何漏检对算法选择和测试时间都是严峻考验。六、JTAG边界扫描板级测试的万能钥匙JTAGIEEE 1149.1标准定义了边界扫描技术通过5个专用引脚TCK、TMS、TDI、TDO、TRST实现对芯片引脚的观察和控制是板级互连测试和芯片调试的通用接口。6.1 TAP控制器状态机JTAG的核心是TAPTest Access Port控制器它是一个16状态的有限状态机由TMS信号控制状态转移实际使用中最常用的状态路径是Shift-IR → Update-IR加载指令选择测试模式Shift-DR → Update-DR移位数据执行测试操作6.2 JTAG在DFT中的典型应用应用模式指令寄存器值功能描述EXTEST外部测试指令测试芯片引脚与PCB走线的连接INTEST内部测试指令测试芯片内部逻辑配合扫描链BYPASS旁路指令快速跳过当前芯片测试链上其他芯片IDCODE设备识别指令读取芯片唯一ID用于版本管理USERCODE用户自定义指令扩展功能如启动MBIST、读取熔丝状态七、DFT设计的常见陷阱与规避策略做DFT这些年踩过的坑比走过的路还长。以下是我总结的最常见的陷阱7.1 扫描链断裂症状ATPG报大量AU/UC故障覆盖率异常低。根因扫描链中存在未正确连接的触发器或scan_enable信号未传递到底层模块。排查用report_scan_chain检查每条链的完整性检查scan_mode信号是否穿透所有层次。7.2 三态总线竞争症状测试模式下芯片发热异常甚至损坏。根因扫描模式下三态总线控制端处于浮动状态导致多个驱动器同时导通。修复在控制端加入MUX在scan_mode下固定为逻辑0或1避免总线竞争。7.3 异步复位不可控症状部分触发器状态在测试模式下随机翻转无法稳定。根因异步复位信号reset_n在测试模式下未被约束。修复加入额外逻辑让异步输入端在scan_mode下处于非有效状态。7.4 测试功耗超标症状测试模式下芯片功耗是功能模式的3倍以上导致IR Drop和局部过热。根因测试模式下所有触发器同时翻转瞬态电流过大。修复采用时钟门控技术控制扫描移位期间的时钟活动使用低功耗扫描压缩方案。7.5 覆盖率虚高症状ATPG报告99%覆盖率但产线测试仍发现漏检缺陷。根因只关注了Stuck-At覆盖率忽略了Transition Fault、Bridge Fault等。修复建立多故障模型覆盖率的综合评估体系不能只看一个数字。八、DFT工程师的成长路径与核心能力DFT是一个相对冷门但极其重要的岗位。岗位数量不如前端设计和验证多但资深DFT工程师在市场上非常抢手。阶段能力要求典型任务时间跨度初级0-2年掌握扫描链插入、ATPG流程跑通工具flow、生成测试向量入门期中级3-5年覆盖率优化、故障诊断、跨团队协作解决复杂覆盖率问题、优化测试时间成长期高级5-8年架构设计、测试策略制定、工具二次开发制定项目DFT方案、开发自动化脚本成熟期专家8年前沿技术跟踪、团队培养、行业标准参与研究AI辅助测试、参与IEEE标准制定领军期给DFT新人的建议不要只满足于跑通工具。真正让你脱颖而出的是对电路结构的深入理解、对故障模型的系统掌握、以及从覆盖率报告中发现问题的诊断能力。多跟前端设计工程师沟通了解他们的设计意图多跟测试工程师交流了解产线的真实痛点。DFT是连接设计与测试的桥梁视野越宽价值越大。九、写在最后覆盖率背后是芯片质量的底线DFT工作常常被人误解为跑工具的体力活。但真正做过的人都知道每一个百分点的覆盖率提升背后都是无数次debug、分析、优化的积累。覆盖率数字背后连接的是实实在在的芯片良品率和财务报表上的成本节约。一个漂亮的覆盖率报告意味着产线上更少的报废、更低的测试成本、更高的客户满意度。这就是DFT工程师的价值所在。希望这篇文章能帮助你建立系统性的DFT方法论在实际项目中少走弯路。芯片测试没有捷径但好的方法和经验可以让你少踩很多坑。如果你在做DFT过程中遇到了棘手的问题欢迎在评论区留言交流。这个行业很小但坑很多大家一起抱团取暖。收藏本文测试不迷路 欢迎在评论区分享你的DFT实战经验与踩坑故事 关注本号持续获取芯片测试技术干货本文基于多年DFT项目实战经验整理仅供学习交流使用