摘要:针对目前嵌入式存储器测试算法的测试效率与故障覆盖率难以兼得的现状,提出了兼顾二者的测试算法。实验结果表明该算法最适合对存储器进行大批量的测试。在测试效率上的优势很明显,故障覆盖率也能达到应用标准。
引言
随着微电子产业日新月异的发展,IC设计的规模与集成度越来越大。SoC是现阶段IC设计的标准结构之一,通常由CPU核、存储器、逻辑电路、各种外设及接口组成,而存储器通常占据芯片的绝大部分。常用的嵌入式存储器有ROM、Flash、SRAM、DRAM等。典型的存储器的基本结构如图1所示,存储器主要由地址线、数据线、控制线、地址译码器、存储单元阵列、输入/输出电路、读出放大器、写驱动电路等部分组成。
嵌入式存储器的测试主要分为3类:
①直流参数测试(DC Parameter Testing)——校验工作电流、电平、功率、扇出能力、漏电流等参数特性。
②交流参数测试(AC Parameter Testing)——检测建立时间、保持时间、访问时间等时间参数特性。
③功能测试(Functional Testing)——测试存储器件的逻辑功能是否正常,对存储单元、读出放大器、写驱动等产生的物理故障进行检测。
本文主要讨论第3类中嵌入式存储器的功能测试。
1 采用的方法
现有的嵌入式存储器测试算法都是直接对存储器内部单元直接测试,所用的算法在测试复杂度和故障覆盖率之问难以找到一个平衡点。本文介绍的方法采用外围互连线测试和内部单元结合的测试算法,摒弃了以往只是测试内部单元的算法,提高了测试效率,故障覆盖率也有所提升。
外围互连线测试:假设存储器本身功能正常,控制线也总是可控的,故障只是由于器件装配引起的,需要对存储器的地址线和数据线可能的短路和开路故障进行测试。
内部单元测试:对存储器的译码、读写等功能进行测试。
两种测试的目的不一样。内部单元测试的目的在于判断内存单元的好坏,所以在程序设计中只要发现故障就可以终止退出,同时报告发生故障的内存单元;外围互连测试的目的不仅仅在于发现故障,而且还要求能对故障进行精确定位。所以在算法设计中需要将这两步测试过程按顺序执行完毕。
2 嵌入式存储器测试的故障模型
对故障机理进行分析,建立相应的故障模型是产生算法的前提。
2.1 外围互连线测试的故障模型
对于外围互连线,本文采用的是固定故障模型,固定故障也是存储器外嗣互连线的主要故障。固定故障模型包括固定逻辑故障、固定开路故障和桥接短路故障。固定逻辑故障是指由于物理缺陷,数据线或者地址线的状态不受输入的控制,绑定到逻辑O或者1状态,包括S-A-1(Stuck-at-1)和S-A-0(stuck-at-0)故障。而在外围互连线测试中,固定开路故障和桥接短路故障往往可以等价于S-A-0或S-A-1的固定逻辑故障,在此不作赘述。
2.2 内部单元测试的故障模型
对于内部单元,除了上文提到的类似的固定逻辑故障和固定开路故障模型,还有状态转换故障(transition fault)、数据保持故障(data-maintaining fault)、状态耦合故障(coupiing fault)和多重写入故障(multiple access fault)等。
状态转换故障:0→1或1→0的状态转换至少有一个不被正确执行。
数据保持故障:存储单元无法保持一个逻辑值持续一定的时间。
状态耦合故障:当且仅当单元j处于某一个特定状态y(y∈{0,1})时,单元i总是为某一个确定值x(x∈{0,1}),则称单元i耦合于单元j。耦合关系不一定具有对称性,也就是说单元i耦合于单元j,并不一定单元j也耦合于单元i。
多重写入故障:对单元i写入x(x∈{0,1})导致单元j也写入了x,则称单元i有多重写入故障。多重写入故障不一定具有对称性。
3 存储器的测试算法
目前存储器的测试算法中比较著名的有March算法及其各种变种算法、Gallop算法,这些算法太过复杂,测试效率不高。本文所提出的算法不仅故障覆盖率能够达到实际应用标准,而且测试效率有明显提高。
3.1 外围互连线的测试算法
存储器外围互连线包括控制线、数据线和地址线。对于控制线的测试没有比较规范的测试方法,但是如果控制线存在故障,存储器基本无法正常工作。一般而言,控制线的故障在对数据线和地址线的简单测试中就能被发现,所以不作专门测试。
数据线和地址线的测试的目的不只是发现故障,更主要的是精确定位故障以便很容易地进行修复或更换。采用“三步法”,该算法不仅能够精确地定位故障,而且还能区分固定逻辑故障和桥接短路故障这两种不同类型,具体算法如表1所列。
第一步测试数据线是否存在开路故障和固定逻辑故障,第二步测试数据线是否存在短路故障,第三步测试地址线是否存在开路或短路故障。在第二步测试结束时进行数据线故障诊断,在第三步测试结束时进行地址线故障诊断。
3.2 内部存储单元测试算法
内部单元的测试算法有Checkboard测试、MSCAN算法、March算法、GALPAT、跨步法等算法,本文对内部存储器单元进行测试,采用如图2所示的棋盘和跨步相结合的算法,在检测数据单元时采用棋盘图形,在检测地址译码时采用跨步图形,将棋盘测试法和跨步法各自的优点合二为一。
4 测试结果
将本文所涉及的算法进行测试效率与故障覆盖率的分析,并将结果进行比较,如表2所列。其中d为地址线数目,n为数据线数目,M为待测存储器空间大小,一般M=2d。从表中可以看出这些算法的测试效率比典型的March算法效率高很多,三步法的测试复杂度只有4(n+d+1),棋盘跨步相结合的算法的测试复杂度也有5M,在故障覆盖率也满足应用要求,完全可以为实际项目所采用。