采用基于字的检测方法对单向双端口SRAM进行测试

发布时间:2023-06-19  

引 言

单向双端口SRAM是一种专用的存储器,它具有独立的写地址总线和读地址总线,不仅可以实现单端口的读写,还可以对不同地址的存储单元进行同时读写操作,提高了SRAM的性能。本文分析了单向双端口SRAM的失效模式,并描述了相应的基于字的检测算法。


存储器模型

采用基于字的检测方法对单向双端口SRAM进行测试

图1表示了3×3的单向双端口SRAM模块的结构示意图,输入为读地址总线、写地址总线和输入数据总线,输出为输出数据总线。每一个存储单元都有四个端口,分别是数据写入(BW),数据读出(BR),写地址端口(WA)和读地址端口(RA)。在这种结构中,同一列单元的数据写入端和读出端连到总线上,输出采用了线与的方式。对于字长大于1的存储器来说,读地址和写地址一次选中一行,一行中所有的存储单元 组成字,读写都是基于字的操作。由于读写总线分离,可以通过读地址和写地址选中不同的字,实现同时读写。


失效模型

存储器的失效表现为单元不能被正确地写入和读出,失效模型表示引起失效的原因。设计不当、制造工艺引入的缺陷和硅片上的点缺陷都会引起存储器的失效。失效使电路的结构发生变化,通过模拟分析出电路失效行为,上升到功能级,总结出功能失效模型。单向双端口SRAM的失效模型可以分为单元失效,单元耦合失效,地址译码失效,同时读写失效和复合失效。


单个存储单元失效

固定0/1失效(SAF),单元存储值固定为0/1。固定开路失效(SOF),单元不能被读写,由于输出线与,读出数据为固定值。转换失效(TF),单元存储值不能由0 变为1,或由1变为0。


存储单元间的失效

对一个单元的读写操作改变了另一单元存储值,称为耦合失效(CF),两个单元分别被称为耦合单元和被耦合单元。相邻单元,同一行和同一列单元更易于发生耦合失效。由于读写是基于字的操作,耦合失效又可以分为字间耦合失效和字内耦合失效。


地址译码失效

地址译码失效(AF)包括了四种情况:1. 对某一地址,没有单元被存取;2. 对某一单元,没有地址可以对其存取;3. 对某一地址,多个单元被同时存取;4. 对某一单元,同时被多个地址存取。由这四种失效子模式组合引起的失效可以等效成固定0/1

失效和单元耦合失效。

同时读写失效

由于同时读写操作的相互影响,导致写入或读出错误的值而引起的失效。

复合失效

多个耦合失效,或耦合失效和地址译码失效复合在一起。复合失效可以相互掩盖而可能通过检测,必须合理地选择测试算法,以小的测试复杂度,达到大的失效覆盖率。

单向双端口SRAM的检测算法

目前对存储器的检测算法主要基于功能级的失效模型,测试算法必须满足失效发生的条件,通过写入或读出测试向量激活失效,并通过读操作检测出来。当读出值与预期值不同时,可以判定存储器失效。

队列测试方法具有测试时间短、结构简单、易于用自检测电路实现而被普遍采用。它包含了一组测试元素,时间复杂度为O (n),n表示存储单元的容量。以MATS+法为例,表示方法为{ (Write0)m1;( read0,Write1)m2;( read1,Write0)m3},包括了3组测试元素M1、M2、M3,其中T ( read1,Write0)表示以地址递减的顺序对每一个单元进行读1和写0操作,总的时间复杂度为5n。

由于读写操作都是基于字的,因此采用基于字的检测方法,把失效检测划分成三部分,字间失效检测、字内失效检测和同时读写失效检 测。下面以3位字长的单向双端口存储器为例来说明测试算法。

字间失效检测

字间检测采用传统的队列测试算法,March C+算法覆盖了固定0/1失效,固定开路失效和转换失效,地址失效和字间耦合失效,基于字的MarchC+算法表示为:

时间复杂度为14B,B为存储器字的容量。

字内失效检测

字内检测针对字内各存储位之间的耦合失效,考虑字内任意一位会受到两侧相邻位的耦合,可以构造出图2中的状态图。图2覆盖了所有的状态和相邻位之间的耦合失效,圆圈表示相邻三位的状态,连线上的符号表示由状态转换引起的失效类型,以〈W1,W1:↓〉为例,表示了对两侧相邻位写入1时置中间位为0,则时写入111并读出可以检测这一失效。因此,对相邻三位执行下列操作序列,

Write000,Write111,read111,read111,Write000,read000,read000,

Write001,Write110,read110,read110,Write001,read001,read001,

Write010,Write101,read101,read101,Write010,read010,read010,

Write011,Write100,read100,read100,Write011,read011,read011,

可以检测出相邻位之间的耦合失效。在测试序列中包括了两次连续的读出,第一次读出检测由前一次写操作引起的失效,第二次读出检测由第一次读出引起的失效。

将上述的检测序列转化成队列测试的形式,得到如下的结果:

时间复杂度为35B,B为存储器字的容量。字内失效检测算法和字间失效检测算法包含了相同的测试元素,因此对两种算法进行合并,在失效覆盖率相同的情况下,减小测试的时间复杂度。可以得到如下结果:

时间复杂度为41B,B为存储器字的容量。

同时读写失效检测

单向双端口存储器允许同时读写不同单元。假定这种失效模型仅仅在相邻的字间发生,检测同时读写失效的测试算法为:

表示对当前地址写入111,同时对下一地址读出000。通过对相邻单元分别写入和读出,判定这种操作方式是否会引起失效。时间复杂度为10B,B为存储器字的容量。

与传统测试算法的比较

以上以3位字长为例,介绍了单向双端口存储器的检测方法,包括了字间失效的检测、字内失效的检测和同时读写失效的检测,总的时间复杂 度为51B。对于由任意位组成的字,可以对上述算法中的3位测试向量拓展成相应字长的测试向量,测试的时间复杂度不变。上述算法中对字间失效和字内失效的测试时间复杂度为41B,传统的测试方法采用了March C+算法检测,使用多个不同的测试向量,如0000,0101,0011等,实现对字间失效和字内失效的检测,这种测试方法不能保证对字内失效检测的覆盖率,March C+测试算法的时间复杂度为14B,因此当使用的测试向量大于3个时,测试的时间复杂度将大于上述针对字间失效和字内失效设计的测试算法。


结 论

分析了单向双端口SRAM的失效,描述了基于字的队列检测算法,可以有效地检测字间失效、字内失效和同时读写失效,具有失效覆盖率高和测试时间复杂度低的优点。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>