目录
前言
大多数测试生成方案都会将一个被测电路视为一个黑盒子,面对测试机来说,唯一可用的控制节点就是其主要输入端,而唯一可用的观测点则是其主要输出端。因此这些就限制了被测电路的可控性以及可观测性,这意味着我们必须使用复杂测试生成算法来测试组合电路和时序电路。因此我们可以通过牺牲端口和芯片面积,付出可以承受的代价,通过纳入可测试性设计技术来增强芯片的可测试性。
可测试性设计方法之一:扫描设计方法
扫描技术的基石就是可扫描触发器。
如上图所示,图中是一个可扫描触发器。可以看到,在普通的D触发器的外围添加了一个选择器,在测试模式时,SE信号为1,SI的值被送入D端,随着CLK信号的到来由Q端输出,此时对应输入称之为SO。通过这样的方式,我们可以测试每一个D触发器是否可以正常工作,而可扫描触发器的作用不仅如此。
1.全扫描(full scan)
全扫描技术就是将电路中的所有触发器都替换成可扫描触发器,然后按照上图的方式将他们全部串联起来,变成一个移位寄存器链,称之为扫描链。我们知道,一个芯片中的主要工作部分就是组合逻辑和时序电路,使用组合逻辑来实现功能,使用时序电路进行存储,扫描链就是针对于测试这两种电路进行设计的,使用扫描技术可以直接从输入端和输出端对电路中的所有状态进行观察和控制,也因此扫描链插入成为了应用最为广泛的DFT设计方法。
但是扫描链有一个很难解决的问题,那就是在一个非常庞大的系统中,如果我们将所有的触发器(n个触发器)都链接在一起,那根据原理,我们需要n个周期才能将测试序列送入所有的触发器中,这无疑增加了测试时间,这一点需要花费更多的精力去均衡。
前面有提到如何测试所有的触发器是否能够正常工作,现在我们来看组合逻辑。将一个芯