CN110085276B - 一种多存储体集成电路自测试的调试诊断方法 - Google Patents
一种多存储体集成电路自测试的调试诊断方法 Download PDFInfo
- Publication number
- CN110085276B CN110085276B CN201910419227.2A CN201910419227A CN110085276B CN 110085276 B CN110085276 B CN 110085276B CN 201910419227 A CN201910419227 A CN 201910419227A CN 110085276 B CN110085276 B CN 110085276B
- Authority
- CN
- China
- Prior art keywords
- memory
- self
- test
- signal
- pass
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
Abstract
本发明公开了一种多存储体集成电路自测试的调试诊断方法,目的是解决现有多存储体自测试方法测试功耗大且无法识别出错位置和数量的问题。技术方案是在多存储体自测试系统中增加多存储体调试诊断控制器,去掉与门;多存储体调试诊断控制器由节拍控制器、串行移位器、pass诊断器、反向器和n个与门组成;然后根据多存储体集成电路中存储体的分布情况将多存储体的自测试分组,采用改进的多存储体集成自测试系统对多存储体集成电路自测试逐个分组进行调试诊断。采用本发明既可降低自测试功耗,避免局部发热和芯片损坏,又可定位存储体出错位置并获得出错存储体数量,有利于多存储体集成电路降级使用,大大节约成本。
Description
技术领域
本发明涉及大规模集成电路的存储体测试技术领域,尤其是一种多存储体集成电路自测试的调试诊断方法。
背景技术
片上存储体(memory)的大小是衡量大规模集成电路性能的重要指标之一。随着集成电路工艺尺寸的减小和工艺复杂度的增加,片上存储体的可靠性问题越来越突出。针对该问题,存储体的自测试(MBIST)技术被提出并被广泛应用。
图1为传统的多存储体自测试系统逻辑结构图,对于一个含有n个存储体的集成电路,该结构包含n个存储体(用memory_1,…,memory_i,…,memory_n表示,1<=i<=n)、n个自测试控制器(用自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n表示)、n个选择器组(用选择器组_1,…,选择器组_i,…,选择器组_n表示)和一个与门。多存储体自测试系统外接测试机台(如爱德万93K测试机,泰瑞达UltraFLEX测试机)。多存储体自测试系统接收来自测试机台的自测试使能信号selftest_en、自测试复位信号selftest_rst和自测试时钟信号selftest_clk,启动对所有存储体的自测试,并输出指示所有存储体是否成功通过自测试的pass_all信号。
自测试控制器_i由状态机FSM_i和数据比较器_i组成,状态机FSM_i接收来自测试机台自测试使能信号selftest_en、自测试复位信号selftest_rst和自测试时钟信号selftest_clk,产生控制信号i、地址信号i、数据信号i、参考数据i,发送至选择器组_i。数据比较器_i接收来自存储体memory_i的数据输出data_out_i信号和来自状态机FSM的参考数据i,将data_out_i与参考数据i进行比较,若memory_i中所有地址的data_out_i与参考数据i均相同,生成的比较结果信号pass_i有效(为1),若data_out_i与参考数据i不相同,生成的比较结果信号pass_i无效(为0),并将pass_i输出至与门。
选择器组_i由3个选择器组成,它从自测试控制器_i接收控制信号i、地址信号i和数据信号i,从其它部件(其它部件指多存储体集成电路中与存储体自测试无关的部件,不属于多存储体自测试系统)接收第二控制信号i、第二地址信号i和第二数据信号i,根据selftest_en信号从控制信号i、地址信号i、数据信号i和第二控制信号i、第二地址信号i和第二数据信号i这两组输入进行选择,分别形成数据选择i、地址选择i和读写选择i。当selftest_en信号为有效时,选择器组_i将来自自测试控制器_i的控制信号i、地址信号i和数据信号i送往memory_i,系统执行自测试;当selftest_en信号为无效时,选择器组_i将来自其它部件的第二控制信号i、第二地址信号i和第二数据信号i送往memory_i,系统不执行自测试。
memory_i为一个存储体,当接收到来自选择器组_i的控制信号i、地址信号i和数据信号i时,执行存储体写操作或读操作并将读出的数据data_out_i发送至自测试控制器_i;当接收到来自选择器组_i的第二控制信号i、第二地址信号i和第二数据信号i时,执行存储体写操作或读操作并将读出的数据data_out_i发送至其它部件(其它部件指多存储体集成电路中与存储体自测试无关的部件,不属于多存储体自测试系统)。
与门接收来自自测试控制器_1~自测试控制器_n的pass_1~pass_n信号,执行逻辑“与”操作,产生pass_all信号并输出。若pass_1~pass_n信号均为有效,则pass_all有效,表示所有存储体均通过了自测试。若pass_1~pass_n信号有一个或多个为无效,则pass_all为无效,表示该系统的多存储体自测试失败。
采用传统的多存储体自测试方法进行多存储体的自测试时,步骤如下:
第一步,自测试控制器_1~自测试控制器_n,选择器组_1~选择器组_n从测试机台接收selftest_en、selftest_rst和selftest_clk信号。自测试控制器_1~自测试控制器_n分别产生控制信号1、地址信号1和数据信号1~控制信号n、地址信号n和数据信号n,并分别发送至选择器组_1~选择器组_n,即自测试控制器_i将控制信号i、地址信号i和数据信号i发送至选择器组i(1<=i<=n)。
第二步,当selftest_en有效时,选择器组_i选择来自自测试控制器i的控制信号i、地址信号i和数据信号i,并将控制信号i、地址信号i和数据信号i发送给memory_i,当selftest_en无效时,选择器组_i选择来自其它部件的第二控制信号i、第二地址信号i和第二数据信号i,并将来自其它部件的第二控制信号i、第二地址信号i和第二数据信号i发送给memory_i,当selftest_en无效时,所有的自测试控制器不工作。
第三步,memory_i接收来自选择器组_i的控制选择i信号、地址选择i信号和数据选择i信号,当控制选择i为写有效时,将数据选择i写入地址选择i指定的存储体地址中;当控制选择i为读有效时,将地址选择i指定地址中的存储体储存数据作为数据输出信号data_out_i输出给自测试控制器i。
第四步,自测试控制器_i中的数据比较器_i接收来自存储体memory_i的data_out_i信号和来自状态机FSM_i的参考数据i,将data_out_i与参考数据i进行比较并记录当前地址(即地址信号i指定的地址)的比较结果,如果data_out_i与参考数据i相同,则表示存储体memory_i的当前地址成功通过自测试,转第五步,如果data_out_i与参考数据i不同,则表示存储体memory_i的当前地址测试失败,置pass_i为低电平,说明存储体memory_i自测试失败,转第六步。
第五步,自测试控制器_i的状态机FSM_i产生下一组控制信号i、地址信号i和数据信号i,并判断地址信号i所指地址是否小于等于存储体memory_i的最后一个地址,如果小于等于memory_i的最后一个地址,转第二步,如果大于存储体memory_i的最后一个地址,说明memory_i所有的地址被遍历,且memory_i所有地址的data_out_i与参考数据i的比较均成功,置pass_i为高电平,表示存储体memory_i的所有地址成功通过自测试,转第六步。
第六步,自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n产生的pass_1,…,pass_i,…,pass_n信号均送往与门,与门执行“与”逻辑操作,产生pass_all信号并输出,即pass_all=pass_1&pass_2&…&pass_i&…&pass_n。当所有pass_1,…,pass_i,…,pass_n均高电平时,pass_all有效,表示多存储体集成电路自测试成功,若pass_all无效,表示多存储体集成电路自测试失败。
由上可知,传统的多存储体自测试方法可以判断出多存储体集成电路的片上存储体的正确性,但随着集成电路设计规模的增大,传统的方法存在以下缺陷:
1)测试功耗大。随着集成电路设计规模,系统级芯片(SoC)和众核芯片的发展,片上多存储体的面积已经占到全芯片面积的三分之二左右,采用传统的自测试方法会导致在片上多存储体的自测试模式下,大量的存储体同时进行读或写操作,将产生大量的测试功耗。测试功耗过大,将使得芯片局部过度发热,有烧毁的风险。
2)测试的可调试诊断性差,芯片的成品率低,芯片无法实现降低或降档使用。传统的多存储体自测试方法可以判断出片上存储体是否存在错误,但是没有错误定位和调试诊断功能,无法定位错误发生的位置和错误存储体的数目。片上某一个存储体的任何一个数据位的故障都将导致整体上的多存储体自测试结果失败,从而导致多存储体集成电路被判为不合格品。而在多核,众核等设计结构中,在软硬件的协同下,允许对有故障的某一个或某几个存储体进行调度和屏蔽,从而实现多存储体集成电路的降级和降档使用。而传统的多存储体自测试方法无法识别出多存储体出错的位置和数量,导致无法实现降级和降档使用,使得芯片只能报废,造成成本的浪费。
如何解决多存储体集成电路的存储体测试功耗大和测试的可调试诊断性差的问题是本领域极需解决的技术问题。
发明内容
本发明要解决的技术问题是:针对传统的多存储体自测试方法的测试功耗大和测试的可调试诊断性差的问题,提出一种多存储体集成电路自测试的调试诊断方法,使得片上多存储体的自测试具有调试诊断功能,并且可通过灵活的分组调度降低测试功耗。
为解决上述技术问题,本发明方法的技术方案为:
第一步,对传统的多存储体自测试系统进行改进,方法是:
在传统的多存储体自测试系统中增加多存储体调试诊断控制器,去掉与门。多存储体调试诊断控制器外接测试机台,并与n个自测试控制器、n个选择器组相连。多存储体调试诊断控制器接收测试机台的自测试复位信号selftest_rst、自测试时钟信号selftest_clk、自测试配置输入信号shift_in和调试诊断结果输出的使能信号shift_out_en。多存储体调试诊断控制器为自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n分别产生测试使能信号selftest_en_1,…,selftest_en_i,…,selftest_en_n,1<=i<=n。多存储体调试诊断控制器接收来自自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n的pass_1,…,pass_i,…,pass_n信号,产生pass_all信号至测试机台;并将pass_1,…,pass_i,…,pass_n信号顺序移出,形成串行输出调试诊断信号shift_out_pass并发送至测试机台。
多存储体调试诊断控制器由一个节拍控制器,一个串行移位器、一个pass诊断器、一个反向器和n个与门(用与门_1,…,与门_i,…,与门_n表示)组成。
节拍控制器与串行移位器相连,节拍控制器接收测试机台的selftest_rst、selftest_clk和shift_out_en信号,产生移位使能信号SE和移位时钟信号CK,发送给串行移位器。节拍控制器有两个作用:1)在测试的初始阶段,来自测试机台的shift_in信号将被移入串行移位器,节拍控制器用于产生该动作的移位使能信号SE和移位时钟信号CK;2)在测试的结束阶段,pass_1,…,pass_i,…,pass_n信号将被移出串行移位器,节拍控制器用于产生该动作的移位使能信号SE和移位时钟信号CK。
串行移位器与节拍控制器相连,由n个移位器(如图3所示,从左至右用移位器_n,…,移位器_j+1,移位器_j,…,移位器_1表示)组成,n个移位器串联,形成链状,其连接方式是:移位器_j(1<j<n)的SI端口连接到其左侧移位器_j+1的Q_j+1信号,移位器_j的SE端口接收节拍控制器输出的SE信号,移位器_j的CK端口接收节拍控制器输出的CK信号,移位器_j的reset端口接收测试机台的selftest_rst信号。移位器_j产生的Q_j信号发送到其右侧移位器_j-1的SI端口。移位器_n,…,移位器_j+1,移位器_j,…,移位器_1的D端口分别与自测试控制器_n,…,自测试控制器_j+1,…,自测试控制器_j,…,自测试控制器1的pass_n,…,pass_j+1,…,pass_j,…,pass_1信号相连。最右侧和最左侧移位器的连接关系与其它的略有不同,对于最右侧的移位器_1,其输出Q_1作为shift_out_pass信号输出给测试机台,对于最左侧的移位器_n,其SI端口接收来自测试机台的shift_in信号。
与门_n,…,与门_i,…,与门_1与串行移位器、反向器、pass诊断器相连,其中,与门_i与串行移位器中第i个移位器、反向器、pass诊断器相连。与门_i接收来自串行移位器中移位器_i的Q_i信号,接收来自反向器的SE的反向信号,产生memory_i的测试使能信号selftest_en_i。
pass诊断器与与门_1,…,与门_i,…,与门_n相连,接收与门_1,…,与门_i,…,与门_n的输出信号selftest_en_1,…,selftest_en_i,…,selftest_en_n,接收来自memory_1,…,memory_i,…,memory_n的pass_1,…,pass_i,…,pass_n,将selftest_en_1与pass_1执行逻辑“同或”操作,…,将selftest_en_i与pass_i执行逻辑“同或”操作(即selftest_en_i与pass_i同为1或同为0,则selftest_en_i与pass_i“同或”结果为1;若elftest_en_i与pass_不相同,则则selftest_en_i与pass_i“同或”结果为0),…,将selftest_en_n与pass_n执行逻辑“同或”操作,并将n个“同或”的结果执行逻辑“与”操作,生成pass_all信号。
第二步,根据多存储体集成电路中存储体的分布情况将多存储体的自测试分成m组,分组的原则是:1)各个分组包含的多个存储体容量大致均衡(多存储体集成电路中每个存储体的容量有差异,每个分组包含的存储体个数可以不同,但是分组内存储体容量之和需大致相同);2)每个分组内的存储体在芯片的物理位置尽量分散,以利于散热;3)所有分组的存储体的并集包含全部n个存储体。令测试机台将多存储体自测试分为m组,1<=m<=n。当m=1时,改进的多存储体集成自测试系统一次性对所有存储体进行自测试,多存储体调试诊断控制器接收的shift_in包含连续n个有效电平,此时多存储体调试诊断控制器将启动所有存储体的自测试,测试功耗最大;当m=n时,改进的多存储体集成自测试系统将进行n次测试,每次测试一个存储体,每次多存储体调试诊断控制器接收的shift_in_k包含1个有效电平,此时测试功耗得到最大程度的降低,但测试时间最长。当1<m<n,改进的多存储体集成自测试系统将进行m次测试。
第三步,采用改进的多存储体集成自测试系统对多存储体集成电路自测试进行调试诊断,方法是:
3.1初始化分组计数器变量k为1,初始化失效存储体集合F为空集,F用于存放失效存储体的序号,初始化失败存储体的数目s为0。
3.2测试机台接收测试员的指令,为第k分组设置n个节拍的shift_in信号(命名为shift_in_k信号),将shift_in_k信号发送至多存储体调试诊断控制器。如果在第k分组中第i个存储器需要进行测试,测试机台将shift_in_k的第i个节拍设置为有效。
3.3节拍控制器从测试机台接收自测试复位信号selftest_rst,对从测试机台接收的自测试时钟信号selftest_clk进行计数(计数值从1~n,n对应于待测存储体的个数),产生连续的n个CK信号(CK与selftest_clk频率相同),同时产生与CK信号有效时长相等的SE信号,发送至串行移位器。
3.4串行移位器从测试机台接收自测试复位信号selftest_rst、从节拍控制器接收CK信号和SE信号,进入移位模式,将自测试配置输入信号shift_in_k按照CK信号节拍,依次从移位器_n的SI端推进到移位器_n的Q_n~移位器_1的Q_1端。shift_in_k的第1个时钟节拍包含memory_1是否需要自测试的配置信息,……,shift_in_k的第j个时钟节拍包含memory_j是否需要自测试的配置信息,……,shift_in_k的第n个时钟节拍包含memory_n是否需要自测试的配置信息,1<j<n。对于每个CK时钟的有效沿,移位器_1~移位器_n同时开启SI—>Q端的通路。在第1个CK时钟有效时,移位器_n将memory_1是否需要自测试的配置信息(即shift_in_k)从移位器_n的SI端移至Q_n端;第2个CK时钟有效时,移位器_n将memory_2是否需要自测试的配置信息从移位器_n的SI端移至Q_n端,同时移位器_n-1将memory_1是否需要自测试的配置信息从Q_n端移至移位器_n-1的Q_n-1端,……;第n个CK时钟有效时,移位器_n将memory_n是否需要自测试的配置信息从移位器_n的SI端移至Q_n端,……,同时移位器_j(1<j<n)将memory_j是否需要自测试的配置信息从移位器_j的SI端移至Q_j端,……,同时移位器_1将memory_1是否需要自测试的配置信息从移位器_1的SI端移至Q_1端。即n个时钟节拍后,串行移位器将memory_1至memory_n中属于第k分组的存储体是否需要自测试的配置信息依次定位到移位器_1的Q_1至移位器_n的Q_n,shift_in_k串行移入过程结束(将多存储体自测试分为m组,另一种办法是每一分组的shift_in_k只包含第k分组关注的存储体的自测试信息,如果采用这种方法,需要对包含n个触发器的串行移位器进行控制,并且由于每个分组的存储体数目可以不等,因此控制逻辑较复杂。为了节省这部分控制逻辑的开销,本发明在每个分组测试时,串行移位器均对memory_1至memory_n是否需要进行自测试都进行定位,第k分组不关注的存储体,shift_in_k中相应设置为0即可。这样做,相比分别定位m组中的存储体需要的控制电路来说,能节省很大的控制逻辑的面积)。
3.5shift_in_k串行移入过程结束后,节拍控制器控制CK无效,控制SE为无效,反向器将SE信号反向,即反向器输出为有效,与门_i接收到来自移位器_i的Q_i信号和SE反向信号,执行逻辑“与”操作,形成selftest_en_i信号,发送至自测试控制器_i、选择器组_i、pass诊断器。此时,若Q_i信号有效,对应的selftest_en_i有效;若Q_i信号无效,对应的selftest_en_i无效。
3.6自测试控制器_i接收selftest_en_i,若selftest_en_i有效,状态机FSM_i产生有效的控制信号i、地址信号i和数据信号i。地址信号i的初始值为memory_i的首地址。若selftest_en_i无效,状态机FSM_i输出的控制信号i、地址信号i和数据信号i均无效,在3.7步将不被选中。
3.7选择器组_i接收selftest_en_i信号,执行对两个输入端口信号的选择。若selftest_en_i有效,选择器组_i选择来自自测试控制器_i的控制信号i、地址信号i和数据信号i,并将控制信号i、地址信号i和数据信号i作为控制选择i信号、地址选择i信号和数据选择i信号发送给memory_i;若selftest_en_i无效,选择器组_i选择来自其它部件的第二控制信号i、第二地址信号i和第二数据信号i,并将来自其它部件的第二控制信号i、第二地址信号i和第二数据信号i作为控制选择i信号、地址选择i信号和数据选择i信号发送给memory_i。
3.8memory_i接收来自选择器组_i的控制选择i信号、地址选择i信号和数据选择i信号,当控制选择i信号为写有效时,将数据选择i信号写入地址选择i信号指定的存储体地址中;当控制选择i信号为读有效时,将地址选择i指定地址中的存储体储存数据作为数据输出信号data_out_i输出给自测试控制器i。
3.9自测试控制器_i中的数据比较器_i接收来自存储体memory_i的data_out_i信号和来自状态机FSM_i的参考数据i,将data_out_i与参考数据i进行比较,如果data_out_i与参考数据i不同,则表示存储体memory_i的当前地址(即地址选择i信号指定地址)测试失败,置pass_i为低电平,转3.10;如果data_out_i与参考数据i相同,则表示存储体memory_i的当前地址成功通过自测试,状态机FSM_i进一步判断当前地址是否小于存储体memory_i的最后一个地址,如果小于memory_i的最后一个地址,则将地址信号i指定地址加1,转3.6(在memory_i所有地址测试过程中,多存储体调试诊断控制器维持selftest_en_i持续有效);如果等于存储体memory_i的最后一个地址,置pass_i为高电平,表示存储体memory_i的所有地址成功通过自测试,转3.10。
3.10pass诊断器从自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n分别接收pass_1,…,pass_i,…,pass_n,与从与门_1,…,与门_i,…,与门_n接收的selftest_en_1,…,selftest_en_i,…,selftest_en_n信号分别进行逻辑“同或”操作,即selftest_en_i⊙pass_i,产生第k分组的pass_all信号(命名为pass_all_k信号)。当selftest_en_i有效且pass_i无效时,“同或”结果为0表示memory_i需要进行自测试但是自测试不成功;当selftest_en_i有效且pass_i有效时“同或”结果为1,表示memory_i需要进行自测试并且自测试成功。当selftest_en_i无效且pass_i无效时,“同或”结果也为1,此时的1表示该存储体在第k分组内不需要做自测试。pass诊断器执行如下的逻辑操作pass_all_k=(selftest_en_1⊙pass_1)&(selftest_en_2⊙pass_2)&……&(selftest_en_n⊙pass_n)。注:符号“⊙”表示逻辑操作“同或”,符号“&”表示逻辑操作“与”。当改进的多存储体集成自测试系统按照第k分组shift_in_k的自测试配置,完成第k分组shift_in_k指定存储体的自测试,并且指定存储体均测试成功后,pass诊断器输出的pass_all_k有效;否则,pass诊断器输出的pass_all_k无效。
3.11测试机台控制诊断调试输出使能信号shift_out_en为有效。节拍控制器接收到shift_out_en后,恢复时钟CK的输出并计数。在第1个CK计数周期,控制SE继续保持一个节拍的无效电平,串行移位器处于捕获(capture)模式,移位器_i(1<=i<=n)将来自自测试控制器i的pass_i信号由移位器_i的D端捕获至Q_i端,即pass_i被捕获至移位器_i的Q_i端。此时,memory_1的自测试结果pass_1已经被捕获到移位器_1的Q端,即出现在shift_out_pass端口。在第1个计数周期结束后,节拍控制器控制SE信号变为有效电平并维持n-1节拍,串行移位器变为移位(shift)模式,将其余n-1个存储体(即memory_2~memory_n)的自测试结果向右顺序移出。第2个CK后,移位器_1通过它的SI—>Q通路将memory_2的自测试结果pass_2(上一节拍已经被锁存到移位器_1的SI端)移至shift_out_pass,同时左侧的移位器_2~移位器_n都将各自的SI端的数据锁存到Q端,效果是将包含pass_3~pass_n信息的移位器_2~移位器_n的SI数据向右侧移动一个移位器的位置;第3个CK有效后,移位器_1通过它的SI—>Q通路将memory_3的自测试结果pass_3(上一节拍已经被锁存到移位器_1的SI端)移至shift_out_pass,同时左侧的移位器_2~移位器_n都将各自的SI端的数据锁存到Q端,效果是包含pass_4~pass_n信息的各个移位器的SI数据向右侧移动一个移位器的位置,……,第n个CK后,移位器_1通过它的SI—>Q通路将memory_n的自测试结果pass_n(上一节拍已经被锁存到移位器_1的SI端)移至shift_out_pass。即经过n个周期后,串行移位器通过shift_out_pass串行移出第k分组存储体的自测试调试诊断结果shift_out_pass_k,第k分组的多存储体自测试的调试诊断结束。
3.12测试机台判断第k分组的pass_all_k信号是否有效,若pass_all_k信号有效,则第k分组需要测试的存储体均自测试成功,转3.14;若pass_all_k信号无效,则表明第k分组内有自测试失败的存储体,转3.13。
3.13测试机台结合shift_in_k和shift_out_pass_k定位第k分组失效的存储体的位置,方法是:
3.13.1令i=1;令第k组失效存储体集合F_k为空集,F_k用于存放第k组失效存储体的序号;令失败存储体的数量s_k为0;
3.13.2测试机台判断shift_out_pass_k的第i个节拍的电平,若shift_out_pass_k的第i个节拍的电平为低,且shift_in_k的第i个节拍的电平为高,则测试机台诊断出第k分组中的memory_i测试失败,即第i个存储体失效,将i添加到失效存储体集合F_k中,令s_k=s_k+1;转3.13.3;若shift_out_pass_k的第i个节拍的电平为低,且shift_in_k的第i个节拍的电平为低,则测试机台判断第k分组中的memory_i不需要自测试,不判定为第i个存储体失效,直接转3.13.3。
3.13.3判定i是否小于第k组的存储体数量p,若小于p,令i=i+1,转3.13.2;若i等于p,则已诊断出第k分组所有失败存储体的位置,即得到了F_k,且得到了第k分组失败存储体的数量s_k。
3.14测试机台判断k是否小于m,若小于m,令k=k+1,令F=F∪F_k,s=s+s_k,转3.2;若k等于m,则表明所有测试分组结束,输出F和s,若F为空集,则表明所有存储体成功通过自测试,若F不为空,F中的序号即为未通过自测试的存储体序号,且s是未通过自测试的存储体的数量,多存储体的自测试结束。
采用本发明可以得到以下技术效果:
采用本发明可以实现对多存储体集成电路自测试的调试诊断:
1.通过多存储体调试诊断控制器的输出能得到所设置的存储体是否成功通过测试的信息。
2.同时,如果某个存储体自测试失败,测试机台采用本发明可以定位出自测试失败的存储体的具体位置。由于可以诊断出存储体错误的位置信息,可以为多memory集成电路的降级和降档使用提供关键信息。
3.采用本发明,可以对多存储体集成电路的自测试进行分组,通过分组的方式对所有存储体进行测试,可避免由于测试功耗过大引起的局部发热甚至芯片损坏的情况。
附图说明
图1为传统的多存储体集成电路自测试系统的逻辑结构图。
图2为本发明总体流程图。
图3为本发明第一步改进的多存储体集成电路自测试系统逻辑结构图。
图4是图3中的多存储体调试诊断控制器的逻辑结构图。
图5是测试机台诊断失败存储体位置的示意图。
具体实施方式
以下结合说明书附图对本发明作进一步描述,但并不因此而限制本发明的保护范围。
图2为本发明总体流程图。如图2所示,本发明包括以下步骤:
第一步,对传统的多存储体自测试系统进行改进,方法是:
如图3所示,在传统的多存储体自测试系统中增加多存储体调试诊断控制器,去掉与门。多存储体调试诊断控制器外接测试机台,并与n个自测试控制器、n个选择器组相连。多存储体调试诊断控制器接收测试机台的自测试复位信号selftest_rst、自测试时钟信号selftest_clk、自测试配置输入信号shift_in和调试诊断结果输出的使能信号shift_out_en。多存储体调试诊断控制器为自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n分别产生测试使能信号selftest_en_1,…,selftest_en_i,…,selftest_en_n,1<=i<=n。多存储体调试诊断控制器接收来自自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n的pass_1,…,pass_i,…,pass_n信号,产生pass_all信号至测试机台;并将pass_1,…,pass_i,…,pass_n信号顺序移出,形成串行输出调试诊断信号shift_out_pass并发送至测试机台。
如图4所示,多存储体调试诊断控制器由一个节拍控制器,一个串行移位器、一个pass诊断器、一个反向器和n个与门——即与门_1,…,与门_i,…,与门_n组成。
节拍控制器与串行移位器相连,节拍控制器接收测试机台的selftest_rst、selftest_clk和shift_out_en信号,产生移位使能信号SE和移位时钟信号CK,发送给串行移位器。
串行移位器与节拍控制器相连,由n个移位器(如图4所示,从左至右用移位器_n,…,移位器_j+1,移位器_j,…,移位器_1表示)组成,n个移位器串联,形成链状,其连接方式是:移位器_j(1<j<n)的SI端口连接到其左侧移位器_j+1的Q_j+1信号,移位器_j的SE端口接收节拍控制器输出的SE信号,移位器_j的CK端口接收节拍控制器输出的CK信号,移位器_j的reset端口接收测试机台的selftest_rst信号。移位器_j产生的Q_j信号发送到其右侧移位器_j-1的SI端口。移位器_n,…,移位器_j+1,移位器_j,…,移位器_1的D端口分别与自测试控制器_n,…,自测试控制器_j+1,…,自测试控制器_j,…,自测试控制器1的pass_n,…,pass_j+1,…,pass_j,…,pass_1信号相连。最右侧和最左侧移位器的连接关系与其它的略有不同,对于最右侧的移位器_1,其输出Q_1作为shift_out_pass信号输出给测试机台,对于最左侧的移位器_n,其SI端口接收来自测试机台的shift_in信号。
与门_n,…,与门_i,…,与门_1与串行移位器、反向器、pass诊断器相连,其中,与门i与串行移位器中第i个移位器、反向器、pass诊断器相连。与门i接收来自串行移位器中移位器_i的Q_i信号,接收来自反向器的SE的反向信号,产生memory_i的测试使能信号selftest_en_i。
pass诊断器与门_1,…,与门_i,…,与门_n相连,接收与门_1,…,与门_i,…,与门_n的输出信号selftest_en_1,…,selftest_en_i,…,selftest_en_n,接收来自memory_1,…,memory_i,…,memory_n的pass_1,…,pass_i,…,pass_n,将selftest_en_1与pass_1执行逻辑“同或”操作,…,将selftest_en_i与pass_i执行逻辑“同或”操作(即selftest_en_i与pass_i同为1或同为0,则selftest_en_i与pass_i“同或”结果为1;若elftest_en_i与pass_不相同,则则selftest_en_i与pass_i“同或”结果为0),…,将selftest_en_n与pass_n执行逻辑“同或”操作,并将n个“同或”的结果执行逻辑“与”操作,生成pass_all信号。
第二步,根据多存储体集成电路中存储体的分布情况将多存储体的自测试分成m组;
第三步,采用改进的多存储体集成自测试系统对多存储体集成电路自测试进行调试诊断,方法是:
3.1初始化分组计数器变量k为1,初始化失效存储体集合F为空集,F用于存放失效存储体的序号,初始化失败存储体的数目s为0。
3.2测试机台接收测试员的指令,为第k分组设置n个节拍的shift_in信号(命名为shift_in_k信号),将shift_in_k信号发送至多存储体调试诊断控制器。如果在第k分组中第i个存储器需要进行测试,测试机台将shift_in_k的第i个节拍设置为有效。
3.3节拍控制器从测试机台接收自测试复位信号selftest_rst,对从测试机台接收的自测试时钟信号selftest_clk进行计数(计数值从1~n,n对应于待测存储体的个数),产生连续的n个CK信号(CK与selftest_clk频率相同),同时产生与CK信号有效时长相等的SE信号,发送至串行移位器。
3.4串行移位器从测试机台接收自测试复位信号selftest_rst、从节拍控制器接收CK信号和SE信号,进入移位模式,将自测试配置输入信号shift_in_k按照CK信号节拍,依次从移位器_n的SI端推进到移位器_n的Q_n~移位器_1的Q_1端。shift_in_k的第1个时钟节拍包含memory_1是否需要自测试的配置信息,……,shift_in_k的第j个时钟节拍包含memory_j是否需要自测试的配置信息,……,shift_in_k的第n个时钟节拍包含memory_n是否需要自测试的配置信息,1<j<n。对于每个CK时钟的有效沿,移位器_1~移位器_n同时开启SI—>Q端的通路。在第1个CK时钟有效时,移位器_n将memory_1是否需要自测试的配置信息(即shift_in_k)从移位器_n的SI端移至Q_n端;第2个CK时钟有效时,移位器_n将memory_2是否需要自测试的配置信息从移位器_n的SI端移至Q_n端,同时移位器_n-1将memory_1是否需要自测试的配置信息从Q_n端移至移位器_n-1的Q_n-1端,……;第n个CK时钟有效时,移位器_n将memory_n是否需要自测试的配置信息从移位器_n的SI端移至Q_n端,……,同时移位器_j(1<j<n)将memory_j是否需要自测试的配置信息从移位器_j的SI端移至Q_j端,……,同时移位器_1将memory_1是否需要自测试的配置信息从移位器_1的SI端移至Q_1端。即n个时钟节拍后,串行移位器将memory_1至memory_n中属于第k分组的存储体是否需要自测试的配置信息依次定位到移位器_1的Q_1至移位器_n的Q_n,shift_in_k串行移入过程结束。
3.5shift_in_k串行移入过程结束后,节拍控制器控制CK无效,控制SE为无效,反向器将SE信号反向,即反向器输出为有效,与门_i接收到来自移位器_i的Q_i信号和SE反向信号,执行逻辑“与”操作,形成selftest_en_i信号,发送至自测试控制器_i、选择器组_i、pass诊断器。此时,若Q_i信号有效,对应的selftest_en_i有效;若Q_i信号无效,对应的selftest_en_i无效。
3.6自测试控制器_i接收selftest_en_i,若selftest_en_i有效,状态机FSM_i产生有效的控制信号i、地址信号i和数据信号i。地址信号i的初始值为memory_i的首地址。若selftest_en_i无效,状态机FSM_i输出的控制信号i、地址信号i和数据信号i均无效。
3.7选择器组_i接收selftest_en_i信号,执行对两个输入端口信号的选择。若selftest_en_i有效,选择器组_i选择来自自测试控制器_i的控制信号i、地址信号i和数据信号i,并将控制信号i、地址信号i和数据信号i作为控制选择i信号、地址选择i信号和数据选择i信号发送给memory_i;若selftest_en_i无效,选择器组_i选择来自其它部件的第二控制信号i、第二地址信号i和第二数据信号i,并将来自其它部件的第二控制信号i、第二地址信号i和第二数据信号i作为控制选择i信号、地址选择i信号和数据选择i信号发送给memory_i。
3.8memory_i接收来自选择器组_i的控制选择i信号、地址选择i信号和数据选择i信号,当控制选择i信号为写有效时,将数据选择i信号写入地址选择i信号指定的存储体地址中;当控制选择i信号为读有效时,将地址选择i指定地址中的存储体储存数据作为数据输出信号data_out_i输出给自测试控制器i。
3.9自测试控制器_i中的数据比较器_i接收来自存储体memory_i的data_out_i信号和来自状态机FSM_i的参考数据i,将data_out_i与参考数据i进行比较,如果data_out_i与参考数据i不同,则表示存储体memory_i的当前地址(即地址选择i信号指定地址)测试失败,置pass_i为低电平,转3.10;如果data_out_i与参考数据i相同,则表示存储体memory_i的当前地址成功通过自测试,状态机FSM_i进一步判断当前地址是否小于存储体memory_i的最后一个地址,如果小于memory_i的最后一个地址,则将地址信号i指定地址加1,转3.6(在memory_i所有地址测试过程中,多存储体调试诊断控制器维持selftest_en_i持续有效);如果等于存储体memory_i的最后一个地址,置pass_i为高电平,表示存储体memory_i的所有地址成功通过自测试,转3.10。
3.10pass诊断器从自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n分别接收pass_1,…,pass_i,…,pass_n,与从与门_1,…,与门_i,…,与门_n接收的selftest_en_1,…,selftest_en_i,…,selftest_en_n信号分别进行逻辑“同或”操作,即selftest_en_i⊙pass_i,产生第k分组的pass_all信号(命名为pass_all_k信号)。当selftest_en_i有效且pass_i无效时,“同或”结果为0表示memory_i需要进行自测试但是自测试不成功;当selftest_en_i有效且pass_i有效时“同或”结果为1,表示memory_i需要进行自测试并且自测试成功。当selftest_en_i无效且pass_i无效时,“同或”结果也为1,此时的1表示该存储体在第k分组内不需要做自测试。pass诊断器执行如下的逻辑操作pass_all_k=(selftest_en_1⊙pass_1)&(selftest_en_2⊙pass_2)&……&(selftest_en_n⊙pass_n)。注:符号“⊙”表示逻辑操作“同或”,符号“&”表示逻辑操作“与”。当改进的多存储体集成自测试系统按照第k分组shift_in_k的自测试配置,完成第k分组shift_in_k指定存储体的自测试,并且指定存储体均测试成功后,pass诊断器输出的pass_all_k有效;否则,pass诊断器输出的pass_all_k无效。
3.11测试机台控制诊断调试输出使能信号shift_out_en为有效。节拍控制器接收到shift_out_en后,恢复时钟CK的输出并计数。在第1个CK计数周期,控制SE继续保持一个节拍的无效电平,串行移位器处于捕获(capture)模式,移位器_i(1<=i<=n)将来自自测试控制器i的pass_i信号由移位器_i的D端捕获至Q_i端,即pass_i被捕获至移位器_i的Q_i端。此时,memory_1的自测试结果pass_1已经被捕获到移位器_1的Q端,即出现在shift_out_pass端口。在第1个计数周期结束后,节拍控制器控制SE信号变为有效电平并维持n-1节拍,串行移位器变为移位(shift)模式,将其余n-1个存储体(即memory_2~memory_n)的自测试结果向右顺序移出。第2个CK后,移位器_1通过它的SI—>Q通路将memory_2的自测试结果pass_2(上一节拍已经被锁存到移位器_1的SI端)移至shift_out_pass,同时左侧的移位器_2~移位器_n都将各自的SI端的数据锁存到Q端,效果是将包含pass_3~pass_n信息的移位器_2~移位器_n的SI数据向右侧移动一个移位器的位置;第3个CK有效后,移位器_1通过它的SI—>Q通路将memory_3的自测试结果pass_3(上一节拍已经被锁存到移位器_1的SI端)移至shift_out_pass,同时左侧的移位器_2~移位器_n都将各自的SI端的数据锁存到Q端,效果是包含pass_4~pass_n信息的各个移位器的SI数据向右侧移动一个移位器的位置,……,第n个CK后,移位器_1通过它的SI—>Q通路将memory_n的自测试结果pass_n(上一节拍已经被锁存到移位器_1的SI端)移至shift_out_pass。即经过n个周期后,串行移位器通过shift_out_pass串行移出第k分组存储体的自测试调试诊断结果shift_out_pass_k,第k分组的多存储体自测试的调试诊断结束。
3.12测试机台判断第k分组的pass_all_k信号是否有效,若pass_all_k信号有效,则第k分组需要测试的存储体均自测试成功,转3.14;若pass_all_k信号无效,则表明第k分组内有自测试失败的存储体,转3.13。
3.13测试机台结合shift_in_k和shift_out_pass_k定位第k分组失效的存储体的位置,方法是:
3.13.1令i=1;令第k组失效存储体集合F_k为空集,F_k用于存放第k组失效存储体的序号;令失败存储体的数量s_k为0;
3.13.2测试机台判断shift_out_pass_k的第i个节拍的电平,如图5所示,若shift_out_pass_k的第i个节拍的电平为低,且shift_in_k的第i个节拍的电平为高,则测试机台诊断出第k分组中的memory_i测试失败,即第i个存储体自测试失败,将i添加到失效存储体集合F_k中,令s_k=s_k+1;转3.13.3;若shift_out_pass_k的第i个节拍的电平为低,且shift_in_k的第i个节拍的电平为低,则测试机台判断第k分组中的memory_i不需要自测试,不判定为第i个存储体失效,直接转3.13.3。
3.13.3判定i是否小于第k组的存储体数量p,若小于p,令i=i+1,转3.13.2;若i等于p,则已诊断出第k分组所有失败存储体的位置,即得到了F_k,且得到了第k分组失败存储体的数量s_k。
3.14测试机台判断k是否小于m,若小于m,令k=k+1,令F=F∪F_k,s=s+s_k,转3.2;若k等于m,则表明所有测试分组结束,输出F和s,若F为空集,则表明所有存储体成功通过自测试,若F不为空,F中的序号即为未通过自测试的存储体序号,且s是未通过自测试的存储体的数量,多存储体的自测试结束。
Claims (3)
1.一种多存储体集成电路自测试的调试诊断方法,其特征在于包括以下步骤:
第一步,对含有n个存储体的集成电路的多存储体自测试系统进行改进,方法是:
在含有n个存储体的集成电路的多存储体自测试系统中增加多存储体调试诊断控制器,去掉与门;多存储体调试诊断控制器外接测试机台,并与n个自测试控制器、n个选择器组相连;多存储体调试诊断控制器接收测试机台的自测试复位信号selftest_rst、自测试时钟信号selftest_clk、自测试配置输入信号shift_in和调试诊断结果输出的使能信号shift_out_en,为自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n分别产生测试使能信号selftest_en_1,…,selftest_en_i,…,selftest_en_n,1<=i<=n;多存储体调试诊断控制器接收来自自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n的pass_1,…,pass_i,…,pass_n信号,产生pass_all信号至测试机台;并将pass_1,…,pass_i,…,pass_n信号顺序移出,形成串行输出调试诊断信号shift_out_pass并发送至测试机台;
多存储体调试诊断控制器由一个节拍控制器,一个串行移位器、一个pass诊断器、一个反向器和n个与门组成,n个与门用与门_1,…,与门_i,…,与门_n表示;
节拍控制器与串行移位器相连,节拍控制器接收测试机台的selftest_rst、selftest_clk和shift_out_en信号,产生移位使能信号SE和移位时钟信号CK,发送给串行移位器;
串行移位器与节拍控制器相连,由n个移位器串联组成,形成链状,其连接方式是:移位器_j的SI端口连接到其左侧移位器_j+1的Q_j+1信号,1<j<n 移位器_j的SE端口接收节拍控制器输出的SE信号,移位器_j的CK端口接收节拍控制器输出的CK信号,移位器_j的reset端口接收测试机台的selftest_rst信号;移位器_j产生的Q_j信号发送到其右侧移位器_j-1的SI端口;移位器_n,…,移位器_j+1,移位器_j,…,移位器_1的D端口分别与自测试控制器_n,…,自测试控制器_j+1,…,自测试控制器_j,…,自测试控制器1的pass_n,…,pass_j+1,…,pass_j,…,pass_1信号相连;移位器_1输出Q_1作为shift_out_pass信号输出给测试机台,移位器_n的SI端口接收来自测试机台的shift_in信号;
与门_n,…,与门_i,…,与门_1与串行移位器、反向器、pass诊断器相连,其中,与门_i与串行移位器中第i个移位器、反向器、pass诊断器相连;与门_i接收来自串行移位器中移位器_i的Q_i信号,接收来自反向器的SE的反向信号,产生memory_i的测试使能信号selftest_en_i;
pass诊断器与与门_1,…,与门_i,…,与门_n相连,接收与门_1,…,与门_i,…,与门_n的输出信号selftest_en_1,…,selftest_en_i,…,selftest_en_n,接收来自memory_1,…,memory_i,…,memory_n的pass_1,…,pass_i,…,pass_n,将selftest_en_1与pass_1执行逻辑“同或”操作,…,将selftest_en_i与pass_i执行逻辑“同或”操作,…,将selftest_en_n与pass_n执行逻辑“同或”操作,并将n个“同或”的结果执行逻辑“与”操作,生成pass_all信号;
第二步,根据多存储体集成电路中存储体的分布情况将多存储体的自测试分成m组;
第三步,采用改进的多存储体集成自测试系统对多存储体集成电路自测试进行调试诊断,方法是:
3.1初始化分组计数器变量k为1,初始化失效存储体集合F为空集,F用于存放失效存储体的序号,初始化失败存储体的数目s为0;
3.2测试机台接收测试员的指令,为第k分组设置n个节拍的shift_in信号即shift_in_k信号,将shift_in_k信号发送至多存储体调试诊断控制器;如果在第k分组中第i个存储器需要进行测试,测试机台将shift_in_k的第i个节拍设置为有效;
3.3节拍控制器从测试机台接收自测试复位信号selftest_rst,对从测试机台接收的自测试时钟信号selftest_clk进行计数,产生连续的n个移位时钟信号CK,同时产生移位使能信号SE,发送至串行移位器;
3.4串行移位器从测试机台接收自测试复位信号selftest_rst、从节拍控制器接收CK信号和SE信号,进入移位模式,将自测试配置输入信号shift_in_k按照CK信号节拍,依次从移位器_n的SI端推进到移位器_n的Q_n~移位器_1的Q_1端;shift_in_k的第1个时钟节拍包含memory_1是否需要自测试的配置信息,……,shift_in_k的第j个时钟节拍包含memory_j是否需要自测试的配置信息,……,shift_in_k的第n个时钟节拍包含memory_n是否需要自测试的配置信息,1<j<n;对于每个CK时钟的有效沿,移位器_1~移位器_n同时开启SI—>Q端的通路;在第1个CK时钟有效时,移位器_n将memory_1是否需要自测试的配置信息从移位器_n的SI端移至Q_n端;第2个CK时钟有效时,移位器_n将memory_2是否需要自测试的配置信息从移位器_n的SI端移至Q_n端,同时移位器_n-1将memory_1是否需要自测试的配置信息从Q_n端移至移位器_n-1的Q_n-1端,……;第n个CK时钟有效时,移位器_n将memory_n是否需要自测试的配置信息从移位器_n的SI端移至Q_n端,……,同时移位器_j将memory_j是否需要自测试的配置信息从移位器_j的SI端移至Q_j端,……,同时移位器_1将memory_1是否需要自测试的配置信息从移位器_1的SI端移至Q_1端;即n个时钟节拍后,串行移位器将memory_1至memory_n中属于第k分组的存储体是否需要自测试的配置信息依次定位到移位器_1的Q_1至移位器_n的Q_n,shift_in_k串行移入过程结束;
3.5shift_in_k串行移入过程结束后,节拍控制器控制CK无效,控制SE为无效,反向器将SE信号反向,即反向器输出为有效,与门_i接收到来自移位器_i的Q_i信号和SE反向信号,执行逻辑“与”操作,形成selftest_en_i信号,发送至自测试控制器_i、选择器组_i、pass诊断器;
3.6自测试控制器_i接收selftest_en_i,若selftest_en_i有效,状态机FSM_i产生有效的控制信号i、地址信号i和数据信号i,地址信号i的初始值为memory_i的首地址;若selftest_en_i无效,状态机FSM_i输出的控制信号i、地址信号i和数据信号i均无效;
3.7选择器组_i接收selftest_en_i信号,执行对两个输入端口信号的选择, 若selftest_en_i有效,选择器组_i选择来自自测试控制器_i的控制信号i、地址信号i和数据信号i,并将控制信号i、地址信号i和数据信号i作为控制选择i信号、地址选择i信号和数据选择i信号发送给memory_i;若selftest_en_i无效,选择器组_i选择来自其它部件的第二控制信号i、第二地址信号i和第二数据信号i,并将来自其它部件的第二控制信号i、第二地址信号i和第二数据信号i作为控制选择i信号、地址选择i信号和数据选择i信号发送给memory_i;
3.8memory_i接收来自选择器组_i的控制选择i信号、地址选择i信号和数据选择i信号,当控制选择i信号为写有效时,将数据选择i信号写入地址选择i信号指定的存储体地址中;当控制选择i信号为读有效时,将地址选择i指定地址中的存储体储存数据作为数据输出信号data_out_i输出给自测试控制器i;
3.9自测试控制器_i中的数据比较器_i接收来自存储体memory_i的data_out_i信号和来自状态机FSM_i的参考数据i,将data_out_i与参考数据i进行比较,如果data_out_i与参考数据i不同,则表示存储体memory_i的当前地址即地址选择i信号指定地址测试失败,置pass_i为低电平,转3.10;如果data_out_i与参考数据i相同,则表示存储体memory_i的当前地址成功通过自测试,状态机FSM_i进一步判断当前地址是否小于存储体memory_i的最后一个地址,如果小于memory_i的最后一个地址,则将地址信号i指定地址加1,转3.6;如果等于存储体memory_i的最后一个地址,置pass_i为高电平,表示存储体memory_i的所有地址成功通过自测试,转3.10;
3.10pass诊断器从自测试控制器_1,…,自测试控制器_i,…,自测试控制器_n分别接收pass_1,…,pass_i,…,pass_n,与从与门_1,…,与门_i,…,与门_n接收的selftest_en_1,…,selftest_en_i,…,selftest_en_n信号,执行如下的逻辑操作:第k分组的pass_all信号即pass_all_k=(selftest_en_1⊙pass_1)&(selftest_en_2⊙pass_2)&……&(selftest_en_n⊙pass_n);符号“⊙”表示逻辑操作“同或”,符号“&”表示逻辑操作“与”;当改进的多存储体集成自测试系统按照第k分组shift_in_k的自测试配置,完成第k分组shift_in_k指定存储体的自测试,并且指定存储体均测试成功后,pass诊断器输出的pass_all_k有效;否则,pass诊断器输出的pass_all_k无效;
3.11测试机台控制诊断调试输出使能信号shift_out_en为有效;节拍控制器接收到shift_out_en后,恢复时钟CK的输出并计数;在第1个CK计数周期,控制SE继续保持一个节拍的无效电平,串行移位器处于捕获模式,移位器_i 将来自自测试控制器i的pass_i信号由移位器_i的D端捕获至Q_i端,即pass_i被捕获至移位器_i的Q_i端;此时,memory_1的自测试结果pass_1已经被捕获到移位器_1的Q端,即出现在shift_out_pass端口;在第1个计数周期结束后,节拍控制器控制SE信号变为有效电平并维持n-1节拍,串行移位器变为移位模式,将memory_2~memory_n的自测试结果向右顺序移出;第2个CK后,移位器_1通过它的SI—>Q通路将memory_2的自测试结果pass_2移至shift_out_pass,同时左侧的移位器_2~移位器_n都将各自的SI端的数据锁存到Q端,效果是将包含pass_3~pass_n信息的移位器_2~移位器_n的SI数据向右侧移动一个移位器的位置;第3个CK有效后,移位器_1通过它的SI—>Q通路将memory_3的自测试结果pass_3移至shift_out_pass,同时左侧的移位器_2~移位器_n都将各自的SI端的数据锁存到Q端,效果是包含pass_4~pass_n信息的各个移位器的SI数据向右侧移动一个移位器的位置,……,第n个CK后,移位器_1通过它的SI—>Q通路将memory_n的自测试结果pass_n移至shift_out_pass;即经过n个周期后,串行移位器通过shift_out_pass串行移出第k分组存储体的自测试调试诊断结果shift_out_pass_k,第k分组的多存储体自测试的调试诊断结束;
3.12测试机台判断第k分组的pass_all_k信号是否有效,若pass_all_k信号有效,则第k分组需要测试的存储体均自测试成功,转3.14;若pass_all_k信号无效,则表明第k分组内有自测试失败的存储体,转3.13;
3.13测试机台结合shift_in_k和shift_out_pass_k定位第k分组失效的存储体的位置,方法是:
3.13.1令i=1;令第k组失效存储体集合F_k为空集,F_k用于存放第k组失效存储体的序号;令失败存储体的数量s_k为0;
3.13.2测试机台判断shift_out_pass_k的第i个节拍的电平,若shift_out_pass_k的第i个节拍的电平为低,且shift_in_k的第i个节拍的电平为高,则测试机台诊断出第k分组中的memory_i测试失败,即第i个存储体失效,将i添加到失效存储体集合F_k中,令s_k=s_k+1;转3.13.3;若shift_out_pass_k的第i个节拍的电平为低,且shift_in_k的第i个节拍的电平为低,则测试机台判断第k分组中的memory_i不需要自测试,不判定为第i个存储体失效,直接转3.13.3;
3.13.3判定i是否小于第k组的存储体数量p,若小于p,令i=i+1,转3.13.2;若i等于p,则已诊断出第k分组所有失败存储体的位置,即得到了F_k,且得到了第k分组失败存储体的数量s_k;
3.14测试机台判断k是否小于m,若小于m,令k=k+1,令F=F∪F_k,s=s+s_k,转3.2;若k等于m,则表明所有测试分组结束,输出F和s,若F为空集,则表明所有存储体成功通过自测试,若F不为空,F中的序号即为未通过自测试的存储体序号,且s是未通过自测试的存储体的数量,多存储体的自测试结束。
2.如权利要求1所述的一种多存储体集成电路自测试的调试诊断方法,其特征在于第二步所述对多存储体的自测试进行分组的原则是:各个分组包含的多个存储体容量尽量均衡;每个分组内的存储体在芯片的物理位置尽量分散;所有分组的存储体的并集包含全部n个存储体。
3.如权利要求1所述的一种多存储体集成电路自测试的调试诊断方法,其特征在于3.3步所述节拍控制器产生的CK与selftest_clk频率相同,产生的SE与CK有效时长相等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910419227.2A CN110085276B (zh) | 2019-05-20 | 2019-05-20 | 一种多存储体集成电路自测试的调试诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910419227.2A CN110085276B (zh) | 2019-05-20 | 2019-05-20 | 一种多存储体集成电路自测试的调试诊断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110085276A CN110085276A (zh) | 2019-08-02 |
CN110085276B true CN110085276B (zh) | 2021-01-15 |
Family
ID=67420945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910419227.2A Active CN110085276B (zh) | 2019-05-20 | 2019-05-20 | 一种多存储体集成电路自测试的调试诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110085276B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110782941B (zh) * | 2019-09-12 | 2021-05-04 | 深圳市德明利技术股份有限公司 | 一种存储设备测试和自动分bin的方法、装置以及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197725B2 (en) * | 2001-07-03 | 2007-03-27 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit and testing method for the same |
CN106816178A (zh) * | 2016-12-19 | 2017-06-09 | 北京时代民芯科技有限公司 | 一种单芯片上多块嵌入式存储器的内建自测试设计方法 |
CN106856097A (zh) * | 2015-12-09 | 2017-06-16 | 爱思开海力士有限公司 | 半导体器件和包括它的半导体系统 |
CN107086053A (zh) * | 2016-02-15 | 2017-08-22 | 华邦电子股份有限公司 | 存储器控制装置及其存储器控制测试方法 |
US10234505B1 (en) * | 2017-02-27 | 2019-03-19 | Xilinx, Inc. | Clock generation for integrated circuit testing |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030054198A (ko) * | 2001-12-24 | 2003-07-02 | 삼성전자주식회사 | 다중 메모리의 테스트를 위한 bist 회로 및 그것을구비한 집적회로 장치 |
KR101907068B1 (ko) * | 2012-06-20 | 2018-10-11 | 에스케이하이닉스 주식회사 | 메모리 장치 |
-
2019
- 2019-05-20 CN CN201910419227.2A patent/CN110085276B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197725B2 (en) * | 2001-07-03 | 2007-03-27 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit and testing method for the same |
CN106856097A (zh) * | 2015-12-09 | 2017-06-16 | 爱思开海力士有限公司 | 半导体器件和包括它的半导体系统 |
CN107086053A (zh) * | 2016-02-15 | 2017-08-22 | 华邦电子股份有限公司 | 存储器控制装置及其存储器控制测试方法 |
CN106816178A (zh) * | 2016-12-19 | 2017-06-09 | 北京时代民芯科技有限公司 | 一种单芯片上多块嵌入式存储器的内建自测试设计方法 |
US10234505B1 (en) * | 2017-02-27 | 2019-03-19 | Xilinx, Inc. | Clock generation for integrated circuit testing |
Also Published As
Publication number | Publication date |
---|---|
CN110085276A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100447910B1 (ko) | 제조 테스트시 큰 임베디드 어레이의 효율적이고 빠른비트매핑을 위한 어레이 내장형 셀프 테스트(abist) | |
US7434131B2 (en) | Flexible memory built-in-self-test (MBIST) method and apparatus | |
US8156391B2 (en) | Data controlling in the MBIST chain architecture | |
US7603595B2 (en) | Memory test circuit and method | |
US20020194558A1 (en) | Method and system to optimize test cost and disable defects for scan and BIST memories | |
US7814385B2 (en) | Self programmable shared bist for testing multiple memories | |
JP3893238B2 (ja) | 半導体記憶装置の不良解析装置 | |
EP0472818A2 (en) | Built-in self test for integrated circuits | |
CN111308329B (zh) | 用于众核计算芯片可测性设计的电路、装置及方法 | |
US7203873B1 (en) | Asynchronous control of memory self test | |
US7251757B2 (en) | Memory testing | |
US8780648B2 (en) | Latch based memory device | |
US20060184848A1 (en) | Semiconductor integrated circuit having test function and manufacturing method | |
US7533309B2 (en) | Testing memories using algorithm selection | |
Tan et al. | Testing of UltraSPARC T1 microprocessor and its challenges | |
US7797594B1 (en) | Built-in self-test of 3-dimensional semiconductor memory arrays | |
CN110085276B (zh) | 一种多存储体集成电路自测试的调试诊断方法 | |
Makar et al. | Testing of Vega2, a chip multi-processor with spare processors. | |
CN110415751B (zh) | 一种可参数化配置的存储器内建自测试电路 | |
CN100346309C (zh) | 存储器在板测试方法 | |
Cheng | Comprehensive study on designing memory BIST: algorithms, implementations and trade-offs | |
Ghale et al. | Design and implementation of memory BIST for hybrid cache architecture | |
JP2001222897A (ja) | 半導体試験装置 | |
JPH07198782A (ja) | 診断回路 | |
US20230253063A1 (en) | Repairable latch array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |