1 传统测试方法
20世纪七八十年代之前,集成电路还都是小规模电路时,测试大都通过加入激励,探测相应的方式来完成。这种方式在电路规模不大并且频率不快的情况下还是可行的,但是随着集成电路规模的增长,功能验证内容增多,或者需要使用异步激励信号时,这样的测试方式就存在局限性。为了提高故障点的测试覆盖率,出现了自动向量生成(ATPG)工具。运用ATPG算法以及强大的计算机,可以检测到尽可能多的故障点。随着芯片规模的增长,芯片门数相对于引脚数目的比例变得太悬殊,只通过输入/输出引脚进行测试的方法几乎不能再应用了,于是出现了另外一种基于扫描的测试技术——DFT。但当扫描链很长而且数量很多时,单芯片测试时间还是很长。同时高级测试仪器的价格急速攀升,使得BIST(Built-In Self-Test)即片内测试方法的产生成为必然。
2 几种常用的BIST方法及其优缺点
片内测试是节省芯片测试时间和成本的有效手段,外部测试的测试速度以每年12%的幅度增长,而片内芯片的速度以每年30%的幅度增长,这一矛盾进一步推动了BIST的应用。由于SoC芯片内部的IP种类繁多,对不同的IP核采用不同的BIST测试方法。采用BIST技术的优点在于:降低测试成本、提高错误覆盖率、缩短测试时间、方便客户服务和独立测试。目前BIST测试方法主要有MemBIST和LogicBIST。
2.1 MemBIST
MemBIST是面向嵌入式芯片存储器的测试方式,用于测试存储器工作是否正常。芯片内部有一个BISTController,用于产生存储器测试的各种模式和预期的结果,并比较存储器的读出结果和预期结果。MemBIST可分为RAMBIST和ROMBIST。目前较常用的存储器BIST算法有March算法及其变种。业界常用的工具有Mentor Graphics的MBIST Architecture。
2.1.1 RAMBIST测试结构
用RAM实现的数据Cache和指令Cache均使用普通的BIST方法。因为这两个RAM的结构完全相同,因此为了减少面积消耗,只使用一组测试电路。在测试时有外部信号TE0、TE1分别控制RAM1、RAM2是否处于测试状态,TE0、TE1不能同时有效。测试电路结构如图1所示。
控制器在外部输入信号BIST的控制下,产生读写控制信号、访问地址和测试码,对RAM的相应数据进行压缩分析,并将得到的特征值与存放在芯片中的标准特征值比较。通过两个I/O口报告测试结果,还实现了初步的故障诊断功能。当发现有故障时,通过TAP控制器,可以将出错的地址移出芯片,为进一步的故障诊断和修复提供信息。