技术领域
[0001] 本公开涉及半导体存储器技术领域,尤其涉及一种测试电路及存储器。
相关背景技术
[0002] 动态随机存取存储器(Dynamic Random Access Memory,DRAM)作为一种半导体存储器,尤其是第5代DDR(5th Double Data Rate,DDR5),因具有高效能和低成本的特性被广泛应用在各种电子产品上。目前存储器最常用的测试方法是存储器内建自测试(Memory Build in Self Test,MBIST)方法,MBIST电路以存储器为目标,自动生成存储器的测试电路,通过执行特定的测试算法,来检测存储器中存在的某些缺陷。
具体实施方式
[0076] 下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
[0077] 除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。
[0078] 在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0079] 需要指出,本公开实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
[0080] 存储器的可测试技术包括直接测试、用嵌入式CPU进行测试和内建自测试技术(MBIST)。相比其他两种技术,MBIST有很多优势,首先它可以实现可测性设计的自动化,自动实现通用存储器测试算法,达到高测试质量、低测试成本的目的;其次MBIST电路可以利用系统时钟进行“全速”测试,从而覆盖更多生成缺陷,减少测试时间;最后它可以针对每一个存储单元提供自诊断和自修复功能。此外MBIST的初始化测试向量可以在很低成本的测试设备上进行。所以,从高测试质量、低测试成本的角度考虑,MBIST是目前嵌入式存储器测试设计的主流技术。
[0081] 对于DDR5,根据电子工程设计发展联合协会(Joint Electron Device Engineering Council,JEDEC)规定,MBIST由模式寄存器MR23:OP[4]以及4组MR24的防护密钥(guard key)激活,然后进行MBIST操作。存储容量为8/16吉字节(Gigabyte,Gb)的DDR5的自测试时间(tSELFTEST)最大不超过9秒,而在此期间进行测试的数据拓扑均由设计者根据实际需求自行设计。
[0082] 目前设计的MBIST在host端运行时包括图1所示的12种数据拓扑(Data topo)结构。当MBIST接收到由host端发出的使能信号时,MBIST会自动执行图1中12种数据拓扑的写入以及读取操作。12种数据拓扑中相邻两个Data topo中的数据互为反相。比如,对于Data topo2来说,每一个存储单元对应的数据均是Data topo1中对应存储单元对应的数据经过取反得到的。应理解,图1上的WL代表字线,BL代表位线,位线和相对应的字线相交处即为存储单元,每个存储单元存储“0”或“1”。
[0083] 也就是说,请参见图1,当MBIST接收到由host端下发的使能信号时,先利用Data topo1和Data topo2进行测试,具体过程如下:
[0084] (1)对偶数行地址开始计数,并把Data topo1中的偶数据拓扑(即Data topo1中的WL0/WL2WL4/WL6对应的00000000)写入偶数行地址如WL0/WL2WL4/WL6……
[0085] (2)在计数到偶数最高位之后,开始对奇数行地址开始计数,并把Data topo1中的奇数据拓扑(即Data topo1中的WL1/WL3WL5/WL76对应的10101010)写入奇数行地址如WL1/WL3WL5/WL7…
[0086] (3)在奇数行地址计数到最高位之后,开始执行读操作并对读出的数据和写入的数据进行比较;
[0087] (4)对偶数行地址开始计数,并把Data topo2中的偶数据拓扑(即Data topo2中的WL0/WL2WL4/WL6对应的11111111)写入偶数行地址如WL0/WL2WL4/WL6……
[0088] (5)在计数到偶数最高位之后,开始对奇数行地址开始计数,并把Data topo2中的奇数据拓扑(即Data topo2中的WL1/WL3WL5/WL76对应的01010101)写入奇数行地址如WL1/WL3WL5/WL7…
[0089] (6)在奇数行地址计数到最高位之后,开始执行读操作并对读出的数据和写入的数据进行比较,从而完成Data topo1和Data topo2的测试。
[0090] 继续按照上述步骤完成Data topo3和Data topo4的测试、Data topo6和Data topo6的测试、Data topo7和Data topo8的测试、Data topo9和Data topo10的测试、Data topo11和Data topo12的测试。
[0091] 基于此,本公开实施例提供了一种测试电路,该测试电路能够在接收到host端的使能信号后自动完成上述12种Data topo的读写操作;能够在奇数行地址计数到最高位时切换至偶数行地址或在偶数行地址计数计数到最高位时奇数行地址计数,并改变对应的输入数据,在1个Data topo的行地址遍历完改变读写状态,直至所有的Data topo测试完。这样,能够节省测试时间,提高测试效率。
[0092] 在本公开的一实施例中,如图2所示,其示出了一种测试电路10的组成结构,该测试电路10利用多个预设数据拓扑Data topo对存储阵列进行读写测试;该测试电路10包括:
[0093] 第一控制模块11,配置为基于接收到的地址跳转脉冲,产生并输出奇偶指示信号、翻转指示信号和拓扑指示信号;其中,地址跳转脉冲指示已执行目标操作的行地址的计数值达到偶数最高位或奇数最高位,目标操作是指读操作或写操作;
[0094] 状态译码模块12,与第一控制模块11连接,配置为对拓扑指示信号进行计数和译码,得到中间译码信号;
[0095] 第二控制模块13,与第一控制模块11和状态译码模块12连接,配置为基于奇偶指示信号、翻转指示信号和中间译码信号,生成并输出第一状态信号和第二状态信号;
[0096] 其中,第一状态信号用于将第一数据序列和第二数据序列的两者之一选中为目标数据序列,第二状态信号指示目标数据序列的每一数据是否翻转,目标数据序列或翻转后的目标数据序列用于构成预设数据拓扑Data topo。
[0097] 本公开实施例涉及集成电路设计中存储器内建自测试电路设计,特别涉及16Gb DDR5内建自测试电路在host端运行时的状态机设计,设计应用于16Gb DDR5芯片中进行多种数据拓扑测试时,控制信号的自动生成与变化,但不局限于此范围,其他命令规划和产生电路及计数时序控制电路均可采用此设计。
[0098] 需要说明的是,第一状态信号和第二状态信号共同决定数据序列的类型。具体而言,第一状态信号有第一状态和第二状态,第一状态对应第一数据序列,第二状态对应第二数据序列,根据第一状态信号所处的状态选择第一数据序列或者第二数据序列作为目标数据序列进行测试;第二状态信号有第三状态和第四状态,当第二状态信号处于第三状态时,则目标数据序列不变,当第二状态信号处于第四状态时,则翻转目标数据序列。这样,能够实现数据的自动翻转,进而可以更加高效地完成Data topo的读写测试。
[0099] 在一些实施例中,预设数据拓扑具有A组,每一组预设数据拓扑Data topo包括第一数据拓扑和第二数据拓扑,每一个第一数据拓扑和第二数据拓扑均包括奇数据拓扑和偶数据拓扑;奇偶指示信号指示执行目标操作对应的存储单元的行地址为奇数行地址或偶数行地址,并生成对应的奇数据拓扑或偶数据拓扑;拓扑指示信号指示执行目标操作对应的预设数据拓扑的组编号;翻转指示信号指示执行目标操作对应的第一数据拓扑或第二数据拓扑。
[0100] 还需要说明的是,奇偶指示信号根据电平状态会选择对奇数行地址或者偶数行地址进行读取操作。例如,奇偶指示信号为第一电平状态时,对Data topo中行地址为偶数的数据阵列执行目标操作;当对Data topo中最后一个偶数行地址执行完目标操作,奇偶指示信号从第一电平状态变为第二电平状态,继续对Data topo中行地址为奇数的数据阵列执行目标操作。
[0101] 简单来说,奇偶指示信号对应同一预设数据拓中奇数据拓扑和偶数据拓扑之间的切换,翻转指示信号对应同一组的预设数据拓扑中第一数据拓扑和第二数据拓扑之间的切换,拓扑指示信号对应不同组的预设数据拓扑组Data topo之间的切换。
[0102] 参见图1,由于每两个Data topo的数据为翻转的关系,故将两个Data topo作为一组,共6组Data topo,即A=6。
[0103] 在一些实施例中,参见图4,第一控制模块11,还配置为基于接收到地址跳转脉冲,产生并输出读写指示信号(WR_RD);其中,读写指示信号(WR_RD)指示读操作或写操作。
[0104] 需要说明的是,本公开实施例采用的是跳跃寻址(JUMP)的方式,当第一控制模块11接收到地址跳转脉冲时,说明某一个Data topo中奇数行地址或者偶数行地址的计数值已经达到最高位,此时会改变输入的目标数据序列,当一个Data topo的所有行地址遍历完,则通过读写指示信号会改变读写状态。也就是说,奇数行地址和偶数行地址的数据序列是不同的。
[0105] 在一些实施例中,如图3所示,该测试电路10还包括测试模块14;
[0106] 测试模块14,与第一控制模块11和第二控制模块13均连接,配置为接收读写指示信号、第一状态信号和第二状态信号;在读写指示信号指示写操作时,基于第一状态信号和第二状态信号向存储阵列写入对应的Data topo;或者,在读写指示信号指示读操作时,读取存储阵列的数据,并基于第一状态信号和第二状态信号对读取到的数据进行比对处理。
[0107] 需要说明的是,测试时,根据读写指示信号决定将Data topo写入存储阵列中,还是对存储阵列中的数据进行读取。具体的,当读写指示信号为第一电平状态时,向存储阵列写入对应的Data topo;当读写指示信号为第二电平状态时,对存储阵列中的数据进行读取。同时,通过将写入的数据与读取的数据进行比对,能够判断出具体是哪一个数据发生了错误,以便及时进行处理,提高了测试效率。
[0108] 在一些实施例中,参见图4~图6,第一控制模块11,具体配置为每接收到1个地址跳转脉冲EVEN_ODD,控制奇偶指示信号Data_change的电平状态发生一次翻转;每接收到2个地址跳转脉冲EVEN_ODD,控制读写指示信号WR_RD的电平状态发生一次翻转,每接收到4个地址跳转脉冲EVEN_ODD,控制翻转指示信号INVERT的电平状态发生一次翻转,每接收到8个地址跳转脉冲EVEN_ODD,产生1个拓扑指示信号S_CLK。
[0109] 需要说明的是,图4为状态机进行测试时需要控制不同信号。其中,DATA<0>为第一预选信号,DATA<1>为第二预选信号,第一预选信号DATA<0>和第二预选信号DATA<1>共同决定向Data topo中输入何种数据。而且,第一预选信号DATA<0>就是第一状态信号,第二预选信号DATA<0>经过翻转就是第二状态信号。ADDR表示寻址控制信号,default为状态机默认值。由上述描述可知,本公开实施例中采用的寻址方式均为区分奇偶的跳跃寻址(JUMP)。
[0110] 根据图4控制信号的不同取值,以图1中的Data topo1和Data topo2为例进行说明,其对应的时序图如图5所示:
[0111] (1)翻转指示信号=0(不翻转),读写指示信号WR_RD=0(写阶段),奇偶指示信号Data_change=0,此时输入的预选信号DATA<1:0>为00,从而将相应的偶数据拓扑写入偶数行地址;
[0112] (2)翻转指示信号=0(不翻转),读写指示信号WR_RD=0(写阶段),奇偶指示信号Data_change=1时,输入的预选信号DATA<1:0>为01,从而将相应的奇数据拓扑写入奇数行地址;从而写入一个完整的Data topo;
[0113] (3)翻转指示信号=0(不翻转),读写指示信号WR_RD=1(读阶段),奇偶指示信号Data_change=0,此时读出偶数行地址的数据,并将读出的数据与预选信号DATA<1:0>为00对应的偶数据拓扑进行比对;
[0114] (4)翻转指示信号=0(不翻转),读写指示信号WR_RD=1(读阶段),奇偶指示信号Data_change=1,此时读出奇数行地址的的数据,并将读出的数据与预选信号DATA<1:0>为01对应的奇数据拓扑进行比对,完成该Data topo的测试。
[0115] (5)翻转指示信号=1(翻转),读写指示信号WR_RD=0(写阶段),奇偶指示信号Data_change=0,此时输入的预选信号DATA<1:0>为11,从而将相应的偶数据拓扑写入偶数行地址;
[0116] (6)翻转指示信号=1(翻转),读写指示信号WR_RD=0(写阶段),奇偶指示信号Data_change=1时,输入的预选信号DATA<1:0>为10,从而将相应的奇数据拓扑写入奇数行地址;从而写入一个完整的Data topo;
[0117] (7)翻转信号=1(翻转),读写指示信号WR_RD=1(读阶段),从而读出相应的数据结果,同时输入的两组预选信号DATA<1:0>为11,奇偶指示信号Data_change=0,此时读出偶数行地址的数据,并将读出的数据与预选信号DATA<1:0>为11对应的偶数据拓扑进行比对;
[0118] (4)翻转指示信号=1(翻转),读写指示信号WR_RD=1(读阶段),奇偶指示信号Data_change=1,此时读出奇数行地址的的数据,并将读出的数据与预选信号DATA<1:0>为10对应的奇数据拓扑进行比对,完成该Data topo的测试,同时也完成了这一组Data topo的测试。
[0119] 需要说明的是,由于地址跳转脉冲EVEN_ODD指示已执行目标操作的行地址的计数值达到偶数最高位或奇数最高位,所以一旦第一控制模块11接收到1个地址跳转脉冲EVEN_ODD时,说明测试电路10已经对Data topo的偶数行地址计数完成;如果之前的奇偶指示信号Data_change为第一电平状态,此时奇偶指示信号Data_change就会切换到第二电平状态,开始执行对奇数行地址对应的存储单元的测试。
[0120] 需要说明的是,当第一控制模块11接收到2个地址跳转脉冲EVEN_ODD时,说明已经将某一个Data topo写入完成,此时读写指示信号的电平状态切换,从原来的写操作切换为读操作。也就是说,当第一控制模块11接收到2个地址跳转脉冲EVEN_ODD,说明对一Data topo完成写操作;当第一控制模块11接收到4个地址跳转脉冲EVEN_ODD,则对上述的Data topo完成读操作。换句话说,当第一控制模块11接收到4个地址跳转脉冲EVEN_ODD,对该Data topo的测试完成,此时需要对下一个Data topo进行测试。由于相邻两个Data topo(一组Data topo)之间的数据互为反相,所以翻转指示信号INVERT对上一个Data topo的数据进行翻转就能够得到下一个Data topo。
[0121] 如上述,当第一控制模块11接收到4个地址跳转脉冲EVEN_ODD,对该Data topo的测试完成。那么,当第一控制模块11接收到8个地址跳转脉冲EVEN_ODD,说明对相邻两个Data topo的测试完成,此时产生1个拓扑指示信号S_CLK。因此,如图6所示,每两个Data topo需要控制改变一次预选信号DATA<1:0>,所以在数据翻转信号INVERT后再加一级计数器,让其每8个地址跳转脉冲EVEN_ODD(即一组Data topo)翻转一次,移位后再异或生成拓扑指示信号S_CLK,计数Data topo的组数(每两个Data topo为一组)。因此,一个拓扑指示信号S_CLK指示2个相邻的Data topo测试完成。本公开实施例就是将12个Data topo两两分组,当测试电路10产生6个拓扑指示信号S_CLK,说明对12个Data topo均测试完成。
[0122] 这样,将需要控制的信号进行层层拆分可以更加便捷的实现host端的控制,且容易调整。
[0123] 在一些实施例中,如图7所示,第一控制模块11包括:
[0124] 第一信号单元111,配置为利用地址跳转脉冲EVEN_ODD对奇偶指示信号Data_change的反相信号进行采样处理,产生新的奇偶指示信号;
[0125] 第二信号单元112,与第一信号单元111连接,配置为对奇偶指示信号Data_change和读写指示信号WR_RD进行逻辑处理产生第一中间信号;以及,基于地址跳转脉冲EVEN_ODD对第一中间信号进行采样,产生新的读写指示信号;
[0126] 第三信号单元113,与第二信号单元112连接,配置为对奇偶指示信号Data_change、读写指示信号WR_RD和翻转指示信号INVERT进行逻辑处理产生第二中间信号;以及,基于地址跳转脉冲EVEN_ODD对第二中间信号进行采样,产生新的翻转指示信号;
[0127] 第四信号单元114,与第三信号单元113连接,配置为对奇偶指示信号Data_change、读写指示信号WR_RD和翻转指示信号INVERT进行逻辑处理得到第三中间信号;基于第三中间信号、地址跳转脉冲EVEN_ODD和预设系统时钟信号BIST_CLK,产生拓扑指示信号S_CLK。
[0128] 具体地,继续参见图7,第一信号单元111包括第一触发器21:第一触发器21的时钟端CLK接收地址跳转脉冲EVEN_ODD,第一触发器21的输入端与其反相输出端连接,第一触发器21的正相输出端输出奇偶指示信号Data_change;
[0129] 第二信号单元112包括第一异或门22和第二触发器23;第一异或门22的第一输入端接收奇偶指示信号Data_change,第一异或门22的第二输入端与第二触发器23的正相输出端连接,第一异或门22的输出端输出第一中间信号,第二触发器23的输入端接收第一中间信号,第二触发器23的时钟端CLK接收地址跳转脉冲EVEN_ODD,第二触发器23的正相输出端输出读写指示信号WR_RD;
[0130] 所述第三信号单元113包括第一与门24、第二异或门25和第三触发器26;第一与门24的第一输入端接收读写指示信号WR_RD,第一与门24的第二输入端接收奇偶指示信号Data_change,第一与门24的输出端与第二异或门25的第一输入端连接,第二异或门25的第二输入端与第三触发器26的正相输出端连接,第二异或门25的输出端输出第二中间信号,第三触发器26的输入端接收第二中间信号,第三触发器26的时钟端CLK接收地址跳转脉冲EVEN_ODD,第三触发器26的正相输出端输出翻转指示信号INVERT;
[0131] 第四信号单元114包括第二与门27、第三异或门28、第四触发器29、第五触发器30和第四异或门31;第二与门27的第一输入端与第一与门24的输出端连接,第二与门27的第二输入端接收翻转指示信号INVERT,第二与门27的输出端与第三异或门28的第一输入端连接,第三异或门28的第二输入端与第四触发器29的正相输出端连接,第三异或门28的输出端输出第三中间信号,第四触发器29的输入端接收第三中间信号,第四触发器29的时钟端CLK接收地址跳转脉冲EVEN_ODD,第四触发器29的正相输出端与第五触发器30的输入端连接,第五触发器30的时钟端CLK接收预设系统时钟信号BIST_CLK,第五触发器30的正相输出端与第四异或门31的第一输入端连接,第四异或门31的第二输入端与第四触发器29的正相输出端连接,第四异或门31的输出端输出拓扑指示信号S_CLK。
[0132] 需要说明的是,第一信号单元111、第二信号单元112、第三信号单元113和第四信号单元114共同组成了一个同步计数器,每一个信号单元111输出对应的指示信号。第一信号单元111输出奇偶指示信号Data_change,第二信号单元112输出读写指示信号WR_RD,第三信号单元113输出翻转指示信号INVERT,第四信号单元114输出拓扑指示信号S_CLK。
[0133] 还需要说明的是,地址跳转脉冲EVEN_ODD和预设系统时钟信号BIST_CLK并不是都对第三中间信号采样的,预设系统时钟信号BIST_CLK是对前一级触发器(第四触发器29)的输出进行采样的。
[0134] 在一些实施例中,如图8所示,状态译码模块12包括计数单元121和C个译码单元122,中间译码信号的数量为C个;
[0135] 计数单元121,与第一控制模块11连接,配置为对拓扑指示信号S_CLK的脉冲进行计数,产生第一计数值;
[0136] 第j个译码单元122,与计数单元121连接,配置为在第一计数值符合第j个译码条件时,控制第j个中间译码信号处于第一状态;在第一计数值不符合第j个译码条件时,控制第j个中间译码信号处于第二状态;其中,j为大于等于1且小于等于C的整数;C≤A;第一计数值包括B位子参数,2B≥A。
[0137] 需要说明的是,第一计数值为拓扑指示信号S_CLK的数目,因此,如果第一计数值包括B为子参数,即产生了B个拓扑指示信号S_CLK。而每两个Data topo会产生1个拓扑指示信号S_CLK,因此2B必须大于等于Data topo的数量A,才能保证所有的Data topo均被测试完成。
[0138] 具体地,如图9所示,在2A=12的情况下,B=3,C=5;
[0139] 相应的,计数单元121包括第六触发器32、第五异或门33、第七触发器34、第三与门35、第六异或门36和第八触发器37;
[0140] 第六触发器32、第七触发器34和第八触发器37的时钟端CLK接收拓扑指示信号S_CLK,第六触发器32的输入端与其反相输出端连接,第六触发器32的正相输出端与第五异或门33的第一输入端连接,第五异或门33的第二输入端与第七触发器34的正相输出端连接,第五异或门33的输出端与第七触发器34的输入端连接,第七触发器34的正相输出端与第三与门35的第一输入端连接,第三与门35的第二输入端与第六触发器32的正相输出端连接,第三与门35的输出端输出与第六异或门36的第一输入端连接,第六异或门36的第二输入端与第八触发器37的正相输出端连接,第六异或门36的输出端与第八触发器37的输入端连接;第六触发器32的正相输出端输出第一计数值的第1位子参数S<0>,第七触发器34的正相输出端输出第一计数值的第2位子参数S<1>,第八触发器37的正相输出端输出第一计数值的第3位子参数S<3>。
[0141] 需要说明的是,第一计数值S<2:0>的值也是状态机所处的状态。本公开实施例中的第一控制模块11和计数单元121均采用同步计数器,计数速度更快、时钟同步性更好。当然,在其他的实施例中,也可以采用异步计数器实现相关功能,根据电路设计和实际需要确定。
[0142] 在一些实施例中,如图10所示,第j个译码单元122包括第一或非门38、第一非门39、第一与非门40和第二非门41,第一或非门38的第二输入端接收第一计数值的第1位子参数S<0>,第一或非门38的第一输入端接收第一计数值的第2位子参数S<1>,第一非门39的输入端接收第一计数值的第3位子参数S<2>,第一与非门40的第一输入端与第一非门39的输出端连接,第一与非门40的第二输入端与第一或非门38的输出端连接,第一与非门40的输出端与第二非门41的输入端连接,第二非门41的输出端输出第j个中间译码信号。
[0143] 需要说明的是,当2A=12,即A=6,对应拓扑指示信号S_CLK的数值最大为6。当B=3时,第一计数值最大为8,计数单元121可以计数的范围为000~111。由上述,拓扑指示信号S_CLK指示执行目标操作对应的Data topo的组编号,由图1的12中Data topo可以得到6组预设数据拓扑组,因此第一计数值可以用来表示状态机所处的状态。状态机所处状态与DATA_IN<1:0>的关系如表1所示:
[0144] 表1
[0145]
[0146] 应理解,TOPO CNT就是状态机S<2:0>,而S<2:0>就是第一计数值。由于本公开实施例共有6组Data topo,因此表1列出了状态机S<2:0>的6种状态。这里的DATA_IN<0>就是第一状态信号,DATA_IN<1>就是第二状态信号。其中,第一状态信号DATA_IN<0>就是前述的第一预选信号,第二状态信号DATA_IN<1>就是翻转后的第二预选信号DATA<1>。
[0147] 现在以表1中的第1行为例进行说明,其他行可参照第1行进行理解。
[0148] 第1行就是第一组Data topo,也是状态机所处的第1种状态。当DATA_IN<1:0>为00/01/00/01时,对应的是图1中的Data topo1;其中,前两个00/01对应Data topo1的写操作,后两个00/01对应Data topo1的读操作,至此就完成了Data topo1的测试。然后通过翻转指示信号INVERT对DATA_IN<1:0>的高位进行翻转就得到10/11/10/11,这就是Data topo2对应的DATA_IN<1:0>;同理,前两个10/11对应Data topo2的写操作,后两个10/11对应Data topo2的读操作。因此表1中的第1行完成了Data topo1和Data topo2的测试。在此期间,完成了Data topo的自动翻转。
[0149] 现仍以表1中的第1行为例,就第一状态信号DATA_IN<0>和第二状态信号DATA_IN<1>如何得到相应的Data topo作一简单解释。参照图4和表1,当DATA_IN<1:0>为00时,即第一状态信号DATA_IN<0>和第二状态信号DATA_IN<1>均为0,则对应的数据序列为00000000;
当DATA_IN<1:0>为01时,即第一状态信号DATA_IN<0>为1,,第二状态信号DATA_IN<1>为0,则对应的数据序列为10101010。参照图1,偶数的数据序列为00000000、奇数的数据序列为
10101010的Data topo就是Data topo1。类似的,当第一状态信号DATA_IN<0>为0、第二状态信号DATA_IN<1>均为1,由于DATA_IN<1>为1时,DATA_IN<0>对应的数据序列要翻转,当DATA_IN<0>为0时对应的数据序列为00000000,因此当DATA_IN<1:0>为10时,对应的数据序列为11111111;当DATA_IN<1:0>为11时,即第一状态信号DATA_IN<0>和第二状态信号DATA_IN<1>为1,对应的数据序列为01010101;而偶数数据序列为11111111、奇数数据序列为
01010101的Data topo就是Data topo2。
[0150] 也就是说,本公开实施例通过控制第一状态信号DATA_IN<0>和第二状态信号DATA_IN<0>来控制12种Data topo的自动输入和测试。
[0151] 换句话说,请参见表1,可以认为状态机存在6种状态:TOPO CNT0、TOPO CNT1、TOPO CNT2、TOPO CNT3、TOPO CNT4、TOPO CNT5。
[0152] 在一种设计中,可以找出(1)DATA_IN<1>=0、DATA_IN<0>=0时状态机所处的状态,此时需要确定出TOPO CNT0~TOPO CNT5这几个状态;
[0153] 在另一种设计中,可以找出(1)DATA_IN<1>=0、DATA_IN<0>=1时状态机所处的状态,此时同样需要确定出TOPO CNT0~TOPO CNT5这几个状态;
[0154] 在又一种设计中,可以找出(1)DATA_IN<1>=1、DATA_IN<0>=1时状态机所处的状态,此时同样需要确定出TOPO CNT0~TOPO CNT5这几个状态。
[0155] 在再一种设计中,可以找出(1)DATA_IN<1>=1、DATA_IN<0>=0时状态机所处的状态,此时同样需要确定出TOPO CNT0、TOPO CNT1、TOPO CNT2、TOPO CNT3、TOPO CNT5这几个状态;无需找出TOPO CNT4的状态,其可以由其他状态反相定义。
[0156] 因此,采用最后一种设计,仅需要找出状态机的5种状态即可,减少译码器件的数量。
[0157] 具体的,如图10所示,在表1中找出DATA_IN<0>为0以及DATA_IN<1>为1时状态机所处的状态并解码生成中间译码信号DATA0(指示状态机是否处于TOPO CNT0这个状态)、DATA1(指示状态机是否处于TOPO CNT1这个状态)、DATA2(指示状态机是否处于TOPO CNT2这个状态)、DATA3(指示状态机是否处于TOPO CNT3这个状态)和DATA5(指示状态机是否处于TOPO CNT5这个状态),用于后续生成预选信号DATA<1:0>。
[0158] 在一些实施例中,如图11~图14所示,第二控制模块13包括:
[0159] 第一逻辑单元131,配置为对C个中间译码信号(DATA0、DATA1、DATA2、DATA3和DATA5)进行逻辑处理,输出第一状态偶信号DATA0_EVEN、第一状态奇信号DATA0_ODD、第二状态偶信号DATA1_EVEN和第二状态奇信号DATA1_ODD;
[0160] 第二逻辑单元132,配置为基于奇偶指示信号Data_change,将第一状态偶信号DATA0_EVEN和第一状态奇信号DATA0_ODD的二者之一输出为第一预选信号DATA<0>;以及,基于奇偶指示信号Data_change将第二状态偶信号DATA1_EVEN和第二状态奇信号DATA1_ODD的二者之一输出为第二预选信号DATA<1>;
[0161] 输出单元133,配置为将第一预选信号DATA<0>输出为第一状态信号DATA_IN<0>;以及,基于翻转指示信号INVERT,将第二预选信号DATA<1>和第二预选信号的反相信号的二者之一输出为第二状态信号DATA_IN<1>。
[0162] 具体的,参见图12,第一逻辑单元131包括:
[0163] 预处理单元1311,配置为对C个中间译码信号(DATA0、DATA1、DATA2、DATA3和DATA5)进行逻辑处理,输出第一选择偶信号EVEN_DATA0_EN、第一选择奇信号ODD_DATA0_EN、第二选择偶信号EVEN_DATA1_EN和第二选择奇信号ODD_DATA1_EN;
[0164] 选择单元1312,配置为基于第一选择偶信号EVEN_DATA0_EN,将标准0信号和标准1信号的二者之一输出为第一状态偶信号DATA0_EVEN;
[0165] 基于第一选择奇信号ODD_DATA0_EN,将标准0信号和标准1信号的二者之一输出为第一状态奇信号DATA0_ODD;
[0166] 基于第二选择偶信号EVEN_DATA1_EN,将标准0信号和标准1信号的二者之一输出为第二状态偶信号DATA1_EVEN;
[0167] 基于第二选择奇信号ODD_DATA1_EN,将标准0信号和标准1信号的二者之一输出为第二状态奇信号DATA1_ODD。
[0168] 如图13所示,预处理单元1311包括第一逻辑器42、第二逻辑器43、第三逻辑器44和第四逻辑器45;
[0169] 第一逻辑器42的输入端接收C个中间译码信号的部分信号,第一逻辑器42的输出端输出第一选择偶信号EVEN_DATA0_EN;
[0170] 第二逻辑器43的输入端接收C个中间译码信号的部分信号,第二逻辑器43的输出端输出第一选择奇信号ODD_DATA0_EN;
[0171] 第三逻辑器44的输入端接收C个中间译码信号的部分信号,第三逻辑器44的输出端输出第二选择偶信号EVEN_DATA1_EN;
[0172] 第四逻辑器45的输入端接收C个中间译码信号的部分信号,第四逻辑器45的输出端输出第二选择奇信号ODD_DATA1_EN;
[0173] 其中,当中间译码信号不同时,第一选择偶信号EVEN_DATA0_EN、第一选择奇信号ODD_DATA0_EN、第二选择偶信号EVEN_DATA1_EN和第二选择偶信号ODD_DATA1_EN不完全相同。
[0174] 需要说明的是,图13以第一逻辑器42、第二逻辑器43和第三逻辑器44均是或门、第四逻辑器45为2个非门为例,当然,在具体设计时,也可以用其他逻辑门或逻辑电路组合代替或门。
[0175] 还需要说明的是,以第一选择偶信号EVEN_DATA0_EN为例,其表示偶数寻址时第一状态信号DATA_IN<0>为0,从中间译码信号DATA0、DATA1、DATA2、DATA3和DATA5中找出使第一状态信号DATA_IN<0>为0的值,通过或逻辑即可生成第一选择偶信号EVEN_DATA0_EN,同理生成第一选择奇信号ODD_DATA0_EN、第二选择偶信号EVEN_DATA1_EN和第二选择奇信号ODD_DATA1_EN。由于表1中DATA_IN<1:0>的第1列对应的是Data topo中的偶数数据序列,第2列对应的是Data topo中的奇数数据序列,后续的列依次递推。以表1中的第1列和第2列为例:
[0176] 在进行偶数寻址时(表1第1列),即从中间译码信号DATA0、DATA1、DATA2、DATA3和DATA5中找出使第一状态信号DATA_IN<0>为0的值,为DATA0、DATA1和DATA3,通过或逻辑即可生成第一选择偶信号EVEN_DATA0_EN;再找出使第二状态信号DATA_IN<1>为1的值,为DATA2和DATA5,通过或逻辑即可生成第二选择偶信号EVEN_DATA1_EN。
[0177] 同样的,在进行奇数寻址时(表1第2列),从中间译码信号DATA0、DATA1、DATA2、DATA3和DATA5中找出使第一状态信号DATA_IN<0>为0的值,为DATA1、DATA3和DATA5,通过或逻辑即可生成第一选择奇信号ODD_DATA0_EN;再找出使第二状态信号DATA_IN<1>为1的值,为DATA3,通过两次反相处理即可生成第二选择奇信号ODD_DATA1_EN。
[0178] 应理解,遍历奇数行地址和偶数行地址时写入的数据是不同的,由于地址寻址是分奇偶的,因此这里也是需要分奇偶的。这样,寻址方式统一,控制逻辑清晰。
[0179] 相应的,如图14所示,选择单元1312包括第一选择器46、第二选择器47、第三选择器48和第四选择器49;
[0180] 第一选择器46的第一输入端接收标准1信号,第一选择器46的第二输入端接收标准0信号,第一选择器46的控制端接收第一选择偶信号EVEN_DATA0_EN,第一选择器46的输出端输出第一状态偶信号DATA0_EVEN;
[0181] 第二选择器47的第一输入端接收标准1信号,第二选择器47的第二输入端接收标准0信号,第二选择器47的控制端接收第一选择奇信号ODD_DATA0_EN,第二选择器47的输出端输出第一状态奇信号DATA0_ODD;
[0182] 第三选择器48的第一输入端接收标准0信号,第一选择器48的第二输入端接收标准1信号,第三选择器48的控制端接收第二选择偶信号DATA1_EVEN,第三选择器48的输出端输出第二状态偶信号DATA1_EVEN;
[0183] 第四选择器49的第一输入端接收标准0信号,第四选择器49的第二输入端接收标准1信号,第四选择器49的控制端接收第二选择奇信号DATA1_ODD,第四选择器49的输出端输出第二状态奇信号DATA1_ODD。
[0184] 需要说明的是,利用与处理单元1311产生的第一选择偶信号EVEN_DATA0_EN、第一选择奇信号ODD_DATA0_EN、第二选择偶信号DATA1_EVEN和第二选择奇信号DATA1_ODD选择第一状态偶信号DATA0_EVEN、第一状态奇信号DATA0_ODD、第二状态偶信号DATA1_EVEN和第二状态奇信号DATA1_ODD的取值。示例性地,当第一选择偶信号EVEN_DATA0_EN为1时,第一状态偶信号DATA0_EVEN取0,反之取1。其他三个可参照理解,这里不再赘述。
[0185] 在一些实施例中,如图15所示,第二逻辑单元132包括第五选择器50和第六选择器51;第五选择器50的第一输入端接收第一状态偶信号DATA0_EVEN,第五选择器50的第二输入端接收第一状态奇信号DATA0_ODD,第五选择器50的控制端接收奇偶指示信号Data_change,第五选择器50的输出端输出第一预选信号DATA<0>;第六选择器51的第一输入端接收第二状态偶信号DATA1_EVEN,第六选择器51的第二输入端接收第二状态奇信号DATA1_ODD,第六选择器51的控制端接收奇偶指示信号Data_change,第六选择器51的输出端输出第二预选信号DATA<1>。
[0186] 如图16所示,输出单元133包括缓冲器52、第三非门53和第七选择器54;缓冲器52的输入端接收第一预选信号DATA<0>,缓冲器52的输出端输出第一状态信号DATA_IN<0>;第三非门53的输入端接收第二预选信号DATA<1>,第三非门53的输出端与第七选择器54的第一输入端连接,第七选择器54的第二输入端接收第二预选信号DATA<1>,第七选择器54的控制端接收翻转指示信号INVERT,第七选择器54的输出端输出第二状态信号DATA_IN<1>。
[0187] 需要说明的是,缓冲器52采用两个非门构成,即第一预选信号DATA<0>通过两次反相就可以得到第一状态信号DATA_IN<0>。也就是说,在本公开实施例中,第一预选信号DATA<0>就是第一状态信号DATA_IN<0>,第二状态信号DATA_IN<1>是第二预选信号DATA<1>的反相信号。
[0188] 同时,通过奇偶指示信号Data_change可以选择具体输出时的DATA<1:0>是奇数行地址还是偶数行地址,通过翻转指示信号INVERT确定DATA<1>的值是否需要翻转。
[0189] 对于状态机来说,测试开始时状态机S<2:0>为0,由译码单元122对应译码出DATA0为1,DATA1、DATA2、DATA3和DATA5为0,由于DATA0为1,所以通过预处理单元1311得到的第一选择偶信号EVEN_DATA0_EN为1,第一选择奇信号ODD_DATA0_EN、第二选择偶信号EVEN_DATA1_EN和第二选择奇信号ODD_DATA1_EN均为0,然后通过选择单元1312会选择第一状态偶信号DATA0_EVEN为0,第一状态奇信号DATA0_ODD为1,第二状态偶信号DATA1_EVEN为0,第二状态奇信号DATA1_ODD为0。此时,奇偶指示信号Data_change和翻转指示信号INVERT保持初始化的值,选择第一预选信号DATA<0>为第一状态偶信号DATA0_EVEN,第二预选信号DATA<1>为第二状态偶信号DATA1_EVEN,第二状态信号DATA_IN<1>为第二预选信号DATA<1>,不发生翻转,即DATA_IN<1:0>为00;当偶数地址到达最大值,奇偶指示信号Data_change翻转,翻转指示信号INVERT不变,选择第一预选信号DATA<0>为第一状态奇信号DATA0_ODD,第二预选信号DATA<1>为第二状态奇信号DATA1_ODD,第二状态信号DATA_IN<1>为第二预选信号DATA<1>,即DATA_IN<1:0>为01。至此,一个Data topo的奇数行地址与偶数行地址均遍历结束,即全地址写完,随后进行全地址的读取操作,数据变化同上。当完成一个Data topo的读写操作,将进行下一个Data topo的写入和读取,这时翻转指示信号INVERT会翻转,其余变化均不变,所以DATA_IN<1:0>变化为10/11/10/11;第2个Data topo读写遍历完会通过第一控制模块11和计数单元121,使得拓扑指示信号S_CLK产生一个脉冲,使得状态机状态从0变化至1,对应写入数据也会产生与状态0相同的变化,以此循环,直至遍历完6个状态,即12种Data topo。
[0190] 在一些实施例中,第一触发器21至第八触发器37所有的复位端均接收启动信号Rst;其中,若启动信号Rst指示测试电路10开始工作,则第一触发器21至第八触发器37均执行复位操作。
[0191] 另外,在第一计数值计数到110(DATA5之后的下一个状态)时,也会产生所述复位信号,以便开始下一循环。
[0192] 也就是说,为了实现前述的测试要求,本公开实施例提供了一种测试电路10,该测试电路10需要包括如图4所示的以下功能:
[0193] 1.控制寻址方式。当MBIST接收到由host端发出的使能信号时,会采用跳跃寻址的方式,通过奇偶指示信号Data_change选择对Data topo中偶数行地址对应的数据序列还是奇数行地址对应的数据序列进行读写操作。
[0194] 2.控制测试输入数据(预选信号DATA<1:0>)的选取。第一预选信号DATA<0>和第二预选信号DATA<1>共同决定每次向MBIST电路输入的数据序列。比如,当第一预选信号DATA<0>=0、第二预选信号DATA<1>=0时,数据序列为00000000;当第一预选信号DATA<0>=0、第二预选信号DATA<1>=1时,数据序列为11111111;当第一预选信号DATA<0>=1、第二预选信号DATA<1>=0时,数据序列为10101010;当第一预选信号DATA<0>=1、第二预选信号DATA<1>=1时,数据序列为01010101。
[0195] 3.控制读写(WR_RD)命令。MBIST电路在进行测试时,每当奇数行地址或者偶数行地址达到最高位时,数据序列改变。而且,当每次行地址遍历完会(即完成1个Data topo的读写操作)改变读写状态,换句话说,对于一个Data topo来说,先进行写操作(WR),然后进行读操作(RD),当该Data topo中的读写操作均完成后,就会激活翻转指示信号INVERT。应理解,这里的翻转指示信号INVERT和第二预选信号DATA<1>中的invert不同,这里的翻转指示信号INVERT是用来控制下一个Data topo的输入,而第二预选信号DATA<1>中的invert是用来控制同一Data topo中的输入。
[0196] 在本公开的又一实施例中,如图17所示,其示出了本公开实施例提供的一种存储器60,该存储器60包括前述实施例任一项所述的测试电路10。
[0197] 以上,仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。
[0198] 需要说明的是,在本公开中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0199] 上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0200] 本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0201] 本公开所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0202] 本公开所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0203] 以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。