一种存储器的BIST地址扫描电路及其扫描方法
技术领域
本发明涉及集成电路领域,特别是涉及一种存储器的BIST地址扫描电路。本发明还涉及一种存储器的BIST地址扫描方法。
背景技术
在SoC系统应用中,经常会有多个存储器同时存在于一个系统中。如有一个Flash(闪存)用于存储数据,同时还有一个EEPROM(电可擦可编程只读存储器)用于存储设置数据。目前,存储器的测试大都采用内建自测系统BIST(Buid-In-Self-TestCircuit)。BIST通常是一个序列命令解码控制模块,通过对序列命令进行划分段,串转并,然后解码,产生控制(地址或数据信号)组成的输入到被测存储器的测试向量,然后对被测存储器产生的响应与预期进行比对来判断被测存储器是否通过测试。在对多存储器系统进行测试时,由于存储器的种类不同,容量不同,地址结构不同,通常每个存储器都配一个BIST。这样会增加较多的电路,占用更多的芯片面积。
在中国专利200720170572.X“一种嵌入式存储器内建自测试结构”中虽然涉及到一种多存储器系统的测试。但是,由于它是同时对所有的存储器进行并行测试,只能用于多存储器的地址扫描方法是相同的,并且地址扫描是一维的、连续的。当每个存储器地址的扫描方法不同,地址扫描是三维的、不连续的(行地址、列地址和块地址),使用该方法就不能进行正常测试。
现在有一种对多存储器进行三维的、不连续的地址扫描的方法是:根据各个存储器的每一维地址的宽度,计算完成其扫描的Clock的数量,通过数Clock进行时序控制,确定其边界,扫描地址时,根据不同的扫描方法进行组合,从而完成所有存储器全部地址空间的扫描。这个方法比较繁琐。
还有一种对多存储器进行三维的、不连续的地址扫描的方法是:定义行地址、列地址和块地址三个寄存器,并根据各个存储器的地址结构和宽度确定其边界,扫描地址时分别对各寄存器计算,根据不同的扫描方法进行组合,从而完成所有存储器全部地址空间的扫描。这种方法需要较多的寄存器。
发明内容
本发明是提供一种存储器的BIST地址扫描电路,支持多维地址的多存储器系统的测试,能测试各种类型的存储器。为此,本发明还要提供一种存储器的BIST地址扫描方法。
本发明的BIST地址扫描电路,包括:地址寄存器、加法器、地址边界比较器、地址边界寄存器、地址边界选择器、加数选择器、进位位选择开关、结束信号选择器和控制字;所述地址寄存器连接存储器地址线、地址边界选择器和加法器;所述加数选择器连接加法器和进位位选择开关;所述地址边界比较器连接地址边界寄存器、地址边界选择器、进位位选择开关和结束信号选择器;所述控制字连接加数选择器、进位位选择开关、地址边界选择器和结束信号选择器。
所述地址扫描电路,只有一个地址寄存器,地址寄存器的位数等于被测试存储器中容量最大存储器的地址宽度。
所述地址扫描电路,与被测试存储器的地址相连是低位对齐,顺序由高到低是块地址—列地址—行地址。
所述地址扫描电路,所述地址寄存器的初始顺序由高到低始终是块地址—列地址—行地址。
所述地址扫描电路,多层存储器的层地址直接接入到行地址的高位。
本发明的存储器的BIST地址扫描方法,通过地址寄存器,加法器,地址边界比较器,地址边界寄存器,地址边界选择器,加数选择器,进位位选择开关,结束信号选择器,控制字,使多存储器系统中的不同存储器的行地址、列地址和块地址组合成一个地址寄存器,该地址寄存器中的地址始终是一个完整的、连续的地址,包括:
进行行地址扫描,扫描顺序为:行地址—列地址—块地址,到达块地址的边界时,停止扫描;
进行列地址扫描,扫描顺序为:列地址—块地址—行地址,当行地址有进位时,停止扫描。
进一步改进所述地址扫描方法,能通过外部的时序控制结束扫描。
所述地址扫描方法,通过加数选择器,能根据不同的测试算法分别对各个存储器的地址进行运算,如:行地址或列地址±1或±K(K的值根据存储器的读数据总线宽度和测试方法来选择,通常为1、2、4、8,分别对应8Bit,16Bit,32Bit和64Bit的存储器输出总线的宽度)。
本发明的存储器的BIST地址扫描方法能方便的按照不同的扫描方法分别对各个存储器的地址进行运算,使之能适用于地址宽度不同、地址结构不同的多存储器系统的测试。地址寄存器的位数等于多存储器系统中容量最大的存储器的地址宽度(包括PLANE地址),地址寄存器的初始顺序由高到低始终是:块地址Ba—列地址Ra—行地址Ca。在多存储器系统中,各个存储器的多维地址与本BIST相连的顺序由高到低是:块地址Ba—列地址Ra—行地址Ca,并且从Ca低位对齐,BIST依次对各个存储器进行测试,
本发明的BIST地址扫描电路及扫描方法支持多维地址空间的多存储器系统的测试,兼容多PLANE存储器的测试,能测试各种类型的存储器。
附图说明
图1是本发明扫描电路的示意图。
图2是本发明扫描电路的原理图。
图3是本发明与多存储器系统的连接示意图。
图4是本发明扫描电路扫描一双存储器系统的示意图。
图5是图4实施例的示意图一,显示存储器1的行扫描。
图6是图4实施例的示意图二,显示存储器1的列扫描。
图7是图4实施例的示意图三,显示存储器2的行扫描。
图8是图4实施例的示意图四,显示存储器2的列扫描。
具体实施方式
如图1所示,本发明的存储器的BIST地址扫描电路,包括:地址寄存器、加法器、地址边界比较器、地址边界寄存器、地址边界选择器、加数选择器、进位位选择开关、结束信号选择器和控制字;所述地址寄存器连接存储器地址线、地址边界选择器和加法器;所述加数选择器连接加法器和进位位选择开关;所述地址边界比较器连接地址边界寄存器、地址边界选择器、进位位选择开关和结束信号选择器;所述控制字连接加数选择器、进位位选择开关、地址边界选择器和结束信号选择器。所述地址寄存器的位数等于被测试存储器中容量最大存储器的地址宽度。本发明的存储器的BIST地址扫描电路与被测试存储器的地址相连是低位对齐,顺序由高到低是:块地址—列地址—行地址。本扫描电路的示意图中只有一个地址寄存器,地址寄存器的初始顺序由高到低始终是块地址—列地址—行地址。所述BIST地址扫描电路,多层(PLANE)存储器的层(PLANE)地址直接接入到行地址的高位。
如图2所示,当测试某个存储器时,假设,该存储器的行地址、列地址和块地址的宽度分别为x、y、z,首先使地址寄存器的位数等于x+y+z,存储器的地址Ba,Ra,Ca连接到地址寄存器的Adr[x+y+z-1,0],低位对齐,设定地址边界选择器使块地址Ba与地址边界比较器对齐,把块地址Ba的边界存入地址边界寄存器,块地址Ba的边界不一定是所有的位都为1,需要通过与地址寄存器中的Ba的边界值比较来确定地址扫描是否已到块地址Ba的边界,当到达块地址Ba的边界时地址边界比较器标志位置位;行扫描的顺序是Ca—Ra—Ba,进行行扫描时,设定进位位选择开关,使地址边界比较器的标志位与Ca[0]断开,使Ca[x-1]的进位位与Ra[0]相连,通过加数选择器,使加数与Ca的低位对齐,然后累加到地址寄存器,直至到块地址Ba的边界,地址边界比较器标志位置位,通过结束信号选择器输出结束信号,停止扫描。列扫描的顺序是Ra—Ba—Ca,进行列扫描时,设定进位位选择开关,使Ca[x-1]到Ra[0]的进位断开,使地址边界比较器的标志位与Ca[0]进位位相连,通过加数选择器,使加数与Ra的低位对齐,然后累加到地址寄存器,当到达块地址Ba的边界时,地址边界比较器标志位置位,向Ca[0]进位,同时通过控制器把地址寄存器中的Ba清零,一直到Ca[x-1]有进位,通过结束信号选择器输出结束信号,停止扫描。也可以通过外部的时序控制(数Clock)方法来结束扫描,这样去掉了结束信号产生电路,进一步简化了电路。单PLANE存储器没有PLANE地址位,对于多PLANE存储器只需把PLANE地址放在Ca的高位,构成一个新的行地址CA{PLANE,Ca},这样不用做任何改动就可以用于多PLANE存储器的测试。通过加数选择器,可以根据不同的测试算法分别对各个存储器的地址进行运算,如:行地址或列地址±1或±K(K的值根据存储器的类型和测试方法来选择,通常为1、2、4、8)。
如图3所示,测试向量生成模块通过地址存储器输出的全部地址线直接连到所有的被测试存储器的地址上,地址寄存器的位数等于被测试存储器中容量最大存储器的地址宽度,地址顺序由高到低是:块地址—列地址—行地址,低位对齐。被测试存储器数据输出通过存储器选择控制模块输出到测试结果比较模块,存储器选择控制模块输出控制信号(读、写和休眠等)到相应的被测试存储器。测试是依次进行的,把未被测试的存储器设置为休眠状态。测试向量生成模块能根据不同的扫描方法和测试算法生成测试向量并输出到被测存储器,被测存储器输出的数据通过存储器选择控制模块输出到测试结果比较模块与设定值比较,如果出现错误就停止扫描,用户可以从BIST扫描电路中读出出错地址,如果没有错误,当所有被测试存储器空间扫描完成,完成测试。
图4至图7是本发明的一实施例,这是一个双存储器系统,存储器1是双PLANE的FLASH存储器,存储器2是单PLANE的EEROM存储器。
存储器1:双PLANE,块地址数96(Ba宽7bit),行地址数16(Ra宽bit),列地址数256(Ca宽bit),共20位地址,总容量768k;
存储器2:单PLANE,块地址数8(Ba宽3bit),行地址数64(Ra宽6bit),列地址数64(Ca宽6bit),共15位地址,总容量32k。
Ca为列地址,Ra为行地址,Ba为块地址,PLANE为层面地址。
如图4所示,地址寄存器的位数为20位,等于存储器1的地址宽度。存储器1的地址Ba[6:0],Ra[3:0],PLANE,Ca[7,0]连接到地址寄存器的Adr[19,0],低位对齐。存储器2的地址Ba[2:0],Ra[5:0],Ca[5:0]连接到地址寄存器的Adr[14,0],低位对齐。
选择对存储器1进行扫描时,将存储器2设置成休眠状态,把存储器1的Ba边界值96存入地址边界寄存器里,地址寄存器的顺序由高到低是:Ba[6:0],Ra[3:0],PLANE,Ca[7,0]。
如图5所示,存储器1行扫描的顺序是Ca—PLANE—Ra—Ba,进行行扫描时,通过加数选择器,使1或K(实施例中K=8)与Ca[7:0]]的低位对齐,然后累加到地址寄存器,直至到块地址Ba到达地址边界,通过比较地址寄存器中的Ba[6:0]和地址边界寄存器中的96来确定地址扫描是否已到块地址Ba的边界,当到达块地址Ba的边界时地址边界比较器标志置位,停止扫描,通过结束信号选择器输出结束信号。
如图6所示,存储器1列扫描的顺序是Ra—Ba—Ca—PLANE,进行列扫描时,通过进位位选择开关断开PLANE和Ra[3]的进位位,使Ra[3]的进位位与Ba[0]相连,地址边界比较器的输出与Ca[0]相连,PLANE的进位位接到结束信号选择器,通加数选择器,使1与Ra[3:0]的低位对齐,然后累加到地址寄存器,当到达块地址Ba的边界时(Ba=96)地址边界比较器标志置位,同时通过控制器把地址寄存器中的Ba[6:0]清零,一直到PLANE有进位,停止扫描,通过结束信号选择器输出结束信号。
选择对存储器2进行扫描时,将存储器1设置成休眠状态,把存储器2的Ba边界值8存入地址边界寄存器里,地址寄存器的顺序由高到低是:Ba[2:0],Ra[5:0],Ca[5:0]。
如图7所示,存储器2行扫描的顺序是Ca—Ra—Ba,进行行扫描时,通过加数选择器,使1或K(实施例中K=8)与Ca[5:0]的低位对齐,然后累加到地址寄存器,直至到块地址Ba的边界,通过比较地址寄存器中的Ba[2:0]和地址边界寄存器中的8来确定地址扫描是否已到块地址Ba的边界,当到达块地址Ba的边界时地址边界比较器标志置位,停止扫描,通过结束信号选择器输出结束信号。
如图8所示,存储器2列扫描的顺序是Ra—Ba—Ca,进行列扫描时,通过进位位选择开关断开Ca[5]和Ra[5]的进位位,使Ra[5]的进位位与Ba[0]相连,地址边界比较器的输出与Ca[0]相连,Ca[5]的进位位接到结束信号选择器,通过低位地址选择器,使1或K(通过加数选择器来选择)与Ra[5:0]的低位对齐,然后累加到地址寄存器,当到达块地址Ba的边界时(Ba=8)地址边界比较器标志置位,同时通过控制器把地址寄存器中的Ba[2:0]清零,一直到Ca[5]有进位,停止扫描,通过结束信号选择器输出结束信号。
本发明的扫描方法,包括:通过地址寄存器,加法器,地址边界比较器,地址边界寄存器,地址边界选择器,加数选择器,进位位选择开关,结束信号选择器,控制字,使多存储器系统中的不同存储器的行地址、列地址和块地址组合成一个地址寄存器,该地址寄存器中的地址始终是一个完整的、连续的地址,包括:
进行行地址扫描,扫描顺序为:行地址—列地址—块地址,到达块地址的边界时,停止扫描;
进行列地址扫描,扫描顺序为:列地址—块地址—行地址,当行地址有进位时,停止扫描。
以上通过具体实施方式和实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。