用于检测存储器故障的测试方法及测试电路与流程

文档序号:15739338发布日期:2018-10-23 22:01阅读:344来源:国知局

本发明涉及半导体器件领域,具体而言涉及用于检测存储器故障的测试方法及测试电路。



背景技术:

随着CMOS工艺尺寸降低到40nm,甚至更低,且SRAM(静态随机存取存储器)单元的设计要遵循一些既定的设计规则以及满足设计密度需要的特性等等,使得SRAM单元的设计变得越来越难。更重要的是,随着存储器的容量越来越大,集成度越来越高,使得存储器内部的晶体管越来越密集,以及器件参数的微小浮动和特性的一些变化等情况下,不可避免地影响了SRAM的性能,存储器中出现的干扰故障问题日益突出。

在低电压下,存储器出现干扰故障的概率大大提高。因此有必要提出一种能够检测存储器普遍存在的故障且同时可以快速检测干扰故障的测试方法及测试电路。



技术实现要素:

在发明内容部分中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本发明的发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。

为了克服目前存在的问题,本发明一方面提供一种用于检测存储器故障的测试方法,包括以下步骤:

从低地址到高地址或从高低址到低地址依次对每个地址进行写0操作;

对存储器从低地址到高地址依次对每个地址进行写0、读0、读0、写1和读1操作;

对所述存储器从低地址到高地址依次对每个地址进行读1、写0、写0和读0操作;

对所述存储器从高地址到低地址依次对每个地址进行读0、写1、写1和读1操作;

对所述存储器从高地址到低地址依次对每个地址进行写1、读1、读1、写0和读0操作;以及

对所述存储器从低地址到高地址或从高低址到低地址依次对每个地址进行读0操作。

进一步地,所述测试方法还包括在每次读操作后将读取的数据与期望值进行比较,以产生测试结果。

在一个实施例中,所述测试方法由有限状态机自动实施。

在一个实施例中,所述测试方法还包括在所述有限状态机失效时,从所述存储器的输入引脚直接输入测试所需的数据。

根据本发明的另一方面,还提供了一种用于实现上述测试方法的测试电路,包括数据产生器、地址产生器和控制信号产生器,其中:

所述数据产生器用于产生测试所需的写入数据;

所述地址产生器用于产生要测试的存储单元的地址数据;

所述控制信号产生器用于产生控制数据,以控制进行读操作或写操作。

在一个实施例中,所述数据产生器、所述地址产生器和所述控制信号产生器由有限状态机实现。

进一步地,所述测试电路还包括比较器,用于将读取的数据与期望值进行比较,以产生测试结果,其中,

所述有限状态机的一个输出端连接至所述比较器的一输入端,所述存储器的输出引脚连接至所述比较器的另一输入端,所述比较器的输出端输出所述测试结果。

在一个实施例中,所述测试电路还包括第一逻辑模块和多个多路复用器,其中,所述有限状态机的多个输出端分别连接至所述多个多路复用的输入端,所述第一逻辑模块的多个输出端分别连接至所述多个多路复用器的另一输入端,所述多个多路复用器的输出端分别连接至所述存储器的多个输入引脚,其中,在所述有限状态机失效时,能够从所述存储器的所述多个输入引脚直接输入测试所需的数据。

在一个实施例中,所述测试电路还包括第二逻辑模块,所述第二逻辑模块连接至所述存储器的所述输出引脚,用于选择要输出的数据的位数。

在一个实施例中,所述比较器为电压比较器。

在一个实施例中,所述存储器为静态随机存取存储器。

本发明的用于检测存储器故障的测试方法,能够快速测试存储器的干扰故障和固定开路故障以及常规故障,且由于读操作的次数较少,从而减少了后面比较操作所用的时间,因此能够有效减少测试时间。

附图说明

本发明的下列附图在此作为本发明的一部分用于理解本发明。附图中示出了本发明的实施例及其描述,用来解释本发明的原理。

附图中:

图1为根据本发明一个实施例的测试方法的步骤流程图;以及

图2为根据本发明的一个实施例的用于实现本发明的测试方法的示例性测试电路的结构框图。

具体实施方式

在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。

应当理解的是,本发明能够以不同形式实施,而不应当解释为局限于这里提出的实施例。相反地,提供这些实施例将使公开彻底和完全,并且将本发明的范围完全地传递给本领域技术人员。在附图中,为了清楚,层和区的尺寸以及相对尺寸可能被夸大。自始至终相同附图标记表示相同的元件。

应当明白,当元件或层被称为“在…上”、“与…相邻”、“连接到”或“耦合到”其它元件或层时,其可以直接地在其它元件或层上、与之相邻、连接或耦合到其它元件或层,或者可以存在居间的元件或层。相反,当元件被称为“直接在…上”、“与…直接相邻”、“直接连接到”或“直接耦合到”其它元件或层时,则不存在居间的元件或层。应当明白,尽管可使用术语第一、第二、第三等描述各种元件、部件、区、层和/或部分,这些元件、部件、区、层和/或部分不应当被这些术语限制。这些术语仅仅用来区分一个元件、部件、区、层或部分与另一个元件、部件、区、层或部分。因此,在不脱离本发明教导之下,下面讨论的第一元件、部件、区、层或部分可表示为第二元件、部件、区、层或部分。

空间关系术语例如“在…下”、“在…下面”、“下面的”、“在…之下”、“在…之上”、“上面的”等,在这里可为了方便描述而被使用从而描述图中所示的一个元件或特征与其它元件或特征的关系。应当明白,除了图中所示的取向以外,空间关系术语意图还包括使用和操作中的器件的不同取向。例如,如果附图中的器件翻转,然后,描述为“在其它元件下面”或“在其之下”或“在其下”元件或特征将取向为在其它元件或特征“上”。因此,示例性术语“在…下面”和“在…下”可包括上和下两个取向。器件可以另外地取向(旋转90度或其它取向)并且在此使用的空间描述语相应地被解释。

在此使用的术语的目的仅在于描述具体实施例并且不作为本发明的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。

为了彻底理解本发明,将在下列的描述中提出详细的结构以及步骤,以便阐释本发明提出的技术方案。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。

为了更好地理解本发明,下面先介绍现有的存储器故障测试方法。

针对存储器故障模型中的各种故障,目前主要使用的算法有:Checkerboard算法(棋盘法)和March算法(进行法)。Checkboard算法和March算法以线性方式进行读写,因此存储器操作次数与存储容量N成正比。

Checkerboard算法测试过程是:首先对每一个存储单元赋值,使得每一个单元与其紧邻的各个存储单元的值都不同,即把整个存储阵列分为两块a、b,然后采用如下过程对a、b进行读写;

1)对分块a(b)中的单元写0(1);

2)读所有存储单元;

3)对分块a(b)中的单元写1(0);

4)读所有存储单元。

该算法理论上操作的次数为4N,其中N为存储容量,可以检测SAF(固定故障)和相邻单元的桥接故障,但其能够测试的故障覆盖率较低。

目前March测试算法都存在不足,以March C+(14N)为例,其测试过程可概括为:(表示地址操作从低地址到高地址;表示地址操作从高地址到低地址,表示地址操作从低地址到高地址或从高地址到低地址。以下解释相同),其具体测试过程如下(假设测试的存储器容量为n):

①将A0到An-1的地址单元初始化为0;

②对A0地址进行读0、写1、读1操作,然后对A1地址进行同样的操作,……,直到An-1地址;

③对A0地址进行读1、写0、读0操作,然后对A1地址进行同样的操作,……,直到An-1地址;

④对An-1地址进行读0、写1、读1操作,然后对An-2地址进行同样的操作,……,直到A0地址;

⑤对An-1地址进行读1、写0、读0操作,然后对An-2地址进行同样的操作,……,直到A0地址;

该测试算法不能覆盖动态故障读干扰、写干扰。

再例如March SS(22N),其测试过程可概括为:它虽然能覆盖多数干扰故障,但是测试时间长且不能覆盖SOF(固定开路故障)。

由此可见,现有的存储器故障测试算法故障覆盖率较低、测试时间长等缺点。

为此,本发明提供了一种用于检测存储器故障的测试方法及测试电路,所述测试方法包括以下步骤:

从低地址到高地址或从高低址到低地址依次对每个地址进行写0操作;

对存储器从低地址到高地址依次对每个地址进行写0、读0、读0、写1、读1操作;

对所述存储器从低地址到高地址依次对每个地址进行读1、写0、写0、读0操作;

对所述存储器从高地址到低地址依次对每个地址进行读0、写1、写1、读1操作;

对所述存储器从高地址到低地址依次对每个地址进行写1、读1、读1、写0、读0操作;以及

对所述存储器从低地址到高地址或从高低址到低地址依次对每个地址进行读0操作。

本发明的用于检测存储器故障的测试方法及测试电路,能够快速测试DF(干扰故障)和SOF(固定开路故障),以及存储器单元常规故障,且由于读操作的次数较少,从而可以减少后面比较操作所用的时间,因此能够有效减少测试时间。

下面结合具体实施例详细说明本发明的用于检测存储器故障的测试方法及测试电路。

根据本发明的一个实施例,提供了一种用于检测存储器故障的测试方法100,如图1所示,具体包括以下步骤(其中,表示地址操作从低地址到高地址;表示地址操作从高地址到低地址,表示地址操作从低地址到高地址或从高地址到低地址。以下解释相同):

步骤S1从低地址到高地址或从高低址到低地址依次对每个地址进行写0操作。即对存储器的A0的地址单元进行写0操作,然后对A1的地址单元进行写0操作,……,直到An-1的地址单元;或者对An-1的地址单元进行写0操作,然后对An-2的地址单元进行写0操作,……,直到A0的地址单元。

步骤S2对存储器从低地址到高地址依次对每个地址进行写0、读0、读0、写1、读1操作。即对存储器的A0的地址单元进行写0、读0、读0、写1、读1操作,然后对A1的地址单元进行写0、读0、读0、写1、读1操作,……,直到An-1的地址单元。

步骤S3对所述存储器从低地址到高地址依次对每个地址进行读1、写0、写0、读0操作。即对存储器的A0的地址单元进行读1、写0、写0、读0操作,然后对A1的地址单元进行读1、写0、写0、读0操作,……,直到An-1的地址单元。

步骤S4对所述存储器从高地址到低地址依次对每个地址进行读0、写1、写1、读1操作。即对存储器的An-1的地址单元进行读0、写1、写1、读1操作,然后对An-2的地址单元进行读0、写1、写1、读1操作,……,直到A0的地址单元。

步骤S5对所述存储器从高地址到低地址依次对每个地址进行写1、读1、读1、写0、读0操作。即对存储器的An-1的地址单元进行写1、读1、读1、写0、读0操作,然后对An-2的地址单元进行写1、读1、读1、写0、读0操作,……,直到A0的地址单元。

步骤S6对所述存储器从低地址到高地址或从高低址到低地址依次对每个地址进行读0操作。即对存储器的A0的地址单元进行读0操作,然后对A1的地址单元进行读0操作,……,直到An-1的地址单元;或者对An-1的地址单元进行读0操作,然后对An-2的地址单元进行读0操作,……,直到A0的地址单元。

进一步地,测试方法100还包括在每次读操作后将输出数据与期望值进行比较的步骤,以产生测试结果。其中,测试结果可以为通过测试或发生故障。

示例性地,本发明的测试方法可利用有限状态机FSM自动实施,即利用有限状态机FSM自动产生测试所需的写入数据、地址数据和控制数据。

在一个实施例中,当有限状态机FSM失效时,本发明的测试方法可从待测存储器的输入引脚直接输入测试所需的写入数据、地址数据和控制数据。

下面介绍本发明的测试方法检测存储器故障的基本原理:

首先,本发明的测试方法,每个存储单元的0或者1状态都被读取验证过,所以基本的固定故障、读干扰故障都能够被检测出;同时,每个存储单元都经历了0状态到1状态的上升转换,或者1状态到0状态的下降转换,并在每次转换后都至少有两次读操作来验证存储单元的状态,因此转换故障也能够被检测出;最后存储单元在经历了没有改变原本状态的写操作之后,也至少有一次读操作进行验证单元状态的验证,因此写干扰故障也能够被检测出。

其次,从本发明的存储器测试方法,各步骤对存储单元进行测试的顺序不同,有的是按照地址升序,也就是按照地址从低到高的顺序进行测试,有的是按照地址降序,也就是按照地址从高到低的顺序进行测试的。之所以这样设计是为了能够检测两个单元的耦合故障。

具体地,干扰故障DF按照存储单元来分,可以分成单个单元之间的干扰故障和两个单元之间的干扰故障。其中,再以单个单元的干扰故障为例:对于单个单元的干扰故障,被分为写干扰(Write-Disturb-Fault,简称WDF)和读干扰(Read-Disturb-Fault,简称RDF)。其中,WDF表示在对存储器单元执行写这个操作时,对本单元的干扰影响。根据故障描述可以分成两种进行检测,第一,在存储器背景为0的情况下,之后对存储器执行写0这个操作,然后接着读出存储器内容即可检测是否有故障存在;第二,在存储器背景为1的情况下,之后对存储器执行写0这个操作,然后接着读出存储器内容即可完成检测。RDF表示对存储器单元执行读这个操作时,存储器单元的状态发生了翻转。根据故障描述,当存储器存储的内容是1,执行读1操作即可完成检测。若存储器内容是0,执行读0操作即可完成检测。

固定开路故障SOF是存储器的字线连接到地线,也就是存储器的字线永远为低电平,那么对存储器的读写操作的动作无法到达存储器单元,只需要读取存储器单元的状态值即可完成检测,所以对存储器的读0、读1即可检测出此故障。

地址故障AF发生在地址解码器当中,可将地址解码器故障视为存储器单元阵列故障,即作为存储器单元之间的耦合。在没有故障时,被选择的存储单元状态值可以被视为固定为0或固定为1。因此,只要对所有的存储器单元执行读写操作即可完成检测。

下面示例性地介绍本发明的测试方法的具体步骤可以检测出的故障有哪些:

根据本实施例的测试方法,可以测试的功能型故障有:存储器单元故障中的SAF(固定故障)、SOF(固定开路故障)、TF(转换故障)、CF(耦合故障)中的CFin、CFid以及CFst故障、AF(地址故障)以及DF(干扰故障)。具体地,分析如下(用符号Si表示算法中的第i个步骤,用Si,j表示算法中的第i个步骤中的第j个操作):

固定故障SAF:本方法可以通过S2,1、S2,2和S5,1和S5,2对每个单元进行W0(W1)操作即可完成对SAF故障的检测。

固定开路故障SOF:本方法可以通过S2,2、S2,5和S5,2、S5,5对每个单元进行R0、R1或R1、R0操作即可完成SOF故障的检测。

转换故障TF:本方法可以通过S2,1、S2,4和S5,1和S5,4操作,使每个单元都经历了从0上升到1以及从1下降到0的转换,则完成了TF故障的检测。

耦合故障CF(包括CFin、CFid、CFst):

本方法通过S3,3、S4,1、S4,3、S4,4和S4,3、S5,2、S5,4、S5,5操作序列即可完成当攻击单元的地址大于耦合单元的CFin故障的检测;同理本方法可以通过S1,1、S2,2、S2,4、S2,5和S2,4、S3,1、S3,3、S3,4操作序列即可完成当攻击单元的地址小于耦合单元的CFin故障的检测;

对于CFid故障来说,它的故障描述虽然和CFin不同,但是检测其原理大同小异,在完成对CFin故障检测的同时实际也完成了对CFid故障的检测;

本方法通过S2,1、S2,4、S2,5和S2,4、S3,3、S3,4操作序列(或者通过S3,3、S4,2、S4,4和S5,1、S5,4、S5,5)即可完成对CFst故障的检测。

地址故障AF:对于地址故障中的四种类型均可通过本算法中的S2,3、S2,4和S5,3、S5,4的操作序列完成对AF故障的检测。

干扰破坏故障DF:本方法通过S1,1、S2,1、S2,2和S4,3、S5,1、S5,2即可完成对DF故障的检测。

根据本发明的另一实施例,提供了一种用于检测存储器故障的测试电路,该测试电路能够实现上述实施例中的测试方法。所述测试电路包括数据产生器、地址产生器和控制信号产生器,其中数据产生器用于产生测试所需的写入数据,地址产生器用于产生要测试的存储单元的地址数据,控制信号产生器用于产生控制数据,以控制进行读操作、写操作或比较操作。

在一个实施例中,数据产生器、地址产生器和控制信号产生器可以用有限状态机(FSM)实现,可自动产生测试所需的写入数据、地址数据和控制数据。在另一实施例中,数据产生器、地址产生器和控制信号产生器可以用处理器实现。

下面以有限状态机FSM实现为例,详细描述测试电路的电路结构。

如图2所示,测试电路10包括有限状态机FSM实现的数据产生器100、地址产生器200和控制信号产生器300,其中数据产生器100用于产生测试所需的写入数据,地址产生器200用于产生要测试的存储单元的地址数据,控制信号产生器300用于产生控制数据,以控制进行读操作、写操作或比较操作。

示例性地,图2中示出存储器为静态随机存取存储器(SRAM),应理解,本发明的测试方法还可适用于其他存储器。

具体地,有限状态机FSM的四个输出端连接SRAM的四个输入引脚——Add(地址)输入引脚、Da(数据)输入引脚、WEN输入引脚和CEN输入引脚。其中,数据产生器100产生的写入数据通过Data输入引脚输入SRAM,地址产生器200产生的地址数据通过Add输入引脚输入SRAM,控制信号产生器300产生的控制数据通过WEN输入引脚和CEN输入引脚输入SRAM。

进一步地,测试电路10还包括比较器400,用于在每次读操作后将读取的数据与期望值进行比较,以产生测试结果。其中,所述测试结果可以为通过测试或发生故障。具体地,当读取的数据与期望值相同时,则通过测试;当读取的数据与期望值不同时,则发生故障。其中,有限状态机FSM的一个输出端连接至比较器400的一个输入端,以提供所述期望值,SRAM的输出引脚Q连接比较器400的另一输入端,以提供所述读取的数据,比较器400的输出端输出通过测试或发生故障的测试结果。

示例性地,所述比较器400可以是本领域公知的比较器,如电压比较器、单线比较器、迟滞比较器、双限比较器等,本发明对比较器400的类型并不进行限制。

为了使有限状态机FSM失效时,该测试电路仍然能够工作,在一个实施例中,测试电路10还包括第一逻辑模块500和四个多路复用器MUX0、MUX1、MUX2、MUX3,其中有限状态机FSM的四个输出端分别连接至多路复用器MUX0、MUX1、MUX2、MUX3一个输入端,第一逻辑模块500的四个输出端分别连接至多路复用器MUX0、MUX1、MUX2、MUX3的另一输入端,多路复用器MUX0、MUX1、MUX2、MUX3的输出端分别连接至待测SRAM的四个输入引脚。在该实施例中,当有限状态机FSM失效时,可通过第一逻辑模块500从待测存储器的各个输入引脚直接输入测试所需的写入数据、地址数据和控制数据,输入的数据经第一逻辑模块500处理后,用于进行测试,以保证在有限状态机FSM失效时能够完成测试。

在一个实施例中,测试电路10还包括第二逻辑模块600,其连接至待测SRAM的输出引脚Q,用于选择要输出的数据的位数。例如,若SRAM输出8位的数据,经第二逻辑模块600选择后,可向比较器400输出前4位或后4位数据。

如下表为当测试时钟周期为100ns时,在不同存储容量words下本发明的测试方法与March SS算法相比,所用测试时间的对比表格。

由当测试时钟周期T=100ns,存储容量words=1G时,March SS算法所用的测试时间为3758096ms,本发明的测试方法所用的测试时间为3328600ms,测试时间节省了429496ms,即测试时间减少11.5%。这是由于各个算法中在每次读操作后都要有一个周期的比较操作,而本发明的测试方法比传统的March 22N算法读操作减少了2次,因此减少了比较操作的时间,从而减少了测试时间。

因此,本发明的测试方法单步操作长度为20N,测试时间比MarchSS(22N)短,且覆盖的功能性故障比MarchSS(22N)多了固定开路故障SOF;且本发明的测试方法覆盖的故障比March C+多了干扰故障DF。

本发明已经通过上述实施例进行了说明,但应当理解的是,上述实施例只是用于举例和说明的目的,而非意在将本发明限制于所描述的实施例范围内。此外本领域技术人员可以理解的是,本发明并不局限于上述实施例,根据本发明的教导还可以做出更多种的变型和修改,这些变型和修改均落在本发明所要求保护的范围以内。本发明的保护范围由附属的权利要求书及其等效范围所界定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1