0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于March SSE算法改善嵌入式RAM存储器的测试算法

电子设计 来源:苏彦鹏;薛忠杰;须自明 作者:微计算机信息 2020-07-02 07:54 次阅读

1引言

随着深亚微米VLSI技术的发展,大量的不同厂家的电路设计或核集成到一个芯片上。存储器密度的增长使存储器的测试面临着更大的挑战。嵌入式RAM存储器是最难测试的电路,因为存储器的测试通常需要大量的测试模式来激活存储器并将存储器的单元内容读出来与标准值进行比较。在可以接受的测试费用和测试时间的限制下,准确的故障模型和有效的测试算法是至关重要的。而为了保证测试时间和故障覆盖率,测试的好坏大大的依赖于所选的功能故障模型。

以前大部分关于故障模型的论文都是把故障的敏化固定在最多一个操作上(如一个读或一个写),这些功能故障被叫作静态功能故障。而基于缺陷注入和SPICE仿真DRAM的试验分析表明:在没有静态故障的情况下存在另外一种多于一个操作才能敏化的故障(如一个连续的读和写操作),即动态故障。大部分的测试算法主要针对静态故障,对动态故障的覆盖率比较低,但动态故障的测试也是非常重要的。

2、存储器故障模型

故障模型可以用故障原语(Fault Primitive)来表示。单个单元故障用符号S/F/R》表示,两个单元耦合故障用符号Sa;Sv/F/R》表示。S表示单个单元的敏化操作序列,Sa表示耦合单元的敏化操作序列,Sv表示被耦合单元的敏化操作序列,F表示故障单元的值F {0,1},R表示读操作的逻辑输出值R {0,1,-}。‘-’表示写操作激活故障,没有输出值。故障原语可以构成一个驱动所有存储器功能故障的操作序列的完整集合。

2.1单个单元静态故障

单个单元静态故障有12种可能的故障原语,而这12种故障原语可以看作是一个六个功能故障模型的集合,下面是这六种功能故障:1)状态故障(State Fault);2)转换故障(Transition Fault);3)写干扰故障(Write Disturb Fault);4)读破坏故障(Read Destructive Fault); 5)伪读破坏故障(Deceptive Read Destructive Fault);6)错误读故障(Incorrect Read Fault)。这些故障在文章中有详细的解释。

在文章[3]中提到固定故障(Stuck-at Faults)的故障原语是 /0/-》和 /1/-》,所以固定故障被认为是状态故障与转换故障的并集。固定开路故障(Stuck Open Fault)是由于断开的字线引起的,即0w1或1w0的操作是不能完成的,所以可以认为是转换故障;另外由于存储器的读出依赖于灵敏放大器,可以认为是错误读故障,所以把固定开路故障认为是转变故障和错误读故障的并集。

2.2静态耦合故障

静态耦合故障的故障原语有36种,可以被归纳为以下七种类型的功能故障模型:1)状态耦合故障(State Coupling Fault); 2)干扰耦合故障(Disturb Coupling Fault); 3)转换耦合故障(Transition Coupling Fault);4)写破坏耦合故障(Write Destructive Coupling Fault); 5)读破坏耦合故障(Read Destructive Coupling Fault);6)伪读破坏耦合故障(Deceptive Read Destructive Coupling Fault); 7)错误读耦合故障(Incorrect Read Coupling Fault)。这些故障在文章[2]中有详细的解释。

2.3单个单元的动态故障

只考虑S=xWyRz这种情况。单个单元动态故障的故障原语有12种,可以被归纳为以下三种类型的功能故障模型:1)动态的读破坏故障(Dynamic Read Destructive Fault);2)动态的伪读破坏故障(Dynamic Deceptive Read Destructive Fault);3)动态的错误读故障(Dynamic Incorrect Read Fault)。这些故障在文章中有详细的解释。

2.4动态耦合故障

主要分析两个单元的动态耦合故障,它可分为四种类型。只研究其中的两种(两个连续的操作都应用在耦合单元和两个连续的操作都应用在被耦合单元)。两个单元的动态耦合故障的故障原语有32种,可以被归纳为以下四种类型的功能故障模型:

1)动态干扰耦合故障(Dynamic Disturb Coupling Fault): 耦合单元的连续的两个写,读操作使被耦合单元的值发生跳变。

2)动态的读破坏耦合故障(Dynamic Read Destructive Coupling Fault):耦合单元的某一特定值使被耦合单元的连续的两个写,读操作改变了存储单元的逻辑值并输出错误的值。

3)动态的伪读破坏耦合故障(Dynamic Deceptive Read Destructive Coupling Fault):耦合单元的某一特定值使被耦合单元的连续的两个写,读操作改变了存储单元的逻辑但输出正确的值。

4)动态的错误读耦合故障(Dynamic Incorrect Read Coupling Fault):耦合单元的某一特定值使被耦合单元的连续的两个写,读操作返回错误的值但存储单元的值没有发生改变。

3、存储器测试

在文章[2]中提到的March SS算法如图1所示,它被认为能测出上面所提到的所有的静态简化故障。在文章[3]中把固定开路故障认为是转换故障和错误读故障的并集,但是由于固定开路故障的敏化必须使上次读的值与本次所期望读的值反向,所以对它的测试的算法是不同于错误读故障的算法。通过对图1所示March SS算法的分析可以很容易的发现它不能测出固定开路故障,只须在它的四个元素M1,M2,M3,M4中任意一个元素的最后一个写操作的后面增加一个读操作就能测出固定开路故障(如在元素M1的w1最后面加一个r1)。为了规则性,可以在M1,M2,M3,M4四个元素的后面都增加一个读操作,得到March SS’算法,其算法如图2所示。

基于March SSE算法改善嵌入式RAM存储器的测试算法

增加的读操作只会影响由这个读操作所敏化的故障的检测。而对于其它的静态故障的检测,由于增加的读操作并不影响存储器单元的内容,所以也不会影响这些故障的覆盖率。在这些由读操作所引起的故障中,除伪读破坏故障和伪读破坏耦合故障以外的其它故障是由一个读操作敏化并且检测的,所以该算法只会增加不会减少对这些故障的覆盖率。最后对于伪读破坏故障和伪读破坏耦合故障,用March SS’算法的测试如表1中的(a)和(b)所示。其中“v》a”表示被耦合单元的地址高于耦合单元的地址,“va”表示被耦合单元的地址低于耦合单元的地址,“,”表示故障能被多个元素敏化和检测,“/”的左边表示敏化右边表示检测。从以上可以得出该算法可以测出所有的静态故障。

表1. (a)March SS’算法对伪读破坏故障的覆盖率,(b) March SS’算法对伪读破坏耦合故障的覆盖率

算法March SS’中的M1,M2,M3,M4四个元素的第二个读操作主要是为了检测由第一个读操作敏化的伪读破坏故障和伪读破坏耦合故障,而对其它的故障的检测没有任何贡献,所以去掉这些读操作并不影响对这两个故障之外的故障的检测。从表1的(a)和(b)可以看出,如果没有这四个读操作同样能测出伪读破坏故障和伪读破坏耦合故障。因此可以去掉March SS’算法中M1,M2,M3,M4四个元素的第二个读操作,得到一个如图3所示的改进的算法-March SSE算法。该算法同样能测出所有的上述的静态故障,另外还能测出固定开路这个不能被March SS测出的静态故障。故障覆盖率得到了提高。

下面分别来看March SS算法和March SSE算法对动态故障的测试情况,对单个单元的动态故障的测试如表2所示,表格的第三列所对应的是March SS对单个单元的动态故障的测试情况,第四列是March SSE对单个单元的动态故障的测试情况。可以看出March SS算法只能测出其中1/3的故障,而March SSE能够测出5/6的故障。

表2. March SS和March SSE对单个单元的动态故障的覆盖率

对于多个单元的动态耦合故障,以两个单元的为例。表3显示了两种算法对动态干扰耦合故障(dCFds)和动态伪读破坏耦合故障(dCFdrd)两种动态耦合故障的敏化和检测情况。而另外两种动态耦合故障动态读破坏耦合故障(dCFrd)和动态错误读耦合故障(dCFir)同理很容易被证明可以全部被March SSE算法测试,而March SS只能测出其中一半的故障。对两个单元的动态耦合故障的总体来讲,March SS算法只能测出其中3/8的故障,而March SSE却能测出7/8的故障。因此对动态故障的故障覆盖率有了大幅度的提高。

表3. March SS和March SSE对两个单元的动态耦合故障的覆盖率

4、结论

本文通过对嵌入式存储器的几种不同的类型的动态和静态简化功能故障的分析,在原有的主要用来测试静态故障的March SS算法的基础上提出了March SSE算法。该算法长度为22N , N为存储器的字的个数,其中每个字包含一位。与March SS算法相比较,March SSE算法在测试长度不变的情况下,其故障覆盖率有了大幅度的提高。不但能测出March SS算法所测试的全部的功能故障,而且还能检测出March SS算法所遗漏的固定开路故障,以及85%以上的第2节所描述的动态故障,故障覆盖率得到了大幅度地提高。

本文作者创新点:本文在March SS算法的基础提出了一种改进的随机存取存储器的测试算法-March SSE算法,该算法在测试长度不变的情况下,不但能检测出原算法所能检测的所有故障,而且还能测出原算法不能检测出的固定开路故障,以及85%以上的由连续的写、读两个操作敏化的动态故障。该算法在测试长度不变的情况下大大地提高了故障覆盖率。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288387
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161979
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113705
收藏 人收藏

    评论

    相关推荐

    存储器故障诊断算法实现

    存储器是各种电子设备中保存信息的主要部件,随着存储器芯片的密度和复杂度的日益提高,设计一个良好的测试算法测试存储器变得尤为重要。
    发表于 04-27 10:08 5707次阅读
    <b class='flag-5'>存储器</b>故障诊断<b class='flag-5'>算法</b>实现

    【招聘】算法、图像检索、嵌入式测试、架构等职位(bj/sh)

    【招聘】算法、图像检索、嵌入式测试、架构等职位(bj/sh) 人脸识别算法工程师职责1、负责人脸识别深度学习算法的调研和研究。2、负责人脸
    发表于 03-06 15:26

    如何实现嵌入式ASIC和SoC的存储器设计?

    基于传统六晶体管(6T)存储单元的静态RAM存储器块一直是许多嵌入式设计中使用ASIC/SoC实现的开发人员所采用的利器,因为这种存储器结构
    发表于 08-02 06:49

    嵌入式小波编码算法的原理是什么?

    Partitioned Embedded bloCK coder),可逆嵌入小波压缩算法(CREW:Compression with Reversible Embedded Wavelets)[3] 。本文对这些算法进行了原理
    发表于 08-15 08:27

    嵌入式存储器的设计方法是什么?

    随着集成电路制造工艺水平的提高,半导体芯片上可以集成更多的功能,为了让产品有别于竞争对手的产品特性,在ASIC上集成存储器可以降低成本和功耗、改善性能、增加系统级芯片的可靠性。随着对嵌入式存储
    发表于 11-01 07:01

    Flash存储器的故障特征

    电压即可进行电可擦除和重复编程,成本低及密度大,因而广泛用于嵌入式系统中。与RAM 不同的是,Flash存储器除了具有一些典型的存储器故障类型外,还会出现一些其它的故障类型,例如 NO
    发表于 11-16 14:33

    请问怎么设计一种面向嵌入式存储器测试和修复的IIP?

    怎么设计一种面向嵌入式存储器测试和修复的IIP?如何解决设计和制造过程各个阶段的良品率问题?嵌入式存储器
    发表于 04-15 06:05

    谈一谈嵌入式设备的压缩存储算法

    在整个物联网系统中,嵌入式设备作为数据采集、过滤、缓存、传输的节点,前面系列文章分别介绍了嵌入式设备相关的各种数据过滤、校验和压缩存储算法。缓存和传输阶段,考虑到
    发表于 12-21 08:17

    L220 MBIST控制技术参考手册

    MBIST是测试嵌入式存储器的行业标准方法。MBIST通过根据测试算法执行对存储器的读取和写入序列来工作。存在许多行业标准的
    发表于 08-02 14:47

    CoreLink 2级MBIST控制L2C-310技术参考手册

    MBIST是测试嵌入式存储器的行业标准方法。MBIST通过根据测试算法执行对存储器的读取和写入序列来工作。存在许多行业标准的
    发表于 08-02 17:33

    ARM L210 MBIST控制技术参考手册

    MBIST是测试嵌入式存储器的行业标准方法。MBIST通过根据测试算法执行对存储器的读取和写入序列来工作。存在许多行业标准的
    发表于 08-02 08:07

    一种改进的嵌入式存储器测试算法

    基于一种适合于测试静态简化故障的March SS 算法,提出了一种改进的嵌入式随机存取存储器测试算法
    发表于 08-18 09:37 14次下载

    基于March算法存储器测试控制器设计

    随着soc设计向存储器比例大于逻辑部分比例的方向发展,存储器的品质直接影响着soc的整体性能的提高,故对于存储器测试显得尤为重要。现在存在的一些存储
    发表于 11-30 11:39 26次下载

    新型的嵌入式存储器测试算法[图]

    摘要: 针对目前嵌入式存储器测试算法测试效率与故障覆盖率难以兼得的现状,提出了兼顾二者的测试算法。实验结果表明该
    发表于 01-19 03:47 952次阅读

    如何对嵌入式存储器进行测试和可测性设计?

    这种测试方法的优点是利用SoC现有资源,而不需要设计额外的测试电路,也不需要对现有电路进行任何修改,因此不会增加额外的面积开销,也不会降低性能。这种测试方法可以采用任何一种测试算法
    发表于 08-26 09:04 1931次阅读
    如何对<b class='flag-5'>嵌入式</b><b class='flag-5'>存储器</b>进行<b class='flag-5'>测试</b>和可测性设计?