适用于随机存储器自动测试的高速电路结构及其测试方法与流程

文档序号:14304095阅读:716来源:国知局
适用于随机存储器自动测试的高速电路结构及其测试方法与流程

本发明涉及存储器测试技术领域,特别是涉及一种适用于随机存储器自动测试的高速电路结构及其测试方法。



背景技术:

soc(system-on-a-chip,片上系统)芯片中各类存储器的可测性设计是一项关键设计工作,实现该功能的自测试电路是现代soc芯片的重要组成,对降低测试成本、提高对存储器失效问题的分析能力起着关键作用。对于不同的存储器类型或不同测试需求,自测试电路会采用不同的测试算法,常用的算法为march算法,march算法又根据对存储器操作处理次数的不同,可分为4n、15n、22n等。通过不同的march算法可以识别出存储器存在的不同种类的存储器缺陷种类,从而可确定具体的工艺失效原因。在大多数应用中,选用march4n(all0/all1和ckbd/ickbd)、15n和22n作为存储器的测试算法,能够将常见的工艺缺陷筛查出来,从而提高芯片产品可靠性。

目前,存储器可测性设计的一般过程如下:首先根据存储器的类型、结构、容量、位宽等信息,确定所需评价的生产过程中的失效类型,从而确定需要使用的测试算法种类,通过电路实现,集成为一个独立的测试电路。同时,随着芯片性能提高,存储器读写速度评价也是对自测试电路提出的要求。一般存储器自测试电路(mbist)通过存储器使能信号en、读写控制信号we、地址信号adr[wa-1:0]、数据信号d[wd-1:0](输入)和数据信号q[wd-1:0](输出)与待测存储器dut进行连接,如图1所示。然而,常规可测性设计的缺点为:定制设计的测试算法开发周期长、验证量大、成本高;测试电路固化测试激励,无法根据遇到的问题,来及时更换测试向量,从而无法判断出预期以外的可能的失效原因;通过模块扩展,令测试电路庞大,对芯片成本造成影响。因此,需要一种兼容多种向量测试和性能评价的自测试电路。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种适用于随机存储器自动测试的高速电路结构及其测试方法,通过配置实现march算法,可实现对存储器的连续性测试和可配置自动化测试,增强了自测试的灵活性,可根据调整测试方案,判断存储器存在的各类工艺缺陷。

为达上述及其它目的,本发明提出一种适用于随机存储器自动测试的高速电路结构,包括:

锁相环单元,用于产生内部时钟;

时钟产生单元,用于将所述锁相环单元产生的内部时钟转换为内部的操作时钟和数据抓取时钟;

状态机控制单元,用于内部状态机控制,以及将外部指令转换为内部的操作时序,产生内部控制信号控制外部通信和配置信息,并传输相关信息给内部单元;

流水线驱动单元,用于根据外部指令要求,实现对数据信号产生单元、地址信号产生单元、控制信号产生单元、输出数据处理单元的操作流水线控制;

控制信号产生单元,用于配置存储器的使能信号en及读写控制信号we;

地址信号产生单元,用于产生对存储器操作的地址信号adr[wa-1:0],并传输给存储器;

数据结果处理单元,用于产生写入存储器的数据d[wd-1:0];

输出数据处理单元,用于比对存储器的输出数据q[wd-1:0]和写入数据d[wd-1:0],从而提供结果比对参考信息;

结果记录单元,用于记录所述输出数据处理单元的比对结果并提供给片外。

进一步地,所述状态机控制单元根据使能信号ce和配置信号conf产生内部控制信号控制外部通信和配置信息,于空闲状态idle、测试状态run以及反馈状态resp之间进行切换。

进一步地,当接收到使能信号ce=1时,所述状态机控制单元控制状态机从空闲状态idle切换到测试状态run,系统根据配置信号conf,内部自动对存储器发出测试激励并比对存储器输出结果,当测试结束时,所述状态机控制单元控制状态机切换到反馈状态resp,向外部反馈测试结果;在测试状态run和反馈状态resp时,当使能信号ce撤销时,反馈信号撤销,状态机恢复初始idle状态。

进一步地,测试完成后,在反馈状态resp时,当配置信号conf为0时,若所述结果记录单元输出的反馈信号fbk为0,则工作正常,否则出错。

进一步地,通过配置信号conf=4/5/6/7,通过不同的march算法进行测试,根据结果记录单元输出的反馈信号fbk查看每个测试项目的出错数目。

进一步地,所述流水线驱动单元采用流水线方式对存储器进行读写及结果比较。

进一步地,所述流水线方式对存储器的操作可分为操作数产生阶段、存储器操作以及读出结果比较三个阶段。

进一步地,所述操作数产生采用3级流水线方式设计,所述存储器操作使用1个周期完成,所述读出结果比较采用3级流水设计。

进一步地,所述流水线驱动单元遵循以下步骤,控制其他模块:

(1)将内部寄存器im和iop进行初始化;

(2)判断md[im]值是否为1,若为1,则令地址模块将地址初始化为全0,否则设置为全1;

(3)判断op[im][iop]的数据:

在md[im]=1时,当op[im][iop][0]为1,则控制信号产生单元令写使能信号we置1,否则置0;

在md[im]=0时,当棋盘格标志位mck为0时,为标准march算法,如果op[im][iop][1]为1,则数据控制模块将d置位全1,否则置位全0;当棋盘格标志位mck为1时,则将地址区分为子线地址badr和位线地址wadr,结合内部子线结合位线组合操作,如果op[im][iop][1]为1,则badr[0]与wadr[0]相等时,数据d置位为1,否则置位为0;如果op[im][iop][1]为0,则badr[0]与wadr[0]相等时,数据d置位为0,否则置位为1;

(4)时钟产生单元产生存储器操作时钟信号;

(5)判断md[im]值后,判断地址是否为全0或全1,如未达到,则对地址进行减少或增加1,并继续第(3)(4)步;

(6)如果地址达到全0或全1,则判断iop是否仍小于opc[im],如果小于,则iop自增1,并重复(2)~(5)步;

(7)如果iop等于opc[im],说明当前march操作已经完成,则判断im是否小于mc,如果小于,则im自增1,重复(2)~(6),继续下一个march计算;

(8)如果im等于mc,则说明march算法已经全部完成,则退出当前测试。

为达到上述目的,本发明还提供一种适用于随机存储器自动测试的高速电路结构的测试方法,包括如下步骤:

步骤一,利用状态机控制单元进行内部状态机控制,将外部指令转换为内部的操作时序,产生内部控制信号控制外部通信和配置信息,并传输相关信息给内部单元;

步骤二,由流水线驱动单元根据外部指令要求,实现对数据信号产生单元、地址信号产生单元、控制信号产生单元、输出数据处理单元的操作流水线控制;

步骤三,由数据信号产生单元、地址信号产生单元、控制信号产生单元、输出数据处理单元在状态机控制单元以及流水线驱动单元的控制下实现存储器的自动测试,并通过结果记录单元输出测试结果。

与现有技术相比,本发明一种适用于随机存储器自动测试的高速电路结构及其测试方法,通过配置实现march算法,可实现对存储器的连续性测试和可配置自动化测试,增强了自测试的灵活性,可根据调整测试方案,判断存储器存在的各类工艺缺陷。

附图说明

图1为现有技术之自测试电路连接图;

图2为本发明一种适用于随机存储器自动测试的高速电路结构的电路结构图;

图3为本发明具体实施例中状态机控制单元的状态切换示意图;

图4为本发明具体实施例中内部控制逻辑示意图;

图5为本发明具体实施例中存储器操作流水线设计示意图;

图6为本发明具体实施例中操作数产生流水线示意图;

图7为本发明具体实施例中操作数产生逻辑图;

图8为本发明一种适用于随机存储器自动测试的高速电路结构的测试方法的步骤流程图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

在介绍本发明之前,对本发明中采用的march算法常用表示方法进行说明:march算法的基本元素称为march元素(以下简称me),是对存储器所有存储单元的一次遍历。根据对地址的遍历方向,每个me可分为对地址的正向遍历、逆向遍历以及任意方向遍历三种,其中任意方向可看做对该me元素任意选择正向或逆向地址遍历。对每个地址,每个me的操作包括对单个地址的一系列操作(以下简称op),通常可称为写0、读0、写1、读1(以下标记为w0、r0、w1、r1)。march算法的标记方法如下:算法被大括号{…}包含,每个me使用逗号间隔,me元素用↑(…)的形式表示,其中↑代表寻址顺序,它包括↑(正向遍历)、↓(逆向遍历)和(任意方向遍历),小括号(…)内为一系列op的组合操作,包括w0(写0)、w1(写1)、r0(读0)和r1(读1)。

图2为本发明一种适用于随机存储器自动测试的高速电路结构的电路结构图。如图2所示,本发明一种适用于随机存储器自动测试的高速电路结构,包括:锁相环单元(pll)10、时钟产生单元(ckg)20、状态机控制单元(fsm)30、流水线驱动单元(pd)40、数据信号产生单元(dg)50、地址信号产生单元(ag)60、控制信号产生单元(cg)70、输出数据处理单元(dc)80和结果记录单元(rm)90。

其中,锁相环单元(pll)10用于产生内部时钟;时钟产生单元(ckg)20用于将pll产生的内部时钟转换为内部的操作时钟和数据抓取时钟;状态机控制单元(fsm)30为控制器,用于内部状态机控制,以及将外部指令转换为内部的操作时序,产生内部控制信号外部通信和配置信息,并传输相关信息给内部单元;流水线驱动单元(pd)40用于根据外部指令要求,实现对数据信号产生单元(dg)50、地址信号产生单元(ag)60、控制信号产生单元(cg)70、输出数据处理单元(dc)80的操作流水线控制,从而提高处理速度;控制信号产生单元(cg)70用于配置存储器的使能信号en及读写控制信号we;地址信号产生单元(ag)60用于产生对存储器操作的地址信号adr[wa-1:0],并传输给存储器;数据结果处理单元(dg)50用于产生写入存储器的数据d[wd-1:0];输出数据处理单元(dc)80用于比对存储器的输出数据q[wd-1:0]和写入数据d[wd-1:0],从而提供结果比对参考信息;结果记录单元(rm)90用于记录输出数据处理单元(dc)80的比对结果并提供给片外。

如图3所示,本发明状态机控制单元30有3种状态,分别是空闲状态idle、测试状态run和反馈状态resp。当处于空闲状态idle时,内部处于等待状态,不做任何操作;当接收到使能信号ce=1时,状态机控制单元30控制状态机从空闲状态idle切换到测试状态run,系统根据配置信号conf,内部自动对存储器发出测试激励并比对存储器输出结果。当测试结束时,状态机控制单元30控制状态机切换到反馈状态resp,向外部反馈测试结果。在测试状态run和反馈状态resp时,当使能信号撤销(ce=0)时,反馈信号输出0,状态机恢复初始idle状态。使能信号为高时,当处于测试状态run中,反馈信号为1,标识运行状态,测试完成,当使能信号仍然为高,则处于反馈状态resp,当配置信号conf为0时,如反馈信号fbk为0,则工作正常,如fbk为2,则出错;调整conf为4/5/6/7时,可对应查看每个测试项目的出错数目。

图4为本发明内部自动测试逻辑设计图。当使能信号ce置‘1’时,进入测试状态run,首先判断配置信号conf,具体如下:

当配置信号conf为0/4时,开始all0/all1测试(march算法表示:{↑(w0),↑(r0),↑(w1),↑(r1)}),all0/all1测试完成后对测试结果进行判断,当发生失效时,记录失效次数和当前测试向量,当all0/all1测试结束则对失效次数进行判断,当失效次数记录达到存储上限时,切换到反馈状态resp,向外部反馈测试失败信息,当all0/all1测试通过则再次进行配置信号conf判断,若配置信号conf为4(单独进行all0/all1测试),则切换到反馈状态resp,向外部反馈测试成功信息;

若配置信号conf不为4,则自动进行棋盘格和反棋盘格ckbd/ickbd的测试,即对存储器字线和位线写入’0’或’1’的交叉数据,棋盘格和反棋盘格ckbd/ickbd测试完成后对测试结果进行判断,当发生失效时,记录失效次数和当前测试向量,当棋盘格和反棋盘格ckbd/ickbd测试结束则对失效次数进行判断,当失效次数记录达到存储上限时,切换到反馈状态resp,向外部反馈测试失败信息,当棋盘格和反棋盘格ckbd/ickbd测试通过则再次进行配置信号conf判断,若配置信号conf为5(单独进行棋盘格和反棋盘格ckbd/ickbd测试),则切换到反馈状态resp,向外部反馈测试成功信息;

若配置信号conf不为5则自动进行march15n测试,即marchmarch15n测试完成后对测试结果进行判断,当发生失效时,记录失效次数和当前测试向量,当march15n测试结束则对失效次数进行判断,当失效次数记录达到存储上限时,切换到反馈状态resp,向外部反馈测试失败信息,当march15n测试通过则再次进行配置信号conf判断,若配置信号conf为6(单独进行march15n测试),则切换到反馈状态resp,向外部反馈测试成功信息;

若配置信号conf不为6,则自动进行march22n测试,即march22n测试完成后对测试结果进行判断,当发生失效时,记录失效次数和当前测试向量,当march22n测试结束则对失效次数进行判断,当失效次数记录达到存储上限时,切换到反馈状态resp,向外部反馈测试信息,当march22n测试通过,则切换到反馈状态resp,向外部反馈测试成功信息。

当配置信号conf为1/5或2/6时,则分别可跳过前1项或前2项进行连续测试,即配置信号conf不为0/4时则判断是否1/5,若是1/5则跳过前1项从棋盘格和反棋盘格ckbd/ickbd测试开始,若不是1/5则判断是否2/6,若是则跳过前2项从march15n测试开始,否则则跳过前3项直接进行march22n测试。当conf=4/5/6/7时,可单独进行all0/all1、ckbd/ickbd、march15n和march22n测试,提高了测试的灵活性。

本发明采用流水线方式对存储器进行读写及结果比较,流水线设计如图5所示。对存储器的操作可分为操作数产生阶段(读/写操作数,rop/wop)、存储器操作(存储器读/写操作,read/write)、读出结果比较3个阶段:(1)操作数产生采用3级流水线方式设计,如图6所示,具体来说,分为地址计算adrc、march/op信息计算mopc、产生操作数gop3级,3个周期可完成一次操作信号产生,每周期可输出1批操作信号;(2)存储器操作使用1个周期完成;(3)读出结果比较采用3级流水设计,分为数据比较comp、结果收集col、比较结果记录rs,将数据按照比特分组进行一一比较,并采用流水方式位与得到最终结果。本发明采用全流水方式设计,提高了整体设计性能,满足高速存储器的性能测试评价应用需求。

本发明的模块任务分派,如表1所示:

表1模块任务分配

地址信号产生单元负责地址计算和操作地址的产生;流水线驱动模块负责march/op的信息计算、存储器时钟和操作时序的产生,操作数据产生任务和操作信号(使能信号)产生任务分别由数据信号产生单元和控制信号产生单元负责运行;存储器输出数据的暂存任务、结果比较任务和结果收集任务由输出数据处理单元负责;比较结果发送到结果记录单元进行数据记录。

对存储器的操作逻辑可表示为图7所示。

当启动对存储器的测试时,流水线驱动单元遵循以下步骤,控制其他模块:

(1)将内部寄存器im和iop进行初始化:im=0、iop=0;

(2)判断march操作方向md[im]值是否为1,若为1(使能),则令地址模块将地址初始化为全0(adr[*]=1’b0),否则设置为全1(adr[*]=1’b1);

(3)判断操作数op[im][iop]的数据:

在md[im]=1时,当op[im][iop][0]为1,则控制信号产生单元令写使能信号we置1(we=1’b1),否则置0(we=1’b0)。

在md[im]=0时,当棋盘格标志位mck标志位为0时,为标准march算法,如果op[im][iop][1]为1,则数据控制模块将d置位全1(d[*]=1’b1),否则置位全0(d[*]=1’b0);

当棋盘格标志位mck为1时,则将地址区分为子线地址badr和位线地址wadr(根据存储器进行配置),结合内部子线结合位线组合操作,如果op[im][iop][1]为1,则badr[0]与wadr[0]相等时,数据d置位为1,否则置位为0;如果op[im][iop][1]为0,则badr[0]与wadr[0]相等时,数据d置位为0,否则置位为1;

(4)时钟产生单元产生存储器操作时钟信号(gen_sram_ck);

(5)判断md[im]值后,判断地址是否为全0或全1,如未达到,则对地址进行减少或增加1,并继续第(3)(4)步;

(6)如果地址达到全0或全1,则判断iop是否仍小于该march元素操作数量opc[im],如果小于,则iop自增1,并重复(2)~(5)步;

(7)如果iop等于opc[im],说明当前march操作已经完成,则判断im是否小于mc,如果小于,则im自增1,重复(2)~(6),继续下一个march计算;

(8)如果im等于mc,则说明march算法已经全部完成,则退出当前测试。

本发明通过内部数据配置不仅能够满足本发明中采用的几种算法,同时也可通过扩展适用于更复杂的march算法,适用于更广泛的march测试应用。内部设置多个标志位:

(1)march算法通用标志:march操作数mc,棋盘格标志位mck

(2)march操作方向配置位:md[mc-1:0],共mc个,当md为1时,地址从小逐一增大;为0时,地址从大逐一减小;

(3)march操作次数:opc[mc-1:0],共mc个,每个opc值等于当前march对每个地址的操作次数;

(4)op操作配置:op,每个march有1个或者多个op元素,每个op包括2个比特,第0位为用来标志当前操作是写或读;第1位用来标志数据,标志写入全1或全0;结合棋盘格标志位mck,可实现对存储器的区分字线和位线的写入值。

本发明中采用内部集成配置方法设计,运行中各算法配置如表2所示。

表2测试参数配置

以下通过一具体应用来说明本发明:

在应用中,例如需要测试一个320位宽,地址为12位的sram(字线地址位宽为6),仅需要将电路参数中数据位宽参数wd设置为320,地址位宽wadr设置为12,字线位宽参数设置为6,经过数字芯片通用物理实现流程,即可实现出相应测试电路。在实际测试过程中,设置conf为0,使能信号为1,即可对该sram进行连续测试。结束后,通过fbk读取测试结果。

图8为本发明一种适用于随机存储器自动测试的高速电路结构的测试方法的步骤流程图。如图8所示,本发明一种适用于随机存储器自动测试的高速电路结构的测试方法,包括如下步骤:

步骤801,利用状态机控制单元进行内部状态机控制,将外部指令转换为内部的操作时序,产生内部控制信号控制外部通信和配置信息,并传输相关信息给内部单元;

步骤802,由流水线驱动单元根据外部指令要求,实现对数据信号产生单元、地址信号产生单元、控制信号产生单元、输出数据处理单元的操作流水线控制;

步骤803,由数据信号产生单元、地址信号产生单元、控制信号产生单元、输出数据处理单元在状态机控制单元以及流水线驱动单元的控制下实现存储器的自动测试,并通过结果记录单元输出测试结果。

具体地,于步骤801中,状态机控制单元有3种状态,分别是空闲状态idle、测试状态run和反馈状态resp。当处于空闲状态idle时,内部处于等待状态,不做任何操作;当接收到使能信号ce=1时,状态机控制单元控制状态机从空闲状态idle切换到测试状态run,系统根据配置信号conf,内部自动对存储器发出测试激励并比对存储器输出结果。当测试结束时,状态机控制单元30控制状态机切换到反馈状态resp,向外部反馈测试结果。在测试状态run和反馈状态resp时,当使能信号撤销(ce=0)时,反馈信号撤销,状态机恢复初始idle状态。测试状态run中,反馈信号为1,标识运行状态,当测试完成后,在反馈状态resp时,当配置信号conf为0时,如反馈信号fbk为0,则工作正常,如fbk为2,则出错;通过conf=4/5/6/7,可查看每个测试项目的出错数目。

具体地,当使能信号ce置‘1’时,进入测试状态run,首先判断配置信号conf,具体如下:

当配置信号conf为0/4时,开始all0/all1测试(march算法表示:{↑(w0),↑(r0),↑(w1),↑(r1)}),all0/all1测试完成后对测试结果进行判断,当发生失效时,记录失效次数和当前测试向量,当all0/all1测试结束则对失效次数进行判断,当失效次数记录达到存储上限时,切换到反馈状态resp,向外部反馈测试失败信息,当all0/all1测试通过则再次进行配置信号conf判断,若配置信号conf为4(单独进行all0/all1测试),则切换到反馈状态resp,向外部反馈测试成功信息;

若配置信号conf不为4,则自动进行棋盘格和反棋盘格ckbd/ickbd的测试,即对存储器字线和位线写入’0’或’1’的交叉数据,棋盘格和反棋盘格ckbd/ickbd测试完成后对测试结果进行判断,当发生失效时,记录失效次数和当前测试向量,当棋盘格和反棋盘格ckbd/ickbd测试结束则对失效次数进行判断,当失效次数记录达到存储上限时,切换到反馈状态resp,向外部反馈测试失败信息,当棋盘格和反棋盘格ckbd/ickbd测试通过则再次进行配置信号conf判断,若配置信号conf为5(单独进行棋盘格和反棋盘格ckbd/ickbd测试),则切换到反馈状态resp,向外部反馈测试成功信息;

若配置信号conf不为5则自动进行march15n测试,即marchmarch15n测试完成后对测试结果进行判断,当发生失效时,记录失效次数和当前测试向量,当march15n测试结束则对失效次数进行判断,当失效次数记录达到存储上限时,切换到反馈状态resp,向外部反馈测试失败信息,当march15n测试通过则再次进行配置信号conf判断,若配置信号conf为6(单独进行march15n测试),则切换到反馈状态resp,向外部反馈测试成功信息;

若配置信号conf不为6,则自动进行march22n测试,即march22n测试完成后对测试结果进行判断,当发生失效时,记录失效次数和当前测试向量,当march22n测试结束则对失效次数进行判断,当失效次数记录达到存储上限时,切换到反馈状态resp,向外部反馈测试信息,当march22n测试通过,则切换到反馈状态resp,向外部反馈测试成功信息。

当配置信号conf为1/5或2/6时,则分别可跳过前1项或前2项进行连续测试,即配置信号conf不为0/4时则判断是否1/5,若是1/5则跳过前1项从棋盘格和反棋盘格ckbd/ickbd测试开始,若不是1/5则判断是否2/6,若是则跳过前2项从march15n测试开始,否则则跳过前3项直接进行march22n测试。当conf=4/5/6/7时,可单独进行all0/all1、ckbd/ickbd、march15n和march22n测试,提高了测试的灵活性。

于步骤802中,流水线驱动单元采用流水线方式对存储器进行读写及结果比较,流水线设计如图5所示。对存储器的操作可分为操作数产生阶段(读/写操作数,rop/wop)、存储器操作(存储器读/写操作,read/write)、读出结果比较3个阶段:(1)操作数产生采用3级流水线方式设计,如图6所示,具体来说,分为地址计算adrc、march/op信息计算mopc、产生操作数gop3级,3个周期可完成一次操作信号产生,每周期可输出1批操作信号;(2)存储器操作使用1个周期完成;(3)读出结果比较采用3级流水设计,分为数据比较comp、结果收集col、比较结果记录rs,将数据按照比特分组进行一一比较,并采用流水方式位与得到最终结果。本发明采用全流水方式设计,提高了整体设计性能,满足高速存储器的性能测试评价应用需求。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

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