文献标识码: A
DOI:10.16157/j.issn.0258-7998.179006
中文引用格式: 白宇峰,吕寅鹏. 基于抗随机性故障分析的高效率可测试设计方法[J].电子技术应用,2017,43(8):40-42.
英文引用格式: Bai Yufeng,Lv Yinpeng. A method to achieve high test efficiency based on RRFA[J].Application of Electronic Technique,2017,43(8):40-42.
0 引言
随着集成电路的发展,芯片中的集成逻辑大量增长,若要提高芯片的生产测试覆盖率,则制造测试时必然需要大量的测试向量,图1显示了随年份增长的测试向量[1]。大容量的测试向量不仅仅延长了在测试机台上的测试时间,最终也会影响芯片产品的上市时间。对现代芯片的可测性设计来说,既保持芯片较高的测试覆盖率,又将测试向量的容量控制在合理的范围内,这将是一个很大的挑战。
1 自动测试向量生成
自动测试向量生成(Automatic Test Pattern Generation,ATPG)是应用某种基于算法的软件来生成向量和向量集合的过程,被广泛地应用于基于故障或者结构的向量生成[2,3]。
1.1 ATPG流程
ATPG通常包括向量生成和故障模拟两部分。
图2显示了ATPG的基本过程:向量生成器从故障列表中选择未被测试的故障,产生与之对应的测试向量,然后使用该向量进行故障模拟。若故障模拟成功,则保存该向量并将故障列表中的故障标记为已测试,最后输出测试向量并得到测试覆盖率。
1.2 随机性向量生成
ATPG一般使用两种方法来生成测试向量:随机性向量生成和确定性向量生成。通常来说,ATPG会先生成少量的随机性向量,这些随机性的向量能够有效地覆盖电路中的故障,然后再根据电路的特点产生确定性的向量。确定性向量往往针对的是电路中的某几个故障,而随机性向量则面对电路中的所有故障点。
当电路中的大多数故障能够被随机性向量所覆盖,那么只需要产生少量的确定性向量就能达到较高的测试覆盖率。因此,当随机性向量越有效,确定性的向量也越少,则测试所需要的总的向量则越少。
2 抗随机性故障分析介绍
抗随机性故障分析(Random Resistant Fault Analysis,RRFA)是Cadence公司测试工具提供的一项特性,用于对电路进行分析,发现电路中的抗随机性结构[4]。
2.1 抗随机性电路分析
抗随机性电路结构的特殊性在于存在多级与门(或门)的级联,导致电路在测试模式下的逻辑可控性偏差,即逻辑0的可控性远大于逻辑1的可控性(或者相反)。
使用SCOAP[5]分析方法对图3电路进行分析。假设电路的所有输入的逻辑0和逻辑1 的可控性均为50%(A点C1=50%,B点C0=50%),通过逐级传播后,电路中的C点C1=0.2%,C0=99.8%。此时可以看出,C点的逻辑0的可控性远大于逻辑1的可控性,这意味着,在随机性向量生成中,C点将有99.8%的可能性被控制为逻辑0。此时D点无论是SA0还是SA1都将难以被激活。同理分析,由于多路选择器的选择端口逻辑0的可控性较高,则逻辑锥E中的故障很难被传播到下一级的寄存器用于被观测,此时逻辑锥E中的逻辑的可观测性大大降低。
从以上的分析可知,当使用随机性向量来测试类似电路时,测试覆盖率将会大大降低,而为了激活该电路中的故障,则需要使用大量的确定性向量,以保证测试覆盖率。
2.2 插入测试点
为了解决随机性向量在抗随机性电路中失效的问题,可以在电路中插入一定的测试点,从而平衡电路的可控性以及可观测性。
一般地,如图4中的3种电路常被用于插入测试点。图4(a)为增强逻辑1可控性测试点,在测试模式下,当需要控制A点为逻辑1时,可以通过扫描链将逻辑1扫描至该寄存器即可。同理,图4(b)为增强逻辑0可控性测试点;图4(c)则为增强可观测性测试点,用于在扫描测试时捕获测试响应。
3 抗随机性故障分析与测试点插入流程
3.1 电路测试向量分析与评估流程
图5显示了电路测试向量分析与评估流程:使用综合工具Genus对电路进行综合以及实现扫描电路的插入与连接。将综合后的网表文件写出。Modus工具将网表文件与ATPG标准单元库导入,建立测试模式,检测测试电路结构合法性,对电路建立故障模型,生成测试向量。当生成的测试向量的数据量超过预期,则可考虑进行抗随机性电路分析。
3.2 抗随机性故障分析与插入测试点流程
图6显示了抗随机性故障分析与测试点的流程。在对设计进行逻辑综合与扫描电路插入之后,保存设计网表。同时导出NoTP文件,用于告知工具避免在这些设计模块中插入测试点。
此时调用Modus工具导入设计网表以及NoTP文件,让工具进行抗随机性故障分析,预估测试覆盖率,并生成测试点插入文件。最后将测试点插入文件导入到综合工具后,进入测试点插入以及增量的扫描链插入。
4 实验结果与分析
为了检验本文提出的设计方法与流程,使用相同的设计流程对7个不同的设计进行了实验。表1显示了实验结果。其中测试点一栏中显示了设计中的寄存器的数量以及测试点与之的比例。
从实验数据可知,对于不同的设计来说,在不损失测试覆盖率的情况下,使用了抗随机性故障分析方法,在插入测试点不超过2%的条件下,测试向量数据最高减少了86.28%,最低减少了20.83%,平均减少了45.85%。
5 结论
本文介绍了一种基于抗随机性故障分析的可测性设计方法,使用Cadence工具Modus对电路分析得到测试插入点,在插入测试点的电路上生成测试向量,向量数据量平均减少了45.85%。由此说明,该方法能够有效地提高芯片的测试效率。
参考文献
[1] 向刚.SoC测试优化及其应用该技术研究[D].哈尔滨:哈尔滨工业大学,2011.
[2] ALFRED L C,何虎,马立伟,等.数字集成电路与嵌入式内核系统的测试设计[M].北京:机械工业出版社,2006.
[3] Wang Laungterng,Wu Chengwen,Wen Xiaoqing.LSI test principles and architectures: design for testability[C].San Francisco,Morgan Kaufmann Publisher,2006.
[4] Cadence.Modus:Guide 5:ATPG[C].Cadence Design Systems,USA,2016.
[5] GOLDSTEIN L H.SCOAP:Sandia controllability/observability analysis program[C].17th Design Automation Conference,1980:190-196.
作者信息:
白宇峰,吕寅鹏
(格罗方德半导体科技(上海)有限公司,上海201204)