韩国stc拆分盘骗局:基于DBIST的IP核可测试设计实现

来源:百度文库 编辑:九乡新闻网 时间:2024/10/05 21:38:47

基于DBIST的IP核可测试设计实现

日期:2008年8月5日 | 来源:《科技通报》 | www.21Gwy.com
本文纠错或补充 | 建议投诉 | 加入我的书签

 

 

    0.引言

   芯片集成度的提高导致芯片测试的复杂度也相应提高,使得芯片测试所需要的测试向量数量剧增,这意味着必须购买或租用更为昂贵的高档自动测试仪(ATE:automatic testequipment)才能完成对芯片的测试。近几年业界针对芯片数字逻辑部分测试主要采用两种方法来压缩测试向量的数量,一种是扩展基于全扫描的自动测试向量生成(ATPG:automatic test patterngeneration)方法,另一种是逻辑内置自测试方法。下面将这两种方法的原理及优缺点分别做简要介绍。

   扩展基于全扫描的ATPG 扩展基于全扫描的ATPG是目前比较主流的方法,其工作方式与传统的基于全扫描的ATPG一样,用可扫描的触发器替换电路中的一般触发器,然后按照一定顺序连接起来形成一条或多条扫描链。测试向量针对电路中可能存在的制造缺陷而生成,所以具有确定性。在测试时,测试向量以串行的方式加载给被测电路,测试结果也从被测电路中以串行方式输出,ATE把实际测试结果与预期结果比较后对芯片是否存在制造缺陷进行裁决,同时也对存在制造缺陷的芯片进行诊断。与传统的方法不同的是,扩展的方法采用压缩测试向量的方法来减少对ATE的内部向量缓存存储器容量的要求。在测试时,芯片内部附加的专用于测试的电路把被压缩的测试向量解压后用于正常的全扫描测试,同时将测试结果压缩后再传送给ATE[1]。这种方法能在同样的测试向量数量条件下降低对ATE的要求并且仍保持很高的测试覆盖率,但由于在测试时测试向量数目没有减少,并且扫描链的数目没有增加(增加扫描链需要使用更多的芯片端口和更高挡的ATE),所以测试时间还是很长。在对高速芯片做测试时,因为ATE不能有效控制芯片扫描使能(Scan_Enable)信号的翻转,所以还存在着不能对芯片做全速测试的问题,即不能检测延迟故障(Delay Fault)[2]。

    逻辑内置自测试(Logic BIST: logic built-inself test) Logic BIST一般采用STUMPS(self testing using MISR and parallelSRSG)结构[3],利用芯片内置伪随机向量产生器(PRPG:pseudo random patterngenerator,PRPG与SRSG为同一种结构)产生一系列的测试向量,这些测试向量被施加到被测电路的多条扫描链上,连续的多条扫描链的输出被送到多输入鉴别寄存器(MISR:multiple in signatureregister)里产生鉴别码,鉴别码与期望值比较后如果不一致,则表示芯片未通过测试。Logic BIST的好处在于减少了对测试仪器的依赖性,并且也能更方便得做到全速测试[2]。但是很多数字电路存在着在很小的概率下随机向量才能检测到的故障[4],因此要达到比较高的测试覆盖率理论上就需要更多的测试时间。在EDA工具支持方面,当前业界LogicBIST的工具一般比较独立且不成系统,工具混合使用需要数据交换,难免存在错误和文件的不兼容。

    1.Synopsys DBIST测试方法

    为了解决普通逻辑内建自测试存在的测试覆盖率低问题,学术界提出了很多方法来提高随机向量的测试覆盖率,这其中主要包括(1)插入测试点和更改被测电路结构来减少不易被随机向量检测到的节点[5](2)用外加的逻辑产生加权的伪随机向量来提高对那些难以检测节点的检测概率[6](3)采用混合模式,即第一步用随机向量测试,第二步用针对难以检测节点的确定性向量测试[7](4)采用重置位(reseeding)的方法来配置PRPG,使其产生的伪随机向量对故障检测具有一定的确定性(deterministic)[8]。

   Synopsys确定性内建自测试(DBIST:deterministicBIST)是采用了重置位原理来提高测试覆盖率的一种新的逻辑内建自测试方法。在结构上,DBIST与logicBIST类似,把被测电路扩展为四个部分:产生测试向量的PRPG;将测试结果压缩成鉴别码的MISR;控制着PRPG和MISR的运行方式以及控制芯片的功能模式和测试模式的切换的控制模块;和通过常规的基于扫描的DFT的规则检查并且尽量能够达到高的测试覆盖率的被测电路。用来重置位的种子(seed)基于全扫描的ATPG方法生成,对芯片制造缺陷的检测和全扫描一样也具有确定性。在测试时,芯片外界通过扫描输入一个种子(seed)的方法来置PRPG的状态,然后PRPG一次产生一系列的向量(数量有限),称为一个间隔(interval)。这一系列的向量逐个地经过一个叫相位扩展(phaseshifter)的结构进一步扩展到更宽的位数,扩展后的向量以扫描形式经过被测电路后,其响应输出到压缩电路中,接着输入MISR产生一个128bit宽度的鉴别码,鉴别码再被串行地送给ATE做判决。当这一个seed产生的所有向量结束时,第二个seed产生的向量已经进入被测电路。上述步骤循环执行,直到所有的测试向量都产生完毕。

    论文涉及一个要包含在语音编解码系统芯片中的32位MCUIP模块的设计,该IP模块逻辑部分规模约为380K门。我们首先用全扫描的方案对该IP做了可测试设计,采用8条扫描链结构,每条扫描链连接大约800个寄存器。后因测试成本、IP集成到系统后其可测试性等问题的考虑,我们改用了DBIST方案对该IP核做可测试设计,并且完成了全套后端流程。在下面一节,我们将介绍DBIST方法在IP核可测试设计中的实现,并且在测试覆盖率、测试向量文件大小以及加了可测试模块后芯片面积大小等方面与传统的全扫描方式产生结果进行了比较。项目采用SMIC 0.18μm的工艺库。

    2.SoCBIST使用流程及产生结果分析

    Synopsys的DFTC SoCBIST是一个专门用于实现DBIST的芯片可测试设计辅助工具,它与DFT Compiler都被整合到了Synopsys的综合平台中,因此工具间数据无缝传递也成为可能,并且其接口定义与IEEE P1500协议兼容。

    用SoCBIST对现有的IP核做可测试设计并产生最终的测试向量,其流程主要分四个步骤:

     1)被测的IP 核必须要满足基本的扫描测试的条件。即在RTL级代码上要对时钟信号、异步复位信号,三态结构和双向端口进行控制,不然会导致测试覆盖率低。这一点的要求和全扫描方式的要求一样,因为DBIST的种子是基于扫描测试的向量生成的。

   本MCU在设计中采用了两个时钟源,外部晶振时钟和内部PLL输出时钟,为了降低功耗还存在门控时钟,所以内部的寄存器不是由一个时钟信号驱动的。这就需要在代码上做修改,让芯片在测试时旁路本身时钟信号而改用统一的时钟,同时也需要禁用内部寄存器的异步复位信号,使芯片在测试时内部所有寄存器的状态都可控。
      
    图1  IP核包裹流程及相应命令                       图2  IP核集成流程及相应命令

    fig 1 flow of IP core packing and corresponding   fig 2 flow of IP core integration and corresponding

    commands                                           commands

   2)对IP核进行包裹。就是对IP核进行包围,在它的输入输出端增加包裹单元(wrappercell),得到一个被称为BIST准备就绪(bist_ready)的结果。在SoCBIST的环境下,可以用命令来确定选用DBIST方式对IP核进行包裹,同时还可以定义wrappercell的类型、是否复用该IP核的I/O口作为测试端口等。其中重要的一步是在被测电路中插入测试点,测试点包括控制点和观察点,测试点的插入可以提高被测电路的可测试性,但是同时也增加了电路规模。

    图1所示是在本设计中使用的关于IP核包裹的大致流程及使用到的相应命令:

   3)对IP核做DBIST集成。即将DBIST结构中的控制模块和PRPG以及MISR集成到已经包裹好的IP核上。在这一步,也是通过命令来确定是要对已经包裹好的IP进行控制模块等的集成,同时还可以通过命令来定义PRPG的长度。图2所示给出了在本设计中关于IP核集成的大致流程及使用到的相应命令。

    4) 用TetraMAX得到测试向量。TetraMAX是Synopsys提供的强有力的故障诊断工具,它能根据SoCBIST的结果生成测试向量。图3给出了在本设计中用TetraMAX产生测试向量的主要流程:
 
    图3  用TetraMAX产生测试向量的流程

    fig 3 flow of test vector producing with TetraMAX

   以下是在本项目中用SoCBIST加TetraMAX流程产生的和用DFTCompiler加TetraMAX流程产生的测试向量结果对比。用DBIST方法时,TetraMAX得到的测试覆盖率与产生测试向量数目如图4所示,其中故障点总和为135403,测试覆盖率为94.29%,产生的种子数为92,每个种子产生32个向量所以产生的向量总数为2944;用全扫描时,TetraMAX得到的测试覆盖与产生测试向量数目如图5所示,其中故障点总和为133506,测试覆盖率为94.71%,产生测试向量数目为2714。
 
    图4  DBIST结果                         图5 全扫描结果

    fig 4 results of DBIST                  fig 5 results of full- scan

    同时,我们还得到了两种方法生成的测试文件大小、IP核芯片面积、仿真测试周期、最长扫描链长度、片内扫描链输入等方面的数据,其差别如表1所示:

    表1 DBIST方法与全扫描方法比较

    Table 1 comparison of DBIST and full-scan methods

    基于全扫描ATPG DBIST DBIST与ATPG差别

    单点故障测试覆盖率 94.71% 94.29% 下降0.42%

    测试文件大小 52.2MB 340KB 减少152倍

    IP核芯片面积 3568482μm2 3718358μm2 增大4.2%

    仿真测试周期 2152994cycle 136252cycle 减少14.8倍

    最长扫描链长度 连接814个DFF 连接40个DFF 减少20倍

    片内扫描链数目 8条 172条 增加20倍

    从上表结果我们可以分析知道,DBIST方法与全扫描方法相比,在本IP模块的可测试设计实现中具有如下的特点:

    1) 基于全扫描的ATPG方法产生的种子,使PRPG产生的测试向量对故障检测具有确定性,因此具有与全扫描仅差0.42%的测试覆盖率。

   2) 在测试时,由于ATE只需要给芯片输入种子的值,并且传送给ATE做判决的鉴别码又经过了压缩,其长度仅为128bit,因此用DBIST产生的测试向量文件比用全扫描的小得多,降低了对ATE的数据存储容量的要求。在本设计中,数据量减小了大约150倍。

   3) DBIST在片内可采用最多达512条扫描链,在本设计中DBIST生成了172条扫描链,每条扫描链连接了38~40个扫描寄存器;而全扫描采用8条扫描链,每条扫描链连接大约800个寄存器,因此向量在扫描链中的移位时间要比全扫描方式大约短20倍;同时当第一个种子产生的测试向量扫描完毕时,第二个种子产生的测试向量就进入扫描链。这两点保证了芯片在ATE上的测试时间比全扫描短得多,在本设计中由仿真结果得知大约缩短了15倍。

    4) 继承了LogicBIST特点,Scan_Enable信号由芯片内部逻辑控制,不受外部ATE的影响,因此芯片能做全速测试。

    5) 用DBIST方法设计的IP核被集成到SoC系统中后,因为测试需要的数据量少,所以可以用边界扫描的办法通过片那的测试访问端口(TAP)的控制将IP核需要的DBIST种子和测试结果通过SoC芯片的管脚输入输出。

    6) 采用DBIST方式,因在被测电路上插入了PRPG、MISR、DBIST控制器等模块,同时为了提高测试覆盖率在被测电路上还插入了观察点,因此被测电路的规模会有一定程度的增大,在本设计中增大了约4.2%。

    3.结论

    LogicBIST因具有测试成本低、易于在SoC系统中测试等优势,在学术界中的研究已经取得了很大的进步;但是在工业界,基于全扫描的测试方法还是芯片测试的主流。论文通过对DBIST在IP核可测试设计中的实现过程及其产生结果的分析,指出了在一个实际项目中选用DBIST方法所具有优势。目前,该IP被集成到整个语音编解码系统中后针对该IP的测试仿真还没有实现,这也将是我们今后工作的重点。

    参考文献

   [1] Miron Abramovici, Melvin A Breuer, Arthur D Friedman. DigitalSystem Testing and Testable Design, Revised Printing[M]. IEEE PRESS1990, 421-447

    [2] Al Crouch.Design-for-Test for Digital IC's and Embedded Core System[M]. Prentice Hall 1999, 145-150

    [3] P.H.Bardell,W H McKenney,J Savir. Built-In Test for VLSI: Pseudorandom techniques[M]. John Wiley and Sons,New York,1987

   [4] Eichelberger E B,E Lindbloom. Random-Pattern Coverage Enhancementand Diagnosis for LSSD Logic Self-Test. IBM Journal of Research andDevelopment[J],1983,27(3),265-272

    [5] Touba N A,E J McCluskey. Test Point Insertion Based on Path Tracing[A]. Proc. of VLSI Test Symposium[C], 1996, 2-8

   [6] Wunderlich H-J.Multiple Distributions for Biased Random TestPatterns[J]. IEEE Transactions on Computer-Aided Design,19(6),584-593

    [7] Touba N,E J McCluskey. Altering Bit Sequence to Contain Predetermined Patterns[P]. US Patent 6061818,2000,5

   [8] Ahmad A,Al-Yamani,Subhasish Mitra,Edward J McCluskey. BistReseeding with Very Few Seeds[A]. Proc. of the 21st IEEE TestSymposium[C],2003