CN115033435A - 一种基于有限状态机的可编程存储器内建自测试方法 - Google Patents
一种基于有限状态机的可编程存储器内建自测试方法 Download PDFInfo
- Publication number
- CN115033435A CN115033435A CN202210646507.9A CN202210646507A CN115033435A CN 115033435 A CN115033435 A CN 115033435A CN 202210646507 A CN202210646507 A CN 202210646507A CN 115033435 A CN115033435 A CN 115033435A
- Authority
- CN
- China
- Prior art keywords
- test
- algorithm
- module
- self
- state machine
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明涉及一种基于有限状态机的可编程存储器内建自测试方法,所述方法通过三个计数器驱动的可编程Mbist控制模块、算法模块、比较分析模块和待测BRAM实现。本发明中算法模块集成了8种测试算法并根据每个测试算法的特点生成特征信号,从而提高对故障的覆盖率。二是可编程Mbist控制模块接收到算法模块生成的测试算法的特征信号,在三个计数器的控制下生成测试向量、地址和控制信号对BRAM进行测试,进而提高测试的灵活性。本发明提供了一种新的基于有限状态机的可编程存储器内建自测试方法,用此方法代替常规的测试方法,可在需要更换测试算法时,所提出的测试方法不需重新设置Mbist电路,有效地减少了人力和配置时间从而降低测试成本。
Description
技术领域
本发明涉及嵌入式存储器测试技术,尤其是指一种基于有限状态机的可编程存储器内建自测试方法。
背景技术
随着半导体技术的进步,在目前的SoC产品中,嵌入式存储占据了大部分芯片面积,已成为影响SoC芯片可靠性的关键因素。BRAM是最常用的IP核之一,对BRAM的测试在芯片制造过程中发挥着重要作用,因此如何高效率测试其功能的正确性尤为重要。
而常见的存储器内建自测试(Mbist)方法是基于FSM控制器把某一种测试算法固化到芯片中,若需实现新算法或更改现有算法就需要更改Mbist电路设计,因此它的灵活性较低。目前,很多学者提出了多种BRAM测试算法,但无论是哪一种测试算法都不能对所有的故障实现全覆盖,对于任何未被检测出的故障都会影响产品的可靠性。因此,需要为SoC设计一种能提高灵活性且故障覆盖率高、面积开销小的可编程Mbist。
发明内容
为此,本发明所要解决的技术问题在于克服现有技术中SoC型FPGA内嵌BRAM的常见方法存在灵活性差、故障覆盖率低的问题,从而提供一种新的基于有限状态机的可编程存储器内建自测试方法。
为解决上述技术问题,本发明的一种基于有限状态机的可编程存储器内建自测试方法,所述方法通过三个计数器驱动的可编程Mbist控制模块、算法模块、比较分析模块和待测BRAM实现,包括如下步骤:
步骤S1:待测BRAM模块设定BRAM的工作状态,算法模块根据测试算法的顺序选择第一个测试算法并产生测试算法的特征信号;
步骤S2:可编程Mbist控制模块接收到算法模块生成的测试算法的特征信号,并在三个计数器的控制下生成测试向量、地址和控制信号对BRAM进行测试;
步骤S3:第一个算法执行完毕之后,测试算法模块产生第二个测试算法的特征信号,开始第二个测试算法的测试,以此类推。
在本发明的一个实施例中,所述的算法模块集成多种测试算法,根据所选择的测试算法生成测试算法的特征信号;可编程Mbist控制模块被三个计数器驱动并采用FSM实现产生测试向量,地址以及各控制信号;比较分析模块是比较存储器的输出向量和可编程Mbist控制模块产生的参考向量是否一致;待测BRAM模块可以被设置成不同的工作状态。
在本发明的一个实施例中,所述的算法模块集成了八种测试算法并根据每个测试算法的特点生成特征信号,从而提高对故障的覆盖率。
在本发明的一个实施例中,所述的可编程Mbist控制模块接收到算法模块生成的测试算法的特征信号,在三个计数器的控制下生成测试向量、地址和控制信号对BRAM进行测试,进而提高测试的灵活性。
在本发明的一个实施例中,所述的三个计数器用于生成合适的st、cant和addr;以March X算法(算法0)为例,通过将cant设为0从算法模块中来选择March X算法,包括如下步骤:
步骤S1:Mbist_control被置为1开始内建自测试,最初,st值为0,N-st值为0,addr值为0,cant值为0;
步骤S2:因此要执行↑w0 March元素,FSM进入w0状态,操作w0在地址0位置完成;
步骤S3:当操作w0在第一个地址位置完成时,N-st变为1,addr增加,N-st复位;
步骤S4:对所有地址位进行w0操作后,st的值加1;
步骤S5:st的值为1,FSM执行↑(r0,w1)March元素,FSM进入↑(r0,w1)状态。
在本发明的一个实施例中,所述的↑(r0,w1)March元素包含两个操作,算法模块生成的测试元素内的操作次数为2,这两个操作必须在一个地址位置完成时,N-st才会置为1,addr增加,N-st的值复位;其所有March元素都以上述方式执行;直到st的值执行到算法模块生成st的最大值且N-st置为1时,et才会置成1,表示一个March算法的完成,cant值从0加到1,在算法模块中选择测试算法1进行执行,以此类推。
在本发明的一个实施例中,所述方法为通用性的BRAM测试方法,应用于其它型号的FPGA内BRAM的测试。
本发明的上述技术方案相比现有技术具有以下优点:本发明所述的基于有限状态机的可编程存储器内建自测试方法,通过三个计数器驱动的可编程Mbist控制模块和集成八种测试算法的算法模块,提高故障覆盖率和灵活性;该方法对块存储器进行测试能够准确定位故障位置,故障的检测率提高了28.75%,灵活性差的问题也得到了很大改善;且在需要更换测试算法时,不需重新设置Mbist电路,有效地减少了人力和配置时间从而降低测试成本。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明。
图1是本发明提出的可编程Mbist电路结构图;
图2是本发明所述可编程Mbist控制模块框图;
图3是本发明提出的Mbist控制器流程图;
图4是本发明March X的故障定位图;
图5是常见的Mbist测试方法的注入故障仿真界面图;
图6是本发明提出的Mbist测试方法的注入故障仿真界面图。
具体实施方式
本实施例提供一种新的基于有限状态机的可编程存储器内建自测试方法,该方法是通过三个计数器驱动的可编程Mbist控制模块和算法模块集成八种测试算法,提高故障覆盖率和灵活性。Mbist电路结构图如图1所示,Mbist电路以Mbist_clk、Mbist_rst和Mbist_control信号作为输入,以生成地址、读写控制信号、测试向量、err_count、Mbist_done以及Mbist_fial信号作为输出。
可编程Mbist控制模块采用FSM实现产生测试向量,地址以及各控制信号,如图2所示目的为了实现4个状态的转换,分别为r0、r1、w0和w1。这些状态之间的转换取决于四个因素:
第一个为cant的值,表示表1中测试算法的序号;第二个为st,表示表1中的M0-M5,用于执行测试算法中指定的March元素;第三个为N-st,表示执行每个March元素中所有操作完成信号;第四个为et,表示一个测试算法的所有March元素在存储器的所有地址执行完成信号,其中March算法表如下表所示:
所述的三个计数器用于生成合适的st、cant和addr;以March X算法(算法0)为例,通过将cant设为0从算法模块中来选择March X算法,包括如下步骤:
步骤S1:Mbist_control被置为1开始内建自测试,最初,st值为0,N-st值为0,addr值为0,cant值为0;
步骤S2:因此要执行↑w0 March元素,FSM进入w0状态,操作w0在地址0位置完成;
步骤S3:当操作w0在第一个地址位置完成时,N-st变为1,addr增加,N-st复位;
步骤S4:对所有地址位进行w0操作后,st的值加1;
步骤S5:st的值为1,FSM执行↑(r0,w1)March元素,FSM进入↑(r0,w1)状态。
进一步地,由于这个↑(r0,w1)March元素包含两个操作,算法模块生成的测试元素内的操作次数为2,这两个操作必须在一个地址位置完成时,N-st才会置为1,addr增加,N-st的值复位。类似地,所有March元素都以上述方式执行。直到st的值执行到算法模块生成st的最大值且N-st置为1时,et才会置成1,表示一个March算法的完成,cant值从0加到1,在算法模块中选择测试算法1进行执行,以此类推。
算法模块根据cant的值决定执行的测试算法,生成st的最大值,以及每个测试元素需要操作的次数和地址执行方向。实现8个测试算法的流程图如图2左侧所示,单个测试算法的具体流程图如图2右侧所示。
比较分析模块将存储器的输出向量和FSM的产生的参考向量作为输入。如果参考向量和存储器的输出向量不匹配,则比较器单元给出的Mbist_fial输出将为1(高),表明相应地址位置存在故障。并且为了方便统计故障数,在比较器的输出端设计一个故障计数器。
根据所提出的测试方法,采用Verilog HDL语言编程实现所提出的电路设计,通过modelsim仿真工具对36*1024的BRAM进行仿真测试。为验证所提出的可编程Mbist控制器的故障检测能力,在BRAM的“0101101001”地址注入一个固定“0”故障,对所有地址执行写1操作,采用March X测试算法的仿真结果如图3所示,表明可以精准检测并定位到该故障。
进一步地,本文进行一组对比仿真实验,采用Verilog HDL语言在设计待测BRAM时进行人为注入32个故障,然后用所提出的Mbist测试方法和常见的Mbist测试方法去测试注入故障之后的BRAM。常见的Mbist测试方法的注入故障仿真结果如图4所示,检测到的故障数是26个,故障检测率为81.25%。所提出的Mbist测试方法的注入故障仿真如图5所示,检测到的故障数是32个,故障检测率为100%。
本发明相比较于常见的Mbist测试方法,具有较高的故障覆盖率和灵活性较高等特点,该方法也可以应用于其它型号的FPGA内BRAM的测试。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (7)
1.一种基于有限状态机的可编程存储器内建自测试方法,所述方法通过三个计数器驱动的可编程Mbist控制模块、算法模块、比较分析模块和待测BRAM实现,其特征在于,包括如下步骤:
步骤S1:待测BRAM模块设定BRAM的工作状态,算法模块根据测试算法的顺序选择第一个测试算法并产生测试算法的特征信号;
步骤S2:可编程Mbist控制模块接收到算法模块生成的测试算法的特征信号,并在三个计数器的控制下生成测试向量、地址和控制信号对BRAM进行测试;
步骤S3:第一个算法执行完毕之后,测试算法模块产生第二个测试算法的特征信号,开始第二个测试算法的测试,以此类推。
2.根据权利要求1所述的基于有限状态机的可编程存储器内建自测试方法,其特征在于:所述的算法模块集成多种测试算法,根据所选择的测试算法生成测试算法的特征信号;可编程Mbist控制模块被三个计数器驱动并采用FSM实现产生测试向量,地址以及各控制信号;比较分析模块是比较存储器的输出向量和可编程Mbist控制模块产生的参考向量是否一致;待测BRAM模块可以被设置成不同的工作状态。
3.根据权利要求1所述的基于有限状态机的可编程存储器内建自测试方法,其特征在于:所述的算法模块集成了八种测试算法并根据每个测试算法的特点生成特征信号,从而提高对故障的覆盖率。
4.根据权利要求1所述的基于有限状态机的可编程存储器内建自测试方法,其特征在于:所述的可编程Mbist控制模块接收到算法模块生成的测试算法的特征信号,在三个计数器的控制下生成测试向量、地址和控制信号对BRAM进行测试,进而提高测试的灵活性。
5.根据权利要求1所述的基于有限状态机的可编程存储器内建自测试方法,其特征在于:所述的三个计数器用于生成合适的st、cant和addr;以March X算法为例,通过将cant设为0从算法模块中来选择March X算法,包括如下步骤:
步骤S1:Mbist_control被置为1开始内建自测试,最初,st值为0,N-st值为0,addr值为0,cant值为0;
步骤S2:因此要执行↑w0 March元素,FSM进入w0状态,操作w0在地址0位置完成;
步骤S3:当操作w0在第一个地址位置完成时,N-st变为1,addr增加,N-st复位;
步骤S4:对所有地址位进行w0操作后,st的值加1;
步骤S5:st的值为1,FSM执行↑(r0,w1)March元素,FSM进入↑(r0,w1)状态。
6.根据权利要求5所述的基于有限状态机的可编程存储器内建自测试方法,其特征在于:所述的↑(r0,w1)March元素包含两个操作,算法模块生成的测试元素内的操作次数为2,这两个操作必须在一个地址位置完成时,N-st才会置为1,addr增加,N-st的值复位;其所有March元素都以上述方式执行;直到st的值执行到算法模块生成st的最大值且N-st置为1时,et才会置成1,表示一个March算法的完成,cant值从0加到1,在算法模块中选择测试算法1进行执行,以此类推。
7.根据权利要求1所述的基于有限状态机的可编程存储器内建自测试方法,其特征在于:所述方法为通用性的BRAM测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210646507.9A CN115033435A (zh) | 2022-06-09 | 2022-06-09 | 一种基于有限状态机的可编程存储器内建自测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210646507.9A CN115033435A (zh) | 2022-06-09 | 2022-06-09 | 一种基于有限状态机的可编程存储器内建自测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115033435A true CN115033435A (zh) | 2022-09-09 |
Family
ID=83122320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210646507.9A Pending CN115033435A (zh) | 2022-06-09 | 2022-06-09 | 一种基于有限状态机的可编程存储器内建自测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033435A (zh) |
-
2022
- 2022-06-09 CN CN202210646507.9A patent/CN115033435A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080109594A1 (en) | Non-volatile memory device controlled by a micro-controller | |
US7360116B2 (en) | Built-in self test circuit | |
US20090300440A1 (en) | Data controlling in the mbist chain architecture | |
US6058055A (en) | System for testing memory | |
US7228262B2 (en) | Semiconductor integrated circuit verification system | |
US9773570B2 (en) | Built-in-self-test (BIST) test time reduction | |
CN115083500B (zh) | 基于自适应March算法的可重构MBIST方法 | |
US7096397B2 (en) | Dft technique for avoiding contention/conflict in logic built-in self-test | |
US5991215A (en) | Method for testing a memory chip in multiple passes | |
EP1632952A2 (en) | A non-volatile memory device controlled by a micro-controller | |
CN112067978A (zh) | 一种基于fpga的fpga筛选测试系统及方法 | |
US20040030970A1 (en) | Test platform device and method for testing embedded memory of system on chip | |
US20020078412A1 (en) | Built-in self test for a programmable logic device using linear feedback shift registers and hierarchical signature generation | |
US6681357B2 (en) | MISR simulation tool for memory BIST application | |
Koshy et al. | Diagnostic data detection of faults in RAM using different march algorithms with BIST scheme | |
US6622274B1 (en) | Method of micro-architectural implementation on bist fronted state machine utilizing ‘death logic’ state transition for area minimization | |
CN115033435A (zh) | 一种基于有限状态机的可编程存储器内建自测试方法 | |
US11353509B2 (en) | Digital circuit robustness verification method and system | |
KR100684548B1 (ko) | 자체 기능 테스트 가능한 시스템 온 칩 및 그 기능 테스트방법 | |
JP7427000B2 (ja) | デジタル回路試験及び分析モジュール、システム及びそれの方法 | |
CN100389425C (zh) | 实现数模混合型集成电路验证的方法及装置 | |
US6611935B1 (en) | Method and system for efficiently testing circuitry | |
Cheng | Comprehensive study on designing memory BIST: algorithms, implementations and trade-offs | |
EP0479460A2 (en) | Logic circuit for reliability and yield enhancement | |
US6212655B1 (en) | IDDQ test solution for large asics |
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 |