测试性设计不是补救术:可观测性、测试成本与边界账
流片前三个月才想起测试性设计,通常已经晚了。不是没人知道要插扫描链,也不是没人会跑ATPG;麻烦在于,这时候架构已经冻结,引脚预算、时序裕量、功耗包络都写进了评审记录。测试工程师能做的,往往只是把“可测”做成形式上的可测。说实话,这账经常算歪。
测试性设计(DFT)在工程上不是测试部门的收尾工具。它把内部节点变成可访问端口,把故障模型变成可执行向量,把测试成本前移到架构期。可测性至少包含三件事:可控性、可观测性、可隔离性。少一项,诊断就会变贵。
可测性不是覆盖率数字
覆盖率是结果,不是目标——这话在评审会上常被点头,落到约束里又常被忘掉。一个数字很漂亮:stuck-at 覆盖率 99%。别急着高兴。若工艺缺陷主要表现为桥接、瞬态或单元内部缺陷,stuck-at 向量可能抓不到;cell-aware 模型能补一部分,但需要缺陷数据和模型校准。条件很清楚:故障模型必须与工艺缺陷分布匹配,否则覆盖率只是对错误问题的正确回答。
ATPG 也一样。压缩架构把向量数压下去,测试时间缩短,可诊断分辨率可能被一起压掉。X 掩蔽、扫描链分割、低功耗测试调度都会改变故障可见性。我们在一项南京产学研联合试验中遇到过类似情况:板级诊断数据回流后,发现芯内压缩链的定位结果与失效坐标对不上,后来靠增加观测点、重排扫描链才把定位时间拉回可接受区间。这不是工具参数问题,是架构期没给诊断留余量。
芯片测试性设计扫描链插入与ATPG流程图
所以,覆盖率要跟测试成本、诊断时间、良率学习一起看。测试成本大致由测试时间、测试机时费、引脚资源和向量存储共同决定。只压覆盖率不管测试时间,量产端会用排队和损耗把账补回来。
扫描链插进去,账才刚开始
扫描链插进去,账才刚开始
扫描链复用功能寄存器,听上去省面积。实际会插入多路选择器,关键路径上可能吃掉时序裕量;扫描使能、时钟、复位在测试模式下的约束也要重新收敛。高速接口附近尤其要克制,别为了可测性把功能路径改成“能测但跑不快”。
压缩架构是另一笔账。引脚少、向量短,测试机时费下降;解压逻辑、X 处理、诊断映射的复杂度上升。测试模式功耗常被低估:扫描移位时翻转率高,IR drop 可能让良品在测试模式下失效,或者把时序缺陷掩盖成电源噪声。低功耗测试调度、分区测试、移位频率控制都是必要手段,不是可选项。
安全边界也在这里。测试模式不是后门,但做不好就是。扫描链能读出内部状态,密钥、校准码、固件片段都可能暴露。安全芯片需要测试授权、扫描链加密、生命周期状态机,量产测试和失效分析要分开授权。麻烦在于,安全和可诊断性会打架;这架得在架构期吵完,别留到客户现场!
边界扫描管板级,不管芯内逻辑
边界扫描(IEEE 1149.1)常被当成万能钥匙。它擅长板级互连、器件存在性、扫描链完整性,对芯内逻辑的故障覆盖有限。板级互连诊断要靠边界扫描单元串成链路,配合测试访问端口和板级向量;高速 SerDes 的眼图、均衡、误码率,边界扫描测不了,需要环路测试或专门仪表。模拟混合信号块更复杂,偏置、噪声、建立时间往往要靠模拟 BIST 或片上环路,数字扫描帮不上忙。
板级边界扫描测试性设计互连诊断示意图
系统级测试正在把边界往外推。Chiplet 和 3D 堆叠要求已知良好裸片、裸片间互连测试和测试访问架构标准化;IEEE 1838 一类标准解决的是访问路径,不解决故障模型。换句话说,测试访问机制可以标准化,诊断算法仍要跟工艺和封装走。在南京的联合线里,封装厂关心互连开路短路,设计公司关心裸片内扫描覆盖,两边数据不打通,测试性设计就只剩各自报表。
何时该停手:边界、反例与趋势
何时该停手:边界、反例与趋势
不是所有模块都值得全扫描。始终在线的低功耗模块、射频前端、无数字访问的模拟块,插入测试结构可能带来漏电、寄生和面积代价。反例很直接:为追覆盖率在高速路径上插测试点,面积和时序裕量双超,最后产品降频;或者安全芯片扫描链无授权,失效分析没做成,先出了侧信道问题。测试性设计有边界,边界由产品定位、量产规模、失效代价共同决定。
趋势上看,Chiplet、系统级测试、在线监测会把 DFT 从“流片前检查项”拉成“生命周期能力”。AI 辅助 ATPG 能缩短向量生成时间,但可解释性和故障模型校准仍要人盯。汽车芯片还要求失效可诊断、运行中可监测,测试结构得跟功能安全机制协同,不能各做各的。
流片前三个月才补,通常只能补出形式上的可测;架构期就把可观测性写进约束,才有机会把测试成本压回可控区间。这话不漂亮,但产线上认。