基于自适应March算法的可重构MBIST方法转让专利

申请号 : CN202210998070.5

文献号 : CN115083500B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蔡志匡余昊杰杨航谢祖帅姚佳飞王子轩郭宇锋

申请人 : 南京邮电大学

摘要 :

本发明公开基于自适应March算法的可重构MBIST方法,属于半导体器件在制造或处理过程中的测试或测量的技术领域。提出自适应March算法并基于该算法提出一种可重构MBIST电路,根据外部环境和用户指令自动重构出不同算法电路以满足不同故障的检测需求。提出的自适应March算法可以自适应重组出不同复杂程度的算法,从而在算法的时间复杂度和故障覆盖率之间进行动态调整以达到很好的平衡,且静态故障覆盖率高,有效提高动态故障覆盖率。所提出的可重构MBIST电路基于状态机实现,其优势在于内置的不同算法共享绝大部分电路元素,相比拥有同等算法切换功能的电路,节省电路面积。

权利要求 :

1.基于自适应March算法的可重构MBIST方法,其特征在于,

在经典March C+测试算法中顺序读写存储单元测试步骤的首次读操作之后插入n n n

Hammer测试算法的元素{↓(w0,r0 ,r0); ↓(w1,r1 ,r1)},其中,↓(w0,r0 ,r0)表示对存储器n中各存储单元按照地址降序的顺序执行写0、n次读0、读0的操作,↓(w1,r1 ,r1)表示对存储器中各存储单元按照地址降序的顺序执行写1、n次读1、读1的操作,n的设置值根据用户自定义指令配置;

对比PVT参数和故障模型库确定当前PVT参数下的易发故障类型,选择覆盖当前PVT参数下易发故障类型的March算法,生成重构该March算法的算法元素选择信号;

当算法元素选择信号仅选中March C+测试算法的测试元素时,所述可重构MBIST方法依次执行测试步骤{↑↓(w0); ↑(r0,w1,r1); ↑(r1,w0,r0); ↓(r0,w1,r1); ↓(r1,w0,r0); ↑↓(r0)};当算法元素选择信号选中所有测试元素且n的设置值为1时,所述可重构MBIST方法依次执行测试步骤{↑↓(w0); ↑(r0,w0,r0,r0,w1,r1); ↑(r1,w1,r1,r1,w0,r0); ↓(r0,w0,r0,r0,w1,r1); ↓(r1,w1,r1,r1,w0,r0); ↑↓(r0)};当算法元素选择信号选中所有测试元素且n的设置值大于1时,所述可重构MBIST方法依次执行测试步骤{↑↓(w0); ↑(r0,w0,n nr0,r0,w1,r1); ↑(r1,w1,r1,r1,w0,r0); ↓(r0,w0,r0 ,r0,w1,r1); ↓(r1,w1,r1 ,r1,w0,r0); ↑↓(r0)}。

2.基于自适应March算法的可重构MBIST方法,其特征在于,

在经典March C+测试算法中顺序读写存储单元测试步骤的首次读操作之后插入n n n

Hammer测试算法的元素{↑(w0,r0 ,r0); ↑(w1,r1 ,r1)},其中,↑(w0,r0 ,r0)表示对存储器n中各存储单元按照地址升序的顺序执行写0、n次读0、读0的操作,↑(w1,r1 ,r1)表示对存储器中各存储单元按照地址升序的顺序执行写1、n次读1、读1的操作,n的设置值根据用户自定义指令配置;

对比PVT参数和故障模型库确定当前PVT参数下的易发故障类型,选择覆盖当前PVT参数下易发故障类型的March算法,生成重构该March算法的算法元素选择信号;

当算法元素选择信号仅选中March C+测试算法的测试元素时,所述可重构MBIST方法依次执行测试步骤{↑↓(w0); ↑(r0,w1,r1); ↑(r1,w0,r0); ↓(r0,w1,r1); ↓(r1,w0,r0); ↑↓(r0)};当算法元素选择信号选中各测试步骤中的所有测试元素且n的设置值为1时,所述可重构MBIST方法依次执行测试步骤{↑↓(w0); ↑(r0,w0,r0,r0,w1,r1); ↑(r1,w1,r1,r1,w0,r0); ↓(r0,w0,r0,r0,w1,r1); ↓(r1,w1,r1,r1,w0,r0); ↑↓(r0)};当算法元素选择信号选中各测试步骤中的所有测试元素且n的设置值大于1时,所述可重构MBIST方法依次执n n行测试步骤{↑↓(w0); ↑(r0,w0,r0 ,r0,w1,r1); ↑(r1,w1,r1 ,r1,w0,r0); ↓(r0,w0,r0,r0,w1,r1); ↓(r1,w1,r1,r1,w0,r0); ↑↓(r0)}。

3.基于自适应March算法的可重构MBIST方法,其特征在于,

在经典March C+测试算法中顺序读写存储单元测试步骤的首次读操作后插入Hammern n

测试算法的元素{↓(w0,r0 ,r0);↓(w1,r1 ,r1)},并在Hammer测试算法元素前后增加读写操n作,其中,↑↓(w0,r0 ,r0)表示对存储器中各存储单元按照地址升序或降序的顺序执行写0、n

n次读0、读0的操作,↑↓(w1,r1 ,r1)表示对存储器中各存储单元按照地址升序或降序的顺序执行写1、n次读1、读1的操作;

对比PVT参数和故障模型库确定当前PVT参数下的易发故障类型,选择覆盖当前PVT参数下易发故障类型的March算法,生成重构该March算法的算法元素选择信号,n的设置值根据用户自定义指令配置;

当算法元素选择信号仅选中March C+测试算法的测试元素时,所述可重构MBIST方法依次执行测试步骤{↑↓(w0); ↑(r0,w1,r1); ↑(r1,w0,r0); ↓(r0,w1,r1); ↓(r1,w0,r0); ↑↓(r0)};当算法元素选择信号选中所有测试元素且n的设置值为1时,所述可重构MBIST方法依次执行测试步骤{↑↓(w0); ↑(r0,w0,w0,r0,r0,r0,w0,r0,w1,r1);↑(r1,w1,w1,r1,r1,r1,w1,r1,w0,r0); ↓(r0,w0,w0,r0,r0,r0,w0,r0,w1,r1); ↓(r1,w1,w1,r1,r1,r1,w1,r1,w0,r0);↑↓(r0)};当算法元素选择信号选中所有测试元素且n的设置值大于1时,所述可重构MBIST方法依次顺序执行测试步骤{↑↓(w0); ↑(r0,w0,w0,r0,r0,r0,w0,r0,w1,r1); ↑n(r1,w1,w1,r1,r1,r1,w1,r1,w0,r0); ↓(r0,w0,w0,r0 ,r0,r0,w0,r0,w1,r1); ↓(r1,w1,nw1,r1 ,r1,r1,w1,r1,w0,r0);↑↓(r0)}。

4.基于自适应March算法的可重构MBIST方法,其特征在于,

在经典March C+测试算法中顺序读写存储单元测试步骤的首次读操作后插入Hammern n

测试算法的元素{↑(w0,r0 ,r0); ↑(w1,r1 ,r1)},并在Hammer测试算法元素前后增加读写n操作,其中,↑↓(w0,r0 ,r0)表示对存储器中各存储单元按照地址升序或降序的顺序执行写n

0、n次读0、读0的操作,↑↓(w1,r1 ,r1)表示对存储器中各存储单元按照地址升序或降序的顺序执行写1、n次读1、读1的操作;

对比PVT参数和故障模型库确定当前PVT参数下的易发故障类型,选择覆盖当前PVT参数下易发故障类型的March算法,生成重构该March算法的算法元素选择信号,n的设置值根据用户自定义指令配置;

当算法元素选择信号仅选中March C+测试算法的测试元素时,所述可重构MBIST方法依次顺序执行{↑↓(w0); ↑(r0,w1,r1); ↑(r1,w0,r0); ↓(r0,w1,r1); ↓(r1,w0,r0); ↑↓(r0)};当算法元素选择信号选中各测试步骤中所有测试元素且n的设置值为1时,所述可重构MBIST方法依次顺序执行{↑↓(w0);↑(r0,w0,w0,r0,r0,r0,w0,r0,w1,r1);↑(r1,w1,w1,r1,r1,r1,w1,r1,w0,r0); ↓(r0,w0,w0,r0,r0,r0,w0,r0,w1,r1); ↓(r1,w1,w1,r1,r1,r1,w1,r1,w0,r0);↑↓(r0)};当算法元素选择信号选中各测试步骤中所有测试元素且n的设置n值大于1时,所述可重构MBIST方法依次顺序执行{↑↓(w0);↑(r0,w0,w0,r0 ,r0,r0,w0,r0,nw1,r1);↑(r1,w1,w1,r1 ,r1,r1,w1,r1,w0,r0); ↓(r0,w0,w0,r0,r0,r0,w0,r0,w1,r1); ↓(r1,w1,w1,r1,r1,r1,w1,r1,w0,r0);↑↓(r0)}。

5.实现权利要求1所述基于自适应March算法的可重构MBIST方法的电路,其特征在于,包括:

自适应控制模块,采集PVT参数并接收用户自定义指令,生成算法元素选择信号以及配置Hammer测试算法元素中n的设置值的指令;及,MBIST生成模块,接收算法元素选择信号以及配置Hammer测试算法元素中n的设置值的指令,当算法元素选择信号仅选中March C+测试算法的元素时,依次执行测试步骤{↑↓(w0); ↑(r0,w1,r1); ↑(r1,w0,r0); ↓(r0,w1,r1); ↓(r1,w0,r0); ↑↓(r0)},当算法元素选择信号选中所有测试元素且n的设置值为1时,依次执行测试步骤{↑↓(w0); ↑(r0,w0,r0,r0,w1,r1); ↑(r1,w1,r1,r1,w0,r0); ↓(r0,w0,r0,r0,w1,r1); ↓(r1,w1,r1,r1,w0,r0); ↑↓(r0)},当算法元素选择信号选中所有测试元素且n的设置值大于1时,依次执行测试步骤n{↑↓(w0); ↑(r0,w0,r0,r0,w1,r1); ↑(r1,w1,r1,r1,w0,r0); ↓(r0,w0,r0 ,r0,w1,r1); ↓n(r1,w1,r1 ,r1,w0,r0); ↑↓(r0)},读取执行测试算法的存储单元的地址、测试算法为存储单元生成的测试数据以及存储单元执行完测试算法后的实际输出数据,在当前存储单元的实际输出数据与测试算法为当前存储单元生成的测试数据有偏差时,输出检出当前存储单元故障的提示信号以及当前存储单元的地址。

6.根据权利要求5所述实现基于自适应March算法的可重构MBIST方法的电路,其特征在于,所述MBIST生成模块包括:可重构算法状态机,接收算法元素选择信号以及配置Hammer测试算法元素中n的取值的指令,当算法元素选择信号仅选中March C+测试算法的测试元素时,依次执行测试步骤{↑↓(w0); ↑(r0,w1,r1); ↑(r1,w0,r0); ↓(r0,w1,r1); ↓(r1,w0,r0); ↑↓(r0)},当算法元素选择信号选中所有测试元素且n的设置值为1时,依次执行测试步骤{↑↓(w0); ↑(r0,w0,r0,r0,w1,r1); ↑(r1,w1,r1,r1,w0,r0); ↓(r0,w0,r0,r0,w1,r1); ↓(r1,w1,r1,r1,w0,r0); ↑↓(r0)},当算法元素选择信号选中所有测试元素且n的设置值大于1时,依次执行测n试步骤{↑↓(w0); ↑(r0,w0,r0,r0,w1,r1); ↑(r1,w1,r1,r1,w0,r0); ↓(r0,w0,r0 ,r0,w1,nr1); ↓(r1,w1,r1 ,r1,w0,r0); ↑↓(r0)};

数据产生器,生成可重构算法状态机执行测试算法过程中为每个存储单元生成的测试数据;

地址产生器,生成可重构算法状态机执行测试算法过程中测试的存储单元的地址;

控制产生器,生成可重构算法状态机执行测试算法过程中对各存储单元进行读写操作的使能信号;

比较器,读取执行完测试算法的当前存储单元的实际输出数据以及可重构算法状态机执行测试算法过程中为当前存储单元生成的测试数据,在当前存储单元执行完测试算法后的实际输出数据与可重构算法状态机执行测试算法过程中为当前存储单元生成的测试数据有偏差时,输出检出当前存储单元故障的提示信号;及,诊断器,读取执行测试算法的当前存储单元的地址,在接收到检出当前存储单元故障的提示信号时,输出当前存储单元的地址。

说明书 :

基于自适应March算法的可重构MBIST方法

技术领域

[0001] 本发明涉及集成电路可测性设计的技术,尤其公开基于自适应March算法的可重构MBIST方法,属于半导体器件在制造或处理过程中的测试或测量的技术领域。

背景技术

[0002] 存储器作为芯片中最大的模块和最重要的模块之一,它的稳定性和可靠性关乎整个芯片能否正常工作,尤其是在芯片制造工艺越来越先进的今天,存储器对外部环境的变化非常敏感。环境参数的波动是存储器稳定性面临的严峻挑战,最典型的环境参数为PVT(生产工艺、电源电压和温度)。
[0003] 存储器内建自测试(MBIST,Memory Built‑in Self Test)是应用最广泛的存储器测试技术。MBIST电路的核心在于测试算法,选择合适的测试算法对MBIST的测试质量和效率都至关重要。在不同的存储器外部或内部条件下(如温度、电源电压、时钟频率和内部内存时序参数),可能存在不同的缺陷,故障的类型也不同。特别是在深亚微米技术中,电阻开路性缺陷和动态故障的发生频率越来越高,这些缺陷可能导致测试逃逸,给客户带来无法估量的信用和经济损失。然而,目前没有一种测试算法可以同时考虑所有故障模型,以前的测试方案总是将尽可能多的测试序列组合成动态故障检测序列,导致测试时间长。甚至一些March测试算法至少有一个March元素包含五个连续的读取操作,而这并不适用于其它故障的检测,这样做的缺点显而易见,就是敏化故障的操作次数增加,从而使得March测试算法的时间复杂度成比例增加,测试时间成倍增加。此外,目前市面上的MBIST电路的局限性在于,一旦选择和设计了MBIST测试算法,这些测试算法就会被固定植入在硅片中且不能被更改(除非设计一个非常复杂的BIST程序来支持这样的操作)。上述种种问题激发了对新测试算法和专用MBIST控制器电路的需求,以增强故障覆盖率并提高测试效率。
[0004] 现有可重构MBIST技术为提高SRAM测试的故障覆盖率,针对低电压环境下SRAM容易出现的故障类型选择重构算法元素,然后将设计好的重构算法植入硅片形成重构算法电路,重构算法电路和March算法电路组成的BIST电路在外部控制信号的作用选择重构算法电路或March算法电路对SRAM进行测试,在芯片制造前固化的重构算法不能自适应环境参数的波动,仅能测试出低电压环境下SRAM容易出现的故障,对故障覆盖率的提升有限,为了实现重构算法引入BIST的重构算法电路增加了电路面积。
[0005] 综上,现有可重构MBIST技术不可以自适应环境参数波动,覆盖的故障类型有限,需要以增加测试算法时间复杂度和电路面积为代价提高测试效率。本发明旨在提出一种基于自适应March算法的可重构存储器内建自测试方法以克服现有可重构MBIST技术的缺陷。

发明内容

[0006] 本发明的发明目的是针对上述背景技术的不足,提供基于自适应March算法的可重构MBIST方法,自适应环境参数选择March算法元素,实现灵活配置March算法元素、降低算法时间复杂度、提高故障覆盖率的发明目的,解决传统MBIST测试中电路内置算法固定、测试电路灵活性低、故障覆盖率低、测试时间过长、测试电路面积开销大的技术问题。
[0007] 为解决上述技术问题,本发明提供如下技术方案:包括一种新型的自适应March Adapt‑RAWC算法,以及一种基于自适应March算法的可重构MBIST电路。为了覆盖普通算法n难以检测的dRDF故障,提出的新算法引入了多次读操作的Hammer测试算法元素:{↑↓(w0,n n
r0 ,r0); ↑↓(w1,r1 ,r1)},并且在March C+和March RAW算法的基础上做了改进,融合了这三种算法的优势,并且在包含了三种算法元素的基础上加入了一些新的读写元素,使得新算法能够更好地覆盖一些动态故障。此外,自适应算法可以在不同环境或用户指令下调用所需的算法元素,例如在调用March C+算法的读写元素时,算法的整体的时间复杂度很低,当环境处在一些动态故障较易发生、不考虑时间成本或用户指定算法的情况下,可重构电路便会调整算法状态机,重构电路,调取复杂度较高的测试算法元素以检测一些难以检测的动态故障。
[0008] 新型的自适应March Adapt‑RAWC算法包括March Adapt‑RAWC1和March Adapt‑RAWC2。
[0009] March Adapt‑RAWC1算法的具体描述为:
[0010] {↑↓(w0); ↑(r0,w0,r0n,r0,w1,r1); ↑(r1,w1,r1n,r1,w0,r0); ↓(r0,w0,r0,r0,w1,r1); ↓(r1,w1,r1,r1,w0,r0); ↑↓(r0)};
[0011] March Adapt‑RAWC2算法的具体描述为:
[0012] {↑↓(w0); ↑(r0,w0,w0,r0n,r0,r0,w0,r0,w1,r1); ↑(r1,w1,w1,r1n,r1,r1,w1,r1,w0,r0); ↓(r0,w0,w0,r0,r0,r0,w0,r0,w1,r1); ↓(r1,w1,w1,r1,r1,r1,w1,r1,w0,r0);↑↓(r0)}。
[0013] 经典March C+测试算法为:
[0014] {M0:↑↓(w0);M1;↑(r0,w1,r1);M2;↑(r1,w0,r0);M3;↓(r0,w1,r1);M4;↓(r1,w0,r0);M5;↑↓(r0)};其中,M0为初始写操作的测试步骤,M1、M2、M3、M4为顺序读写存储单元的测试步骤,M1、M2为升序读写存储单元的测试步骤,M3、M4为降序读写存储单元的测试步骤,M5为读取测试数据的测试步骤。
[0015] March Adapt‑RAWC1算法是在经典March C+算法的M1、M2、M3、M4测试步骤的首次n n读操作后插入Hammer测试算法的元素{↑(w0,r0 ,r0); ↑(w1,r1 ,r1)},为了降低时间复杂度,M3、M4测试步骤首次读操作后插入的Hammer测试算法元素的重复执行次数n设置为1,即,在M3、M4测试步骤首次读操作后插入{↑(w0,r0,r0); ↑(w1,r1,r1)}。
[0016] March Adapt‑RAWC1算法还可以是在经典March C+算法的M1、M2、M3、M4测试步骤n n的首次读操作后插入Hammer测试算法的元素{↓(w0,r0 ,r0); ↓(w1,r1 ,r1)},为了降低时间复杂度,M1、M2测试步骤首次读操作后插入的Hammer测试算法的元素的重复执行次数n设置为1,即,在M1、M2测试步骤首次读操作后插入{↓(w0,r0,r0); ↓(w1,r1,r1)},March Adapt‑RAWC1算法可以描述为:{↑↓(w0); ↑(r0,w0,r0,r0,w1,r1); ↑(r1,w1,r1,r1,w0,n n
r0); ↓(r0,w0,r0 ,r0,w1,r1); ↓(r1, w1,r1 ,r1,w0,r0); ↑↓(r0)}。本发明通过对比PVT参数和故障模型库得出当前PVT参数下的易发故障类型,选择覆盖当前PVT参数下易发故障类型的March算法,生成重构该March算法的算法元素选择信号,也可以根据用户自定义指令所选择的March算法生成重构该March算法的算法元素选择信号;对于本发明增加的Hammer元素中重复执行读写操作的次数n,根据设置的R_Times配置n的取值。
[0017] March Adapt‑RAWC2则是在经典March C+测试算法中顺序读写存储单元测试步骤n n的首次读操作后插入Hammer测试算法的元素{↑↓(w0,r0 ,r0); ↑↓(w1,r1 ,r1)},并在Hammer测试算法元素前后增加读写操作,即,March Adapt‑RAWC2算法在March Adapt‑RAWC1的基础上额外增添了一些测试元素。在经典March C+测试算法中顺序读写存储单元n n
测试步骤的首次读操作后插入Hammer测试算法的元素{↓(w0,r0 ,r0);↓(w1,r1 ,r1)},并在Hammer测试算法元素前后增加读写操作时,March Adapt‑RAWC2算法可以描述为:{↑↓(w0); ↑(r0,w0,w0,r0,r0,r0,w0,r0,w1,r1); ↑(r1,w1,w1,r1,r1,r1,w1,r1,w0,r0); ↓(r0,w0,n n
w0,r0 ,r0,r0,w0,r0,w1,r1); ↓(r1,w1,w1,r1 ,r1,r1,w1,r1,w0,r0);↑↓(r0)};在经典March C+测试算法中顺序读写存储单元测试步骤的首次读操作后插入Hammer测试算法的n n
元素{↑(w0,r0 ,r0); ↑(w1,r1 ,r1)},并在Hammer测试算法元素前后增加读写操作时,n
March Adapt‑RAWC2算法可以描述为:{↑↓(w0);↑(r0,w0,w0,r0 ,r0,r0,w0,r0,w1,r1);↑n
(r1,w1,w1,r1 ,r1,r1,w1,r1,w0,r0); ↓(r0,w0,w0,r0,r0,r0,w0,r0,w1,r1); ↓(r1,w1,w1,r1,r1,r1,w1,r1,w0,r0);↑↓(r0)}。March Adapt‑RAWC2算法选中Hammer测试元素时所执行的测试算法为融合了Hammer nR测试算法元素的改进型March RAW测试算法,融合了Hammer nR测试算法元素的改进型March RAW测试算法在顺序读写存储单元的测试步骤进行两次连续写操作和至少三次连续读操作,可以检测到经典的March RAW算法无法检测的n
dRDF 、dCFdsww,并且提升了对dDRDF、dWDF、dCFdrd、dCFwd故障的覆盖率,故障覆盖率大于March Adapt‑RAWC1。由于March Adapt‑RAWC2算法元素过多,具体展开介绍则篇幅冗余,考虑到March Adapt‑RAWC2的基本算法元素结构和March Adapt‑RAWC1类似,因此在本发明介绍中,主要以March Adapt‑RAWC1为例展开算法功能的描述,而本发明的实施效果则以March Adapt‑RAWC2的测试结果来计算。关于March Adapt‑RAWC1和March Adapt‑RAWC2功能的区别主要体现在,对于dDRDF、dWDF、dCFdsww、dCFdrd、dCFwd等动态故障,March Adapt‑RAWC2由于新增的读写元素,因此能够更全面地覆盖。
[0018] 本发明还公开一种全新的March算法的描述方法,在保留了经典的存储器测试算法符号的基础上,创新性地通过加粗的方式描述固定执行的算法元素,通过在读元素右上角所加的字母“n”表示用户可配置的读写次数,以这种表示方式来突出Hammer测试元素中重复读操作的次数n可配置,从而可以满足特殊情况下,针对性地对动态读干扰故障进行检测的需求,又不会影响一般测试情况下整体算法的运行时间。
[0019] 需要特别说明的是,其中加粗的测试元素为经典的March C+算法的元素,其余的元素是可选的。当算法元素选择信号仅选中各测试步骤中加粗表示的测试元素时,March Adapt‑RAWC1算法为经典March C+测试算法;当算法元素选择信号选中全部加粗的元素以n及未加粗的元素且n的设置值大于1时,则r0 元素单独构成Hammer nR测试算法元素(“nR”表示进行n次读操作),March Adapt‑RAWC1算法为融合了Hammer nR测试算法元素的March n
RAW测试算法,能够更好的覆盖动态故障dRDF ;当算法元素选择信号选中全部加粗的元素以及未加粗的元素且n设置为1时,March Adapt‑RAWC1和经典的March RAW测试算法元素相同。算法具体描述中加粗的算法元素为不同算法之间共享的测试元素,体现在可重构状态机中则为可复用的测试状态,正是因为测试算法元素的复用和共享,节省了可重构MBIST电路的面积。
[0020] 当算法元素选择信号仅选中各测试步骤中加粗表示的测试元素时,March Adapt‑RAWC2为经典March C+测试算法;当算法元素选择信号选中全部加粗的元素以及未加粗的元素且n的设置值为1时,March Adapt‑RAWC2为覆盖动态读写故障dDRDF、dWDF、dCFdsww、ndCFdrd、dCFwd的改进型March RAW测试算法,而经典March RAW测试算法不能覆盖dRDF 、dCFdsww且对dDRDF、dWDF、dCFdrd、dCFwd这一类动态故障覆盖不全面;当算法元素选择信号选中全部加粗的元素以及未加粗的元素且n的设置值大于1时,March Adapt‑RAWC2为融合了Hammer nR测试算法元素的改进型March RAW测试算法,由于在顺序读写存储单元测试步骤首次写操作之后增加了一次同样的写操作,并对首次写的信息进行至少三次的连续读操作,能够很好地覆盖dRDFn这一类动态故障。
[0021] 本发明公开的可重构MBIST电路的结构:整体电路由MBIST生成模块、自适应控制模块构成,自适应控制模块内部包含自适应控制器和指令寄存器,电路的特色在于自适应控制器根据输入的外部环境参数与故障模型库的比对结果和用户自定义指令生成算法元素选择信号switch_alg,指令寄存器根据用户自定义指令得到设置n的取值的R_times信号,用来控制MBIST生成模块内部的可重构算法状态机,从而在电路层面实现自适应地根据外部环境选择当前环境下最适宜的算法元素,使得测试效率最高。也可以根据用户自定义选择的March算法生成算法元素选择信号switch_alg以及R_times。
[0022] 其中,R_times信号用来定义内部可重构算法状态机的读写功能的跳转次数“n”,由用户直接控制内部Hammer算法测试元素的读写次数,从而可以满足特殊情况下针对性地对动态读干扰故障进行检测的需求,又不会影响一般测试情况下整体算法的运行时间。这是因为考虑到动态读干扰故障的检测往往需要对每个存储单元连续进行多次的读写操作,而这对其它故障的检测并不适用,还会使得整体的测试时间成倍增加。因此,本发明提出的可重构存储器内建自测试方法提供对算法元素里读写次数进行用户自定义设置的操作以满足测试时间成本的预期。
[0023] MBIST生成模块包括:可重构算法状态机、数据产生器、地址产生器、控制产生器、比较器、诊断器。MBIST生成模块执行March Adapt‑RAWC1算法时,可重构算法状态机接收算法元素选择信号以及设置Hammer测试算法元素中n的取值的指令,根据算法元素选择信号switch_alg以及设置Hammer测试算法元素中n的取值的指令R_times,执行经典March C+测试算法或经典March RAW测试算法或融合了Hammer nR测试算法元素的March RAW测试算法;数据产生器生成可重构算法状态机执行测试算法过程中为每个存储单元生成的测试数据;地址产生器生成可重构算法状态机执行测试算法过程中测试的存储单元的地址;控制产生器生成可重构算法状态机执行测试算法过程中对各存储单元进行读写操作的使能信号;比较器读取执行完测试算法的当前存储单元的实际输出数据以及可重构算法状态机执行测试算法过程中为当前存储单元生成的测试数据,在当前存储单元执行完测试算法后的实际输出数据与可重构算法状态机执行测试算法过程中为当前存储单元生成的测试数据有偏差时,输出检出当前存储单元故障的提示信号;诊断器读取执行测试算法的当前存储单元的地址,在接收到检出当前存储单元故障的提示信号时,输出当前存储单元的地址。
[0024] 根据上述算法的具体描述可以算出March Adapt‑RAWC的时间复杂度,当只运行加粗的算法元素时复杂度仅为14N,当运行所有元素时,March Adapt‑RAWC1和March Adapt‑RAWC2的复杂度分别为24N+2nN (0
[0025] 关于可重构算法状态机,以本发明公开的March Adapt‑RAWC1算法的状态机为例,该状态机由20个状态构成,分为初始状态IDLE、结束状态DONE、以及18个读写状态构成,而这18个状态的跳转规则会受逻辑电路中的自适应控制器和指令寄存器的控制。自适应控制器则会反映当前的环境信息,包括PVT参数,然后将获取的环境参数与故障模型库进行比对,通过输出对应的控制信号switch_alg和R_times来自动调配算法元素状态机,即形成自适应算法。状态机的可调配性体现在电路上,不同的算法共用同一个MBIST电路,该MBIST在不同环境参数下重构出不同的算法路径,即完成MBIST算法电路的可重构。
[0026] 本发明采用上述技术方案,具有以下有益效果:
[0027] (1)本发明提出的自适应March算法——Adapt‑RAWC可以根据外部环境或用户指令自动重构不同算法满足不同的检测需求,通过自适应地切换算法元素,在时间复杂度和故障覆盖率之间动态调整,达到良好的平衡;此外,该算法具有较高的故障覆盖率,对所列n举的静态故障覆盖率达100%,可检测经典March RAW算法无法检测到的dRDF、dCFdsww等动态故障,动态故障覆盖率提升31.3%。
[0028] (2)本发明所提出的可重构MBIST电路基于算法元素可配置的状态机实现,根据外部环境参数或用户自定义指令生成的控制信号控制状态机,在电路层面实现自适应地根据外部环境选择当前环境下最适宜的算法元素,使得测试效率最高,另一个优点是不同的内置算法共享一个状态机电路的大部分电路元件,与具有相同算法功能的电路相比,节省了58%的电路面积。

附图说明

[0029] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0030] 图1为March Adapt‑RAWC1算法的执行流程图。
[0031] 图2为March Adapt‑RAWC1算法的状态转移图。
[0032] 图3为可重构MBIST电路的结构图。
[0033] 图4为故障注入位置的示意图。
[0034] 图5为dRDF4故障的数模混合仿真局部波形图。
[0035] 图6为March C+对dRDF4故障检测的算法功能仿真波形图。
[0036] 图7为March RAW对dRDF4故障检测的算法功能仿真波形图。
[0037] 图8为March Adapt‑RAWC1算法对dRDF4故障检测的算法功能仿真波形图。

具体实施方式

[0038] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其它实施例,都应当属于本发明的保护的范围。
[0039] 自适应March算法
[0040] 提出的自适应March算法——March Adapt‑RAWC,包括March Adapt‑RAWC1和March Adapt‑RAWC2两种算法,以March Adapt‑RAWC1为例,March Adapt‑RAWC1算法的流程图如图1所示,包括以下步骤:
[0041] 步骤1,执行测试步骤M1:↑↓(w0),以任意地址升序或降序,对所有存储单元进行写0操作,判断当前地址是否为最后一个地址,若不为最后一个地址,则地址加一或减一,重复写0操作。当最后一个地址执行完写0操作后,跳转至下一算法元素;
[0042] 步骤2,执行测试步骤M2:↑(r0,w0,r0n,r0,w1,r1),以地址升序,对存储器的每一个地址先进行读0操作,判断switch_alg信号是否为1,若为1,则依次执行:写0,n次读0(n的默认值为1),读0,写1,读1操作,若switch_alg为0,则依次执行写1,读1操作,然后判断当前地址是否为最高地址,若不为最高地址,地址加一,并重复执行上述算法步骤2的操作元素,当判断为最高地址时,则跳转至算法步骤3;
[0043] 步骤3,执行测试步骤M3:↑(r1,w1,r1n,r1,w0,r0),以地址升序,对存储器的每一个地址先进行读1操作,判断switch_alg信号是否为1,若为1,则依次执行写1,n次读1(n的默认值为1),读1,写0,读0操作,若switch_alg为0,则依次执行写0,读0操作,然后判断当前地址是否为最高地址,若不为最高地址,地址加一,并重复执行上述算法步骤3的操作元素,当判断为最高地址时,则跳转至算法步骤4;
[0044] 步骤4,执行测试步骤M4:↓(r0,w0,r0,r0,w1,r1),以地址降序,对存储器的每一个地址先进行读0操作,判断switch_alg信号是否为1,若为1,则依次执行写0,读0,读0,写1,读1操作,若switch_alg为0,则依次执行写1,读1操作,然后判断当前地址是否为最低地址,若不为最低地址,地址减一,并重复执行上述算法步骤4的操作元素,当判断为最低地址时,则跳转至算法步骤5;
[0045] 步骤5,执行测试步骤M5:↓(r1,w1,r1,r1,w0,r0),以地址降序,对存储器的每一个地址先进行读1操作,判断switch_alg信号是否为1,若为1,则依次执行写1,读1,读1,写0,读0操作,若switch_alg为0,则依次执行写0,读0操作,然后判断当前地址是否为最低地址,若不为最低地址,地址减一,并重复执行上述算法步骤5的操作元素,当判断为最低地址时,则跳转至算法步骤6;
[0046] 步骤6,执行测试步骤M6:↑↓(r0),以任意地址升序或降序,对所有存储单元进行读0操作,当最后一个地址执行完读0操作后,结束测试。
[0047] 其中,每次读操作,比较器都会将从存储器数据输出端读出的数据(实际数据)与之前在当前地址下存入存储器的数据(预期数据)进行比较,若两个数据之间有偏差,则拉高Test_Fail信号以提示检测出故障,并对当前故障进行诊断,并将故障地址通过Fail_ADR输出。
[0048] 公开的March Adapt‑RAWC2算法的结构March Adapt‑RAWC1的算法执行步骤类似,不展开叙述。
[0049] March Adapt‑RAWC算法功能基于有限状态机实现,再以March Adapt‑RAW1为例,状态转移图见图2。算法的初始状态为IDLE状态,MBIST电路运行之前和结束都会在该状态下循环等待指令,结束状态为DONE状态,该状态表示执行完自适应算法的所有元素后的状态,在该状态下会输出测试结束信号tst_done以及测试结果Test_Fail信号。如果输出的Test_Fail为1,则表示所测的存储器存在故障,并同时进行诊断,输出故障所在地址Fail_ADR,若Test_Fail为0,则表示未测出该存储器故障。图2中其余的灰色实线框状态元素和虚线框阴影标记的状态元素都表示为对存储器的读或写操作。M0:↑↓(w0)表示对存储器进行升序或者降序(仿真中本算法选择升序)写0操作,每进行一次写0操作后,地址加一,当最后n一个地址进行写0操作后,执行M1的操作{r0w1r1}或{r0w0r0r0w1r1},每当进行到算法元素的最后一个操作时,会进行一次判断,判断当前是否为最后地址,若为最后地址,则跳入下一个状态,若不为最后一个则地址对地址进行加一或者减一操作,然后跳回该算法元素的第一个操作,以此类推。图2中算法元素M1和M2的R0操作下面的“repeat n‑1 times”意味着在w0和w1之后默认会进行一次读操作,之后重复读0和读1的次数会根据设定的R_Times信号值自动减1,adapt_cnt表示重复读0或读1一次计数1直至重复次数为n‑1。自适应算法执行的关键和独特之处,在于能够根据外部的PVT环境参数来进行算法元素的选择,不同的选择结果所执行的测试算法也就不同,对故障的覆盖能力不同,最后的测试时间也就不尽相同。具体来说,从图2中可以看出,读写操作分别由实线框灰色背景元素和虚线框阴影背景元素表示,状态跳转的方向由实线箭头和虚线箭头来区分。实线框灰色背景的操作状态是可以被选择的,该元素上箭头则指向了另一种算法路径,可以看出,无论是实线箭头所指向的算法路径还是虚线箭头指向的算法路径,都包含了公共的状态元素,这也是本发明提出MBIST电路共享绝大部分电路元素实现两种算法的特点。而传统的MBIST电路若想要实现多种算法的功能,必须设计多个算法状态机才能实现,这样会浪费多余的电路面积。
[0050] 可重构MBIST电路
[0051] 本发明公开的可重构MBIST电路结构如图3所示。整体电路由MBIST生成模块、自适应控制器构成,电路主体MBIST生成模块由可重构算法状态机、数据产生器、地址产生器、控制产生器、比较器、诊断器构成。SRAM Collar由功能/测试信号选择器和SRAM构成,功能/测试信号选择器主要用于切换当前SRAM的工作模式,当Test_Mode为高电平时,进入测试模式,SRAM的地址、数据、片选、写使能等信号由MBIST生成模块提供,若Test_Mode拉低,SRAM进入功能模式,SRAM的地址、数据、片选、写使能等信号由逻辑电路提供。
[0052] MBIST生成模块中的地址产生器和数据产生器用于生成状态机重构算法执行过程中测试的存储单元地址及测试数据,控制产生器模块用于生成SRAM的读写使能信号。SRAM在接收到读写使能信号时根据地址产生器产生的地址以及数据产生器产生的测试数据进行读写操作,SRAM的时钟信号与MBIST同步。MBIST生成模块中的数据产生器、地址产生器、控制产生器均受可重构算法状态机控制,该状态机由20个状态构成,分为初始状态IDLE、结束状态DONE、以及18个读写状态构成,而这18个状态的跳转规则会受自适应控制模块中的自适应控制器输出的算法元素选择信号switch_alg的控制。自适应控制器则会反映当前的环境信息,包括PVT参数,然后将获取的环境参数与故障模型库进行比对,通过输出对应的算法元素选择信号switch_alg控制信号来自动调配算法元素状态机,即形成自适应算法,状态机的可调配性体现在电路上,不同的算法共用同一个MBIST电路,该MBIST在不同环境参数下重构出不同的算法路径,即完成MBIST算法电路的可重构。用最适合的算法产生读写信号从而检测出当前最容易出现的故障,效率更高。在控制产生器输出读使能信号时,比较器将从SRAM存储单元里读取的数据和预期的测试数据进行比对,若读出的数据和预期的测试数据不一致,则Test_Fail信号拉高,用以提示用户该SRAM存在故障。诊断器则用于实时读取测试过程中被测SRAM的地址,在比较器输出当前SRAM故障的Test_Fail时,通过Fail_ADR输出当前SRAM的地址。
[0053] 如图3所示,可重构算法状态机中的自适应算法由10个算法元素构成,不同算法元素的序号表示了初步的执行顺序。算法元素1:↑↓(w0)、算法元素2:↑(r0,w1,r1)、算法元素4:↑(r1,w0,r0)、算法元素6:↓(r0,w1,r1)、算法元素8:↓(r1,w0,r0)、算法元素10:↑↓(r0)为n
共享的算法元素,重构出的不同测试算法共用这些算法元素;算法元素3: ↑(w0,w0,r0 ,n
r0,r0,w0,r0)、算法元素5: ↑(w1,w1,r1 ,r1,r1,w1,r1)、算法元素7: ↓(w0,w0,r0,r0,r0,w0,r0)、算法元素9: ↓(w1,w1,r1,r1,r1,w1,r1)是可选择算法元素,用于构成复杂度较高的测试算法。
[0054] 自适应March算法的故障覆盖率推导
[0055] 表1:常见March算法及自适应March算法的具体描述与时间复杂度
[0056]
[0057] 表1列出了常见March算法及本发明公开的自适应March算法的算法具体描述与算法时间复杂度,本发明针对不同需求提出March Adapt‑RAWC1, March Adapt‑RAWC2,复杂度和故障覆盖率依次提升,均包含自适应算法切换的功能。March Adapt‑RAWC1在March nRAW基础上增加了Hammer 测试元素,对dRDF的故障有良好的检测,n为对同一存储单元地址连续进行读操作的次数,该次数的值受自适应控制器模块的R_Times引脚控制,可根据用户需求配置。March Adapt‑RAWC2为自适应March算法的故障覆盖率加强版本,文中出现的故障覆盖率的计算与电路仿真均默认基于March Adapt‑RAWC2,March Adapt‑RAWC1因状态相对较少用于状态图和算法流程图的展示。
[0058] 表1中,提出的March Adapt‑RAWC算法的具体描述加粗的部分为March C+算法元n素,其余的元素是可选的。当n的设置值大于1时,则r0 元素单独构成Hammer nR测试算法(“nR”表示进行n次读操作);当全部加粗元素和全部未加粗的元素被选中且n设置为1时,March Adapt‑RAWC1和经典的March RAW测试算法相同。通过状态机的跳转对未加粗的算法元素进行选择,通过自适应控制器模块的R_Times信号来控制Hammer测试算法元素中重复读写的次数,当R_Times值为默认值1时,则不运行多次读操作的Hammer测试算法元素,当R_Times值为n则额外重复进行n‑1次读操作。根据表1中的算法具体描述可以算出时间复杂度,当只运行加粗的算法元素时复杂度为14N,当运行所有元素时,March Adapt‑RAWC1和March Adapt‑RAWC2的复杂度分别为24N+2nN (0操作后面增加了w0,r0 操作,然后在w1前面增加了w0,r0操作,后面的M2,M3,M4类似,提出的自适应算法的测试元素具有对称性,例如:M1和M3;M2和M4对应的算法元素相同,但是执行地址的顺序不同。对称性的实现方式是为了更全面得检测到耦合故障类型。因为耦合故障包含不止一个存储单元的故障,而是因存储单元之间的相互影响导致多个存储单元故障。高地址的存储单元可能会对低地址的存储单元产生影响,反过来也成立,因此相同的算法元素需要有升序和降序两种不同的执行顺序来更全面地检测存储单元故障。
[0059] 自适应March算法对静态故障的检测
[0060] 为了方便读者理解自适应March算法的故障覆盖率的推导过程,本实施例简单介绍故障原语的概念。故障原语(FP)表示在一组执行的操作下,预期的(无故障的)和观察到的(有故障的)存储行为之间的偏差,用FP=表示。S表示存储单元被施加的敏化操作,FB表示被S敏化的错误行为。耦合故障的故障原语用逗号分隔左侧的施害单元和右侧的受害单元,受害单元为发生故障的存储单元,施害单元为诱发受害单元发生故障行为的存储单元。存储器功能故障模型(FFM:Functional memory Fault Model)由一组非空的FPs组成。
[0061] 表2 不同March算法的静态故障覆盖率
[0062]
[0063] 通过故障原语的推导可以发现,March C+算法对于静态故障的检测并不能覆盖到WDF,CFsxwx,以及CFwd等故障,而March RAW算法和本发明提出的改进算法March Adapt‑RAWC算法可以很好地检测到。用故障原语来验证这一结论,WDF的故障原语为:<0w0/↑/‑>,<1w1/↓/‑>,敏化操作为写一个与当前存储单元内存储的相同的值,而March C+算法没有这个敏化操作,CFsxwx为写干扰状态耦合故障,CFwd为写破坏耦合故障,均与WDF类似,需写入当前状态相同的值,而March C+缺少相关读写元素,因此测不到此类故障。通过故障原语推导,不同算法对于其它类型的静态故障的检测情况详见表2。
[0064] 自适应March算法对动态故障的检测
[0065] 对于dDRDF,dWDF,dCFdsww,dCFdrd,dCFwd等动态故障,与March RAW相比,本发明提出的March Adapt‑RAWC算法能够更加全面地覆盖这类故障,动态故障覆盖率达到80.9%,相比March RAW提升了31.3%。以dDRDF故障为例,该故障的故障原语为:,<~ ~xRxRx/ x/x>,x,y取值为0,1。由故障原语可知,想要敏化此类故障,必须要在写操作或者读~
操作的基础上紧接着进行一次读操作,此时读出来的数据与实际的值相反,而实际的值已经发生了跳变,因此,需要额外再进行一次读操作,对四种情况的,March ~ ~
RAW可以很好地覆盖,但是对于2种情况的,March RAW的M1,M2,M3,M4虽然有~
连续两次的读操作,但是仍缺少了一次读操作,导致不能检测到该类故障,本发明提出的算法M1,M2,M3,M4均有至少连续三次的读操作,因此可以有效检测到该类故障。
[0066] 作为动态干扰耦合故障(Dynamic Disturb Coupling Faults,dCFds)的子类, dCFdsww 的故障原语有16种情况,敏化操作为在写操作后紧接着再进行一次写操作。对应的故障原语为,x, t, z取值为0,1。从故障原语可以看出,要想敏化此类故~障,使受害单元的存储值翻转,就必须要对施害单元连续进行两次写操作,且前一次写入的值必须与当前状态的值相同。
[0067] 表1中列举的其它算法都不满足敏化的条件,均没有包含连续的写操作或第一次写入的值不与当前值相同。而提出的March Adapt‑RAWC算法在M1,M2中均在第一次写入操作后加入了相同的写操作,然后紧跟一个读操作,从而可以测出该故障。M3,M4具有对称性,因此整个算法可以对不论是升序还是降序的耦合类型均有一定的覆盖。对于其它故障的算法覆盖情况详见表3。
[0068] 表3 不同March算法的动态故障覆盖率
[0069]
[0070] 4.本发明有益效果的验证
[0071] a)故障注入:
[0072] 故障注入在存储器测试领域,是分析和模拟当存储器芯片存在缺陷时会表现出什么故障行为以及验证测试算法有效性的一种技术。通过注入功能故障模型(Functional Fault Models)来模拟实际物理缺陷,然后通过软件仿真,记录不同故障所导致的结果偏差来计算和验证算法的故障覆盖率。
[0073] 在本发明中,故障注入技术的应用对象为SRAM单bit存储单元晶体管间的互连节点,应用方法为在不同电压和温度下,对上述节点间与连线间注入电阻,在连线间插入的电阻为短路电阻,在两个节点间插入的电阻称之为短路电阻,如图4所示。具体的操作方法是更改SRAM的cdl网表中的标准单元描述,用spice语言描述故障的插入位置和故障阻值大小,并调整PVT参数,重复进行多次实验。FineSim软件则用于观察存储器电路节点和输出的仿真波形。
[0074] 相关的故障注入仿真结果汇总为表4。表中列举了不同晶体管节点的故障注入位置和对应形成的故障模型。故障模型名称中的阿拉伯数字用于表征在同一地址的存储单元下连续进行读操作的次数。此故障注入的实验研究为后面的仿真验证提供支撑。
[0075] 表4 故障注入的结果统计
[0076]
[0077] b)数模混合仿真验证
[0078] 本次数模混合仿真的实验环境为VCS+FineSim。以dRDF4故障仿真为例,数模混合4 n
仿真的局部波形如图5所示,dRDF是dRDF当n=4时的情况,属于动态读干扰故障中的一种,即在同一地址下对某个单元执行写操作后马上执行4次连续的读操作,然后该单元的存储值节点上的值会发生翻转,使得读出错误的逻辑值。在本次仿真中,我们在addr[1]的存储地址内注入了该故障,注入故障导致存储节点“rt”的电压波动。用提出的自适应March算法连续读出了错误的逻辑值,Test_Fail信号拉高,表示检测出了该故障,而March C+、March RAW等对比算法没有连续4次读操作,因此无法敏化此类故障。
[0079] 此外,我们还对几种不同的算法进行了功能仿真,选择March C+作为静态故障检测算法的代表,March RAW作为动态故障检测算法的代表。经过功能仿真后,就可以从具体的读写操作来解释算法是如何检测到某一类故障的。图6和图7分别展示了March C+和4
March RAW算法对dRDF故障的完整仿真过程。图中标注的Test_Fail信号是算法是否检测到故障的标志。从图中可以看出,Test_Fail信号始终为低电平,因此两种对比算法都无法
4
检测到故障。图8为本发明公开的March Adapt‑RAWC对dRDF 的功能仿真波形图,清晰地展示了算法中M0和M1元素的具体读写过程。自适应控制模块中的R_Times的值设置为4,即在同一地址上执行第一个写操作后紧跟着执行四个连续读操作。从图中可以看出,M1元素第四次读操作后,Fail_flag变高,表示已经检测到故障。
[0080] 不同算法对其它各种故障类型的检测结果与FP得出的结果一致(见表2和表3)。从表中可以看出,所提出的March Adapt‑RAWC算法对列出的静态故障类型的覆盖率为100%,对列出的动态故障的覆盖率为80.9%。对于一些特殊的动态故障,特别是March RAW无法检测到但March Adapt‑RAWC可以检测到的故障,检测结果在表中以粗体标出。可以看出,公开的自适应March算法有效地提高了故障覆盖率。
[0081] 流片验证
[0082] 使用verilog HDL语言编写完可重构MBIST电路的代码部分,然后用vcs和verdi进行功能仿真,功能确认无误后,用DC工具进行综合,综合后的报告显示,面积方面,包含2
March C+、 Hammer、和March RAW算法的BIST电路面积为543.48μm ,提出的March Adapt‑
2
RAWC+面积为228.45μm ,面积减少了58%,节省了电路资源,并且加强了前者电路资源的利用率,扩展了测试的功能,测试时间复杂度可动态调整。
[0083] 表5 不同MBIST电路的面积统计
[0084]
[0085] 为了实际验证提出的可重构MBIST电路的功能以及自适应算法的有效性,本发明将设计的电路经过了TSMC40nm工艺的流片,芯片的测试结果验证了可重构MBIST电路的正确性和自适应March算法的有效性。