摘要 本文从可测试性设计的角度出发,讨论了测试综合技术的必要性,以及测试综合的方法与步骤。
关键词 可测试性设计 测试综合 边界扫描
随着电路技术进入超大规模集成(vlsi)时代,vlsi电路的高度复杂性以及多层印制板、表面封装(smt)、园片规模集成(wsi)和多芯片模块(mcm)技术在电路系统中的运用,都使得电路节点的物理可访问性正逐步削弱以至于消失,电路和系统的可测试性急剧下降,测试开销在电路和系统总开销中所占的比例不断上升,常规测试方法正面临着日趋严重的测试困难。测试算法的研究和测试实践证明了一个基本的事实:要对一个不具有可测试性的电路进行测试是徒劳的,只有提高电路的可测试性,才能使电路的测试问题得到简化并最终得到解决。
在电路的逻辑设计完成后,通常是以手工的方式来加入可测试性设计。激烈的市场竞争要求更短的设计开发周期,这样的可测试性设计方法已成为严重的设计瓶颈。随着设计进入了以综合为基础的阶段,将测试与综合结合起来,以自动化的方式来实现可测试性设计已成为必然的趋势。
测试综合就是在满足速度和面积要求的前提下,按照一种可测试性设计方法,通过对测试功能的综合来产生一个可测试的电路。就其综合的特性而言,测试综合的层次应该与设计的层次尽可能的靠近,这样的层次包括门级、寄存器传输级或更高;就其测试的特性而言,则要求测试综合能够保证测试的故障覆盖率,一般测试生成的层次越低则故障的覆盖率越高。有大量的工作属于测试综合的范畴:对自身可测试的电路的综合,对逻辑综合进行约束使之符合于标准的可测试性设计规则,以及在行为级综合中加入边界扫描或bist电路等。当前较为成熟的测试综合技术是门级测试综合和寄存器传输级测试综合。
门级测试综合是最早出现也较为成熟的一种技术,其流程如图1(a)所示。它对经过逻辑综合技术映射的电路进行处理,生成有关的电路(有时是重新优化的电路)和满足某种可测试性设计方法的测试矢量。门级测试综合一般采用全扫描可测试性设计方法。寄存器传输级测试综合是最近才出现的,它产生寄存器传输级代码而不是具体电路。可以在进行综合之前将这些代码与设计的其余部分合并,以便于对测试电路和系统逻辑进行充分的逻辑综合,其流程如图1(b)所示。该技术更适合于实现边界扫描和bist设计,而不是全扫描设计。寄存器传输级代码一般采用vhdl语言表示,但对于ieee1149.1边界扫描设计,bsdl语言则是一种更为合适的表示形式。
(a) 门级测试综合的流程(b) 寄存器传输级测试综合的流程
图1 测试综合的流程图
无论是在门级还是在寄存器传输级进行测试综合,有关的处理都包括四个基本步骤,且这些步骤都是集成到一个基于综合的设计方法当中的。这些步骤是:可测试性方案选择,测试结构的插入,电路验证和测试程序准备。随着门级或寄存器传输级等应用的不同,这些步骤的形式和重要性也随之改变。
1 可测试性方案选择
可测试性方案是指设计者为了在设计中引入可测试性而采用的全部可测试性设计规范、结构和设计约束。在不同的设计层次上,设计者可能以不同的精确度来定义可测试性设计方案。对于门级测试综合来说,许多测试综合工具限制用户只能采用一种或几种较为固定的测试方法,如利用多路选通d触发器或电平灵敏的扫描设计lssd来实现扫描链。理想的情况是测试综合工具既有预先定义好的、通用的可测试性方案,也允许用户在需要的情况下定义他们自己的可测试性方案。这样,一个可测试性方案是对如何实现测试的一种较高层次的考虑:诸如采用什么种类的扫描触发器,存在什么样的测试信号,是否或怎样进行时序测试,采用多少数量和什么性质的扫描链(包括边界扫描链)等。对于寄存器传输级测试综合,设计者可以在更高的层次上来描述可测试性方案。例如设计者可以指定一个实现9n跨步测试(marchtest)的bist结构来检测ram。这里并不需要作十分细致的描述,如对某个芯片上的bist电路进行重用,而这些细节描述对于门级测试综合则是必要的。
2 测试结构的插入
这是所有测试综合方法中真正的综合步骤。软件工具所综合进去的实际测试结构与整个测试流程中测试综合所处的位置直接相关。对于门级测试综合,被综合的测试结构一般是常规的扫描设计,且这个过程是很直接的:将触发器归并到它们所属的扫描链中,然后将链中的触发器连接起来,并连接全局信号线,最后用结果电路来替代原来最初的设计。理想的情况是,一个扫描链连接工具将维持原设计的层次结构并支持所有的扫描测试方式。它应该允许用户显式地将某一存储单元(触