CN109801665A - Sram自测试系统、架构及方法、存储介质 - Google Patents
Sram自测试系统、架构及方法、存储介质 Download PDFInfo
- Publication number
- CN109801665A CN109801665A CN201811535045.3A CN201811535045A CN109801665A CN 109801665 A CN109801665 A CN 109801665A CN 201811535045 A CN201811535045 A CN 201811535045A CN 109801665 A CN109801665 A CN 109801665A
- Authority
- CN
- China
- Prior art keywords
- sram
- self
- test
- algorithm
- fpga
- 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.)
- Granted
Links
Landscapes
- Tests Of Electronic Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明公开了一种SRAM自测试系统、架构及方法、存储介质,通过利用FPGA中的逻辑资源设置一个SRAM自测试架构对SRAM进行自检测,有效且合理地利用FPGA中丰富的逻辑资源,无需另外的定制电路。同时,该自测试架构是可以同时兼容多种SRAM测试算法,并根据实际情况灵活地变动测试算法,及时地对测试算法进行升级更新,也可以通过变动架构中的部分模块来产生更多针对特定类型失效模型fault的结构化测试。在不同的FPGA产品间,该架构的可移植性良好,代码维护成本低。在实际的芯片的量产过程中,这种BIST的测试通过运行多种SRAM测试算法,可以有效且低成本地第一时间筛去具有SRAM缺陷的FPGA。
Description
技术领域
本发明涉及可编程集成电路测试设计领域,特别涉及于一种SRAM自测试系统、架构及方法、存储介质。
背景技术
众所周知,现场可编程门阵列芯片(FPGA)具有可灵活编程、资源丰富、集成度高等优点,但这些优点也使得产品的复杂度大大提高。在芯片架构中包含了许多通用模块,其中SRAM模块就是作为FPGA中关键的数据存储处理模块。静态随机存取存储器(SRAM)有着存取速度快等优点,主要用于二级高速缓存(Cache),在FPGA中则作为嵌入式存储器使用。由于SRAM是以双稳态电路作为基础存储单元,在工作速度快的同时也会带来存储单元器件较多的问题,并且随着工艺的更新进步,晶体管的体积越来越小,SRAM的密度也会越来越高。晶体管密度大大提高的同时也使得工艺制造上一点微小的缺陷就会导致SRAM的功能或性能失效。常见的SRAM失效模型有SAF(Stuck-at Fault,固定型失效)、TF(Transition Fault,转换失效)、RDF(Read Destructive Fault,读破坏失效)等,随着晶体管体积的减小,动态失效(Dynamic Fault)和耦合失效(Coupling Fault)所占比例愈发严重。所以在SRAM的基础设计结构本身没有得到大幅度的改善之前,我们需要对SRAM进行结构化测试来保证各方面功能正常和性能达标。
发明内容
本发明解决的主要技术问题是:本发明提供了一种SRAM自测试系统、架构及方法、存储介质,以实现FPGA中SRAM的结构化测试来避免SRAM由于工艺制造的缺陷导致的功能或性能失效。
为解决上述技术问题,本发明采用以下技术方案:
本发明提供了一种静态随机存取存储器SRAM自测试架构,应用于可编程门阵列芯片FPGA,所述SRAM自测试架构包括:主控模块、指令存储模块和算法执行模块,其中,
所述主控模块用于输出系统控制信号控制所述SRAM自测试架构中各个模块对执行指令的解析处理;
所述指令存储模块将存储于FPGA的RAM中的执行指令逐一输出给所述算法执行模块,所述执行指令为FPGA根据当前使用的SRAM测试算法转换得到的二进制数指令。
所述算法执行模块根据所述系统控制信号对所述指令存储模块输出的所述二进制指令进行解析,得到测试指令,根据所述测试指令对所述待测SRAM中各个存储单元进行检测。
在本发明的另一实施例中,所述算法执行模块包括用于调整所述自测试架构各模块协同运行的时序调整模块LA,以及分别用于与所述SRAM连接的测试算法操作控制器OC、地址产生器AG、SRAM控制信号产生器CG、测试算法读写数据产生器DG和SRAM输出比较器OA;
所述测试算法操作控制器根据所述系统控制信号从所述二进制数指令中解析出读写指令,并分别发送给SRAM控制信号产生器和测试算法读写数据产生器;
所述SRAM控制信号产生器根据所述读写指令生成与所述待测SRAM对应的读写控制指令,所述读写控制指令用于控制对所述待测SRAM的读或写操作;
所述测试算法读写数据产生器根据所述读写指令中的数据极性指示,以及待测SRAM实际的数据位宽来产生相应储存单元的读写数据;
所述地址产生器用于根据所述系统控制信号从所述二进制数指令中解析出待测SRAM中待测的存储单元的地址;
所述SRAM输出比较器用于接收执行读写指令后,所述待测SRAM输出的数据,并将所述待测SRAM输出的数据与期望值进行比对,并输出比对结果,所述期望值是来自于所述时序调整模块产生的对应地址对应周期的数据。
在本发明的另一实施例中,若所述比对结果为所述待测SRAM输出的数据与期望值一致,则代表所述待测SRAM功能正常;
若所述比对结果为所述待测SRAM输出的数据与期望值不一致,则代表相应地址的存储单元存在功能失效。
进一步的,本发明还提供了一种制造自测试架构的方法,所述自测试架构为如上所述的SRAM自测试架构,所述方法包括:
获取所述SRAM的所有失效模型;
根据所述失效模型确定对应的SRAM测试算法;
基于所述SRAM测试算法,结合所述FPGA所在的产品的参数进行分析,提取出各个所述SRAM测试算法之间的共性信息;
根据所述共性信息对所述SRAM测试算法进行模块化设计;
根据所述模块化设计后的结果对所述FPGA中的逻辑资源进行编译,形成可兼容多种所述SRAM测试算法的自测试架构。
进一步的,本发明还提供了一种SRAM的自测试方法,应用于可编程门阵列芯片FPGA,所述方法包括:
在所述FPGA上构建兼容至少两种SRAM测试算法的自测试架构,所述自测试架构由所述FPGA上的逻辑资源形成;
确定所述FPGA待使用的SRAM测试算法,以及所述FPGA的实际参数;
将所述SRAM测试算法转换为二进制的执行指令;
根据所述FPGA的实际参数确定所述执行指令的解析方式;
基于所述解析方式对所述执行指令中的比特位进行解析,得到对所述SRAM的检测控制信息;
所述自测试架构根据所述检测控制信息对所述SRAM进行检测,确定所述SRAM是否可用。
在本发明的另一实施例中,所述在所述FPGA上构建兼容至少两种SRAM测试算法的自测试架构包括:
获取所述SRAM的所有失效模型;
根据所述失效模型确定对应的SRAM测试算法;
基于所述SRAM测试算法,结合所述FPGA所在的产品的参数进行分析,提取出各个所述SRAM测试算法之间的共性信息;
根据所述共性信息对所述SRAM测试算法进行模块化设计;
根据所述模块化设计后的结果对所述FPGA中的逻辑资源进行编译,形成可兼容多种所述SRAM测试算法的自测试架构。
在本发明的另一实施例中,所述自测试架构包括主控模块,以及与所述主控模块连接的指令存储模块和算法执行模块。
在本发明的另一实施例中,若所述SRAM测试算法为March C-算法时,所述基于所述解析方式对所述执行指令中的比特位进行解析,得到对所述SRAM的检测控制信息包括:
所述算法执行模块根据所述SRAM测试算法转换执行指令的比特位定义对所述执行指令中的前3bit的二进制数进行解析,得到地址遍历顺序和具体的读写操作;
所述算法执行模块根据所述SRAM测试算法转换执行指令的比特位定义对所述执行指令中的后7bit的二进制数进行解析,得到所述SRAM的测试存储单元的地址。
在本发明的另一实施例中,所述自测试架构根据所述检测控制信息对所述SRAM进行检测,确定所述SRAM是否可用包括:
所述算法执行模块根据所述SRAM的测试存储单元的地址确定所述SRAM中的测试存储单元,按照所述地址遍历顺序按照所述具体的读写操作对所述测试存储单元进行检测;
若所述测试存储单元输出的数据与期望值一致,则代表所述SRAM功能正常;
若所述测试存储单元输出的数据与期望值不一致,则代表相应地址的存储单元存在功能失效;
所述期望值是来自于所述算法执行模块产生的对应地址对应周期的数据。
进一步的,本发明还提供了一种SRAM的自测试系统,所述系统包括如上所述的SRAM自测试架构和SRAM;
所述SRAM自测试架构确定所述FPGA待使用的SRAM测试算法,以及所述FPGA的实际参数;将所述SRAM测试算法转换为二进制的执行指令;根据所述FPGA的实际参数确定所述执行指令的解析方式;基于所述解析方式对所述执行指令中的比特位进行解析,得到对所述SRAM的检测控制信息;根据所述检测控制信息对所述SRAM进行检测,确定所述SRAM是否可用。
进一步的,本发明还提供了一种SRAM的自测试系统,所述系统包括处理器、存储器及通信总线;
所述通信总线用于实现所述处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个程序,以实现如上所述的SRAM的自测试方法的步骤。
进一步的,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的自测试架构的设计方法的步骤,或者以实现如权上所述的SRAM的自测试方法的步骤。
本发明的有益效果:
本发明提供了一种SRAM自测试系统、架构及方法、存储介质,通过利用FPGA中的逻辑资源设置一个SRAM自测试架构对SRAM进行自检测,有效且合理地利用FPGA中丰富的逻辑资源,无需另外的定制电路。同时,该自测试架构是可以同时兼容多种SRAM测试算法,并根据实际情况灵活地变动测试算法,及时地对测试算法进行升级更新,也可以通过变动架构中的部分模块来产生更多针对特定类型失效模型fault的结构化测试。在不同的FPGA产品间,该架构的可移植性良好,代码维护成本低。在实际的芯片的量产过程中,这种BIST的测试通过运行多种SRAM测试算法,可以有效且低成本地第一时间筛去具有SRAM缺陷的FPGA。
附图说明
图1为本发明实施例提供的SRAM自测试架构的结构框图;
图2为本发明实施例提供的SRAM自测试架构的设计方法的流程图;
图3为本发明实施例提供的SRAM的自测试方法的流程图;
图4为本发明实施例提供的SRAM自测试系统的结构框图;
图5为本发明实施例提供的SRAM自测试系统的另一种结构框图;
图6为本发明实施例提供的SRAM的自测试系统的运行流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明中一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面通过具体实施方式结合附图对本发明作进一步详细说明。
实施例一:
图1为本发明实施例提供的SRAM自测试架构的结构框图,请参考图1,该SRAM自测试架构10包括主控模块11、指令存储模块12和算法执行模块13,其中,主控模块11分别与指令存储模块12和算法执行模块13通信连接,并且控制指令存储模块12和算法执行模块13对执行指令解析和对SRAM的故障检测判断。
在本实施例中,上述模块均是通过控制FPGA中的逻辑资源形成的功能模块,其中,
所述主控模块TC 11用于输出系统控制信号控制所述SRAM自测试架构中各个模块对执行指令的解析处理;
所述指令存储模块IM 12将存储于FPGA的RAM中的执行指令逐一输出给所述算法执行模块OC 13,所述执行指令为FPGA根据当前使用的SRAM测试算法转换得到的二进制数指令。
所述算法执行模块OC 13根据所述系统控制信号对所述指令存储模块IM 12输出的所述二进制指令进行解析,得到测试指令,根据所述测试指令对所述待测SRAM中各个存储单元进行检测。
在本实施例中,由于在执行指令时,会存在不同的控制信号或者是存在FPGA型号不同,而导致控制信号的不同,因此,为了实现更高的兼容性,本实施例在设计算法执行模13时根据信号指令的不同还进行例详细的划分,具体的所述算法执行模块13包括用于调整所述自测试架构各模块协同运行的时序调整模块LA 131,以及分别用于与所述SRAM连接的测试算法操作控制器OC 132、地址产生器AG133、SRAM控制信号产生器CG134、测试算法读写数据产生器DG135和SRAM输出比较器OA 136;
所述测试算法操作控制器132根据所述系统控制信号从所述二进制数指令中解析出读写指令,并分别发送给SRAM控制信号产生器134和测试算法读写数据产生器135;
所述SRAM控制信号产生器134根据所述读写指令生成与所述待测SRAM对应的读写控制指令,所述读写控制指令用于控制对所述待测SRAM的读或写操作;
所述测试算法读写数据产生器135根据所述读写指令中的数据极性指示,以及待测SRAM实际的数据位宽来产生相应储存单元的读写数据;
所述地址产生器133用于根据所述系统控制信号从所述二进制数指令中解析出待测SRAM中待测的存储单元的地址;
所述SRAM输出比较器136用于接收执行读写指令后,所述待测SRAM输出的数据,并将所述待测SRAM输出的数据与期望值进行比对,并输出比对结果,所述期望值是来自于所述时序调整模块131产生的对应地址对应周期的数据。
在本实施例中,在SRAM输出比较器136输出的所述比对结果为所述待测SRAM输出的数据与期望值一致时,则代表所述待测SRAM功能正常;
若所述比对结果为所述待测SRAM输出的数据与期望值不一致,则代表相应地址的存储单元存在功能失效。
在本实施例中,对于上述图1中的SRAM自测试架构是设计FPGA内的并且是通过控制其内部的逻辑资源来连接形成的虚拟的构架,基于此,对于该SRAM自测试架构的设计方法具体可以通过如下流程实现,如图2所示。
S201,获取所述SRAM的所有失效模型;
S202,根据所述失效模型确定对应的SRAM测试算法;
S203,基于所述SRAM测试算法,结合所述FPGA所在的产品的参数进行分析,提取出各个所述SRAM测试算法之间的共性信息;
S204,根据所述共性信息对所述SRAM测试算法进行模块化设计;
S205,根据所述模块化设计后的结果对所述FPGA中的逻辑资源进行编译,形成可兼容多种所述SRAM测试算法的自测试架构。
在本实施例中,对SRAM中的失效模型是由于现有的制造工艺的缺陷而形成的,也即是说通过一些常规的测试方式可以测试到SRAM常规存在的失效模型,该失效模型一般包括SAF(Stuck-at Fault,固定型失效)、TF(Transition Fault,转换失效)、RDF(ReadDestructive Fault,读破坏失效),针对于不同的失效模型会存在对应的测试算法,而这些算法都是存在一定的共性,基于共性来分析构建自测试架构。
在实际应用中,本实施例提出的FPGA片上SRAM自测试系统架构的设计实现使用的是Top-down的方法,属于内自建测试(BIST,Built-in Self Test)架构,具体实施步骤如下:
1、根据工业界已有的SRAM失效模型(fault)定义出FPGA中SRAM模块可能存在的失效模型,并根据相应的fault模型结合产品的实际情况进行分析研究,然后选择出多种合适的测试算法来进行结构化测试;
2、分析提炼第一步中多种SRAM测试算法的共性,合理地划分功能、模块来提高电路设计的通用性、可维护性、性能等,保证架构的质量;
3、使用microcode的电路设计思想,将测试算法转换为bit-level(位阶)的指令来控制整个测试逻辑的运行;
4、利用FPGA中丰富的逻辑资源构造执行测试指令的相应模块,完成RTL代码;
根据实际产品的情况,合理对FPGA进行布局布线,完成整个自测试构架的设计了。
综上,本实施例提供的自测试构架是通过失效模型的分析,控制FPGA中的逻辑资源形成,有效且合理地利用FPGA中丰富的逻辑资源,无需另外的定制电路。同时,该测试架构可以同时兼容多种SRAM测试算法,并且,该架构在不同的FPGA产品间的可移植性良好,代码维护成本低。在实际的芯片的量产过程中,这种BIST的测试架构兼容多种SRAM测试算法,可以有效且低成本地第一时间筛去具有SRAM缺陷的FPGA。
实施例二:
如图3所示,为本发明实施例提供的SRAM的自测试方法的流程图,请参考图3所示,该方法具体包括以下步骤:
S301,在所述FPGA上构建兼容至少两种SRAM测试算法的自测试架构。
在该步骤中,所述自测试架构由所述FPGA上的逻辑资源形成,具体是以下方式实现:
获取所述SRAM的所有失效模型;
根据所述失效模型确定对应的SRAM测试算法;
基于所述SRAM测试算法,结合所述FPGA所在的产品的参数进行分析,提取出各个所述SRAM测试算法之间的共性信息;
根据所述共性信息对所述SRAM测试算法进行模块化设计;
根据所述模块化设计后的结果对所述FPGA中的逻辑资源进行编译,形成可兼容多种所述SRAM测试算法的自测试架构。
S302,确定所述FPGA待使用的SRAM测试算法,以及所述FPGA的实际参数。
在实际应用中,对SRAM中的失效模型是由于现有的制造工艺的缺陷而形成的,也即是说通过一些常规的测试方式可以测试到SRAM常规存在的失效模型,该失效模型一般包括SAF(Stuck-at Fault,固定型失效)、TF(Transition Fault,转换失效)、RDF(ReadDestructive Fault,读破坏失效),针对于不同的失效模型会存在对应的测试算法。
在本实施例中,由于设计的架构是可以兼容多种SRAM测试算法的架构,而这里确定的算法的目的是用于转换成对应的执行指令,若要实现对SRAM的检测,是需要通过执行指令才能实现的,算法就是用于得到指令的关键。
S303,将所述SRAM测试算法转换为二进制的执行指令。
在本实施例中,在转换之前,还需要根据不同的测试算法对架构进行转换的定义,主要是对比特位的设置定义,以及比特位上的数值的设置。
基于上述的设置完成后,可以直接将测试算法转换为二进制的执行指令供FPGA调配使用。
S304,根据所述FPGA的实际参数确定所述执行指令的解析方式。
S305,基于所述解析方式对所述执行指令中的比特位进行解析,得到对所述SRAM的检测控制信息。
在该步骤中,具体是根据所述SRAM测试算法转换执行指令的比特位定义对所述执行指令中的前3bit的二进制数进行解析,得到地址遍历顺序和具体的读写操作;
所述算法执行模块根据所述SRAM测试算法转换执行指令的比特位定义对所述执行指令中的后7bit的二进制数进行解析,得到所述SRAM的测试存储单元的地址。
S306,所述自测试架构根据所述检测控制信息对所述SRAM进行检测,确定所述SRAM是否可用。
在本实施例中,所述自测试架构根据所述检测控制信息对所述SRAM进行检测,确定所述SRAM是否可用包括:
所述算法执行模块根据所述SRAM的测试存储单元的地址确定所述SRAM中的测试存储单元,按照所述地址遍历顺序按照所述具体的读写操作对所述测试存储单元进行检测;
若所述测试存储单元输出的数据与期望值一致,则代表所述SRAM功能正常;
若所述测试存储单元输出的数据与期望值不一致,则代表相应地址的存储单元存在功能失效;
所述期望值是来自于所述算法执行模块产生的对应地址对应周期的数据。
综上,通过利用FPGA中的逻辑资源设置一个SRAM自测试架构对SRAM进行自检测,有效且合理地利用FPGA中丰富的逻辑资源,无需另外的定制电路。同时,该自测试架构是可以同时兼容多种SRAM测试算法,并根据实际情况灵活地变动测试算法,及时地对测试算法进行升级更新,也可以通过变动架构中的部分模块来产生更多针对特定类型失效模型fault的结构化测试。在不同的FPGA产品间,该架构的可移植性良好,代码维护成本低。
实施例三:
图4和5为本实施例提供的SRAM的自测试系统,该系统具体包括上述实施例提供的SRAM自测试架构10和SRAM40,在实际应用中,SRAM自测试架构10和SRAM40都是属于FPGA中的组成部分,其中SRAM自测试架构10是通过控制FPGA中的逻辑资源形成的。
具体的,SRAM自测试架构10包括主控模块11、指令存储模块12和算法执行模块13,其中算法执行模块13包括时序调整模块LA 131,以及分别用于与所述SRAM连接的测试算法操作控制器OC 132、地址产生器AG133、SRAM控制信号产生器CG134、测试算法读写数据产生器DG135和SRAM输出比较器OA 136。
在本实施例中,若所述SRAM测试算法为March C-算法时,所述基于所述解析方式对所述执行指令中的比特位进行解析,得到对所述SRAM的检测控制信息包括:
所述算法执行模块根据所述SRAM测试算法转换执行指令的比特位定义对所述执行指令中的前3bit的二进制数进行解析,得到地址遍历顺序和具体的读写操作;
所述算法执行模块根据所述SRAM测试算法转换执行指令的比特位定义对所述执行指令中的后7bit的二进制数进行解析,得到所述SRAM的测试存储单元的地址。
下面以March C-算法为例对使用该SRAM自测试架构10实现对SRAM测试的测试系统的具体测试流程进行说明。
式1中所示为March C-算法,该算法可以测试SAF、AF、TF以及多种couplingfault,是工业界常用的一种的SRAM测试算法,接下来将会以该算法为例,详细地介绍具体的实施方案。
1、首先需要对SRAM测试算法分析提炼出其共性。通用的SRAM测试算法都会使用FFM(Functional Fault Model)的架构,针对FFM架构的测试算法做出如下定义:
·AO:Address Order,地址遍历顺序,例:遍历顺序为地址增的方向;
·OP:Operation,具体的读写操作,例:w1,对当前地址进行写1操作;
·TE:Test Element,TS中的每一个测试单元,基础元素为AO和OP,例:使用地址增的方式遍历每一个地址的SRAM cell(SRAM存储单元),同时每一个地址的cell先做一次读1,然后再做一次写0;
·TS:Test Sequence,整个测试算法的序列,这里即指March C-算法;
使用上述定义对March C-算法重新进行解读,即式1为1个TS,里面包含了6个TE,每个TE有1个AO和1~2个OP。每个AO有地址增、地址减、任意方向三种情况,每个OP则会有写0、写1、读0和读1共四种情况。
2、分析提炼出SRAM测试算法共性后,便可以将SRAM测试算法转换为指令(Instruction),根据步骤1中的分析,一条指令可以对应一个TE,现对Instruction的通用架构做如下表1中的定义:
表1 Instruction的通用架构
根据表1中Instruction的通用架构的定义,便可将TS转换成由二进制数组成的Instruction,例:March SS中的可以转换为1000010011。
3、如图5的SRAM BIST架构所示,这个架构将整个测试系统分为了主控模块(TC,Test Controller)、指令存储模块(IM,Instruction Memory)、算法执行模块以及待测试的SRAM。其中算法执行模块是由OC、AG、CG、DG、LA、OA这6个模块组成的,如下为各个模块功能的详细说明:
·TC:Test Control,测试系统的主控模块,负责产生系统复位、测试执行、测试流程跳转控制等系统级控制信号;
·IM:Instruction Memory,测试算法指令存储模块,在步骤2中,已将测试算法转换为一条条二进制数指令,将这些二进制数存储到由FPGA逻辑资源构造成的RAM中,即IM中。当开始执行测试算法时,IM将会把指令一条条按顺序发给各个相关的算法执行模块(OC、AG、CG、DG、LA、OA)。IM中可以同时存储多个TS;
·OC:Operation Controller,测试算法操作控制器,已知在步骤2中,一条指令对应一个TE,但一个TE会包含多条读写数据的指令且包含有地址遍历顺序信息。但一个TE只会有一个地址遍历顺序,所以OC专门负责复杂的读写指令的解析。IM将指令传给AG和OC两个模块,OC再将读写数据指令解析完成后发给CG和DG。在步骤2的示例中,OC会根据instruction的前3bit的二进制数进行解析;
·AG:Address Generator,地址产生器。由于一个TE中地址产生的方法是固定的,且地址遍历顺序有多种模式,再加上不同的FPGA器件的地址可能会有特定的要求,所以测试系统需要AG模块来相对独立地产生SRAM测试单元的地址。在步骤2的示例中,AG会根据instruction的后7bit的二进制数进行解析;
·CG:Control Generator,SRAM控制信号产生器。不同器件的SRAM必然会存在特有控制信号,CG的作用就在于收到OC的读写指令后,产生特定SRAM读写控制等指令,若需将整套测试系统移植到新的FPGA上,只要测试算法没有变动,那就只需要修改CG模块的代码,这样便可兼容多个FPGA。
·DG:Data Generator,测试算法读写数据产生器。根据OC发来的数据极性指示结合待测SRAM实际的数据位宽来产生相应cell的读写数据。
·LA:Latency Adjuster,时序调整模块。由于整个测试系统是有多个模块协同运行的,LA就是专门用于调整这些模块的时序,让所有的信号统一协调作用,同时可以让系统可以工作在更高的测试频率上,提高效率。
·OA:Output Analyzer,SRAM输出比较器。SRAM测试算法最终的判决方法来自于SRAM输出与期望值的比对,SRAM输出来自于SRAM本身读时候的输出,期望值是来自于LA产生的对应地址对应周期的数据。SRAM输出与期望值一致则代表SRAM功能正常,不一致则代表相应地址的cell存在fault。
从总体来看,IM和OC构成了SRAM测试算法的存储和解析,AG、CG、DG构成了特定产品的SRAM连接桥梁,实现了测试算法和实际产品的分离,给系统架构带来了良好的可移植性。
4、整个测试系统运行流程如图6所示,测试系统从IDLE状态开始启动,先进行初始化设置,然后进入测试执行阶段。测试执行阶段是由3重循环流程嵌套而成,第一重最大的循环为指令执行的循环,第二重为地址访问循环,第三重为单地址读写操作循环。举例说明如下:
第一重循环:IM发出一条instruction(即为一个TE),OC和AG通过解析instruction中特定bit位,得到AO和OP的信息,AG根据AO产生需要测试SRAM cell地址,OC根据OP产生读写指令给CG以及数据极性指令给DG;
第二重循环:AG发出一个当前需要测试的SRAM cell的地址给SRAM;
第三重循环:CG和DG按顺序一个个发出当前地址需要进行的读写操作和数据,直到执行完成多个OP;
SRAM中一个地址完成第三重循环后,进入第二重循环,即测试下一个地址的cell,在该地址再次进行第三重循环,直到执行完成SRAM所有地址cell的一个TE,这时候跳到第一重循环,执行下一个TE;
当IM中所有的instruction被取完后即代表所有的TS都被测试完成,此时回到初始化状态。
完成上述4个步骤后,SRAM BIST系统设计代码已经基本完成,但生成FPGA位流还需要进行资源布局布线等步骤,合理的布局布线可以提高系统工作频率,避免带来时序上的错误。由于布局布线不是本架构的重点,不在这里做详细的阐述。
相应的,本发明还提供了一种SRAM的自测试系统,所述系统包括处理器、存储器及通信总线;
所述通信总线用于实现所述处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述实施二中提供的SRAM的自测试方法的步骤。
该方法的具体步骤与实施例二中的相同,这里就不再重复赘述了。
相应的,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现实施例一中提供的制造自测试架构的方法的步骤,或者是以实现上述实施例二提供的的SRAM的自测试方法的步骤。
综上所述,通过本发明的实施,至少存在以下有益效果:
本发明提供了一种SRAM自测试系统、架构及方法、存储介质,通过利用FPGA中的逻辑资源设置一个SRAM自测试架构对SRAM进行自检测,有效且合理地利用FPGA中丰富的逻辑资源,无需另外的定制电路。同时,该自测试架构是可以同时兼容多种SRAM测试算法,并根据实际情况灵活地变动测试算法,及时地对测试算法进行升级更新,也可以通过变动架构中的部分模块来产生更多针对特定类型失效模型fault的结构化测试。在不同的FPGA产品间,该架构的可移植性良好,代码维护成本低。
在实际的芯片的量产过程中,这种BIST的测试通过运行多种SRAM测试算法,可以有效且低成本地第一时间筛去具有SRAM缺陷的FPGA。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (12)
1.一种静态随机存取存储器SRAM自测试架构,其特征在于,应用于可编程门阵列芯片FPGA,所述SRAM自测试架构包括:主控模块、指令存储模块和算法执行模块,其中,
所述主控模块用于输出系统控制信号控制所述SRAM自测试架构中各个模块对执行指令的解析处理;
所述指令存储模块将存储于FPGA的RAM中的执行指令逐一输出给所述算法执行模块,所述执行指令为FPGA根据当前使用的SRAM测试算法转换得到的二进制数指令。
所述算法执行模块根据所述系统控制信号对所述指令存储模块输出的所述二进制指令进行解析,得到测试指令,根据所述测试指令对所述待测SRAM中各个存储单元进行检测。
2.如权利要求1所述的SRAM自测试架构,其特征在于,所述算法执行模块包括用于调整所述自测试架构各模块协同运行的时序调整模块LA,以及分别用于与所述SRAM连接的测试算法操作控制器OC、地址产生器AG、SRAM控制信号产生器CG、测试算法读写数据产生器DG和SRAM输出比较器OA;
所述测试算法操作控制器根据所述系统控制信号从所述二进制数指令中解析出读写指令,并分别发送给SRAM控制信号产生器和测试算法读写数据产生器;
所述SRAM控制信号产生器根据所述读写指令生成与所述待测SRAM对应的读写控制指令,所述读写控制指令用于控制对所述待测SRAM的读或写操作;
所述测试算法读写数据产生器根据所述读写指令中的数据极性指示,以及待测SRAM实际的数据位宽来产生相应储存单元的读写数据;
所述地址产生器用于根据所述系统控制信号从所述二进制数指令中解析出待测SRAM中待测的存储单元的地址;
所述SRAM输出比较器用于接收执行读写指令后,所述待测SRAM输出的数据,并将所述待测SRAM输出的数据与期望值进行比对,并输出比对结果,所述期望值是来自于所述时序调整模块产生的对应地址对应周期的数据。
3.如权利要求2所述的SRAM自测试架构,其特征在于,若所述比对结果为所述待测SRAM输出的数据与期望值一致,则代表所述待测SRAM功能正常;
若所述比对结果为所述待测SRAM输出的数据与期望值不一致,则代表相应地址的存储单元存在功能失效。
4.一种自测试架构的设计方法,所述自测试架构为如权利要求1-3任一项所述的SRAM自测试架构,其特征在于,所述设计方法包括:
获取所述SRAM的所有失效模型;
根据所述失效模型确定对应的SRAM测试算法;
基于所述SRAM测试算法,结合所述FPGA所在的产品的参数进行分析,提取出各个所述SRAM测试算法之间的共性信息;
根据所述共性信息对所述SRAM测试算法进行模块化设计;
根据所述模块化设计后的结果对所述FPGA中的逻辑资源进行编译,形成可兼容多种所述SRAM测试算法的自测试架构。
5.一种SRAM的自测试方法,其特征在于,应用于可编程门阵列芯片FPGA,所述方法包括:
在所述FPGA上构建兼容至少两种SRAM测试算法的自测试架构,所述自测试架构由所述FPGA上的逻辑资源形成;
确定所述FPGA待使用的SRAM测试算法,以及所述FPGA的实际参数;
将所述SRAM测试算法转换为二进制的执行指令;
根据所述FPGA的实际参数确定所述执行指令的解析方式;
基于所述解析方式对所述执行指令中的比特位进行解析,得到对所述SRAM的检测控制信息;
所述自测试架构根据所述检测控制信息对所述SRAM进行检测,确定所述SRAM是否可用。
6.如权利要求5所述的SRAM的自测试方法,其特征在于,所述在所述FPGA上构建兼容至少两种SRAM测试算法的自测试架构包括:
获取所述SRAM的所有失效模型;
根据所述失效模型确定对应的SRAM测试算法;
基于所述SRAM测试算法,结合所述FPGA所在的产品的参数进行分析,提取出各个所述SRAM测试算法之间的共性信息;
根据所述共性信息对所述SRAM测试算法进行模块化设计;
根据所述模块化设计后的结果对所述FPGA中的逻辑资源进行编译,形成可兼容多种所述SRAM测试算法的自测试架构。
7.如权利要求6所述的SRAM的自测试方法,其特征在于,所述自测试架构包括主控模块,以及与所述主控模块连接的指令存储模块和算法执行模块。
8.如权利要求7所述的SRAM的自测试方法,其特征在于,若所述SRAM测试算法为MarchC-算法时,所述基于所述解析方式对所述执行指令中的比特位进行解析,得到对所述SRAM的检测控制信息包括:
所述算法执行模块根据所述SRAM测试算法转换执行指令的比特位定义对所述执行指令中的前3bit的二进制数进行解析,得到地址遍历顺序和具体的读写操作;
所述算法执行模块根据所述SRAM测试算法转换执行指令的比特位定义对所述执行指令中的后7bit的二进制数进行解析,得到所述SRAM的测试存储单元的地址。
9.如权利要求8所述的SRAM的自测试方法,其特征在于,所述自测试架构根据所述检测控制信息对所述SRAM进行检测,确定所述SRAM是否可用包括:
所述算法执行模块根据所述SRAM的测试存储单元的地址确定所述SRAM中的测试存储单元,按照所述地址遍历顺序按照所述具体的读写操作对所述测试存储单元进行检测;
若所述测试存储单元输出的数据与期望值一致,则代表所述SRAM功能正常;
若所述测试存储单元输出的数据与期望值不一致,则代表相应地址的存储单元存在功能失效;
所述期望值是来自于所述算法执行模块产生的对应地址对应周期的数据。
10.一种SRAM的自测试系统,其特征在于,所述系统包括如权利要求1-3任一项所述的SRAM自测试架构和SRAM;
所述SRAM自测试架构确定所述FPGA待使用的SRAM测试算法,以及所述FPGA的实际参数;将所述SRAM测试算法转换为二进制的执行指令;根据所述FPGA的实际参数确定所述执行指令的解析方式;基于所述解析方式对所述执行指令中的比特位进行解析,得到对所述SRAM的检测控制信息;根据所述检测控制信息对所述SRAM进行检测,确定所述SRAM是否可用。
11.一种SRAM的自测试系统,其特征在于,所述系统包括处理器、存储器及通信总线;
所述通信总线用于实现所述处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个程序,以实现如权利要求5至9中任一项所述的SRAM的自测试方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求4所述的制造自测试架构的方法的步骤,或者以实现如权利要求5至9中任一项所述的SRAM的自测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811535045.3A CN109801665B (zh) | 2018-12-14 | 2018-12-14 | Sram自测试系统、架构及方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811535045.3A CN109801665B (zh) | 2018-12-14 | 2018-12-14 | Sram自测试系统、架构及方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109801665A true CN109801665A (zh) | 2019-05-24 |
CN109801665B CN109801665B (zh) | 2021-05-11 |
Family
ID=66556768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811535045.3A Active CN109801665B (zh) | 2018-12-14 | 2018-12-14 | Sram自测试系统、架构及方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109801665B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287625A (zh) * | 2019-06-28 | 2019-09-27 | 江苏芯盛智能科技有限公司 | 存储系统性能评估装置、方法、电子设备及存储介质 |
CN112185455A (zh) * | 2020-10-16 | 2021-01-05 | 天津津航计算技术研究所 | Sram通用测速电路 |
CN112420117A (zh) * | 2020-11-19 | 2021-02-26 | 深圳忆联信息系统有限公司 | 测试sram的方法、装置、计算机设备及存储介质 |
CN117789808A (zh) * | 2024-02-26 | 2024-03-29 | 合肥康芯威存储技术有限公司 | 一种存储器及其坏块纠错方法 |
WO2024098602A1 (zh) * | 2022-11-07 | 2024-05-16 | 长鑫存储技术有限公司 | 控制电路及存储器 |
CN118197393A (zh) * | 2024-05-17 | 2024-06-14 | 合肥智芯半导体有限公司 | 芯片及其启动方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102332306A (zh) * | 2011-07-15 | 2012-01-25 | 桂林电子科技大学 | 基于ieee 1500的嵌入式sram存储器测试结构及测试方法 |
KR101310404B1 (ko) * | 2013-01-02 | 2013-10-14 | 주식회사 아이티엔티 | 에스램을 이용한 에러 캐치 램이 구현된 테스트 장치 |
US9015460B2 (en) * | 2012-07-30 | 2015-04-21 | Oracle International Corporation | Hybrid hardwired/programmable reset sequence controller |
CN106098104A (zh) * | 2016-06-11 | 2016-11-09 | 复旦大学 | Fpga芯片内嵌bram核的测试系统及方法 |
CN107942240A (zh) * | 2017-11-15 | 2018-04-20 | 深圳市紫光同创电子有限公司 | Fpga芯片中dsp模块的功能测试方法及装置 |
CN108511029A (zh) * | 2017-02-23 | 2018-09-07 | 上海复旦微电子集团股份有限公司 | 一种fpga中双端口sram阵列的内建自测和修复系统及其方法 |
-
2018
- 2018-12-14 CN CN201811535045.3A patent/CN109801665B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102332306A (zh) * | 2011-07-15 | 2012-01-25 | 桂林电子科技大学 | 基于ieee 1500的嵌入式sram存储器测试结构及测试方法 |
US9015460B2 (en) * | 2012-07-30 | 2015-04-21 | Oracle International Corporation | Hybrid hardwired/programmable reset sequence controller |
KR101310404B1 (ko) * | 2013-01-02 | 2013-10-14 | 주식회사 아이티엔티 | 에스램을 이용한 에러 캐치 램이 구현된 테스트 장치 |
CN106098104A (zh) * | 2016-06-11 | 2016-11-09 | 复旦大学 | Fpga芯片内嵌bram核的测试系统及方法 |
CN108511029A (zh) * | 2017-02-23 | 2018-09-07 | 上海复旦微电子集团股份有限公司 | 一种fpga中双端口sram阵列的内建自测和修复系统及其方法 |
CN107942240A (zh) * | 2017-11-15 | 2018-04-20 | 深圳市紫光同创电子有限公司 | Fpga芯片中dsp模块的功能测试方法及装置 |
Non-Patent Citations (2)
Title |
---|
张京晶等: "A novel SRAM test method based on embedded implementation on FPGA", 《JOURNAL OF TERAHERTZ SCIENCE AND ELECTRONIC INFORMATION TECHNOLOGY》 * |
陈亚坤: "基于FPGA测试电路的SRAM自测试研究", 《MICROCONTROLLERS & EMBEDDED SYSTEMS》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287625A (zh) * | 2019-06-28 | 2019-09-27 | 江苏芯盛智能科技有限公司 | 存储系统性能评估装置、方法、电子设备及存储介质 |
CN110287625B (zh) * | 2019-06-28 | 2022-10-14 | 江苏芯盛智能科技有限公司 | 存储系统性能评估装置、方法、电子设备及存储介质 |
CN112185455A (zh) * | 2020-10-16 | 2021-01-05 | 天津津航计算技术研究所 | Sram通用测速电路 |
CN112185455B (zh) * | 2020-10-16 | 2024-06-25 | 天津津航计算技术研究所 | Sram通用测速电路 |
CN112420117A (zh) * | 2020-11-19 | 2021-02-26 | 深圳忆联信息系统有限公司 | 测试sram的方法、装置、计算机设备及存储介质 |
WO2024098602A1 (zh) * | 2022-11-07 | 2024-05-16 | 长鑫存储技术有限公司 | 控制电路及存储器 |
CN117789808A (zh) * | 2024-02-26 | 2024-03-29 | 合肥康芯威存储技术有限公司 | 一种存储器及其坏块纠错方法 |
CN117789808B (zh) * | 2024-02-26 | 2024-05-24 | 合肥康芯威存储技术有限公司 | 一种存储器及其坏块纠错方法 |
CN118197393A (zh) * | 2024-05-17 | 2024-06-14 | 合肥智芯半导体有限公司 | 芯片及其启动方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109801665B (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109801665A (zh) | Sram自测试系统、架构及方法、存储介质 | |
CN100578446C (zh) | 基于数据驱动的测试用例设计测试方法及自动测试平台 | |
US8788886B2 (en) | Verification of SoC scan dump and memory dump operations | |
CN113486625B (zh) | 芯片的验证方法与验证系统 | |
CN102567122A (zh) | 多仿真验证平台下的处理器参考模型的通信接口方法 | |
CN110321292A (zh) | 芯片测试方法、装置、电子设备及计算机可读存储介质 | |
CN108062267A (zh) | 一种可配置寄存器文件自测试方法及生成装置 | |
CN108038328A (zh) | 芯片自动仿真验证系统 | |
CN105654993A (zh) | 用于ddr3 sdram控制器的功能验证方法及平台 | |
US20130024178A1 (en) | Playback methodology for verification components | |
CN1560743A (zh) | 多媒体处理器协同仿真验证平台 | |
CN108920825A (zh) | 一种基于IP核的SoC可视化设计方法 | |
EP1031994A1 (en) | Built-in self-test circuit for memory | |
CN102231132A (zh) | 一种基于SystemC的AADL软构件模型仿真测试实例生成方法 | |
CN107290656B (zh) | 一种集成双向crc校验功能的可扩展jtag调试结构 | |
He et al. | Design and Implementation of Embedded Real‐Time English Speech Recognition System Based on Big Data Analysis | |
CN101916305A (zh) | 一种复杂管脚芯片的验证方法 | |
CN105988792A (zh) | 核电软件开发自动化系统和方法 | |
CN111176926A (zh) | 一种基于双口sram的ip核仿真系统及仿真方法 | |
CN106844118A (zh) | 一种基于Tbus总线标准的片内总线测试系统 | |
CN110727611A (zh) | 一种带状态监测的可配置一致性验证系统 | |
Zheng et al. | The methods of FPGA software verification | |
Feng et al. | Design and application of reusable SoC verification platform | |
CN104679963A (zh) | 一种基于tcl的仿真验证装置和方法 | |
CN105068908B (zh) | 一种用于kvm asic的功能验证平台的搭建方法 |
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 |