技术领域
[0001] 本公开涉及半导体领域,尤其涉及一种测试电路和存储器。
相关背景技术
[0002] 随着半导体技术的不断发展,人们在制造和使用计算机等设备时,对数据的传输速度提出了越来越高的要求。以动态随机存取存储器(Dynamic Random Access Memory,DRAM)为例,为了保证其存储功能的正确性,需要对存储器进行测试,例如进行存储器内建自测试(Memory Build In Self Test,MBIST)。MBIST电路需要支持各种测试模式且其中的各类命令需要满足行业标准的规定,因此其具体的电路设计成为一种难题。
具体实施方式
[0082] 下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。需要指出,本公开实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了图示或描述的以外的顺序实施。
[0083] 以下为本公开实施例中涉及到的专业名词解释以及部分名词的对应关系:
[0084] 动态随机存取存储器(Dynamic Random Access Memory,DRAM);
[0085] 同步动态随机存取存储器(Synchronous Dynamic Random Access Memory,SDRAM);
[0086] 双倍数据速率内存(Double Data Rate SDRAM,DDR);
[0087] 第五代DDR(5th DDR,DDR5);
[0088] 低功率DDR(Low Power DDR,LPDDR);
[0089] 待机状态(IDLE);
[0090] 老化测试(Burn in);
[0091] 毫秒(millisecond,ms);
[0092] 微秒(microsecond,us)
[0093] 纳秒(nanosecond,ns);
[0094] 兆赫兹(Megahertz,MHz)
[0095] 固态技术协会(Joint Electron Device Engineering Council,JEDEC)[0096] 内存行地址选通脉冲预充电时间(tRP);
[0097] 内存行地址传输到列地址的延迟时间(tRCD);
[0098] 写恢复延时(tWR)。
[0099] 连续执行两个读取操作的两个读取命令之间的最小时间间隔(tCCD)。
[0100] MBIST是一种存储器内建自测试技术,它集成在存储器内部,通过生成读写命令及地址等信息对存储器(以DRAM为例进行说明)进行测试。由,JEDEC提供的DDR5标准(DDR5 JEDEC)可知,每个存储单元(Memory cell)必须在32ms之内进行一次刷新,同时,在刷新命令的执行前后,DRAM必须处于待机状态(IDLE),也就是说,在刷新命令的执行前后,DRAM需要执行激活命令ACT从而处于IDLE状态。
[0101] 在老化(Burn in)测试模式或者针对保留时间施加压力的测试时,所需的刷新时间会发生变化。具体来说,在Burn in测试时,存在工作阶段(3ms)和集中刷新阶段(1ms),且工作阶段和集中刷新阶段交替存在,DRAM在工作阶段是不进行刷新的,而是在集中刷新阶段集中执行多次刷新。在该模式下,刷新命令的间隔、预充命令的间隔均是固定的,因此可以通过在工作阶段可以通过对预充命令进行计数来实现掌握该阶段持续的时间,在集中刷新阶段可以通过刷新命令进行计数来实现掌握该阶段持续的时间。具体的,预充命令的间隔为268tck×5ns=1340ns,可以通过计数2240个预充命令获知工作阶段执行结束;同时,刷新命令的间隔为tRFC为315ns,可以通过计数3200个刷新命令获知集中刷新阶段执行结束。
[0102] 除此之外,MBIST电路还支持时序调节,此时一些命令间隔(例如tRP、tRCD、tWR、tCCD等)不再固定,因此无法通过对预充命令、刷新命令的计数来掌握时间。同时为了支持数据保留时间(Retention)测试以及列优先读写方式(Y FAST测试),需要执行平均刷新操作,即每间隔一定时间插入一次刷新命令,且间隔时间需要可调。最后,刷新命令的产生是根据测试时钟信号产生的,而且测试时钟信号的频率也具有多种取值。
[0103] 也就是说,对于MBIST电路,需要遵循以下规则产生刷新命令及激活命令:
[0104] (1)在Burn in测试模式下,在集中刷新阶段产生3200个刷新命令,刷新间隔固定(例如,315ns);在工作阶段不产生刷新命令;
[0105] (2)在正常模式下,通过平均刷新的方式每间隔一定时间产生一次刷新命令,且间隔时间可调固定(例如,1.95us,3.9us,7.8us);
[0106] (3)在Burn in模式的集中刷新阶段的最后一个刷新命令之后以及平均刷新中每一个刷新命令之后,间隔规定的时间产生激活命令,从而使得存储器处于IDLE状态;
[0107] (4)刷新命令的初始源需要基于频率可变的测试时钟信号产生。
[0108] 下面将结合附图对本公开各实施例进行详细说明。
[0109] 在本公开的一实施例中,参见图1,其示出了本公开实施例提供的一种测试电路10的结构示意图。该测试电路10可以应用于存储器,用于生成BIST测试中涉及的部分操作命令。存储器可以为DRAM、SDRAM、DDR、LPDDR等,本公开实施例仅以DDR5为例进行说明但不构成具体限定。
[0110] 如图1所示,该测试电路10包括:
[0111] 第一命令电路11,配置为基于接收到的测试时钟信号,产生初始刷新命令,且相邻2个初始刷新命令之间的时间间隔为第一时长;
[0112] 选择电路12,与第一命令电路11连接,配置为接收测试预充命令、初始刷新命令和测试时钟信号;在老化测试模式(Burn in)下,将测试预充命令或初始刷新命令输出为中间信号;在正常模式下,将测试时钟信号输出为中间信号;
[0113] 第一计数器13,与选择电路12连接,配置为对中间信号进行计数,产生第一计数值;
[0114] 第二命令电路14,与第一命令电路11和第一计数器13均连接,配置为接收第一计数值和初始刷新命令,在老化测试模式下,若第一计数值表征存储器在集中刷新阶段产生的初始刷新命令的数值,则基于接收到的每一初始刷新命令产生1个测试刷新命令;在正常模式下,在每一次第一计数值表征经过预设时长后,利用接收到的第1个初始刷新命令产生1个测试刷新命令。
[0115] 在这里,测试刷新命令是MBIST中的刷新命令,用于指示存储器执行一次刷新操作,
[0116] 这样,(1)在Burn in测试模式下,利用测试预充命令或初始刷新命令作为计时依据,以区分目前存储器处于集中刷新阶段或工作阶段;并在存储器处于集中刷新阶段时,利用每一初始刷新命令生成一个测试刷新命令,从而实现前述的3200次刷新;(2)在正常模式下,以测试时钟信号作为计时依据,每间隔预设时长,利用1个初始刷新命令产生1个测试刷新命令,从而实现平均刷新操作。从而,通过同一个电路能够同时支持老化测试模式和正常模式中刷新命令的生成需求,无需单独设计两种电路,能够节省电路面积,支持丰富的测试需求。
[0117] 需要说明的是,如前述,对于Burn测试模式,在集中刷新阶段,第一计数器13需要计数3200个初始刷新命令;在工作阶段,第一计数器13需要计数2240个测试预充命令。因此,在一种具体的实施例中,第一计数器13可以体现为12个触发器及异或门共同形成的线性反馈移位寄存器((Linear Feedback Shift Register,LFSR),即第一计数值可以表示为12
CNT<11:0>,可以实现2 ‑1=4095个计数状态,满足计数需求。
[0118] 在本公开实施例中,测试预充命令、初始刷新命令、测试刷新命令均通过脉冲的形式体现;在其他的实施例中,也可以体现为其他的信号变化特征。
[0119] 在本公开实施例中,第一时长为固定值,例如:315ns;预设时长为非固定值(允许用户进行调整),例如1.95us、3.9us,7.8us。
[0120] 另外,测试时钟信号的频率具有多个取值。具体的,测试电路10还会接收频率指示信号,并根据频率指示信号产生相对应的测试时钟信号。换句话说,频率指示信号用于调整被传输至第一命令电路11的测试时钟信号的频率值。
[0121] 也就是说,第一命令电路11需要根据频率可变的测试时钟信号产生时间间隔固定为第一时长的初始刷新命令。
[0122] 因此,请参见图2,第一命令电路11包括:
[0123] 第二计数器111,配置为对接收到的测试时钟信号进行计数,输出第二计数值;
[0124] 第一译码单元112,与第二计数器111连接,配置为在第二计数值达到第一阈值时,输出1个第一刷新命令;
[0125] 第二译码单元113,与第二计数器111连接,配置为若第二计数值首次达到第二阈值,则输出1个第二刷新命令;以及,在第二计数值首次达到第二阈值之后,若第二计数值达到第二阈值的次数为预设数量,则输出1个第二刷新命令;预设数量为大于1的正整数;
[0126] 第一选择器114,与第一译码单元112和第二译码单元113连接,配置为接收频率指示信号,在频率指示信号表征测试时钟信号的频率为第一频率时,将第一刷新命令输出为初始刷新命令;在频率指示信号表征测试时钟信号的频率为第二频率时,将第二刷新命令输出为初始刷新命令。
[0127] 这样,在测试时钟信号为第一频率时,通过第一译码单元112生成第一刷新命令,且第一刷新命令的时间间隔为前述的第一时长;在测试时钟信号为第二频率时,通过第二译码单元113生成第二刷新命令,且第二刷新命令的时间间隔同样为前述的第一时长;通过第一选择器114根据测试时钟信号的频率选择第一刷新命令/第二刷新命令作为初始刷新命令,从而初始刷新命令的时间间隔固定为第一时长。
[0128] 应理解,如果测试时钟信号的频率还可以为第三频率、第四频率……则可以类比于第一译码单元112或第二译码单元113或任何常规的译码单元设计相应的第三译码单元、第四译码单元……并通过第一选择器114选择出所需的初始刷新命令。
[0129] 相应的,如图2所示,第二频率为第一频率的整倍数;第二译码单元113包括:
[0130] 第四译码器1131,配置为在第二计数值达到第二阈值时,输出1个待选命令;抽选电路1132,配置为对待选命令进行循环计数;基于首个待选命令产生1个第二刷新命令,以及,从第2个待选命令开始,每间隔预设数量的待选命令,输出1个第二刷新命令。
[0131] 这样,无论测试时钟信号的频率如何变化,第二计数器111执行一轮计数循环的计数数量是固定的,第二计数器111从某一计数状态(例如全1态)到下一个相同的计数状态(例如全1态)形成一个计数循环。这样,对于第一频率的测试时钟信号,每一轮计数循环均产生1个第一刷新命令;对于第二频率的测试时钟信号,每预设数量(预设数量=第二频率/第一频率)的计数循环才会产生1个第二刷新命令。
[0132] 另外,对于第一频率的测试时钟信号,第二计数值从第二默认值达到第一阈值的计时时长为第一计时时长;对于第二频率的测试时钟信号,第二计数值从第二默认值达到第二阈值的计时时长为第二计时时长,第二默认值是第二计数值被复位后的值;同时,延迟刷新命令相较于初始刷新命令延迟2个时钟周期,且时钟周期是指测试时钟信号的时钟周期;第一计时时长+2/第一频率=第二计时时长+2×2/第二频率。这样做的原因是:在每次第一计数值进行复位操作后,无论对于第一频率或第二频率的测试时钟信号,其第1个测试刷新命令产生的时间点必须是相同的,即刷新操作之前需要预留一定的时间执行预充电操作(tRP),以满足JEDEC的规定。
[0134] 需要说明的是,以下以第一频率为200MHz(时钟周期为5ns),第二频率为400MHz(时钟周期为2.5ns),预设数量为2,第一时长为315纳秒,第二默认值为全1状态为例,对第一命令电路11的具体结构进行说明。
[0135] 在此场景中,如图3所示,第二计数器111包括6个第二触发器201和第一异或门202;第二计数值包括6位子信号CNT_R<5:0>。这样,每一轮计数循环总共存在63个计数数量。另外,在复位第二计数器111后,第二计数值CNT_R<5:0>=111111(全1状态)。
[0136] 第一译码单元112包括第一与非门211、第二与非门212、第一或非门214、第二或非门215、第四与门216;第一与非门211的两输入端分别接收第4位计数子信号CNT_R<4>和第3位计数子信号CNT_R<3>,第二与非门212的两输入端分别接收第2位计数子信号CNT_R<3>和第0位计数子信号CNT_R<0>,第一或非门214的第一输入端接收第5位计数子信号CNT_R<5>,第一或非门214的第二输入端接收第1位计数子信号CNT_R<1>,第二或非门215的第一输入端与第一与非门211的输出端连接,第二或非门215的第二输入端与第二与非门212的输出端连接,第四与门216的第一输入端与第一或非门214的输出端连接,第四与门216的第二输入端与第二或非门215的输出端连接,第四与门216的输出端输出第一刷新命令REF_A。
[0137] 简单来说,请参见表1,第一译码单元112对第二计数值CNT<5:0>进行译码,并在第二计数值CNT<5:0>=011101(除第二默认值之外的第3个计数状态)时,产生一个第一刷新命令REF_A;即复位后延迟3个tck(测试时钟信号的时钟周期)产生第1个第一刷新命令REF_A,同时在后续生成测试刷新命令时还会存在2个tck的延迟(具体请参见后续说明)。因此,对于第一频率(时钟周期为5ns)的测试时钟信号BIST_CLK,在复位后,第1个测试刷新命令将在5×5=25ns后产生;后续产生的第一刷新命令REF_A与前一第一刷新命令REF_A的间隔均为一轮计数循环,即63×5=315ns。
[0138] 表1
[0139]
[0140] 如图3所示,对于第二译码单元113,第四译码器1131包括第五与门221(图3中由一与非门和一非门构成)、第三或非门222、第六与门223(图3中由一与非门和一非门构成),第五与门221的三输入端分别接收第0位计数子信号CNT_R<0>、第1位计数子信号CNT_R<1>和第3位计数子信号CNT_R<3>,第三或非门222的三输入端分别接收第5位计数子信号、第4位计数子信号和第2位计数子信号,第六与门223的第一输入端与第五与门221的输出端连接,第六与门223的第二输入端与第三或非门222的输出端连接,第六与门223的输出端输出待选命令REF_b;抽选电路1132包括第三触发器231、延迟单元232、第七与门233,第三触发器231的时钟端和延迟单元232的输入端均接收待选命令REF_b,第三触发器231的输入端与自身的反相输出端连接,第七与门233的第一输入端与第三触发器231的输出端连接,第七与门233的第二输入端与延迟单元232的输出端连接,第七与门233的输出端输出第二刷新命令REF_B。
[0141] 类似的,请参见表1,第四译码器1131对第二计数值CNT<5:0>进行译码,并在第二计数值CNT<5:0>=001011(除默认值之外的第8个计数状态)时产生一个待选命令REF_b,第1个待选命令REF_b固定产生第1个第二刷新命令REF_B,即延迟了8个tck产生第1个第二刷新命令REF_B,同时在后续生成测试刷新命令时还会存在2个tck的延迟(具体请参见后续说明);因此在复位后,第1个测试刷新命令将在10×2.5=25ns后产生。也就是说,对于第二频率(时钟周期为2.5ns)的测试时钟信号BIST_CLK,测试刷新命令将在10×2.5=25ns后产生。
[0142] 后续产生的待选命令REF_b与前一待选命令REF_b的间隔均为一轮计数循环,即63×2.5=157.5ns;同时,第1个待选命令REF_b将作为第二刷新命令REF_B进行输出,在此之后,每隔1个待选命令REF_b中的下一个待选命令REF_b将作为第二刷新命令REF_B进行输出,此时第二刷新命令REF_B的间隔仍然是315ns。
[0143] 这样,无论测试时钟信号BIST_CLK的频率为第一频率还是第二频率,第1个测试刷新命令总是出现在复位后的25ns之后(满足tRP要求),同时后续的初始刷新命令REF与前1个初始刷新命令REF的间隔总是315ns。
[0144] 如前述,在老化测试模式中,存储器交替处于集中刷新阶段和工作阶段,在集中刷新阶段,将初始刷新命令REF作为计时依据以把握工作进程;在工作阶段,将测试预充命令作为计时依据以把握工作进程;在正常模式中,存储器需要将测试时钟信号BIST_CLK作为计时依据,以便后续实现平均刷新操作。
[0145] 基于此,如图4所示,选择电路12包括:
[0146] 第二选择器121,配置为若存储器处于集中刷新阶段,则将接收到的初始刷新命令REF输出为预选信号;若存储器处于工作阶段,则将接收到的测试预充命令BIST_PRE输出为预选信号;
[0147] 第三选择器122,与第二选择器121连接配置为接收预选信号和测试时钟信号BIST_CLK,在老化测试模式下,将预选信号输出为中间信号REF_CLK;在正常模式下,将测试时钟信号BIST_CLK输出为中间信号REF_CLK。
[0148] 具体来说,请参见图4,第二选择器121还用于接收第一窗口信号REF_WINDOW,用于在老化模式中指示存储器处于集中刷新阶段或者工作阶段;第三选择器122还用于接收模式标志信号,用于指示存储器处于老化测试模式或者正常模式。也就是说,在一些实施例中,第二选择器121的选择端接收第一窗口信号REF_WINDOW,第二选择器121的两输入端分别接收初始刷新命令REF和测试预充命令BIST_PRE,第二选择器121的输出端输出预选信号;第三选择器122的选择端接收模式标志信号,第三选择器122的两输入端分别接收预选信号和测试时钟信号BIST_CLK,第三选择器122的输出端输出中间信号REF_CLK。在这里,第二选择器121和第三选择器122均可以利用二选一数据选择器实现。
[0149] 如前述,对于老化测试模式,需要在集中刷新阶段结束后,间隔规定的时间(315ns)产生1个测试激活命令,使得存储器处于IDLE状态;在正常模式下,每一个测试刷新命令之后均需要规定的时间(315ns)产生1个测试激活命令,使得存储器处于IDLE状态。这样,由于测试刷新命令和测试激活命令之间的间隔时间与连续2个初始刷新命令REF之间的间隔时间是完全一致的,因此可以利用这一点对测试激活命令的产生机制进行设计。
[0150] 在一些实施例中,如图5所示,第二命令电路14,还配置为在老化测试模式下,若第一计数值表征集中刷新阶段结束后,基于接收到的第1个初始刷新命令REF产生1个测试激活命令BIST_ACT;或者,在正常模式下,在每一次第一计数值表征经过预设时长后,基于接收到的第2个初始刷新命令REF产生1个测试激活命令BIST_ACT。
[0151] 这样,对于老化测试模式,在执行完集中刷新阶段的最后1个测试刷新命令BIST_REF(其基于1个初始刷新命令REF产生)后,下1个初始刷新命令REF将用于产生测试激活命令BIST_ACT,从而在集中刷新阶段结束后间隔315ns,产生1个测试激活命令BIST_ACT。对于正常模式,在每一次第一计数值表征经过预设时长后,后续接收的第1个初始刷新命令REF将用于产生1个测试刷新命令BIST_REF后续接收到的第2个初始刷新命令REF将用于产生1个测试激活命令BIST_ACT,这样测试刷新命令BIST_REF后间隔315ns同样会产生1个测试激活命令BIST_ACT,符合时序要求。
[0152] 在一些实施例中,如图6所示,第二命令电路14包括:
[0153] 主控电路141,配置为接收初始刷新命令REF、测试预充命令BIST_PRE和第一计数值,产生并输出第一窗口信号REF_WINDOW和激活指示信号REF_ACT;其中,在存储器允许执行刷新操作的阶段,第一窗口信号REF_WINDOW处于有效状态;在存储器允许执行激活操作的阶段,激活指示信号REF_ACT处于有效状态;
[0154] 采样电路142,配置为基于测试时钟信号BIST_CLK对初始刷新命令REF进行采样,产生延迟刷新命令;被采样的初始刷新命令REF与采样产生的延迟刷新命令之间间隔2个时钟周期(2tck),时钟周期是指测试时钟信号BIST_CLK的时钟周期;
[0155] 第一门控单元143,与主控电路141和采样电路142均连接,配置为仅在第一窗口信号REF_WINDOW处于有效状态,利用1个延迟刷新命令产生1个测试刷新命令BIST_REF;
[0156] 第二门控单元144,与主控电路141和采样电路142均连接,配置为仅在激活指示信号REF_ACT处于有效状态时,利用1个延迟刷新命令产生1个测试刷新命令BIST_REF。
[0157] 在这里,采样电路142的功能是:将相应的初始刷新命令REF进行延迟以产生延迟刷新命令,以匹配主控电路141进行逻辑处理时产生的延迟。在本公开实施例中,如图7所示,采样电路142包括第四触发器1421和第五触发器1422,第四触发器1421的输入端接收初始刷新命令REF,第五触发器1422的输入端与第四触发器1421的输出端连接,第四触发器1421和第五触发器1422的时钟端均接收测试时钟信号BIST_CLK,第五触发器1422输出延迟刷新命令。这样,采样电路142总共将初始刷新命令REF延迟2个时钟周期(tck),不仅匹配了主控电路141的处理延迟,而且还可以满足tRP时间的规定。
[0158] 这样,通过第一窗口信号REF_WINDOW识别出允许执行刷新操作的阶段,进而这一阶段中的初始刷新命令REF将用于产生测试刷新命令BIST_REF;通过激活指示信号REF_ACT识别出允许执行激活操作的阶段,进而这一阶段中的初始刷新命令REF将用于产生测试激活命令BIST_ACT。
[0159] 以下对第一窗口信号REF_WINDOW的变化原理进行说明。
[0160] 在一些实施例中,如图7所示,主控电路141包括:
[0161] 第一控制电路1411,与第一计数器13连接,配置为在老化测试模式下,对第一计数值进行译码,当译码结果表征集中刷新阶段结束或工作阶段结束时,均产生1个第一切换脉冲;
[0162] 信号产生电路1412,与第一控制电路1411连接,配置为产生第一窗口信号REF_WINDOW;在老化测试模式下,每接收到1个第一切换脉冲,将第一窗口信号REF_WINDOW的状态改变一次。
[0163] 这样,在老化测试模式下,通过第一切换脉冲切换第一窗口信号REF_WINDOW的状态,以指示存储器当前处于集中刷新阶段或工作阶段。
[0164] 需要说明的是,在老化测试模式下,第一窗口信号REF_WINDOW为有效时,表征存储器处于集中刷新阶段,第一窗口信号REF_WINDOW为无效时,表征存储器处于工作阶段。这样,对于集中刷新阶段,每经过第三阈值(例如3200个计数状态)的初始刷新命令REF,说明已经过1ms,从而产生1个切换脉冲,将第一窗口信号REF_WINDOW调整为无效,从而进入工作阶段;在工作阶段,每经过第四阈值(例如2240个计数状态)的测试预充命令BIST_PRE(每2个测试预充命令BIST_PRE的时间间隔为268tck×5ns=1340ns),说明已经过3ms,从而再次产生1个切换脉冲,将第一窗口信号REF_WINDOW调整为有效,从而进入集中刷新阶段。
[0165] 基于此,在一些实施例中,第一控制电路1411,具体配置为接收第一窗口信号REF_WINDOW;在第一窗口信号REF_WINDOW为有效状态的情况下,若第一计数值达到第三阈值),则产生1个第一切换脉冲;或者,在第一窗口信号REF_WINDOW为无效状态的情况下,若第一计数值达到第四阈值,则产生1个第一切换脉冲。
[0166] 同时,在正常模式下,只有在第一计数值的译码结果表征已经经过预设时长后才需要产生1个测试刷新命令和测试激活命令,即第一窗口信号REF_WINDOW的状态才会有可能发生切换。
[0167] 在一些实施例中,如图7所示,主控电路141还包括:
[0168] 第二控制电路1413,与第一计数器13连接,配置为在正常模式下对第一计数值进行译码;在译码结果表征经过预设时长的情况下,当接收到1个测试预充命令BIST_PRE或接收到2个初始刷新命令REF时,均产生1个第二切换脉冲;
[0169] 信号产生电路1412,还与第二控制电路1413连接,配置为在正常模式下,每接收到1个第二切换脉冲,将第一窗口信号REF_WINDOW的状态改变一次。
[0170] 这样,在正常模式下,每间隔预设时长,基于所接收的测试预充命令BIST_PRE(在预充操作完成之后才能够进行下一次刷新或者激活操作)将第一窗口信号REF_WINDOW调整为有效,即允许进行刷新操作;在接收到2个初始刷新命令REF后,将第一窗口信号REF_WINDOW调整为无效状态,即不允许执行刷新操作。
[0171] 在一些实施例中,如图7所示,第二控制电路1413包括:
[0172] 第三译码单元31,配置为对第一计数值进行译码,若译码结果表征经过预设时长,则产生1个译码脉冲;
[0173] 锁存单元32,与第三译码单元31连接,配置为接收译码脉冲和测试激活命令BIST_ACT,产生并输出第二窗口信号REF_WINDOW0;其中,每接收到1个译码脉冲,控制第二窗口信号REF_WINDOW0由无效状态变为有效状态,以及每接收到1个测试激活命令BIST_ACT,控制第二窗口信号REF_WINDOW0由有效状态变为无效状态;
[0174] 第一逻辑单元33,与锁存单元32连接,配置为若第二窗口信号REF_WINDOW0处于有效状态,则利用接收到第1个测试预充命令BIST_PRE产生1个第二结束脉冲PRE_END;
[0175] 刷新计数单元34,与锁存单元32和第一命令产生电路11连接,配置为若接收到2个初始刷新命令REF,则产生1个第三结束脉冲REF_END;
[0176] 第二逻辑单元35,配置为每接收到1个第二结束脉冲PRE_END或1个第三结束脉冲REF_END,产生并输出1个第二切换脉冲。
[0177] 需要说明的是,仅在正常模式下第二窗口信号REF_WINDOW0具有意义,其功能是:基于固定间隔(第二时长)产生第二窗口信号REF_WINDOW0,以使在正常模式下在第二窗口信号REF_WINDOW0内切换第一窗口信号REF_WINDOW的状态。
[0178] 在图7中,在第一窗口信号REF_WINDOW和激活指示信号REF_ACT的有效状态均为高电平的情况下,第一门控单元143包括第一与门,第二门控单元144包括第二与门;在第二窗口信号REF_WINDOW0的有效状态为高电平的情况下,第一逻辑单元34包括第三与门;在第二结束脉冲PRE_END和第三结束脉冲REF_END均为正脉冲的情况下,第二逻辑单元35包括第一或门。但这并不构成相应限制。
[0179] 需要说明的是,锁存单元32至少可以利用SR锁存器实现;根据所采用的具体控制逻辑,也可以引入相应的逻辑门如与门、或门、非门等。
[0180] 这样,正常模式的工作过程如下:(1)若第二计数值的译码结果指示经过预设时长,锁存单元32会将第二窗口信号REF_WINDOW0调整为有效;(2)在这之后,如果接收到测试预充命令BIST_PRE,第一逻辑单元33会输出第二切换脉冲,将第一窗口信号REF_WINDOW调整为有效,即允许执行刷新操作,因此接下来接收到的第1个初始刷新命令REF会被用于产生1个测试刷新命令BIST_REF;(3)在这之后,在接收到第2个初始刷新命令REF之后,刷新计数单元34输出第三结束脉冲REF_END,再次产生1个第二切换脉冲,从而导致第二窗口信号REF_WINDOW调整为无效,从而第2个初始刷新命令REF用于产生测试激活命令BIST_ACT,同时所生成的测试激活命令BIST_ACT将第二窗口信号REF_WINDOW0调整为无效。
[0181] 在一些实施例中,请参见图8,刷新计数单元34包括:第三计数器341,配置为对初始刷新命令REF进行计数,产生第三计数值;第一译码器342,与第三计数器连接,配置为在第三计数值为2时,产生1个第三结束脉冲REF_END。示例性的,第三计数器341可以包括由2个触发器构成的异步计数器。
[0182] 特别的,请参见图9,测试电路10还包括第一控制输门151,第一控制传输门151的输出端与第三计数器341的输入端连接;其中,第一控制传输门151,配置为接收第二窗口信号REF_WINDOW0和初始刷新命令REF;在第二窗口信号REF_WINDOW0处于有效状态的情况下,将初始刷新命令传输至第三计数器341;在第二窗口信号处于无效状态的情况下,屏蔽初始刷新命令以使第三计数值不变。
[0183] 也就是说,只有在第二窗口信号REF_WINDOW0有效时,第三计数器341才会进行计数。示例性的,若第二窗口信号REF_WINDOW0的有效状态为高电平时,第一控制传输门151可以通过与门实现,但这并不构成相关限制。
[0184] 值得注意的是,在正常模式下,只有每间隔预设时长,才会利用2个初始刷新命令REF生成1个测试刷新命令BIST_REF和1个测试激活命令BIST_ACT;在“预设时长”的持续期间,其实无需用到初始刷新命令REF。因此,这一期间可以无需生成初始刷新命令REF,从而降低功耗。
[0185] 在这里,若第二窗口信号REF_WINDOW0的有效状态是指高电平,则第一控制传输门151可以通过第八与门实现。
[0186] 如前述,预设时长具有多个取值。在一些实施例中,如图7所示,第三译码单元31包括:
[0187] 第二译码器311,配置为接收第一计数值,在第一计数值达到第五阈值时,产生1个第一脉冲CNT_780;
[0188] 第三译码器312,配置为接收第一计数值,在第一计数值达到第六阈值时,产生1个第二脉冲CNT_1560;
[0189] 第四选择器313,配置为接收间隔选择信号,基于间隔选择信号,利用第一脉冲或第二脉冲产生译码脉冲;
[0190] 其中,间隔选择信号和测试时钟信号BIST_CLK的频率共同确定预设时长的取值。
[0191] 示例性的,假设第五阈值可以为第780个计数状态对应的第二计数值,第六阈值可以为第1560个计数状态对应的第二计数值。在测试时钟信号BIST_CLK的频率为400MHz(时钟周期为2.5ns)时,每2个译码脉冲的时间间隔为1.95us或者3.9us(由间隔选择信号决定);在测试时钟信号BIST_CLK的频率可以为200MHz(时钟周期为5ns)时,每2个译码脉冲的时间间隔为3.9us或7.8us(由间隔选择信号决定)。间隔选择信号可以根据需求进行调整。
[0192] 在一些实施例中,如图7所示,信号产生电路1412包括第五选择器36和第一触发器37;第五选择器36,配置为接收模式标志信号,在模式标志信号表征老化测试模式时,利用1个第一切换脉冲产生1个复位命令REF_RST;在模式标志信号表征正常模式时,利用1个第二切换脉冲产生1个复位命令REF_RST;
[0193] 第一触发器37的时钟端接收复位命令REF_RST,第一触发器37的输入端与第一触发器37的时钟端与自身的反相输出端连接,第一触发器37的输出端输出第一窗口信号REF_WINDOW。
[0194] 在一些实施例中,复位命令REF_RST还用于将第一计数值重置为第一默认值,复位命令REF_RST还用于将第三计数值重置为第三默认值;
[0195] 第一控制电路1411,还配置为接收所述第一窗口信号REF_WINDOW,在所述第一窗口信号REF_WINDOW为无效状态且第一计数值为第一默认值时,输出有效状态的第一激活信号REF_ACT0;
[0196] 刷新计数单元34,还配置为在第三计数值为第三默认值时,输出有效状态的第二激活信号REF_ACT1;
[0197] 主控电路141还包括第三选择器122,第三选择器122,与第一控制电路和刷新计数单元均连接,配置为接收模式标志信号,在模式标志信号表征老化测试模式时,将第一激活信号REF_ACT0输出为激活指示信号REF_ACT;在模式标志信号表征正常模式时,将第二激活信号REF_ACT1输出为激活指示信号REF_ACT。
[0198] 在这里,第一默认值可以为全1状态,第二默认值可以为全1状态,第三默认值可以为全0状态。
[0199] 需要说明的是,对于第一控制电路1411,其还具有针对于第一默认值的译码单元(例如:全1译码器);对于刷新计数单元34,其同样还具有针对于第三默认值的译码单元(例如:图8中的全0译码器343)。
[0200] 这样,在每次第一窗口信号REF_WINDOW变为无效(即集中刷新阶段结束)后,激活指示信号会短暂的变化为有效状态,从而将利用下一个初始刷新命令REF产生测试激活命令BIST_ACT。
[0201] 请参见图10,以下针对正常模式下、刷新间隔为3.9us、测试时钟信号BIST_CLK的时钟周期为2.5ns的场景提供一种具体的信号波形以进一步说明测试电路的工作原理。
[0202] 如图10所示,在距离上一刷新操作经过3.9us后,第二脉冲CNT_1560产生1个脉冲,此时第二窗口信号REF_WINDOW0切换为有效状态;在接收到下一个测试预充命令BIST_PRE后,产生1个第二切换脉冲从而将第一窗口信号REF_WINDOW切换为有效状态;在延迟8个tck时间后,第一命令电路11产生3个待选命令REF_b,第3个待选命令REF_b再次产生1个第二切换脉冲从而将第一窗口信号REF_WINDOW切换为无效状态,同时将激活指示信号REF_ACT切换且有效状态。与此同时,第1个和第3个待选命令REF_b后续分别产生初始刷新命令REF,丢失第2个待选命令REF_b;第1个初始刷新命令REF在延迟后产生第1个延迟刷新命令,其与第一窗口信号REF_WINDOW进行逻辑运算后产生测试刷新命令BIST_REF;第2个初始刷新命令REF在延迟后产生第2个延迟刷新命令,其与激活指示信号REF_ACT进行逻辑运算后产生测试激活命令BIST_ACT,且测试激活命令BIST_ACT还用于将第二窗口信号REF_WINDOW0切换为无效状态。
[0203] 综上所述,本公开提供的测试电路10可以应用于内建自测试MBIST模块,其不仅不可以支持Burn in测试模式下的集中刷新机制,也可以支持正常模式下间隔可调(目前支持的时间间隔为1.95us,3.9us,7.8us)的平均刷新机制,即每隔一定时间插入一次刷新命令。相比较集中刷新,平均刷新会使每个行的保留时间一致,使测试更加精准,此外还能避免因连续刷新导致的电源供电不稳的问题。具体的,正常模式和老化测试模式复用第一计数器(例如12位的LFSR)。在正常测试中,需要选择测试时钟信号BIST_CLK作为LFSR的计数源,分别译码第780个状态与第1560个状态,同时配合状态译码实现刷新间隔为1.95/3.9/7.8us的平均刷新操作。当系统时钟信号BIST_CLK选取5ns时,通过第二计数器(例如6位的LFSR)及相关的译码电路生成的满足tRP时序要求的测试刷新命令设计保持不变,只需改变第三结束脉冲REF_END,让第三计数器计数2次即生成REF_END,并采用译码0状态生成测试激活命令BIST_ACT,让其满足tRFC的要求。当BIST_CLK选取2.5ns时,通过译码第二计数器的第9个状态可实现tRP,后续计数循环中产生的第一个初始刷新命令REF作为BIST_REF,忽略第二个初始刷新命令REF,选取第三个初始刷新命令REF作为BIST_ACT可实现tRFC(315ns)。
[0204] 本公开实施例涉及集成电路设计中存储器内建自测试电路,特别涉及对DDR5芯片执行MBIST操作时刷新命令的生成与插入。设计包含多种条件下刷新命令的生成,应用于DDR5芯片在测试机台(ATE)测试时刷新命令的生成以及插入,但不局限于此范围,其他命令规划和产生电路及计数时序控制电路均可采用此设计。
[0205] 在本公开的又一实施例中,参见图11,其示出了本公开实施例提供的一种存储器50组成结构示意图。如图11所示,存储器50至少包括前述的测试电路10。
[0206] 以上,仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。需要说明的是,在本公开中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本公开所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本公开所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。