数字信号测试作为VLSI芯片测试的基础,已经是一项应用十分广泛的技术。各个EDA供应商、ATE供应商都有着十分成熟的解决方案,包括功能测试仿真向量的产生,转换和实际测试操作,以及芯片的AC/DC参数测试。作为高速信号测试的基础和芯片测试的基石,我们将在本文中介绍通用的数字信号测试技术、难点和各种解决方案,为下一次文章介绍的高速信号测试抛砖引玉。
数字信号测试中最基本的是功能测试,也就是模拟芯片在实际工作中的状态,输入一系列的信号,在输出端检测输出信号是否和预测的正常输出相符。以最简单的存储器单元为例,输入时钟、写信号、地址、数据,然后再输入读信号、地址,最后在输出端观察输出的数据是否正确。
要将功能测试实际应用在ATE上,需要首先有正确的功能仿真测试向量(包括输入向量和希望的输出向量),然后转换为ATE的测试程序。运行程序时,测试通道向芯片发出驱动波形,比较实际输出向量和希望的输出向量,得出Pass/Fail的结果。
随着VLSI的规模越来越大,内部的功能越来越复杂,功能测试也越来越复杂,其带来的结果是测试向量深度的增加。一颗芯片的测试程序通常会有许多个功能测试向量,以模拟不同的工作状态,测试不同的功能模块。这些向量都会被加载在测试向量内存中,以顺序或并发方式被执行。在实际生产过程中,由于内存大小限制,加载一段向量,测试一段向量,再加载一段向量的做法会使测试成本大为增加,所以大小合适并且可以很容易升级的是衡量ATE系统的一个重要指标。随着DFT扫描测试的应用,许多芯片测试要求的向量深度已经超过 20M,有些甚至达到100M。
功能测试日趋复杂带来的另一个问题就是调试的困难。最直接简便的调试方法莫如将实际得到的波形与预期波形进行比较,以确定问题的状况,找出原由。下图所示的就是在SmarTest软件中的Timing Diagram工具。在这个页面中我们可以看到上部的5个输入波形(包括一个pin group输入的数据)和7个输出管脚的波形。这里的每个波形都是测试通道实际在我们选择的10个cycle中得到的波形,包括每个比较沿和每个脉冲的上升、下降沿的形状,并且可以对时刻、输出电压进行测量。通过这样的波形与预期波形,甚至EDA工具的仿真波形比较,就可以得出是逻辑错误、电气特性问题或其他原因导致的功能测试失败。
随着SOC设计的日益推广,越来越多不同速度的IP被集成到同一颗芯片中。从高速的PCI Express, USB2.0到基本的SDRAM, PCI,测试一颗包含从33Mbps到2.5Gbps如此大速度范围的芯片对 ATE提出了从功能到成本的一系列要求,也带来了从硬件到软件的一系列挑战。在硬件上要求每一个通道都能测试如此大的速度范围必然带来昂贵的测试成本,所以比较好的解决方法就是根据芯片的要求灵活的配置机台,高速、低速测试通道可以存在于同一平台上,做到channel mixing。在软件上,不同IP的时钟频率不同,为了方便调试、节省测试向量内存,可以采用multi-port的技术,针对不同的port采用不同的时钟频率进行转换、测试,同时也可以与其他ports一同进行并行测试(concurrent test)。
数字信号芯片的DC参数测试主要是测量芯片管脚的电气特性。常用的测试项目包括:连接性、输入漏电、高阻抗漏电、输出电流电压等。以常用的输出电压为例,它主要测试管脚的带负载能力。在输出为低时,灌入电流,测量输出电压。随着灌入电流的提高,输出电压也会提高。是否能在一定的负载(灌入电流)下,输出电压保持在一定的范围内,可以衡量这个管脚的电气特性是否合格。
如果要同时测量多个输出管脚的电气特性,需要两个条件:(1)合适的功能测试向量将这些输出管脚同时设置到一定的输出状态;(2)每个输出管脚对应的测试通道都有独立的驱动、测试能力或者PMU(parametric measurement unit)。
数字信号芯片的测试除了上述的功能测试、 DC参数测试外还有AC参数、功耗测试等种种项目,这些内容将在之后的文章中介绍。几乎所有 VLSI芯片的测试都离不开数字信号测试,所以尽管数字信号测试已经十分成熟,但仍是学习芯片测试的基础。