在芯片制造过程中,可能会引入物理缺陷,这些缺陷在电气层面的表现称为故障。常见的故障模型包括固定型故障(例如引脚固定连接到电源或地)、跳变故障、路径延时故障(如门级端口信号上升下降过慢)、以及静态电流型故障(表现为异常高电流泄漏)。若某个故障能在电路中向后传播并导致芯片输出与预期不符,则称为失效。值得注意的是,并非所有故障都会引发失效,只有那些最终影响到功能正确性的故障才会导致实际问题。
扫描测试Scan是可测性设计(DFT)中广泛使用的一种方法,其核心是在电路中使用带Scan功能的寄存器,并将它们连接成一条或多条扫描链。
简单说Scan 就是给芯片加一套 “测试专用通路”,让芯片内部变得可测、可控、可量产筛片,是现代芯片必做的 DFT 技术。
Scan 寄存器:
带Scan功能的寄存器,如下图多了SI/SE两个Pin:
SI是Scan in,是Scan链的输入端;
SE - Scan Enable,Scan使能;
另外Q,在Scan mode下复用为SO,Scan Out Pin

考虑一个只有三个寄存器和一个与门的“芯片”,逻辑功能如下图:

Scan链/扫描链:
Scan串链后,如下图,可以看到三个寄存器通过SI/SO穿成 了一条链,也叫扫描链:

把寄存器拉平,就变成了下图,看着更有“链”的感觉:

Scan测试:
Scan有两种测试模式,Shift和Capture模式;
通过Scan链从SI端口,以较低频率的测试时钟将测试向量逐位移入内部寄存器,并从SO Pin移出来, 并比较输出的数据是否符合预期:
/* Scan模式下,Clk会切换到频率较低的Scan CLK*/

通过Scan链的shift测试,可以覆盖寄存器的基本功能;
那还有组合逻辑的测试,怎么覆盖呢?通过Shift + Capture组合来测试,如下图分三步测试;
1. 通过shift模式,给三个寄存器移入1,1,0的值;
2. 启动Capture模式,即:关闭寄存器的SE,给一个cycle的时钟,这样寄存器可以Capture到组合逻辑的输出结果;
3. 再通过Shift模式,将寄存器的结果输出,和预期结果比对,即可判断电路是否有误


上图的例子,我们假设图中A点生产过程中被Tie 0了,那最终SO输出的结果就是110,而不是预期的111,这样就可以检测到生产中的错误了。
当然,实际芯片的逻辑是相当复杂的,组合逻辑锥也非常复杂,还会现在有自动化工具,可以自动生成测试pattern,并分析测试覆盖率,覆盖覆盖率不达标,也可以通过一些手段增加覆盖率,比如组合逻辑锥太复杂导致测试困难时,可以通过增加旁路寄存器作用DFT的观测点;另外现在芯片寄存器数量也非常庞大,通常一颗芯片寄存器会串成多条寄存器链,来缩短测试时间;
DFT Scan测试主要用来做芯片制造过程引入的缺陷(如金属短路、断路、孔缺失、晶体管异常等),是芯片量产检测、定位缺陷、保障良率的核心手段,核心作用如下:
❖ 解决芯片内部难观测、难控制问题
❖ 把芯片内部寄存器串成扫描链(Scan Chain),让外部测试仪能像 “读 / 写移位寄存器” 一样,可控、可观测芯片内部几乎所有节点
❖ 实现高效、基本全覆盖的逻辑测试,能够覆盖几乎所有组合逻辑 + 时序电路(检fault率,可以达到99.999%)
❖ 支撑量产自动化测试(ATE)
❖ 提供标准、可自动化的测试方式,芯片出厂前快速筛出坏片,保证交付质量。
❖ 测试失败时可定位故障位置,帮助工艺 / 设计端分析失效原因,持续改善良率。
/* 声明:本文中电路图和时序图仅为说明基本原理,未经严谨的审核和测试,仅供参考 */
全部0条评论
快来发表一下你的评论吧 !