SRAM BIST技术学习

        MBIST 方法是目前大容量存储器测试的主流技术,该技术利用芯片内部专门设计的BIST 电路进行自动化测试,能够对嵌入式存储器这种具有复杂电路结构的嵌入式模块进行全面的测试。MBIST 电路将产生测试向量的电路模块以及检测测试结果的比较模块都置于芯片的内部,在测试完成后,将测试的结果通过芯片的测试引脚送出到芯片的外部。

        MBIST 的核心思想是在芯片内部,存储器外部建立测试电路结构,实现对存储器的读写控制:写入测试向量,读出响应数据。MBIST 电路的基本结构一般包括测试向量产生电路、BIST 控制电路、响应分析电路三部分,结构如图所示:

一、SRAM基本介绍

1、SRAM的基本结构

        SRAM,名为静态随机存储器,它是一种随机存取存储器。它采用双稳态触发器作为存储元件,由于双稳态电路的稳定特性,这种存储器可以实现静态稳定读取:只要不掉电,存储单元就可以长期保存所写入的信息,并且无需刷新。SRAM具有存取速度快,外围电路简单,功耗低等优点,在数据高速缓存和存储阵列中被广泛应用,SRAM 的存储单元如图:

         嵌入式存储器结构模型的存储阵列就是SRAM 存储单元阵列。由基本存储单元组成的存储阵列和存储器外围电路共同组成了存储器的整体结构。存储器的外围电路一般包括地址译码电路和读/写控制电路。SRAM 的结构模型如图:

         地址译码电路包括地址寄存器和行/列译码器,读/写控制电路由数据寄存器、灵敏放大器和写驱动器组成。当地址信号给定存储单元地址,通过行/列译码器锁定存储单元位置,若当前为读操作则从锁定的存储单元读出数据并经过灵敏放大器放大摆幅,从数据寄存器输出数据;若当前为写操作则将输入数据写入数据寄存器,通过写驱动器写入指定单元。
        由于存储器内部非常复杂,非常容易出现各种故障,这些故障可能是对存储器进行读写操作的过程中的读写控制电路故障,可能是地址译码电路出现的故障,而存储器的核心存储单元阵列由数以万计的存储单元排列而成,更容易出现故障,并且产生的故障也更加难以应对,接下来将介绍存储器的相关故障模型。

2、SRAM故障模型

        故障模型是指逻辑故障模型。发生在真实存储器上的故障通常是物理故障,而引入故障模型的概念是因为物理故障是随工艺而变化的,引起物理故障的原因很多,如果测试人员对每一种物理故障在每一工艺下都去研究是不现实的,可行的办法是不直接研究物理故障,而是去研究模型化了的故障——故障模型。

        当然故障模型必须要对实际的物理故障实现精确地反映。集成电路中有与故障相关的几个容易混淆的概念:缺陷,故障、误差和漏洞。这几个概念是集成电路设计中的问题在不同阶段的不同表现形式。

  • 缺陷是指集成电路制造过程中,在硅片上所产生的物理异常,比如多余或者错放了某些器件。
  • 故障是指集成电路制造中的缺陷表现在电路功能上的异常现象,比如电路的逻辑功能固定为1 或者0。
  • 误差则是由于故障的存在而导致的系统功能的偏差和错误。
  • 漏洞一般指由于设计问题而造成的功能错误,也就是我们常说的“bug”

        故障建模是用数学模型来描述芯片制造过程中可能出现的物理缺陷,用于研究缺陷对系统或者电路功能造成的影响,以及确定故障发生的位置。采用故障模型的另一个原因就是:电路中可能存在的物理缺陷的种类繁多,并且某些物理缺陷可能对电路功能产生非常复杂的影响,分析难度大。而采用故障模型的形式,一个逻辑故障往往可以描述多种物理缺陷行为,从而回避了对物理缺陷的直接分析

        常见的存储器故障类型包括:固定型故障(Stuck-At Faults,SAF),跳变故障(Transition Faults,TF),耦合故障(Coupling Faults,CF),相邻图形敏感故障(Neighborhood Pattern Sensitive Faults,NPSF)和地址译码故障(Address DecoderFaults,ADF)。

1)固定型故障(SAF)

        固定型故障会在控制信号和存储器单元中出现,表现为控制信号或者存储单元中的值固定为1 或0,也就是持续为高电平或者低电平,简记为SA0(Stuck-At-0)和SA1(Stuck-At-1),固定故障图示为:

        固定型故障可以通过对所有待测单元写入0 再读出0,然后写入1 读出1 来进行检测。

2)跳变故障(TF)

        跳变故障(也称跳变延迟故障)出现在控制信号和存储器单元中,表现为控制信号或者存储单元中的值无法(或者延迟)从0 跳变到1,或者从1 跳变到0,简记为TF (0->1)和TF (1->0),跳变故障图示为图:

        跳变故障可以通过写入1 到0 的跳变再读出0,然后写入0 到1 的跳变再读出1 来进行检测。 

3)耦合故障(CF)

        耦合故障主要发生在存储单元中,表现为对某个单元的写入操作影响其它单元的值,使其它单元的值发生变化,根据发生的变化不同,耦合故障可以分为反相耦合故障(CFin:inversion),幂等耦合故障(CFid:idempotent)、状态耦合故障(CFst:state)和桥连故障(Bridging Faults,BF)。

        耦合故障可以通过先升序对所有存储单元进行写读操作,然后再降序对所有存储单元进行写读操作的方法进行故障检测。

3)相邻图形敏感故障(NPSF)

        这种故障主要发生在存储单元中,表现为对某特定单元周围的若干存储单元的赋值或者跳变会影响:

4)地址译码故障(ADF)

        这种故障主要发生在地址译码逻辑中,地址与存储单元是一一对应的,一旦地址译码逻辑发生故障,将会出现以下四种故障类型中的一种或多种:

  1. 对于给定的地址,不存在相对应的存储单元;
  2. 对于一个存储单元,没有相对应的物理地址;
  3. 对于给定的地址,可以访问多个固定的存储单元;
  4. 对于一个存储单元,可以通过多个地址访问。 

二、MBIST测试算法

        存储器内建自测试的中心思想就是在嵌入式存储器周围建立测试电路,测试电路控制存储器按照一定的步骤去工作,得到的输出结果与期望值进行比较来检验存储器的正确性。这些“一定的步骤”就是测试算法,测试算法的好坏决定了MBIST 的质量和效率。

1、性能指标

        存储器测试算法的性能指标有两个:测试时间和故障覆盖率。

        测试时间可以用算法时间复杂度来表征。算法时间复杂度是算法评价的通用指标,一般用O(f(N))表示,其中f(N)可以是常数、N、N2、NlogN 等,在存储器中,N 是存储器的存储单元数。算法复杂度是对算法效率的一个粗略的定量表示,它只区分常数复杂度、一阶复杂度、二阶复杂度等,而在存储器算法中,大多数算法的复杂度都是一阶的,那么为了更加细致的比较各种测试算法,存储器测试中通常也会用操作数来定量表征测试时间。

        故障覆盖率:用来表征测试算法对某种故障类型的检测能力。对于存储器测试算法的评价有时也要考虑故障覆盖范围,它用来表征一个测试算法能覆盖多少种覆盖类型。在保证对能覆盖的故障类型的覆盖率的情况下,能覆盖的故障类型越多越好。

        测试时间和测试覆盖率本身就是相悖的一对指标。想达到高的覆盖率,测试时间就可能被延迟;想减少测试时间,也许测试覆盖率就会降低。一个优秀的测试算法应该是在保证测试时间可接受的情况下,尽可能多的去覆盖故障类型并且覆盖率尽可能高。如何权衡测试时间和测试覆盖率是测试算法选择和设计的核心。

2、常见算法

        常用的确定性测试算法有MSCAN(Memory Scan)算法,跳步 (GALPAT) 和走步 (Walking 1/0)算法,Checkerboard 算法和March 类算法。每种测试算法总有它针对的故障类型,这样每种算法的测试向量的规模和测试效率不尽相同,我们要综合考虑,选取最适合的测试算法。

1)MSCAN 算法

        MSCAN 算法是一种最基本,最简单的测试算法。其算法过程是首先对所有待测单元写入全0 然后读取所有存储单元并判断是否有故障,接着写入全1 再读取所有存储单元并判断是否有故障,这种算法所使用的测试向量实际上是形式固定的存储器扫描序列,其操作次数是4N,与存储器地址位数成正比关系,时间复杂度为O(N)。这种测试算法时间复杂度低,测试向量简单,但是除可以检测所有SAF故障外,仅支持部分耦合故障的测试,故障覆盖率有限。

2)跳步(GALPAT)和走步(Walking 1/0)算法

        跳步算法和走步算法操作过程类似,首先选定一个存储单元作为基本单元,其他单元作为普通单元,向基本单元内写入1(或0),普通单元写入0(或1),然后读取所有单元的数据,重复该过程,直到所有存储单元都曾经被选定为基本单元为止。

        以跳步算法为例,其操作过程如下:

  • (1) 对所有的存储单元写入0(或1);
  • (2) 选定一个存储单元Cj 作为基本单元:对Cj 内的值求补;
  • (3) 对基本单元Cj 和普通单元Ck(k≠j)进行以下操作:读单元Cj;读单元Ck。
  • (4) 恢复单元Cj 的内容。
  • (5) 重新选定一个存储单元作为基本单元,重复操作(2)(3)。

        该算法可以覆盖以下故障:SAF、TF、ADF以及部分CF。

3)Checkerboard 算法

        Checkerboard 算法也叫做棋盘算法,基本过程是对每个存储单元进行赋值,保证每一个存储单元的值都与相邻单元的值不同,这样就将整个存储阵列分为了两块:存储值是0 的为A 块,存储值是1 的为B 块:

        分块后,按如下过程完成算法:

  • (1) 对A 和B 块分别写入0 和1;
  • (2) 读所有存储单元;
  • (3) 对A 和B 块分别写入1 和0;
  • (4) 读所有存储单元。 

        该算法的操作数为4N,时间复杂度为O(N),可以检测和定位固定型故障和部分桥连故障,在BIST 算法中应用较为广泛。

4)March 算法

        March算法是一系列的算法,由于这类算法具有较高的故障覆盖率同时测试时间较短,使得其在存储器测试领域得到了广泛研究和应用。这类算法已经广泛应用于运用于对大容量SRAM 和DRAM 的测试,随着研究的深入,各种改进算法也相继出现。目前的March 算法主要有MATS,MATS+,March X、March C、March C-、March C+、March LR 等类型。

        March 的基本思想是在有限状态机的控制下遍历每个存储单元,并对每个存储单元进行一系列的操作,在对下一个存储单元操作之前,对当前单元的这些操作被称为March 元素,而各种March 类型算法的不同之处也恰恰体现在March 元素上。每个March 元素都有规定的地址升降顺序,当一个存储单元完成一系列操作后,根据地址升降顺序来决定下一个执行操作的存储单元。当某个March 元素对所有的存储单元做完所有操作后执行下一个March 元素。为了便于描述各种March 算法的执行过程,我们首先进行如下约定:

        目前March 算法针对不同的测试目的衍生出了各种类型的March 算法,这些算法的不同之处在于March 元素的不同上,也就是对地址的操作顺序和对每个存储单元进行的操作不同。对单个存储单元的操作数和对故障的覆盖率体现了各种March 算法的不同特点,各种March 算法的操作数和覆盖率对比如表:

        算法可以覆盖的故障如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理

【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理 广东职业技术学院 欧浩源 Z-Stack协议栈是一个基于任务轮询方式的操作系统,其任务调度和资源分配由操作系统抽象层OSAL管理着。 你可以理解为:Z-Stack协议栈 OSAL操作系统 CC25…

Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】

Servlet的调用图 前面我们已经学过了Servlet的生命周期了&#xff0c;我们根据Servlet的生命周期画出Servlet的调用图加深理解 Servlet的细节 一个已经注册的Servlet可以被多次映射 同一个Servlet可以被映射到多个URL上。 <servlet><servlet-name>Demo1</servle…

自动对焦方法学习

实现自动对焦的方法有很多种,可以根据不同的工作原理,将自动对焦技术分成不同种类。 按照系统是否自带信号发射系统,可以分为主动式与被动式两种类型。 主动式对焦方法是由成像系统中的发射装置发出信号,然后再由接收装置接收从被摄景物所反射回来的反馈信号并利用通过计算…

微粒化运营:升级内容产业消费体验(附视频版)

那些最受欢迎的内容平台做对了什么&#xff1f; Facebook和Google是全球互联网广告产业中最早开始微粒化运营的代表&#xff0c;Google的互联网精准广告的思路与微粒化运营是完全相同的&#xff0c;这两家公司也因此获得了全球超过20%的互联网广告的收入。 以Facebook为例&…

chisel快速入门(一)

一、概述 Chisel&#xff08;Constructing Hardware In a Scala Embedded Language&#xff09;是一种嵌入在高级编程语言Scala的硬件构建语言。Chisel实际上只是一些特殊的类定义&#xff0c;预定义对象的集合&#xff0c;使用Scala的用法&#xff0c;所以在写Chisel程序时实际…

U盘基本处理,U盘与移动固态硬盘

一、辨别 USB2.0 和 USB3.0 1、从USB外观上来看&#xff0c;USB2.0通常是白色或黑色&#xff0c;而USB3.0则改观为“高大上”的蓝色接口。 目前&#xff0c;部分笔记本电脑USB接口&#xff0c;已同时提供对USB2.0及USB3.0的支持&#xff0c;我们可以通过接口颜色来区别。 2、从…

UWP_小说在线阅读器:功能要求与技术要求

注&#xff1a;2017年2月23日正式提上日程 学了WP开发也有一年了&#xff0c;也没做过什么软件的。17年进发UWP&#xff0c;锻炼自己一下。做一个开源的小说阅读器吧。 既然开发一个软件。所以要设计一下吧。 功能要求&#xff1a; 可能要用到的技术&#xff0c;这个吗&#xf…

chisel快速入门(二)

上一篇见此&#xff1a; chisel快速入门&#xff08;一&#xff09;_沧海一升的博客-CSDN博客简单介绍了chisel&#xff0c;使硬件开发者能快速上手chisel。https://blog.csdn.net/qq_21842097/article/details/121415341 十、运行和测试 现在我们已经定义了模块&#xff0c;…

【WPF】设置TextBox内容为空时的提示文字

原文:【WPF】设置TextBox内容为空时的提示文字<TextBox Width"150" Margin"5"><TextBox.Resources><VisualBrush x:Key"HintText" TileMode"None" Opacity"0.5" Stretch"None" AlignmentX"Le…

读书笔记之《The Art of Readable Code》Part 2

如何写好流程控制语句(if-else/switch/while/for)使得代码更可读些&#xff1f;(chap 7)* 提高条件语句的可读性(if语句, 或者bool型summary变量) if (length > 10) // Good if (10 < length) // Badwhile (bytes_received < bytes_expected) // Good while (b…

chisel快速入门(三)

前一篇见此&#xff1a; chisel快速入门&#xff08;二&#xff09;_沧海一升的博客-CSDN博客简单介绍了chisel&#xff0c;使硬件开发者能快速上手chisel。https://blog.csdn.net/qq_21842097/article/details/121418806 十四、模块的功能创建 制造用于模块构造的功能接口也…

Redis作者摊上事了:多人要求修改Redis主从复制术语master/slave

作者 | ANTIREZ、小智近日&#xff0c;Redis 作者在 GitHub 上发起了一个“用其他词汇代替 Redis 的主从复制术语”的 issue。有人认为 Redis 中的术语 master/slave &#xff08;主人 / 奴隶&#xff09;冒犯到了别人&#xff0c;要求 Redis 作者 ANTIREZ 修改这个术语&#x…

CMOS图像传感器——2021产品选谈

据Yole统计,2020年全球CMOS图像传感器(CIS)市场规模为207亿美元,出货量为70.08亿颗。跟其它半导体器件一样,CIS也因为疫情和生产周期长,以及各种市场因素,而导致采购和供应链紧张。Yole预计2021年将趋于平稳,销售额相比2020年略有增长(3.2%),将达到214亿美元,出货量…

C++匿名对象

匿名对象&#xff1a; string("hello")就是匿名对象&#xff1b; 匿名对象当做参数引用时必须加const; 转载于:https://www.cnblogs.com/achao123456/p/9634810.html

MVC源码分析 - Action查找和过滤器的执行时机

接着上一篇, 在创建好Controller之后, 有一个 this.ExecuteCore()方法, 这部分是执行的. 那么里面具体做了些什么呢? //ControllerBaseprotected virtual void Execute(RequestContext requestContext) {if (requestContext null){throw new ArgumentNullException("req…

CCIE-MPLS基础篇-实验手册

又一部前期JUSTECH&#xff08;南京捷式泰&#xff09;工程师职业发展系列丛书完整拷贝。 MPLS&#xff08;Multi-Protocol Label Switching&#xff09; 目录 1&#xff1a;MPLS 基础实验.... 3 1.1实验拓扑... 3 1.2实验需求&#xff1a;... 3 1.3实验步骤... 3 1.4校验…

RCA/BNC接口

RCA接口&#xff08;消费类市场&#xff09; RCA 是Radio Corporation of American的缩写词&#xff0c;因为RCA接头由这家公司发明的。RCA俗称莲花插座&#xff0c;又叫AV端子&#xff0c;也称AV 接口&#xff0c;几乎所有的电视机、影碟机类产品都有这个接口。它并不是专门为…

2021手机CIS技术趋势总结

手机摄像头CIS&#xff08;CMOS图像传感器&#xff09;自从突破1亿像素以后&#xff0c;再谈像素数量增大&#xff0c;似乎已经很难让市场产生激烈反应了。这两年电子工程专辑对于手机摄像头CIS&#xff0c;以及更多领域不同类型的图像/视觉传感器&#xff08;如ToF、基于事件的…

关于Unity中NGUI的背包实现之Scrollview(基于Camera)

基于UIPanel的scrollview实现方式在移动设备上的性能不如基于camera的方式。因为UIPanel的scrollview实现方式要渲染很多的道具图&#xff0c;性能自然就降低了。如果是用第二个摄像机camera的方式&#xff0c;物体并没有动&#xff0c;只是拖动第二个摄像机摄像机&#xff0c;…

YUV422/420 format

(在本文中&#xff0c;U 一词相当于 Cb&#xff0c;V 一词相当于 Cr。) YUV422 format as shown below 4:2:2 表示 2:1 的水平取样&#xff0c;没有垂直下采样 YUV420 format as shown below4:2:0 表示 2:1 的水平取样&#xff0c;2:1 的垂直下采样. YUV4:2:0并不是说只有U&…