CN117373525A - Ecc功能测试方法、装置、电子设备及存储介质 - Google Patents
Ecc功能测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117373525A CN117373525A CN202311331726.9A CN202311331726A CN117373525A CN 117373525 A CN117373525 A CN 117373525A CN 202311331726 A CN202311331726 A CN 202311331726A CN 117373525 A CN117373525 A CN 117373525A
- Authority
- CN
- China
- Prior art keywords
- error
- ecc
- write
- correct
- sram
- 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
- 238000010998 test method Methods 0.000 title claims abstract description 7
- 238000012937 correction Methods 0.000 claims abstract description 131
- 238000012795 verification Methods 0.000 claims abstract description 91
- 238000000034 method Methods 0.000 claims abstract description 69
- 238000012360 testing method Methods 0.000 claims abstract description 61
- 238000004088 simulation Methods 0.000 claims abstract description 15
- 238000002347 injection Methods 0.000 claims description 185
- 239000007924 injection Substances 0.000 claims description 185
- 230000004044 response Effects 0.000 claims description 65
- 230000006870 function Effects 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 19
- 230000002159 abnormal effect Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请实施例提供了一种ECC功能测试方法、装置、电子设备及存储介质,涉及芯片验证技术领域,该方法包括:在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对写操作对应的写数据进行注错,场景类序列组件为用于对待测SRAM进行业务功能仿真测试的测试序列组件;若需要对写操作对应的写数据进行注错,则记录写操作的写地址以及正确的写数据;在监测到场景类序列组件对写地址的读操作时,记录ECC纠错结果;基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常。如此可以提高对ECC功能的验证效率。
Description
技术领域
本申请涉及芯片验证技术领域,特别是涉及一种ECC功能测试方法、装置、电子设备及存储介质。
背景技术
静态随机存取存储器(Static Random Access Memory,SRAM)作为一种RAM,可以用于存储数据,而SRAM中的数据一旦出错,会对芯片造成不可挽回的损失。因此在对SRAM进行读写操作时,可以通过纠错码(Error Correcting Code,ECC)算法对SRAM中的数据进行校验,判断SRAM中的数据是否发生错误。对于SRAM中的数据的单比特错误,采用ECC算法可以自动对错误进行纠正;对于双比特错误,采用ECC算法可以对错误进行上报,以便于验证工程师及时发现SRAM中的错误数据,避免对芯片造成损失。由于SRAM对数据可靠性要求严格,ECC算法已经成为对SRAM进行数据校验的标准校验算法,且已被广泛使用。在此基础上,为了保证SRAM中的ECC功能正常,对ECC功能测试显得愈发重要。
而现有技术中,验证工程师需要在SRAM验证周期中额外针对每种ECC功能开发测试用例,进而对ECC功能进行逐项验证,人力成本较高,验证效率比较低。
发明内容
本申请实施例的目的在于提供一种ECC功能测试方法、装置、电子设备及存储介质,以提高验证效率。具体技术方案如下:
第一方面,本申请实施例提供一种ECC功能测试方法,应用于ECC序列组件,所述方法包括:
在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对所述写操作对应的写数据进行注错,所述场景类序列组件为用于对所述待测SRAM进行业务功能仿真测试的测试序列组件;
若需要对所述写操作对应的写数据进行注错,则记录所述写操作的写地址以及正确的写数据;
在监测到所述场景类序列组件对所述写地址的读操作时,记录ECC纠错结果;
基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常。
在一种可能的实现方式中,在所述判断是否需要对所述写操作对应的写数据进行注错之后,所述方法还包括:
若需要对所述写操作对应的写数据进行注错,则按照预先配置的一组注错配置信息对所述写数据进行注错,将错误的写数据写入所述待测SRAM;
所述判断是否需要对所述写操作对应的写数据进行注错,包括:
随机选择是否需要对所述写操作对应的写数据进行注错。
在一种可能的实现方式中,在所述判断是否需要对所述写操作对应的写数据进行注错之前,所述方法还包括:
为ECC注错寄存器配置注错配置信息,以使得所述待测SRAM在监测到场景类序列组件对所述待测SRAM的写操作时,按照所述注错配置信息对所述写操作对应的写数据进行注错,并将错误的写数据写入所述待测SRAM;
所述判断是否需要对所述写操作对应的写数据进行注错,包括:
确定需要对所述写操作对应的写数据进行注错。
在一种可能的实现方式中,所述基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常,包括:
针对记录的每个写地址对应的ECC纠错结果和正确的写数据进行以下验证:
获取对所述写地址对应的写数据注错时使用的目标注错配置信息,所述目标注错配置信息至少包括注错类型、纠错方式以及响应方式;
基于所述注错类型和所述响应方式验证所述待测SRAM中针对该写地址的中断信号是否符合所述响应方式;
基于所述注错类型和所述纠错方式验证ECC状态寄存器存储的数据是否符合预期数据;
基于所述注错类型和所述纠错方式验证从该写地址读取出的数据与正确的写数据之间的关系是否正确;
若任一判断结果为否,则确定针对该写地址的ECC功能异常;
若判断结果均为是,则确定针对该写地址的ECC功能正常。
在一种可能的实现方式中,所述基于所述注错类型和所述响应方式验证所述待测SRAM中针对该写地址的中断信号是否符合所述响应方式,包括:
若所述响应方式为触发中断信号,且所述注错类型为单比特错误,则在所述待测SRAM中针对该写地址的单比特ECC错误中断信号被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式;
若所述响应方式为触发中断信号,且所述注错类型为双比特错误,则在所述SRAM中针对该写地址的双比特ECC错误中断信号被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式;
若所述响应方式为不触发中断信号,则在所述待测SRAM中针对该写地址的中断信号未被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式。
在一种可能的实现方式中,所述基于所述注错类型和所述纠错方式验证从该写地址读取出的数据与正确的写数据之间的关系是否正确,包括:
若所述注错类型为单比特错误,且所述纠错方式为需要纠错,则在读取出的数据与正确的写数据相同的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为单比特错误,且所述纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合单比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为双比特错误,且所述纠错方式为需要纠错,则在读取出的数据与正确的写数据之间符合双比特错误纠错逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为双比特错误,且所述纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合双比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确。
在一种可能的实现方式中,在所述记录ECC纠错结果之后,所述方法还包括:
判断是否满足注错终止条件,所述注错终止条件为注错次数达到预设次数,或者从首次注错的时刻至当前时刻之间的时长达到预设时长;
若是,则执行所述基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常的步骤;
若否,则返回所述在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对所述写操作对应的写数据进行注错的步骤。
在一种可能的实现方式中,在所述基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常之后,所述方法还包括:
将ECC状态寄存器以及所述待测SRAM的中断信号复位;
验证所述ECC状态寄存器是否恢复至默认状态,以及所述中断信号是否复位;
若任一验证结果为否,则确定所述ECC功能异常;
若验证结果均为是,则确定所述ECC功能正常。
第二方面,本申请实施例提供一种ECC功能测试装置,应用于ECC序列组件,所述装置包括:
判断模块,用于在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对所述写操作对应的写数据进行注错,所述场景类序列组件为用于对所述待测SRAM进行业务功能仿真测试的测试序列组件;
记录模块,用于若需要对所述写操作对应的写数据进行注错,则记录所述写操作的写地址以及正确的写数据;
所述记录模块,还用于在监测到所述场景类序列组件对所述写地址的读操作时,记录ECC纠错结果;
验证模块,用于基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常。
在一种可能的实现方式中,所述装置还包括注错模块;
所述注错模块,用于若需要对所述写操作对应的写数据进行注错,则按照预先配置的一组注错配置信息对所述写数据进行注错,将错误的写数据写入所述待测SRAM;
所述判断模块,具体用于:
随机选择是否需要对所述写操作对应的写数据进行注错。
在一种可能的实现方式中,所述装置还包括配置模块;
所述配置模块,用于为ECC注错寄存器配置注错配置信息,以使得所述待测SRAM在监测到场景类序列组件对所述待测SRAM的写操作时,按照所述注错配置信息对所述写操作对应的写数据进行注错,并将错误的写数据写入所述待测SRAM;
所述判断模块,具体用于:
确定需要对所述写操作对应的写数据进行注错。
在一种可能的实现方式中,所述验证模块,具体用于:
针对记录的每个写地址对应的ECC纠错结果和正确的写数据进行以下验证:
获取对所述写地址对应的写数据注错时使用的目标注错配置信息,所述目标注错配置信息至少包括注错类型、纠错方式以及响应方式;
基于所述注错类型和所述响应方式验证所述待测SRAM中针对该写地址的中断信号是否符合所述响应方式;
基于所述注错类型和所述纠错方式验证ECC状态寄存器存储的数据是否符合预期数据;
基于所述注错类型和所述纠错方式验证从该写地址读取出的数据与正确的写数据之间的关系是否正确;
若任一判断结果为否,则确定针对该写地址的ECC功能异常;
若判断结果均为是,则确定针对该写地址的ECC功能正常。
在一种可能的实现方式中,所述验证模块,具体用于:
若所述响应方式为触发中断信号,且所述注错类型为单比特错误,则在所述待测SRAM中针对该写地址的单比特ECC错误中断信号被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式;
若所述响应方式为触发中断信号,且所述注错类型为双比特错误,则在所述SRAM中针对该写地址的双比特ECC错误中断信号被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式;
若所述响应方式为不触发中断信号,则在所述待测SRAM中针对该写地址的中断信号未被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式。
在一种可能的实现方式中,所述验证模块,具体用于:
若所述注错类型为单比特错误,且所述纠错方式为需要纠错,则在读取出的数据与正确的写数据相同的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为单比特错误,且所述纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合单比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为双比特错误,且所述纠错方式为需要纠错,则在读取出的数据与正确的写数据之间符合双比特错误纠错逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为双比特错误,且所述纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合双比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确。
在一种可能的实现方式中,所述判断模块,还用于判断是否满足注错终止条件,所述注错终止条件为注错次数达到预设次数,或者从首次注错的时刻至当前时刻之间的时长达到预设时长;
若是,则所述验证模块执行所述基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常的步骤;
若否,则返回所述判断模块执行所述在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对所述写操作对应的写数据进行注错的步骤。
在一种可能的实现方式中,所述装置还包括复位模块;
所述复位模块,用于将ECC状态寄存器以及所述待测SRAM的中断信号复位;
所述验证模块,还用于验证所述ECC状态寄存器是否恢复至默认状态,以及所述中断信号是否复位;若任一验证结果为否,则确定所述ECC功能异常;若验证结果均为是,则确定所述ECC功能正常。
第三方面,本申请实施例提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
第五方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面所述的方法。
采用上述技术方案,由于场景类序列组件应用于对待测SRAM进行业务功能仿真过程中,本申请实施例通过监测场景类序列组件的写操作,即可判断是否需要对写操作对应的写数据进行注错,在需要注错的情况下利用场景类序列组件的读写操作即可实现数据注错,并且通过监测场景类序列组件对写地址的读操作,即可获取到ECC纠错结果,如此可以基于ECC纠错结果和正确的写数据验证ECC功能是否正常。可见,采用该方法可以借助待测SRAM的业务功能仿真实现自动注错以及自动获取ECC纠错结果,无需额外构造用于对ECC功能测试的写操作和读操作,且无需验证工程师额外开发用于ECC功能测试的测试用例,自动化测试程度高,能够节省人力成本,提高验证效率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的一种ECC校验算法的示例性示意图;
图2为本申请实施例提供的一种ECC功能测试方法的流程图;
图3为本申请实施例提供的一种ECC验证平台的示意图;
图4为本申请实施例提供的一种ECC Seq组件的实现原理示意图;
图5为本申请实施例提供的一种自动化生成ECC验证平台的流程的示意图;
图6为本申请实施例提供的ECC Vseq对ECC Seq组件和场景类序列组件的调度流程图;
图7为本申请实施例提供的一种ECC功能测试装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
以下对本申请中涉及的相关术语进行解释:
SRAM:一种随机存取存储器(Random Access Memory,RAM),可作为中央处理器(Central Processing Unit,CPU)和动态随机存取存储器(Dynamic Random AccessMemory,DRAM)之间的高速缓存。
当SRAM在工作过程中出现错误时,会对芯片造成无法挽回的损失。因此,需要对SRAM采用一些校验手段保护其内部的数据。
内存错误根据出现原因可分为硬错误和软错误。硬错误是由于硬件的损害或缺陷造成的数据错误,此类错误是无法纠正的;软错误是随机出现的,例如在芯片附近突然出现电子干扰等因素可能造成软错误的发生。软错误是可以通过一些校验手段去发现甚至修正的。
ECC校验算法:能够检测和纠正SRAM中的错误数据。ECC校验算法可以纠正单比特错误,检测双比特错误。
例如,如图1所示,在对SRAM进行写操作时,以写入100bits的写数据为例,ECC的编码器(Encoder)对该100bits的写数据进行编码,得到8bits的ECC校验位,然后将100bits的写数据和8bits的校验位同时写入SRAM中。当对SRAM进行读操作时,可以读取之前写入的100bits的写数据和8bits的校验码,再利用ECC编码器对读取的100bits的读数据进行编码,得到8bits的校验位,对比两个校验位,若两个校验位不同,则确定存在数据错误。
场景类序列(Scenario Sequence)组件:对SRAM进行业务功能仿真时用于对SRAM进行读写操作的测试序列组件。
为了提高ECC功能的验证效率,本申请实施例提供一种ECC功能测试方法,该方法应用于电子设备中的ECC序列组件,如图2所示,该方法包括:
S201、在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对写操作对应的写数据进行注错。
其中,场景类序列组件为用于对待测SRAM进行业务功能仿真测试的测试序列组件。
在通过业务功能仿真对芯片进行模块级验证和系统级验证过程中,场景类序列组件会对待测SRAM进行读写操作,本申请实施例中,可以监测场景类序列组件对待测SRAM的读写操作,以便借助场景类序列组件的写操作完成对待测SRAM的注错。
S202、若需要对写操作对应的写数据进行注错,则记录该写操作的写地址以及正确的写数据。
可以理解的是,该写操作为被注错的写操作,电子设备可以记录被注错的写操作的写地址以及进行注错之前获取到的该写操作的正确的写数据。
S203、在监测到场景类序列组件对该写地址的读操作时,记录ECC纠错结果。
需要说明的是,若ECC序列组件已记录多个写地址,则在监测到场景类序列的读操作时,判断该读操作的读地址是否与已记录的任一写地址相同,若相同,则可记录ECC纠错结果。
ECC纠错结果至少包括读取出的数据。
S204、基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常。
可以理解的是,记录的每个写地址对应一个ECC纠错结果以及正确的写数据,ECC序列组件可以分别对每个写地址对应的ECC纠错结果以及正确的写数据进行验证。
其中,若ECC纠错结果均符合预期,则说明ECC功能正常;若存在ECC纠错结果不符合预期,则说明ECC功能异常。
采用上述方法,由于场景类序列组件应用于对待测SRAM进行业务功能仿真过程中,本申请实施例通过监测场景类序列组件的写操作,即可判断是否需要对写操作对应的写数据进行注错,在需要注错的情况下利用场景类序列组件的读写操作即可实现数据注错,并且通过监测场景类序列组件对写地址的读操作,即可获取到ECC纠错结果,如此可以基于ECC纠错结果和正确的写数据验证ECC功能是否正常。可见,采用该方法可以借助待测SRAM的业务功能仿真实现自动注错以及自动获取ECC纠错结果,无需额外构造用于对ECC功能测试的写操作和读操作,且无需验证工程师额外开发用于ECC功能测试的测试用例,自动化测试程度高,能够节省人力成本,提高验证效率。
在本申请的一些实施例中,在上述S203之后,该方法还包括:
判断是否满足注错终止条件,注错终止条件为注错次数达到预设次数,或者从首次注错至当前时刻之间的时长达到预设时长。其中,预设次数和预设时长可根据实际需求设置,例如,预设次数可以为1次也可以为多次,在预设次数为1次的情况下,即可实现每进行一次注错进行一次测试;在预设次数为多次的情况下,即可实现多次注错之后进行一次测试。
若满足注错终止条件,则可继续执行S204,;若不满足注错终止条件,则返回S201,如此循环,直至满足终止条件。
本申请实施例提供了两种对写数据进行注错的方式,以下分别进行说明:
方式一、在上述S201之后,该方法还包括:若需要对写操作对应的写数据进行注错,则按照预先配置的一组注错配置信息对写数据进行注错,将错误的写数据写入待测SRAM。
其中,ECC序列组件预先配置了多组注错配置信息,在需要对写操作进行注错的情况下,可以利用其中一组注错配置信息对写数据进行注错。ECC序列组件在注错过程中可以获取场景类序列组件即将写入的正确的写数据,按照注错配置信息将该正确的写数据改为错误的写数据,并将错误的写数据写入该写地址。
在方式一中,上述S201中,判断是否需要对写操作对应的写数据进行注错,可以实现为:随机选择是否需要对写操作对应的写数据进行注错。
采用该方法,可以随机选择需要注错的写数据,更加符合真实场景中数据出错的情况,且可利用场景类序列组件的写操作进行注错,无需额外构造写操作,自动化程度更高,注错效率更高。
方式二、在上述S201之前,该方法还包括:为ECC注错寄存器配置注错配置信息,以使得待测SRAM在监测到场景类序列组件对待测SRAM的写操作时,按照注错配置信息对写操作对应的写数据进行注错,并将错误的写数据写入待测SRAM。
每次在S201之前,ECC序列组件均可重新对ECC注错寄存器进行配置。在ECC注错寄存器被配置有注错配置信息的情况下,场景类序列组件在对待测SRAM进行写操作时,待测SRAM能够按照ECC注错寄存器中的注错配置信息对写数据进行自动注错。
相应地,在方式二中,上述S201中,判断是否需要对写操作对应的写数据进行注错,可以实现为:确定需要对写操作对应的写数据进行注错。
即在ECC注错寄存器被配置有注错配置信息的情况下,待测SRAM能够按照ECC注错寄存器中的注错配置信息对写数据进行自动注错,所以ECC序列组件可确定在配置ECC注错寄存器之后监测到的第一笔写操作为需要被注错的写操作。
采用该方法,通过配置ECC注错寄存器即可实现待测SRAM按照ECC注错寄存器的注错配置信息进行自动注错,无需额外构造数据读写操作,且无需额外设置注错逻辑,实现简单,可以提高注错效率。
上述方式一和方式二中的注错配置信息为预先设置的多组注错配置信息中的一组。
其中,每组注错配置信息至少包括注错类型、纠错方式以及响应方式。
注错类型包括单比特错误和双比特错误。
纠错方式包括需要纠错和无需纠错,可分别将不同组的注错配置信息包括的纠错方式设置为需要纠错和无需纠错。
响应方式包括触发中断信号和不触发中断信号。
通过将上述注错配置信息进行组合,可以得到多组注错配置信息,如此后续可以全面地对不同类型的ECC功能进行测试,使得ECC功能测试更加全面。
注错配置信息不限于注错类型、纠错方式和响应方式,可根据实际需求设置,比如还可以包括是否在ECC状态寄存器里记录发生ECC错误的地址、记录第一笔发生ECC错误的地址或者记录最后一笔发生ECC错误的地址等,本申请实施例对此不作限制,ECC序列组件可分别针对注错配置信息包括的每个配置项对ECC纠错结果进行验证。
每次配置一组注错配置信息并进行一轮测试,相当于自动化生成了一种ECC功能测试用例,且该方法不受SRAM类型和数量的限制,可以在对各类SRAM进行业务功能仿真过程中加入ECC功能验证,普适性较强,能够实现快速测试。且无需芯片验证工程师额外针对各类SRAM搭建ECC功能测试专用的测试环境和测试用例,可以节省人力成本,使得验证人员能够将更多精力放在定位和解决问题方面,有助于更加高效地发现SRAM问题和修复测试环境问题,能够减小ECC功能问题的遗漏风险。
需要说明的是,在有一个测试环境的情况下,可以基于该测试环境串行基于每组注错配置信息进行ECC功能测试;在具有多个测试环境的情况下,可以并行基于各注错配置信息进行ECC功能测试,以进一步提升测试效率。
在本申请实施例中,在注错配置信息至少包括注错类型、纠错方式以及响应方式的情况下,上述S204、基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常,具体可以实现为:
针对记录的每个写地址对应的ECC纠错结果和正确的写数据进行以下验证:
步骤1、获取对该写地址对应的写数据注错时使用的目标注错配置信息,该目标注错配置信息至少包括注错类型、纠错方式以及响应方式。
可以理解的是,每次注错时依据的注错配置信息可以相同或不同,因此,在进行验证时,需获取对每一笔写数据注错时使用的目标注错配置信息。
步骤2、基于注错类型和响应方式验证待测SRAM中针对该写地址的中断信号是否符合响应方式。
具体的,若响应方式为触发中断信号,且注错类型为单比特错误,则在待测SRAM中针对该写地址的单比特ECC错误中断信号被拉高的情况下,确定待测SRAM的中断信号符合响应方式。这种情况下,若待测SRAM中针对该写地址的双比特ECC错误中断信号和单比特ECC错误中断信号均未被拉高,或者待测SRAM中针对该写地址的双比特ECC错误中断信号被拉高,则可确定SRAM中断信号不符合上述响应方式,即ECC的上报中断功能存在问题。
若响应方式为触发中断信号,且注错类型为双比特错误,则在待测SRAM中针对该写地址的双比特ECC错误中断信号被拉高的情况下,确定待测SRAM的中断信号符合响应方式。这种情况下,若待测SRAM中针对该写地址的双比特ECC错误中断信号和单比特ECC错误中断信号均未被拉高,或者待测SRAM中针对该写地址的单比特ECC错误中断信号被拉高,则可确定待测SRAM中断信号不符合上述响应方式,即ECC的上报中断功能存在问题。
若响应方式为不触发中断信号,则在待测SRAM的中断信号未被拉高的情况下,确定待测SRAM中针对该写地址的中断信号符合响应方式。这种情况下,若待测SRAM中针对该写地址的双比特ECC错误中断信号被拉高,或者待测SRAM中针对该写地址的单比特ECC错误中断信号被拉高,则可确定待测SRAM中断信号不符合上述响应方式,即ECC的上报中断功能存在问题。
步骤3、基于注错类型和纠错方式验证ECC状态寄存器存储的数据是否符合预期数据。
其中,注错类型和纠错方式决定了ECC状态寄存器的预期数据,ECC状态寄存器可以存储检测出的数据错误类型、是否纠错信息以及识别出的错误数据的地址等,具体可参考ECC状态寄存器的配置,本申请实施例对此不作限制。
作为示例,以ECC状态寄存器存储检测出的数据错误类型、是否纠错信息以及识别出的错误数据的地址为例,若ECC状态寄存器中存储的错误类型与注错类型一致,是否纠错信息与纠错方式一致,且识别出的错误数据的地址与被写入错误数据的写地址一致,则可确定ECC状态寄存器存储的数据是否符合预期数据。若ECC状态寄存器存储的任意一项数据不符合预期数据,则确定ECC功能存在异常。
步骤4、基于注错类型和纠错方式验证从该写地址读取出的数据与正确的写数据之间的关系是否正确。
具体的,若注错类型为单比特错误,且纠错方式为需要纠错,则在读取出的数据与正确的写数据相同的情况下,确定读取出的数据与正确的写数据之间的关系正确;反之,若读取出的数据与正确的写数据不同,则说明未实现准确地纠错,或者未纠错,即读取出的数据与正确的写数据之间的关系不正确。
若注错类型为单比特错误,且纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合单比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;反之,若读取出的数据与正确的写数据之间不符合单比特错误逻辑关系,说明ECC功能对待测SRAM中的数据进行了错误的处理,可能进行了纠错,也可能出现了其他错误的处理,则确定读取出的数据与正确的写数据之间的关系不正确。
若注错类型为双比特错误,且纠错方式为需要纠错,则在读取出的数据与正确的写数据之间符合双比特错误纠错逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;反之,若读取出的数据与正确的写数据之间不符合双比特错误纠错逻辑关系,说明ECC功能对待测SRAM中的数据没有进行纠错,也可能出现了其他错误的处理,则确定读取出的数据与正确的数据之间的关系不正确。
若注错类型为双比特错误,且纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合双比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;反之,若读取出的数据与正确的写数据之间不符合双比特错误逻辑关系,说明ECC功能对待测SRAM中的写数据进行了错误的处理,可能进行了纠错,也可能出现了其他错误的处理,则确定读取出的数据与正确的写数据之间的关系不正确。
步骤5、若步骤1至4中任一判断结果为否,则确定针对该写地址的ECC功能异常。
其中,在针对任一写地址的ECC功能异常的情况下,则可确定ECC功能验证失败,可以上报UVM错误,以提醒验证人员ECC功能验证失败。
步骤6、若步骤1至4中判断结果均为是,则确定ECC功能正常。
在针对各写地址的ECC功能均正常的情况下,可确定ECC功能验证成功。
采用上述方法,可以分别从中断信号、ECC状态寄存器存储的信息和从待测SRAM读取的数据和正确的写数据之间的关系三个维度对ECC功能进行验证,对ECC功能的验证更加全面。
在本申请的一些实施例中,在基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常之后,该方法还包括:
将ECC状态寄存器以及待测SRAM的中断信号复位;
验证ECC状态寄存器是否恢复至默认状态,以及中断信号是否复位;
若任一验证结果为否,则确定ECC功能异常;
若验证结果均为是,则确定ECC功能正常。
如此,可以进一步验证ECC纠错之后的复位功能,能够更加全面地验证ECC功能。
本申请实施例提供的上述方法具体可由ECC验证平台(ECC Testbench,ECC TB)中的ECC序列(ECC sequence,ECC seq)组件执行,如图3所示,图3为本申请实施例提供的一种ECC验证平台,该ECC验证平台可以部署在电子设备中,可以在该ECC验证平台运行ECC测试用例(ECC Testcase,ECC TC),以对该ECC TC对应的注错配置信息进行ECC功能验证,每个ECC测试用例对应上述实施例中的一组注错配置信息。
ECC TB包括ECC Seq组件、场景类序列(Scenario Sequence,Scenario Seq)组件、ECC虚拟序列(Virtual Sequence,Vseq)组件、ENV和待测设计(Design Under Test,DUT)。其中,ENV是通用验证方法学(Universal Verification Methodology,UVM)的验证环境,内部包含UVM验证组件,本申请实施例示例性示出了ENV包含虚拟序列器(Virtual Sequence,VSqr)和代理(Agent)。在实际实现中,ECC验证平台还包括其他验证组件,本申请实施例对此不做限制。
图3中除ECC Seq组件、ECC Vseq组件和ECC测试用例之外的组件均属于对芯片进行业务功能验证时的验证平台,即本申请实施例在已有的验证平台中新增了ECC Seq、ECCVseq和ECC测试用例,从而复用已有的验证平台实现ECC功能验证。
其中,ECC Seq组件用于实现本申请上述实施例中介绍的方法流程。
Scenario Seq组件用于对SRAM进行读写操作。Scenario Seq组件即为上述场景类序列组件。
ECC Vseq组件用于调度ECC Seq组件和Scenario Seq组件。
VSqr,用于管理多个序列器(Sequencer),Sequencer用于支持ECC Seq组件、Scenario Seq组件与DUT之间的通信。
Agent,为UVM组件,用于集中管理Sequencer接口。
其中,VSqr可以利用Sequencer通过Agent中的Sequencer接口,支持ECC Seq组件、Scenario Seq组件与DUT之间的数据传输。
DUT,为待测SRAM所在的待测设计,在本申请实施例中为包括待测SRAM的芯片。
采用上述验证平台,可以并行或串行对预先配置的多组注错配置信息进行测试,对ECC功能可以进行全面的验证。并且可以利用该验证平台快速生成多个测试用例,较大程度的节省了人力成本,从而提升了验证效率。在场景类序列组件对待测SRAM进行业务仿真的过程中,加入了ECC功能验证的过程,可以使得验证结果更加贴近真实的应用场景。此外,还可以使得本申请实施例提供的方法用于不同项目的不同模块级验证和系统级验证,具有较强的普适性。
如图4所示,图3中的ECC Seq的功能具体包括监测阶段、检查阶段以及复位阶段。
在监测阶段,ECC Seq组件监测待测SRAM的读写操作。
当监测到场景类序列组件对待测SRAM进行写操作时,随机选择是否对对该笔写操作进行注错。若需要对该笔写操作进行注错,ECC Seq组件可以记录该笔写操作的写地址和正确的写数据;若不需要对该笔写成操作进行注错,则ECC Seq组件无需进行任何操作。
当监测到场景类序列组件对待测SRAM进行读操作时,若读操作的读地址和记录的多笔写操作的某一写地址匹配成功,则记录读出的读数据;若读操作的读地址和记录的写地址均不匹配,则ECC Seq组件不进行任何操作。
后续,在进入监测阶段的时刻与当前时刻之间的时长达到预设时长,或者注错次数达到预设次数后,则进入检查阶段。
在检查阶段,ECC Seq组件检查中断信号、读写数据关系和ECC状态寄存器。
其中,ECC Seq检查中断信号、读写数据关系和ECC状态寄存器的方法可参考上述实施例中对S202的介绍,此处不再赘述。完成上述检查后,即可进入复位阶段。
在复位阶段,复位中断信号以及ECC状态寄存器,并验证ECC状态寄存器是否恢复至默认状态,以及中断信号是否复位。若验证结果均为是,则确定ECC功能正常;若任一验证结果为否,则确定ECC功能异常。
本申请实施例中,可以通过脚本自动化生成ECC Seq组件、ECC Vseq组件和ECC测试用例(ECC TCs),如图5所示,其中Script为预先设置的脚本。通过脚本实现ECC Seq组件、ECC Vseq组件和ECC TCs的自动化生成。
在生成ECC Seq组件、ECC Vseq组件和ECC TCs之后,如图6所示,ECC Vseq组件需要先配置ECC相关的配置寄存器,比如预先对ECC注错寄存器进行基础配置。在配置完成之后,ECC Vseq组件启动ECC Seq组件和Scenario Seq组件,即可将ECC Seq组件和ScenarioSeq组件加入对ECC功能的验证流程中。
对应于上述方法实施例,本申请实施例还提供一种ECC功能测试装置,该装置应用于ECC序列组件,如图7所示,该装置包括:
判断模块701,用于在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对写操作对应的写数据进行注错,场景类序列组件为用于对待测SRAM进行业务功能仿真测试的测试序列组件;
记录模块702,用于若需要对写操作对应的写数据进行注错,则记录写操作的写地址以及正确的写数据;
记录模块702,还用于在监测到场景类序列组件对写地址的读操作时,记录ECC纠错结果;
验证模块703,用于基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常。
可选的,该装置还包括注错模块;
注错模块,用于若需要对写操作对应的写数据进行注错,则按照预先配置的一组注错配置信息对写数据进行注错,将错误的写数据写入待测SRAM;
判断模块701,具体用于:
随机选择是否需要对写操作对应的写数据进行注错。
可选的,该装置还包括配置模块;
配置模块,用于为ECC注错寄存器配置注错配置信息,以使得待测SRAM在监测到场景类序列组件对待测SRAM的写操作时,按照注错配置信息对写操作对应的写数据进行注错,并将错误的写数据写入待测SRAM;
判断模块701,具体用于:
确定需要对写操作对应的写数据进行注错。
可选的,验证模块703,具体用于:
针对记录的每个写地址对应的ECC纠错结果和正确的写数据进行以下验证:
获取对写地址对应的写数据注错时使用的目标注错配置信息,目标注错配置信息至少包括注错类型、纠错方式以及响应方式;
基于注错类型和响应方式验证待测SRAM中针对该写地址的中断信号是否符合响应方式;
基于注错类型和纠错方式验证ECC状态寄存器存储的数据是否符合预期数据;
基于注错类型和纠错方式验证从该写地址读取出的数据与正确的写数据之间的关系是否正确;
若任一判断结果为否,则确定针对该写地址的ECC功能异常;
若判断结果均为是,则确定针对该写地址的ECC功能正常。
可选的,验证模块703,具体用于:
若响应方式为触发中断信号,且注错类型为单比特错误,则在待测SRAM中针对该写地址的单比特ECC错误中断信号被拉高的情况下,确定待测SRAM的中断信号符合响应方式;
若响应方式为触发中断信号,且注错类型为双比特错误,则在SRAM中针对该写地址的双比特ECC错误中断信号被拉高的情况下,确定待测SRAM的中断信号符合响应方式;
若响应方式为不触发中断信号,则在待测SRAM中针对该写地址的中断信号未被拉高的情况下,确定待测SRAM的中断信号符合响应方式。
可选的,验证模块703,具体用于:
若注错类型为单比特错误,且纠错方式为需要纠错,则在读取出的数据与正确的写数据相同的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若注错类型为单比特错误,且纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合单比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若注错类型为双比特错误,且纠错方式为需要纠错,则在读取出的数据与正确的写数据之间符合双比特错误纠错逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若注错类型为双比特错误,且纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合双比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确。
可选的,判断模块701,还用于判断是否满足注错终止条件,注错终止条件为注错次数达到预设次数,或者从首次注错的时刻至当前时刻之间的时长达到预设时长;
若是,则验证模块703执行基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常的步骤;
若否,则返回判断模块701执行在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对写操作对应的写数据进行注错的步骤。
可选的,该装置还包括复位模块;
复位模块,用于将ECC状态寄存器以及待测SRAM的中断信号复位;
验证模块703,还用于验证ECC状态寄存器是否恢复至默认状态,以及中断信号是否复位;若任一验证结果为否,则确定ECC功能异常;若验证结果均为是,则确定ECC功能正常。
本申请实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述方法实施例中的方法流程。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一ECC功能验证方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一ECC功能验证方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (18)
1.一种ECC功能测试方法,其特征在于,应用于ECC序列组件,所述方法包括:
在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对所述写操作对应的写数据进行注错,所述场景类序列组件为用于对所述待测SRAM进行业务功能仿真测试的测试序列组件;
若需要对所述写操作对应的写数据进行注错,则记录所述写操作的写地址以及正确的写数据;
在监测到所述场景类序列组件对所述写地址的读操作时,记录ECC纠错结果;
基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常。
2.根据权利要求1所述的方法,其特征在于,在所述判断是否需要对所述写操作对应的写数据进行注错之后,所述方法还包括:
若需要对所述写操作对应的写数据进行注错,则按照预先配置的一组注错配置信息对所述写数据进行注错,将错误的写数据写入所述待测SRAM;
所述判断是否需要对所述写操作对应的写数据进行注错,包括:
随机选择是否需要对所述写操作对应的写数据进行注错。
3.根据权利要求1所述的方法,其特征在于,在所述判断是否需要对所述写操作对应的写数据进行注错之前,所述方法还包括:
为ECC注错寄存器配置注错配置信息,以使得所述待测SRAM在监测到场景类序列组件对所述待测SRAM的写操作时,按照所述注错配置信息对所述写操作对应的写数据进行注错,并将错误的写数据写入所述待测SRAM;
所述判断是否需要对所述写操作对应的写数据进行注错,包括:
确定需要对所述写操作对应的写数据进行注错。
4.根据权利要求2或3所述的方法,其特征在于,所述基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常,包括:
针对记录的每个写地址对应的ECC纠错结果和正确的写数据进行以下验证:
获取对所述写地址对应的写数据注错时使用的目标注错配置信息,所述目标注错配置信息至少包括注错类型、纠错方式以及响应方式;
基于所述注错类型和所述响应方式验证所述待测SRAM中针对该写地址的中断信号是否符合所述响应方式;
基于所述注错类型和所述纠错方式验证ECC状态寄存器存储的数据是否符合预期数据;
基于所述注错类型和所述纠错方式验证从该写地址读取出的数据与正确的写数据之间的关系是否正确;
若任一判断结果为否,则确定针对该写地址的ECC功能异常;
若判断结果均为是,则确定针对该写地址的ECC功能正常。
5.根据权利要求4所述的方法,其特征在于,所述基于所述注错类型和所述响应方式验证所述待测SRAM中针对该写地址的中断信号是否符合所述响应方式,包括:
若所述响应方式为触发中断信号,且所述注错类型为单比特错误,则在所述待测SRAM中针对该写地址的单比特ECC错误中断信号被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式;
若所述响应方式为触发中断信号,且所述注错类型为双比特错误,则在所述SRAM中针对该写地址的双比特ECC错误中断信号被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式;
若所述响应方式为不触发中断信号,则在所述待测SRAM中针对该写地址的中断信号未被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式。
6.根据权利要求4所述的方法,其特征在于,所述基于所述注错类型和所述纠错方式验证从该写地址读取出的数据与正确的写数据之间的关系是否正确,包括:
若所述注错类型为单比特错误,且所述纠错方式为需要纠错,则在读取出的数据与正确的写数据相同的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为单比特错误,且所述纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合单比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为双比特错误,且所述纠错方式为需要纠错,则在读取出的数据与正确的写数据之间符合双比特错误纠错逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为双比特错误,且所述纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合双比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确。
7.根据权利要求1所述的方法,其特征在于,在所述记录ECC纠错结果之后,所述方法还包括:
判断是否满足注错终止条件,所述注错终止条件为注错次数达到预设次数,或者从首次注错的时刻至当前时刻之间的时长达到预设时长;
若是,则执行所述基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常的步骤;
若否,则返回所述在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对所述写操作对应的写数据进行注错的步骤。
8.根据权利要求1所述的方法,其特征在于,在所述基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常之后,所述方法还包括:
将ECC状态寄存器以及所述待测SRAM的中断信号复位;
验证所述ECC状态寄存器是否恢复至默认状态,以及所述中断信号是否复位;
若任一验证结果为否,则确定所述ECC功能异常;
若验证结果均为是,则确定所述ECC功能正常。
9.一种ECC功能测试装置,其特征在于,应用于ECC序列组件,所述装置包括:
判断模块,用于在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对所述写操作对应的写数据进行注错,所述场景类序列组件为用于对所述待测SRAM进行业务功能仿真测试的测试序列组件;
记录模块,用于若需要对所述写操作对应的写数据进行注错,则记录所述写操作的写地址以及正确的写数据;
所述记录模块,还用于在监测到所述场景类序列组件对所述写地址的读操作时,记录ECC纠错结果;
验证模块,用于基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括注错模块;
所述注错模块,用于若需要对所述写操作对应的写数据进行注错,则按照预先配置的一组注错配置信息对所述写数据进行注错,将错误的写数据写入所述待测SRAM;
所述判断模块,具体用于:
随机选择是否需要对所述写操作对应的写数据进行注错。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括配置模块;
所述配置模块,用于为ECC注错寄存器配置注错配置信息,以使得所述待测SRAM在监测到场景类序列组件对所述待测SRAM的写操作时,按照所述注错配置信息对所述写操作对应的写数据进行注错,并将错误的写数据写入所述待测SRAM;
所述判断模块,具体用于:
确定需要对所述写操作对应的写数据进行注错。
12.根据权利要求10或11所述的装置,其特征在于,所述验证模块,具体用于:
针对记录的每个写地址对应的ECC纠错结果和正确的写数据进行以下验证:
获取对所述写地址对应的写数据注错时使用的目标注错配置信息,所述目标注错配置信息至少包括注错类型、纠错方式以及响应方式;
基于所述注错类型和所述响应方式验证所述待测SRAM中针对该写地址的中断信号是否符合所述响应方式;
基于所述注错类型和所述纠错方式验证ECC状态寄存器存储的数据是否符合预期数据;
基于所述注错类型和所述纠错方式验证从该写地址读取出的数据与正确的写数据之间的关系是否正确;
若任一判断结果为否,则确定针对该写地址的ECC功能异常;
若判断结果均为是,则确定针对该写地址的ECC功能正常。
13.根据权利要求12所述的装置,其特征在于,所述验证模块,具体用于:
若所述响应方式为触发中断信号,且所述注错类型为单比特错误,则在所述待测SRAM中针对该写地址的单比特ECC错误中断信号被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式;
若所述响应方式为触发中断信号,且所述注错类型为双比特错误,则在所述SRAM中针对该写地址的双比特ECC错误中断信号被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式;
若所述响应方式为不触发中断信号,则在所述待测SRAM中针对该写地址的中断信号未被拉高的情况下,确定所述待测SRAM的中断信号符合所述响应方式。
14.根据权利要求12所述的装置,其特征在于,所述验证模块,具体用于:
若所述注错类型为单比特错误,且所述纠错方式为需要纠错,则在读取出的数据与正确的写数据相同的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为单比特错误,且所述纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合单比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为双比特错误,且所述纠错方式为需要纠错,则在读取出的数据与正确的写数据之间符合双比特错误纠错逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确;
若所述注错类型为双比特错误,且所述纠错方式为无需纠错,则在读取出的数据与正确的写数据之间符合双比特错误逻辑关系的情况下,确定读取出的数据与正确的写数据之间的关系正确。
15.根据权利要求9所述的装置,其特征在于,
所述判断模块,还用于判断是否满足注错终止条件,所述注错终止条件为注错次数达到预设次数,或者从首次注错的时刻至当前时刻之间的时长达到预设时长;
若是,则所述验证模块执行所述基于记录的各写地址对应的ECC纠错结果和正确的写数据验证ECC功能是否正常的步骤;
若否,则返回所述判断模块执行所述在监测到场景类序列组件对待测SRAM的写操作时,判断是否需要对所述写操作对应的写数据进行注错的步骤。
16.根据权利要求9所述的装置,其特征在于,所述装置还包括复位模块;
所述复位模块,用于将ECC状态寄存器以及所述待测SRAM的中断信号复位;
所述验证模块,还用于验证所述ECC状态寄存器是否恢复至默认状态,以及所述中断信号是否复位;若任一验证结果为否,则确定所述ECC功能异常;若验证结果均为是,则确定所述ECC功能正常。
17.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311331726.9A CN117373525A (zh) | 2023-10-13 | 2023-10-13 | Ecc功能测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311331726.9A CN117373525A (zh) | 2023-10-13 | 2023-10-13 | Ecc功能测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117373525A true CN117373525A (zh) | 2024-01-09 |
Family
ID=89400798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311331726.9A Pending CN117373525A (zh) | 2023-10-13 | 2023-10-13 | Ecc功能测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117373525A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117558331A (zh) * | 2024-01-12 | 2024-02-13 | 杭州广立微电子股份有限公司 | 一种用于高密度测试芯片地址稳定性的检测方法及装置 |
-
2023
- 2023-10-13 CN CN202311331726.9A patent/CN117373525A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117558331A (zh) * | 2024-01-12 | 2024-02-13 | 杭州广立微电子股份有限公司 | 一种用于高密度测试芯片地址稳定性的检测方法及装置 |
CN117558331B (zh) * | 2024-01-12 | 2024-04-26 | 杭州广立微电子股份有限公司 | 一种用于高密度测试芯片地址稳定性的检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204698B2 (en) | Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic | |
TWI552158B (zh) | 用於測試記憶體之系統與方法 | |
US10495691B2 (en) | System architecture method and apparatus for adaptive hardware fault detection with hardware metrics subsystem | |
CN111078459B (zh) | 半导体芯片的测试方法、装置及系统 | |
CN107391333B (zh) | 一种osd磁盘故障测试方法及系统 | |
CN205881469U (zh) | 电子设备和用于具有经受瞬态故障和永久故障的多个存储器位置的存储器的故障检测设备 | |
CN117373525A (zh) | Ecc功能测试方法、装置、电子设备及存储介质 | |
EP1675009A2 (en) | Addressing error and address detection systems and methods | |
CN112260885B (zh) | 一种工控协议自动测试方法、系统、装置及可读存储介质 | |
US8533544B2 (en) | System for tree sequence testing of a device and method for tree sequence testing of a device in a test framework architecture | |
US7007211B1 (en) | Testing self-repairing memory of a device | |
CN102981925A (zh) | 应用于通讯设备的寄存器巡检校验控制方法 | |
JP5545771B2 (ja) | 診断装置、診断方法および診断プログラム診断方法 | |
CN115562918A (zh) | 计算机系统故障的测试方法、装置、电子设备及可读介质 | |
US20100017651A1 (en) | System and method for efficient detection and restoration of data storage array defects | |
CN110544504A (zh) | 一种关于内存adddc功能的测试方法、系统及设备 | |
CN110971481B (zh) | 一种缓存地址管理逻辑的测试方法及装置 | |
CN113447791B (zh) | 资源共享结构测试负载板的检测方法、装置及电子设备 | |
CN113094221B (zh) | 故障注入方法、装置、计算机设备以及可读存储介质 | |
EP4372596A1 (en) | System and method for managing secure memories in integrated circuits | |
CN113407372B (zh) | 一种独立于操作系统的计算机系统内存检测方法及系统 | |
US20200183803A1 (en) | System For Completely Testing Communication Links Inside Processor According To Processor Information And Method Thereof | |
CN118035102A (zh) | 加速ssd测试的方法、装置、设备及介质 | |
CN105788646B (zh) | 一种ram检测方法及系统 | |
CN117453470A (zh) | 一种系统级芯片中存储体的校验方法、装置、设备及介质 |
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 |