一种单芯片上多块嵌入式存储器的内建自测试设计方法与流程

文档序号:12598579阅读:281来源:国知局
一种单芯片上多块嵌入式存储器的内建自测试设计方法与流程

本发明涉及一种单芯片上多块嵌入式存储器的存储器自建内测试(Memory Built-In Self Test,MBIST)设计方法,特别是各个存储器工作频率相差较大、版图位置相隔较远时的MBIST设计方法,属于半导体数字集成电路设计和测试领域,主要应用于半导体数字集成电路的片上嵌入式存储器的MBIST设计过程。



背景技术:

随着集成电路的发展,芯片集成度迅速提高,而嵌入式存储器在整个芯片内部所占的比例越来越大,采用更快、更大的片上存储器是未来必然的发展趋势。基于功能向量测试存储器的方法,受测试难度、测试覆盖率、测试效率的制约,已经不为芯片设计厂商所接受。目前,存储器测试最常用的测试方法是MBIST,即采用电子设计自动化(Electronic Design Automation,EDA)软件工具,针对不同的故障类型,采用对存储器相应的读写操作算法,在电路内部插入存储器自测试逻辑结构,通过对片上嵌入式存储器的读写操作,并将存储器的输出与预期的结果在芯片内部进行比较,判断存储器是否存在故障,从而完成存储器的测试。

由于在以往芯片中集成存储器数量不是很大,并且存储器测试逻辑本身会占用一定的面积和功耗,传统的做法是采用一个控制器进行全部存储器的MBIST测试;同时,存储器测试时钟采用与功能时钟复用的形式,无法实现对MBIST测试时钟的灵活控制;此外,在扫描测试时,由于存储器的输出是不可控的,所以对于扫描测试覆盖率是一种损失,会带来扫描测试覆盖率的降低。

目前,单芯片很多情况下具有丰富的功能,往往在芯片内部集成大量的分块式的存储器用于实现各自不同的数据或程序存储功能,并且布局在芯片的不同位置,如果在芯片内部只插入一个控制器,则会使得整块芯片的全部存储器测试时间很大,尤其在大批量供货的产品中,使得测试成本变得难以接受,并且带来版图设计的布线过程中存在绕线过长问题,使得时序难以收敛。



技术实现要素:

本发明要解决的技术问题是:克服现有技术的不足,提供一种单芯片上多块嵌入式存储器的内建自测试设计方法,能够有效提高测试效率,增加测试灵活性,同时实现时序的快速收敛,提升测试覆盖率,降低测试成本。

本发明的技术解决方案是:一种单芯片上多块嵌入式存储器的内建自测试设计方法,包括以下步骤:

(1)根据单芯片上每个存储器的工作频率、位宽、大小、端口类型,为每个存储器产生内建自测试库;

(2)根据每个存储器的工作频率、位宽、大小、端口类型以及版图布局,确定控制器的个数以及每个控制器对应测试的存储器,以保证每个控制器的总测试时间均衡;

(3)为单芯片增加N个存储器测试时钟端口、存储器测试逻辑复位端口bist_rst、N个存储器测试使能端口、扫描测试模式端口scan_mode、N个存储器测试通过端口、N个存储器测试失效端口,其中N为控制器的个数;

(4)利用MBIST测试逻辑插入工具,根据新增加的芯片端口和每个存储器的内建自测试库,生成每个存储器的自测试逻辑,并插入到单芯片中;

(5)在单芯片上为每个控制器增加时钟选择逻辑电路,所述时钟选择逻辑电路根据外部输入工作模式控制信号确定单芯片处于工作模式还是存储器自测试模式,并在单芯片处于存储器自测试模式时根据外部输入的存储器测试逻辑时钟选择信号确定存储器的自测试时钟,并输出给对应的控制器;

(6)每个控制器根据对应存储器的自测试逻辑和工作模式生成测试激励,完成对应存储器的自动测试,并通过该控制器对应的存储器测试通过端口或存储器测试失效端口将测试结果输出,完成每个存储器的内建自测试。

所述步骤(2)中每个控制器对应测试的存储器为一个或多个,且当控制器测试多个存储器时,所述多个存储器的工作频率相同。

所述步骤(4)中每个存储器的自测试逻辑包括控制器逻辑、选择逻辑和旁路逻辑。

所述步骤(5)中在单芯片上为每个控制器增加时钟选择逻辑电路之前首先为单芯片增加存储器测试逻辑时钟选择端口bist_atsp以及每个控制器的工作模式控制端口bist_mode,所述工作模式控制端口bist_mode用于接收外部输入的工作模式控制信号,所述存储器测试逻辑时钟选择端口bist_atsp用于接收外部输入的存储器测试逻辑时钟选择信号。

时钟选择逻辑电路包括与门、或门和两路选择器;

其中或门的一个输入端与片上时钟产生模块的输出相连,另一个输入端与工作模式控制端口bist_mode相连,输出端口用于输出功能时钟信号function_clock;与门的一个输入端与片上时钟产生模块的输出相连,另一个输入端与工作模式控制端口bist_mode相连,输出端口与两路选择器的一个输入端连接;两路选择器的另一个输入端与控制器对应的存储器测试时钟端口相连,两路选择器的选择端与存储器测试逻辑时钟选择端口bist_atsp连接,输出端用于向对应控制器输出存储器测试时钟信号bist_clock;其中片上时钟产生模块根据锁相环PLL的输出时钟产生每个控制器的存储器测试时钟。

本发明与现有技术相比的有益效果是:

(1)本发明是在现有MBIST测试方法的基础上,通过增加多个控制器和芯片端口的方式,以及对存储器所属控制器的相应划分,能够更好地在测试效率、测试功耗、芯片由于存储器测试增加面积等方面取得平衡,并减少布线时控制器的绕线长度,有利于时序收敛。

(2)本发明通过时钟选择逻辑电路选择锁相环输出时钟或者存储器测试时钟端口bist_clk,实现能够在功能模式下,存储器测试逻辑的时钟关闭;在存储器测试模式下,功能逻辑的时钟关闭,显著降低存储器测试时的电路功耗。

(3)本发明通过多路选择器可以选择PLL产生的高频时钟或外部输入的存储器测试时钟,采用片上锁相环PLL产生的高频时钟,可以降低对测试仪高速输入时钟的要求,实现存储器的在速测试;采用外部输入的存储器测试时钟,可以进行低速测试,有利于MBIST测试的调试。

(4)本发明在自测试逻辑中增加旁路逻辑,在扫描测试模式下,通过将存储器的输入进行逻辑运算后连接到扫描链上,使得存储器的周边逻辑变得可控,并具有可观测性,提高芯片的整体扫描测试覆盖率。

附图说明

图1是本发明多个控制器结构图;

图2是本发明中旁路逻辑在扫描测试模式下的等效电路;

图3是本发明时钟选择逻辑结构图;

图4是本发明单芯片多块嵌入式存储器的MBIST设计方法的实施流程图;

图5是本发明在某总线控制电路芯片中的具体实例。

具体实施方式

本发明针对现有的采用单一时钟方式的单一控制器测试内嵌存储器的方法在测试效率、时序收敛、测试灵活性以及扫描测试覆盖率上的不足,提出了一种单芯片上多块嵌入式存储器的内建自测试设计方法,既可以有效提高测试效率,增加测试灵活性,又可以实现时序的快速收敛,提升测试覆盖率。

本发明的方法包括以下步骤:

如图4所示,本发明的实现过程是首先根据SoC芯片所采用的存储器的类型,包括大小、位宽、端口类型,分别对每一种存储器定义相应的MBIST库,MBIST库包括端口定义、读写操作时序定义。其次是根据芯片中所采用存储器的类型,以及各块存储器的工作频率、功能和版图位置,进行MBIST测试控制器Controller的划分,确定采用多少个控制器Controller来完成SoC芯片中存储器的测试,以及每个控制器Controller所测试的存储器,以保证每个控制器的总测试时间均衡;同时,当一个控制器测试多个存储器时,所述多个存储器的工作频率相同。第三,采用MBIST测试逻辑插入工具,为单芯片增加N个存储器测试时钟端口、存储器测试逻辑复位端口bist_rst、N个存储器测试使能端口、扫描测试模式端口scan_mode、N个存储器测试通过端口、N个存储器测试失效端口,其中N为控制器的个数,将端口对应到每个控制器,并将每个控制器Cotroller对应到所测试的存储器。第四,利用MBIST测试逻辑插入工具,根据新增加的芯片端口和每个存储器的内建自测试库,生成每个存储器的自测试逻辑(控制器逻辑、选择逻辑和旁路逻辑),并插入到单芯片中。第五,在完成芯片MBIST测试结构插入的芯片中,增加新的芯片端口bist_mode、bist_atsp,以及时钟选择逻辑电路1、时钟选择逻辑电2,并按照图1所示的连接方式通过手动修改的方法进行连接,形成包含多个MBIST时钟选择逻辑、多个自测试逻辑的芯片设计,完成单芯片多块嵌入式存储器的MBIST设计。第六,每个控制器根据对应存储器的自测试逻辑和工作模式生成测试激励,完成对应存储器的自动测试,并通过该控制器对应的存储器测试通过端口或存储器测试失效端口将测试结果输出,完成每个存储器的内建自测试。

时钟选择逻辑电路结构和连接方式如下:时钟选择逻辑电路包括与门、或门和两路选择器;

实施例:

以某个单芯片上有三个存储器Memory1、Memory2、Memory3为例,其中Memory1为双端口,大小是2048(即地址线宽度为11位),位宽是8位,工作频率为120MHz。Memory2和Memory3均为单端口,大小是1024(即地址线宽度为10位),位宽是8位,工作频率为60MHz。且在版图布局上,Memory2和Memory3距离较近。

利用批处理工具,为三个存储器产生内建自测试库。确定Memory1需要一个控制器Controller1,Memory2和Memory3共用一个控制器Controller2.

为单芯片增加2个存储器测试时钟端口bist_clk1和bist_clk2、存储器测试逻辑复位端口bist_rst、2个存储器测试使能端口bist_en1和bist_en2、扫描测试模式端口scan_mode、2个存储器测试通过端口test_done1和test_done2、2个存储器测试失效端口fail_h1和fail_h2。

利用Mentor Graphics公司的MBIST测试逻辑插入工具MBISTArchitect,根据新增加的芯片端口和每个存储器的内建自测试库,在原单芯片的设计基础上生成每个存储器的自测试逻辑(控制器逻辑、选择逻辑和旁路逻辑),并插入到单芯片中。

在单芯片上增加存储器测试逻辑时钟选择端口bist_atsp,并为Controller1增加工作模式控制端口bist_mode以及时钟选择逻辑电路1,为Controller2增加工作模式控制端口bist_mode以及时钟选择逻辑电路2。

时钟选择逻辑电路1或门和与门的一个输入端均与时钟产生模块的第一个输出时钟连接,或门和与门的另一个输入端均与bist_mode相连,或门的输出端用于输出功能时钟信号function_clock1,与门的输出端与两路选择器的一个输入端连接,两路选择器的另一个输入端与另一个输入端与bist_clk1连接,两路选择器的选择端与bist_atsp连接,两路选择器的输出端口用于向控制器Controller1输出存储器测试时钟信号bist_clock1。

时钟选择逻辑电路2或门和与门的一个输入端均与时钟产生模块的第二个输出时钟连接,或门和与门的另一个输入端均与bist_mode相连,或门的输出端用于输出功能时钟信号function_clock2,与门的输出端与两路选择器的一个输入端连接,两路选择器的另一个输入端与另一个输入端与bist_clk2连接,两路选择器的选择端与bist_atsp连接,两路选择器的输出端口用于向控制器Controller2输出存储器测试时钟信号bist_clock2。

其它端口连接方式如下:

片上锁相环PLL的输入,与芯片输入端口参考时钟ref_clk相连;

时钟选择逻辑电路1和2的输出function_clock1和function_clock2,与内部功能逻辑相连,时钟选择逻辑电路1的输出bist_clock1,与控制器1的输入连接,时钟选择逻辑电路2的输出bist_clock1,与控制器2的输入连接。

以下连接由工具自动实现,其中选择逻辑为原有设计:

控制器Controller1的输入同时与bist_clk、bist_rst、bist_en1、以及旁路逻辑1的输出相连;控制器Controller1的输出与test_done1以及fail_h1相连。

选择逻辑1的输入,与功能逻辑1、控制器Controller1的输出相连;选择逻辑1的输出,与存储器Memory1的输入、旁路逻辑1的输入相连;

存储器Memory1的输入,与选择逻辑1的输出相连;存储器Memory1的输出,与旁路逻辑1的输入相连;

旁路逻辑1的输入,与scan_mode、选择逻辑1的输出以及Memory1的输出相连;旁路逻辑1的输出,与控制器Controller1的输入、功能逻辑1的输入相连;

控制器Controller2的输入同时与bist_clk、bist_rst、bist_en2以及旁路逻辑2的输出相连;控制器Controller2的输出与test_done2以及fail_h2相连。

选择逻辑2的输入,与功能逻辑3、功能逻辑5、控制器Controller2的输出相连;选择逻辑2的输出,与存储器Memory2、Memory3的输入、旁路逻辑2的输入相连;

存储器Memory2的输入,与选择逻辑2的输出相连;存储器Memory2的输出,与旁路逻辑2的输入相连;

存储器Memory3的输入,与选择逻辑2的输出相连;存储器Memory2的输出,与旁路逻辑2的输入相连;

旁路逻辑2的输入,与芯片输入端口scan_mode、选择逻辑2的输出、Memory2的输出、Memory3的输出相连;旁路逻辑2的输出,与控制器Controller2的输入、功能逻辑4、功能逻辑6的输入相连。

连接后的单芯片如图1所示。

针对实施例,阐述本发明工作原理如下:

当scan_mode=0,bist_mode=0时,时钟选择逻辑电路1和2输出function_clock为片上锁相环PLL的输出,输出bist_clock为固定电平0,存储器测试逻辑的时钟为关闭状态,芯片工作在功能模式;旁路逻辑1直接输出Memory1的输出,旁路逻辑2直接输出Memory2、Memory3的输出。

当scan_mode=0,bist_mode=1时,时钟选择逻辑电路1和2输出function_clock为固定电平1,输出bist_clock为片上锁相环PLL的输出,或者芯片端口输入时钟bist_clk,芯片工作在存储器内建自测试模式;旁路逻辑1的输出为Memory1输入经过逻辑运算后的结果;旁路逻辑2的输出为Memory2、Memory3输入经过逻辑运算后的结果。

如图3所示,当scan_mode=0,bist_mode=1,bist_atsp=1时,时钟选择逻辑电路1和2输出function_clock为固定电平1,功能逻辑的时钟为关闭状态,输出bist_clock为芯片端口输入时钟bist_clk,即低速测试;MBIST测试时钟采用的是可调整频率大小的芯片输入时钟bist_clk;

当scan_mode=0,bist_mode=1,bist_atsp=0时,时钟选择逻辑电路1和2输出function_clock为固定电平1,功能逻辑的时钟为关闭状态,输出bist_clock为片上锁相环PLL的输出,即在速测试。

当scan_mode=0,bist_mode=1时,芯片工作在存储器自测试模式,进行如下的操作:

当bist_en1=0时,控制器Controller1中的状态机停止工作,通过选择逻辑1将功能逻辑1的输出到Memory1;

当bist_en1=1时,控制器Controller1中的状态机开始工作,在bist_clk1的控制下产生存储器测试激励,通过选择逻辑1将测试激励输入到Memory1;Memory1的输出直接输出到控制器Controller1中的比较器Comparator,与Memory1预定的期望结果进行比较,比较结果以test_done1、fail_h1作为标志,当Memory1测试完成并且没有错误发生时,test_done1由低电平变为高电平,当Memory1在测试过程中发生错误时,fail_h1由低电平变为高电平直至测试结束,并且在测试完成时test_done1一直为低电平。

当bist_en2=0时,控制器Controller2中的状态机停止工作,通过选择逻辑2将功能逻辑3、功能逻辑5的输出到Memory2、Memory3;

当bist_en2=1时,控制器Controller2中的状态机开始工作,在bist_clk2的控制下产生存储器测试激励,通过选择逻辑2将测试激励输入到Memory2、Memory3。Memory2和Memory3的输出直接输出到控制器Controller2中的比较器Comparator,与Memory2和Memory3预定的期望结果进行比较,比较结果以test_done2、fail_h2作为标志,当Memory2和Memory3测试完成并且没有错误发生时,test_done2由低电平变为高电平,当Memory1在测试过程中发生错误时,fail_h2由低电平变为高电平直至测试结束,并且在测试完成时test_done2一直为低电平。

如图2所示,本发明是在MBIST测试逻辑插入过程中,同时插入旁路逻辑结构,使得在扫描测试时能够测试到Memory周边逻辑,从而提高整体芯片的扫描测试覆盖率。

以控制器Controller1为例,当scan_mode=0时,芯片工作在功能模式或者存储器测试模式下,此时旁路逻辑的输出为Memory1的输出。

当scan_mode=1,bist_en1=0时,芯片工作在扫描测试模式下,此时旁路的输出为Memory1所有输入端经过旁路逻辑的逻辑运算后,输出到功能逻辑,串入扫描链,使得Memory1的周边逻辑可控和可观测,提高测试覆盖率。

本发明中,当bist_en1由0变为1时,控制器Controller1开始对Memory1进行测试;当bist_en2由0变为1时,控制器Controller2开始对Memory2、Memory3进行测试;二者之间的测试互不干扰,两个控制器可以同时启动测试,从而大幅度降低整体芯片的测试时间,也可以在其中一个完成测试后再启动另一个测试,从而降低MBIST测试时的功耗,并有利于调试,以及定位MBIST出现错误的位置。

本发明根据芯片上存储器的工作频率、大小、端口类型、数量以及版图布局来确定合理的存储器内建自测试方案和结构,在设计中插入多块存储器内建自测试逻辑,实现串行和并行测试的多种组合测试方式,达到存储器的测试时间、测试成本、测试功耗、测试逻辑所增加面积的最优化,提高测试效率,并有利于版图设计时的布局布线和时序收敛;增加时钟选择逻辑电路,能够实现在速测试和低速测试;此外,增加存储器的旁路逻辑,能够消除存储器阴影逻辑带来的数字逻辑扫描测试时的测试覆盖率的损失,提升测试覆盖率。

本发明主要应用于单芯片中存在多块Memory时的MBIST设计,尤其是各块Memory大小、类型、工作频率、版图布局差异化较大时,能够大幅度降低芯片MBIST的测试时间,有利于时序收敛,提升扫描测试时的测试覆盖率,实现测试时钟的灵活选择,便于调试。

如图5所示,本发明的显著效果在开发某总线控制电路芯片的实际项目中得到了体现。该总线控制电路芯片中,共包括9块Memory,其中1块Memory为单端口,深度为128(即地址线宽度为7位),位宽为39bit,工作频率为60MHz;3块Memory为单端口,深度为2048(即地址线宽度为11位),位宽为39bit,工作频率为60MHz;5块Memory为双端口,深度为2048(即地址线宽度为11位),位宽为39bit,工作频率为120MHz。在版图布局时,由于Memory面积较大,以及出于功能应用考虑,将各块Memory放置在芯片四周。采用本发明方法,共采用6个控制器Controller,分别控制Memory1~2,Memory3,Memory4,Memory5,Memory6~7,Memory8~9,可以将测试时间降低为原来的25%,并且更容易达到时序收敛。

本发明未详细说明部分属本领域技术人员公知常识。

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