APP下载

逻辑内建自测试双重过滤测试点选取策略

2020-05-24董承梁张金艺

关键词:测试点覆盖率重合

董承梁, 张金艺, 卿 培

(1.上海大学微电子研究与开发中心,上海 200444;2.上海大学特种光纤与光接入网重点实验室,上海 200444;3. 上海三思电子工程有限公司 软件研发中心,上海 201199)

随着集成电路工艺的不断发展,集成电路特征尺寸日益缩小。三星和台积电7 nm 工艺已于2018 年正式量产[1],而伴随着芯片集成度的不断上升,电路复杂度不断提高,对芯片测试提出了新的要求与挑战。逻辑内建自测试(logic built-in self-test,LBIST)由于其可脱离自动测试设备(automatic test equipment,ATE)测试的特性,在微处理器、微控制器等超大规模集成电路芯片领域被广泛应用[2]。也正由于脱离ATE 设备,LBIST 需要使用伪随机向量生成器作为测试图形的输入,致使故障覆盖率不如传统扫描设计。为提升这一指标,测试点插入(test point insertion,TPI)技术[3-4]因其易控制、易修改等优点而被广泛使用,成为LBIST 方案的重要技术之一。然而,因“故障覆盖率优先”这一准则,部分测试点会占用较大的测试面积开销,而故障覆盖率提升有限[5]。随着集成电路规模越来越大,由于测试点所带来的额外测试面积开销越发不可控和不可接受[6-7],为此,寻求一种LBIST 测试点选取策略以保障高故障覆盖率的同时,降低测试面积开销,成为当前研究的热点。

2016 年,Acero 等[8]发现测试电路内部信号之间存在横向冲突竞争,并据此提出“依照信号冲突程度”插入测试点,使得原本存在冲突竞争的信号可在同一时刻进行测试,该策略从提高单测试点故障覆盖率着手,一定程度提高了测试点效率,但未进一步考虑由于测试点位置的不同,将带来不同的测试面积开销,尤其当测试点位于关键路径时,可能会导致整个电路结构的改变。2016 年,He 等[9]提出以插入单个测试点所带来的故障覆盖率提升与测试面积开销增比为依据,构建测试点选取策略,完成TPI 工作,该方法对节省测试面积开销起到一定作用,不过由于计算的是单测试点,而测试点故障覆盖存在重合,即对于故障覆盖率提升的计算不精确。因此,Moghaddam 等[10]认为,应当构建全局性测试点选取策略,进一步考虑测试点间的相互影响,并于2017 年提出动态刷新策略,每次插入一测试点后,更新所有测试点在新电路下的故障覆盖率和测试面积开销,重新排序选取。该策略突破性地考虑了测试点间故障覆盖重合等的问题,使得测试点效率进一步提升。但由于每次都需重新计算,使得该策略需要大量的运算时间,并认为该方法目前无法应用于超大规模集成电路。同时,重新排序后的当前最优解,不一定是组合最优解,即存在其他测试点组合使得全局故障覆盖率/测试面积开销最大[11]。

综上所述,本工作将对现有测试点选取策略缺陷做进一步分析,得出制约提升故障覆盖率、降低测试面积开销的原因。其次,根据分析结果,构建双重过滤测试点选取策略,该策略通过预过滤获得单个高故障覆盖率/低面积开销测试点集合,从而保障了整体测试点的质量,再通过全局测试点滤取,移除测试点间故障覆盖相互重合的影响,将不必要的测试点滤除,使得测试面积开销降至最低,最终完成满足边界条件(最低故障覆盖率或最大测试面积开销)的测试点选取工作,使得故障覆盖率/测试面积开销结果最优。

1 选取策略缺陷分析

1.1 单一测试点低效原因分析

单一测试点低效表现为故障覆盖率提升有限,而测试面积开销过大,其主要由测试点故障覆盖率低所导致。故障覆盖率低意味需要更多测试点才能满足故障覆盖率的要求,使得测试面积开销过大的测试点也被选用。因此,提高单一故障覆盖率将有助于提升故障覆盖率,降低测试面积开销。

导致LBIST 测试点故障覆盖率不足的原因主要是横向冲突竞争[12]与纵向故障传播阻抗[13]。横向冲突竞争指传播两种不同的故障时,由于同一点的高低电平要求不同,所导致的故障覆盖数目减少和测试图形数量增加。如图1 所示的横向冲突竞争,当传播故障C1时,S1与S2将发生冲突。从逻辑锥传播故障C1通过与门G1时,要求S1必须设置为1。同时,从锥体传播故障C2,输入或门G2的S2必须为0,从而导致电路横向冲突竞争。显然,由于横向冲突的存在,故障C1和C2不能被相同的测试图形检测到,这就导致了该逻辑锥内的测试图形数量翻倍。通过在S1处插入一额外的或门即可实现提高故障覆盖率和减少测试图形数量目的。

图1 横向冲突竞争示例Fig.1 Example of horizontal conflict competition

纵向故障传播阻抗是指随着电路纵向深度的增加,节点为1/0 的概率不再是50%,导致某些故障无法被传播至特定节点处。如图2 所示的纵向故障传播阻抗中,故障C1传播至D1的概率为1/8。故障C1需要传播至D1处,路径上有G1、G2、G3共3 个与门,假设3 个与门的另一输入S1、S2、S3为1 的概率均为50%,则故障至D1处的概率仅为1/8,而解决方法只需在C1处插入一观测点,或在D1处插入一受C1控制的控制点即可。

图2 纵向故障传播阻抗示例Fig.2 Example of longitudinal fault propagation resistance

1.2 全局测试点相互影响分析

在选取测试点的过程中,常以故障覆盖率提升/测试面积开销为标准,衡量测试点价值。在集成电路规模较小时,该衡量标准适用性较好,而当集成电路较大时,则引发了新的问题。测试点间存在故障覆盖相互重合问题,该问题使得故障覆盖率没有实际提升,却徒增测试面积开销,而如今集成电路千万门级的规模决定了不可能对每个测试点单独进行测试,因此如何移除测试点间故障覆盖相互重合影响成为研究难点之一。

既然不可能将所有测试点一一插入,进行组合分析,本工作提出将测试点移除来确定其故障覆盖率的影响,在测试点全部插入电路中后,每次移除一个测试点,计算移除后总体故障覆盖率的降低量,即该测试点对于电路的实际故障覆盖率贡献,而重复部分不计入该测试点贡献,同时考虑测试面积开销的影响,得到该测试点的真实贡献值为

式中:R表示真实贡献值;Fa代表所有测试点贡献的总故障覆盖率;Fs代表移除该测试点后的故障覆盖率贡献;Ao表示该测试点所引入的测试面积开销,该数值在测试点插入过程中由软件自动生成。当测试点的实际故障覆盖率越高时,面积开销越小,则该测试点真实贡献值越高。全局测试点滤取算法将参考真实贡献值对测试点进行滤取。

2 双重过滤测试点选取策略构建

单测试点预过滤通过缓解纵向故障传播阻抗与横向冲突竞争,获得高故障覆盖率/低测试面积开销的测试点集,以保证TPI 整体质量。因所得测试点存在故障覆盖相互重合的问题,全局测试点滤取算法将进一步滤除故障覆盖相互重合较高的测试点,在保障整体故障覆盖率的前提下,进一步降低了测试面积开销。

2.1 单测试点预过滤

纵向故障传播阻抗可描述为由于该点插入测试点后,使得可纵向传播的故障增加数目。根据上述描述,定义bx为节点x是0 时,其后可以传播故障的故障数目,

Bx为节点x是1 时,其后可以传播故障的故障数目,

值得注意的是,bx和Bx具有相互对立的意义,bx也可以被理解为当x为1 时,被阻碍传播的故障数目,同时Bx也可以理解为当x为0 时,被阻碍传播的故障数目。由于前一级的故障传播的阻塞会影响下一级的故障传播,因此前一级的bx和Bx需要包含次一级的值,并且递归。

进一步考虑横向冲突竞争。横向冲突竞争是由于为了将故障传播至当前节点,与其他节点发生了竞争关系,如果竞争关系越激烈(要求电平分别为高或低的故障数目越接近),则该点插入测试点以缓和竞争的意义越大,提高故障覆盖的效果越明显。因此,定义fx为由于故障传播,使得节点x必须为0 的前级故障数目;Fx为由于故障传播,使得节点x必须为1 的前级故障数目。以图3 为例,求解fx和Fx。

当x0为1 时,要求v2、v1、w2、w1同时等于1,而v1、w2为1 时,使得故障C1和C2得以通过与门G1、G3进行传播。假设v0和w0为初始输入,由于G2是与门,受0 控制,因此可得到Fx0=Fv2+Fw1= 2。与之相对应,为使x0= 0,仅需v2、w1一者为1,因此,fx0=max{fv2,fw1}=0。

图3 Fx 及fx 定义Fig.3 Definition of F x and f x

综合考虑横向冲突竞争和纵向故障传播阻抗,由于其定义均建立在新增故障可传播数的统计基础上,并且是线性表达式,因此可得到统一度量值Cx,以表征在某点插入测试点后,对于故障覆盖数目增加的评估。由于在插入测试点前,测试图形的生成优先考虑故障覆盖率更高的max{Bx+Fx,bx+fx},因此插入测试点后,所提升的故障覆盖数目为

上述算法对测试点所带来的故障覆盖数目增加进行了评估,但芯片测试过程中不仅需要保障故障覆盖率,同时也需要考虑测试所带来的额外面积开销。因此完成对故障数目覆盖评估后,需进一步测算测试点所带来的面积增长Aoverhead,计算所有测试点Cx/Aoverhead的比值大小,从大到小排序,预选取预计测试点总数的150% (该数值可调,数值越大,结果越优,但计算时间成指数增长),完成预过滤工作。

2.2 全局测试点滤取

通过单测试点预过滤,已获得潜在可用测试点集,在此基础上,需进一步通过全局测试点滤取算法,滤除故障覆盖重合较高的测试点。全局测试点滤取算法伪代码如图4 所示,该算法通过在待测电路中插入所有预过滤后的测试点,并每次移除单个测试点,计算移除前与移除后的故障覆盖率差值,得到该测试点的实际故障覆盖率,即排除了其他测试点对该测试点的影响,进一步计算真实贡献值R,依据大小排序,选取真实贡献值R较高的测试点,直至满足边界条件。而为了保障故障覆盖率,故障覆盖重合较小的测试点也有可能被选中,因此故障重合部分的故障覆盖率并不会消失,而是也会对总故障覆盖率做贡献。

经过单测试点预过滤与全局测试点滤取双重过滤后,在保证了测试点本身高故障覆盖率/低测试面积开销的同时,也移除了因测试点故障覆盖相互重合所导致的额外测试面积开销。整个双重过滤测试点选取策略流程如图5 所示。首先,通过计算统一度量Cx和测试面积开销预选取一定数目的测试点;其次,通过全局测试点滤取算法,计算真实贡献值、滤除测试点间相互影响;最终,得到满足边界条件的TPI 方案。

图4 全局测试点滤取Fig.4 Global test point filtering

图5 双重过滤测试点选取策略流程图Fig.5 Selection strategy flow chart of double filtration test point

3 验证体系构建与结果分析

3.1 验证体系构建

为验证LBIST 双重过滤测试点选取策略的效果,本工作将基于TSMC CMOS 90 nm 工艺库,使用Mentor 公司Tessent LogicBIST 软件,以标准测试电路ISCAS’89、ITC’99 和自主研发的稀疏矩阵乘法加速器(sparse matrix-multiply-vector accelerator, SMVA)为验证对象,捕获故障覆盖率与测试面积开销指标进行对照实验,其中ISCAS’89 和ITC’99 皆为国际标准测试电路,是具有典型特征并涵盖多个工业应用的一组电路,同时也是国际上通用的测试基准电路。SMVA 为本工作实际应用之一,其针对稀疏矩阵存在大量零元素这一特性,通过大量复用自主设计的运算单元,实现大规模、高效率的浮点数乘法运算。上述电路的规模和I/O等信息如表1 所示,同时为做横向比较,选择目前较新颖的紧凑型单元感知测试点(compact cell-aware test points, CCA)[8]和有效测试点插入(efficient test point insertion, ETPI)[15]策略进行对照试验。

表1 待测试电路规模及信息Table 1 Circuit under test size and information

3.2 实验结果分析

为验证单测试点预过滤和策略整体对于降低测试面积开销的效果,分别在不执行和执行全局测试点滤取的条件下,对测试面积开销进行比对实验,并指定故障覆盖率需达到95%。实验结果如图6 所示。

图6 95%故障覆盖率下的测试面积开销Fig.6 Test area overhead with 95% fault coverage

实验结果表明,单测试点预过滤对比ETPI 和CCA 仍具有优势。相较于CCA 策略,由于考虑了纵向故障传播阻抗与横向冲突竞争,以更少更高效的测试点达到了相同的故障覆盖率,从而节约了测试面积开销。而ETPI 策略中,由于使用商业化软件生产的初始测试点,其测试点并非全局最优解,使得后续框架对于测试面积开销的节省有限。而双重过滤更是在单测试点预过滤的前提下进一步降低了测试面积开销。

为验证本策略整体对于故障覆盖率提升效果,在相同测试面积开销下,对故障覆盖率进行比较,分别拟定在测试面积开销为5%、10%、15%下进行比对,结果如表2 所示。

表2 指定测试面积开销下的故障覆盖率Table 2 Fault coverage with specified area overhead %

对于电路规模较小的s1423 和s9234,其原本的故障覆盖率就处在一个较高值,3 种方法皆可在一定面积开销下达到近乎100% 的故障覆盖率;而对于初始故障覆盖率较低的b22、b18、b19、SMVA 这4 个电路,CCA 策略即使在15%的测试面积开销下,其故障覆盖率也仅在90%上下。ETPI 策略具有一定倾向性,对于b19 这类由多个相同模块组成,互联关系较强的电路,其可达到的故障覆盖率有限。本工作所提出的方法由于考虑了测试点间相互影响等因素,故障覆盖评估更精准,因此其效率更高,在不同电路结构下均可保证足够的故障覆盖率,排除s1324 与s9234 后,在15%的测试面积开销下,平均故障覆盖率为95.55%,相较于CCA 的91.30%与ETPI 的92.58%,故障覆盖率有明显提高。由此可见,本工作提出的测试点选取策略无论在同测试面积下提升故障覆盖率,还是在同故障覆盖率下节省测试面积开销,均有上乘表现。

4 结束语

本工作针对传统TPI技术故障覆盖率不足,以及测试面积开销过大的问题,提出了一种应用于LBIST 的双重过滤测试点选取策略。本策略预过滤高故障覆盖率/低面积开销测试点,并通过全局测试点滤取算法,移除测试点间故障覆盖相互重合的影响,最终完成TPI 工作。实验表明,本策略在国际标准测试电路ISCAS’89 和ITC’99 以及自主研发的SMVM 中均取得良好效果。双重过滤测试点选取策略不仅通过提升故障覆盖率保障了LBIST 的高可靠性与安全性,而且因移除了测试点间故障覆盖重合,降低了测试面积开销,减小了测试成本,因此本策略具有较强的实际应用价值。

猜你喜欢

测试点覆盖率重合
民政部等16部门:到2025年村级综合服务设施覆盖率超80%
基于信息熵可信度的测试点选择方法研究
我国全面实施种业振兴行动 农作物良种覆盖率超过96%
500kV线路重合闸故障分析与处理
一种基于机载模块化短波功能设备的BIT设计解析
电信800M与移动联通4G网络测试对比分析
浅谈高考英语听力对策
浅析重合闸
表针重合
正方体平面展开图中重合点的判定方法