注:本文译自一份早期的英文资料,当时的扫描主要应用于嵌入式存储单元的测试。随着技术的发展,现在的存储单元多使用BIST,而当时还是个问题的逻辑单元扫描测试现早已成熟并广泛应用……
扫描测试的定义
对于一些特定类型的器件,缩减测试开发时间和测试时间的途径之一便是应用扫描测试。它依赖于在器件内部增加特殊测试电路的做法称为扫描设计,是一种降低功能测试生成复杂度的结构化设计方法,其原理是“分而治之”,参考图16-1所示的普通模式下的钟控同步逻辑电路可以得到很好的描述。
图16-1. 普通同步逻辑电路
图示模式下,电路的主要组成部分是系统时钟控制下的组合逻辑段和一连串的存储单元(M1,M2,…,Mn)。组合逻辑得到的输入包括器件的输入(原始输入)和从存储单元反馈回来的第二级状态变量,器件的输出(原始输出)也同样由器件输入的当前状态和存储单元的当前状态共同作用决定。
而存储单元的后续状态决定于原始输入和存储单元本身纪录的当前状态,这种后续状态和当前状态的相关性造成了测试生成近乎所有的麻烦和问题。测试能直接控制的输入是器件的原始输入,同样地,能直接观察到的输出是器件的最终输出。问题在于,既然存在不能直接控制或观察的内容和那些正常运行时相互影响的内容,我们该从何处下手?
扫描设计法通过降低电路复杂程度,提供了这一难题的解决方案,旨在:
1. 所有的存储单元均可以独立于其他电路进行单独测试。
2. 第二级状态变量的后续状态可以独立于它们的当前值被设置为任意值。
3. 输入到存储单元的组合逻辑的输出可以被直接观察到。
扫描设计通过建立途经存储单元的扫描路径得以实施,如图16-2所示,每个存储单元之前都加了一个通用扫描选择信号控制下的二选一开关(多路选择器)。当选择信号关闭,多路选择器连通组合逻辑的输出端与存储单元的输入端,电路处于通常的工作模式下;当选择信号打开,存储单元被重新配置为独立的串入/串出移位寄存器。
图16-2. 增加扫描路径后的同步逻辑电路
串行数据输入端在这里称为扫描输入(Scan Data In),同样,串行数据输出端被称为扫描输出(Scan Data
Out)。通过在扫描输入端口依次置入数据并以系统时钟锁存移位寄存器,扫描模式下的存储单元可以很简单地预置为所有的特殊数值。
测试策略如下:
1. 选择扫描路径模式,即存储单元重置为移位寄存器,使用扫描输入、扫描输出及系统时钟等信号测试每个存储单元的状态和活动。
合适的扫描路径寄存器测试如下:
a. 刷新测试(FLUSH TEST)——
所有存储单元初始化为逻辑0,逻辑1信号在扫描路径时钟(即系统时钟)的控制下按时钟节拍由扫描数据输入端通向扫描数据输出端。当所有单元都变为逻辑1时,可用逻辑0再重复一遍上述过程。这些序列检测每个存储单元保持两种逻辑状态的能力。
b. 移位测试(SHIFT TEST)——
将数据序列为00110011…依次移位通过寄存器。此序列检测每个存储单元承受所有前/后状态变换组合的能力。
2. 决定组合逻辑的测试设置,如:
a. 整体控制所有输入(包括原始输入和存储单元的输入);
b. 直接观测所有输出(包括原始输出和存储单元的输出)。
3. 按照如下步骤实施具体测试:
a. 选择扫描路径模式,将测试输入数值载入存储单元,并在原始输入端口创建额外的测试输入参数。
b. 选择普通工作模式,组合逻辑的稳态输出响应现在可以在时钟的控制下输入存储单元。
c. 回到扫描路径模式,钟控输出存储单元中的内容,将它们的值、原始输出上直接观测的值与期望的输出响应相比较。
至此,扫描设计的原理已相当清晰,相对于单纯直接的电路测试,加入的扫描路径让我们能以程序化的风格独立测试DUT电路中的大部分模块,如前面提到的存储单元。现在唯一的问题是组合逻辑的测试生成,经过很好的研究,很多逻辑仿真和故障模拟都用来解决此问题。
LSSD 技术
业界创造发展了很多电路设计技术以实现扫描应用,其中以IBM公司开发的LSSD(Level Sensitive Scan
Design,电平敏感扫描设计法)技术最受关注。LSSD旨在降低在设计环境中难以仿真并且在制造环境中难以监控的AC参数(如时钟沿上升或下降时间)对系统操作的依赖程度。
LSSD提供两个时钟信号的直接控制,一个时钟控制存储单元对数据的接收,另一个控制存储单元数据的输出。在直接时钟控制下,可以控制电路的时序,以避免潜在的由原始输入或二级输入经组合逻辑电路传输所产生的竟态条件。
扫描测试设备
VLSI电路中大量的存储单元会导致扫描路径移位寄存器(扫描链)非常冗长,通常的做法是将它们划分成多条扫描链,以简化难度并提升测试速度。扫描测试是电路状态的串行表述,因此它的测试模型有几百万的向量并不奇怪,而测试机上标准的“功能测试向量存储器”主要针对高速并行数据而设计,对扫描测试来讲,性价比不高。
为扫描测试设计的设备有两类向量存储器,一类为并行数据模式,另一类为串行数据模式。每个测试通道可以在程序控制下使用并行或串行向量。串行模式下存储器通常有2个bit的宽度,并且可以在程序控制下配置成多种深度/宽度比。