CN114676011A - 一种数据校验的验证方法、相关设备和存储介质 - Google Patents

一种数据校验的验证方法、相关设备和存储介质 Download PDF

Info

Publication number
CN114676011A
CN114676011A CN202210595634.0A CN202210595634A CN114676011A CN 114676011 A CN114676011 A CN 114676011A CN 202210595634 A CN202210595634 A CN 202210595634A CN 114676011 A CN114676011 A CN 114676011A
Authority
CN
China
Prior art keywords
error
transaction
data
packet set
transaction packet
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
Application number
CN202210595634.0A
Other languages
English (en)
Other versions
CN114676011B (zh
Inventor
王晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinyaohui Technology Co ltd
Original Assignee
Xinyaohui Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinyaohui Technology Co ltd filed Critical Xinyaohui Technology Co ltd
Priority to CN202210595634.0A priority Critical patent/CN114676011B/zh
Publication of CN114676011A publication Critical patent/CN114676011A/zh
Application granted granted Critical
Publication of CN114676011B publication Critical patent/CN114676011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本申请公开了一种数据校验的验证方法、相关设备和存储介质,其中方法包括:获取与待验证的设计DUT对应的第一事务包集合;将所述第一事务包集合输入至所述参考模型处理后,输出第二事务包集合;将所述第一事务包集合输入至所述DUT,利用所述插错组件对所述第一事务包集合插入错误数据,并通过所述DUT进行错误检测和修正校验,并对有错误数据的事务包进行标记,输出第三事务包集合;当所述插错组件对所述第一事务包集合中的任一个事务包插入大于或等于2bit错误数据时,对所述第二事务包集合和所述第三事务包集合中所述一个或多个不带有标记的事务包进行第一对比。本申请可以扩大验证范围,降低芯片验证的成本,提高验证方案通用性。

Description

一种数据校验的验证方法、相关设备和存储介质
技术领域
本申请涉及芯片验证技术领域,尤其涉及一种数据校验的验证方法、相关设备和存储介质。
背景技术
随着集成电路的发展,芯片的功能越来越复杂,芯片设计的规模也越来越大。由于芯片工艺不能保证芯片在其生命周期中保持性能的可靠,芯片在其生命周期中,可能会因为各种各样的原因导致其功能失效,一般可分为由硬件损坏引起的硬失效或者带电粒子撞击引起的软失效两类,失效会导致芯片逻辑出现功能错误,业务中断甚至芯片无法继续使用,因此芯片在生产及使用过程中可能会产生坏块。为了保证芯片的健壮性和可测试性,通常会在芯片内进行数据流读写随机存储器(Random Access Memory,RAM)时,提供数据校验纠错功能,使得芯片能够检测甚至纠正错误数据,以此避免由于数据不可靠引起芯片逻辑出现问题甚至不可用,目前常用的数据校验方式是错误检测和修正(Error Checking andCorrection,ECC)校验。
由于流片费用昂贵,在进行流片之前,前端验证工程师要对芯片功能和性能进行充分的验证,保证逻辑实现正确,没有缺陷遗留,再进行流片操作。伴随芯片功能和规模的不断发展,芯片设计对验证的要求也越来越高,全面、高效的功能和逻辑验证对芯片的成功开发具有重要意义。目前主流的验证语言是系统硬件描述语言(System Verilog,SV),使用SystemVerilog语言搭建的通用验证方法学(Universal Verification Methodology,UVM)验证平台进行芯片验证已经成为业界主流的验证方式。
然而,在现有技术中,利用UVM验证平台对芯片功能和逻辑进行验证的方案,芯片逻辑中ECC校验功能点的验证,需要对待验证的设计(Design under Test,DUT)内部信号做特殊处理(例如使用SV force语法对DUT信号值改变),由于芯片数据流场景的复杂性,RAM的实现方式,验证对于DUT的理解,验证对整体环境的把控等问题,该功能点的完备性验证,更多的是依赖验证工程师的经验和能力。尤其,当需要针对大于或等于2bit错误的ECC校验功能场景进行验证时,UVM验证平台的验证很容易出现无法通过的情况(UVM验证平台的计分板对比出现失败),为了使得验证能够通过,验证工程师往往会关闭很多检查,但是过多检查的关闭又会使得验证不够全面。而如果可以不关闭检查,验证工程师就需要投入大量时间和精力,设计出更多用例和检查使得验证更为全面,可是这又会导致芯片验证的时间和资金成本比较高,而且芯片验证的周期也会随之变长,不利于芯片的早日投片;另一方面,验证工程师针对特定场景设计的ECC用例,在验证完备性,随机充分性上面通常也会有很多局限。因此,如何提供一种低成本、高通用性和验证范围较为全面的芯片ECC验证方案,是亟待解决的问题。
发明内容
本申请实施例提供一种数据校验的验证方法、相关设备和存储介质,可以降低芯片验证的成本、提高验证方法通用性。
第一方面,本申请实施例提供了一种数据校验的验证方法,应用于UVM验证平台,该UVM验证平台包括参考模型、插错组件,该方法包括:获取与待验证的设计DUT对应的第一事务包集合;该第一事务包集合包括一个或多个事务包,每个事务包包括一个或多个数据;将该第一事务包集合输入至该参考模型,通过该参考模型对该第一事务包集合处理后,输出第二事务包集合;将该第一事务包集合输入至该DUT,利用该插错组件对该第一事务包集合中的一个或多个事务包分别插入错误数据,并通过该DUT对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记,输出第三事务包集合;其中,该第三事务包集合包括一个或多个带有标记的事务包和一个或多个不带有标记的事务包;当该插错组件对该第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,对该第二事务包集合和该第三事务包集合中的该一个或多个不带有标记的事务包进行第一对比。
本申请实施例中,在利用UVM验证平台对具有ECC校验功能的DUT进行验证时,可以通过插入错误数据的方式模拟实际使用环境中出现数据错误的情况,DUT可以对被插入错误数据的事务包进行标记,当某个事务包存在大于或等于2bit错误数据时,可以仅针对无标记的事务包进行对比,在根据对比结果验证ECC校验逻辑是否正确的同时,还可以对DUT的标记逻辑进行验证,避免验证工程师在遇到特殊场景(存在大于或等于2bit错误数据)时,需要关闭很多检查使得验证能够通过,达到发现更多边界情况,扩大验证范围的目的,与此同时,也可以减少验证效果对于验证工程师能力的过多依赖,降低了芯片验证的成本,提高验证方案通用性。具体地,在利用UVM验证平台对具有ECC校验功能的DUT进行验证的过程中,首先可以获取用于验证DUT的各种各样不同的激励(即第一事务包集合);然后,将激励分别输入至参考模型和DUT,为了验证DUT的ECC校验功能是否正确,可以通过插错组件inject-error对输入至DUT的事务包集合插入错误,模拟真实使用环境中数据出现错误的情况,由于ECC校验的1bit错误可纠正,大于或等于2bit错误可检测的特性,DUT可以对带有错误数据的事务包进行标记,即当ECC校验功能正常时,若插入大于或等于2bit的错误数据时,ECC校验功能无法纠正错误,那么DUT在完成处理之后所输出的事务包集合中,会包含带有错误数据的事务包(并且该事务包带有标记);最后在对参考模型和DUT的输出进行对比时,可以仅对DUT输出的不带有标记的事务包(即没有错误数据的事务包)和Referencemodel输出的事务包集合进行对比,若对比结果通过,则说明ECC校验功能正确,DUT的标记逻辑也是正确的。而现有技术中,在插入大于或等于2bit的错误数据的情况下,会对DUT输出的所有事务包(包括了带有错误数据的事务包)与Reference model输出的事务包集合进行对比,导致对比不通过,若对比不通过仅是因为ECC校验的2bit检错无法纠正错误的特性导致的,仍可认为DUT是正确的(因为ECC校验无法纠正大于或等于2bit错误是可以被接受的),但现有技术并不能感知到是否存在其他可能导致对比不通过的问题,除非验证工程师们投入大量时间和精力,拉长验证周期,设计出更多用例和检查使得验证更为全面。综上,本申请实施例相比于现有技术中过多依赖验证工程师进行芯片验证的方案,在验证时可以发现更多边界情况,扩大验证范围,同时也可以减少验证效果对于验证工程师能力的过多依赖,降低了芯片验证的成本,提高验证方案通用性。
在一种可能的实现方式中,当该第一对比的对比结果通过时,则判定该通过该DUT对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;当该第一对比的对比结果失败时,则判定该通过该DUT对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
本申请实施例中,在激励被插入大于或等于2bit错误数据时,可以仅针对DUT输出的不带标记的事务包和参考模型输出的事务包集合进行对比,然后根据对比结果判定DUT的ECC校验和标记过程是否存在问题。当DUT输出的不带标记的事务包和参考模型输出的事务包集合的部分数据一致时,则对比结果通过,说明DUT的ECC校验和标记过程是正确的;当DUT输出的不带标记的事务包和参考模型输出的事务包集合的部分数据不一致时,则对比结果失败,说明DUT输出的不带标记的事务包带有错误数据,DUT的标记过程是错误的,未能将标记完全打在带有错误数据的事务包上,或者将标记打在了无错误数据的事务包上而未在带有错误数据的事务包上打标记。区别于现有技术中,在插入大于或等于2bit的错误数据的情况下,会对DUT输出的所有事务包(包括了带有错误数据的事务包)与Referencemodel输出的事务包集合进行对比,必然导致对比不通过,无法感知其它可能导致芯片出现致命错误的问题(例如上述打错标记的),在验证时可以发现更多边界情况,扩大验证范围,同时也可以减少验证效果对于验证工程师能力的过多依赖,降低了芯片验证的成本,提高验证方案通用性。
在一种可能的实现方式中,该方法,还包括:当该插错组件对该第一事务包集合中的一个或多个事务包分别插入小于2bit的错误数据时,对该第二事务包集合和第三事务包集合中的所有事务包进行第二对比。
本申请实施例中,在激励被插入小于2bit错误数据时,可以针对DUT输出的所有事务包和参考模型输出的事务包集合进行对比,然后根据对比结果判定DUT的ECC校验过程是否存在问题。本申请实施例在针对插入大于或等于2bit的错误数据的情况之外,对于插入小于2bit错误数据的情况也可以进行验证,从而可以发现更多边界情况,进一步扩大验证范围。
在一种可能的实现方式中,当该第二对比的对比结果通过时,则判定该通过该DUT对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;当该第二对比的对比结果失败时,则判定该通过该DUT对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
本申请实施例中,在激励被插入小于2bit错误数据时,可以针对DUT输出的所有事务包和参考模型输出的事务包集合进行对比,然后根据对比结果判定DUT的ECC校验过程是否存在问题。当DUT输出的所有事务包和参考模型输出的事务包集合的数据一致时,则对比结果通过,说明DUT的ECC校验过程是正确的;当DUT输出的所有事务包和参考模型输出的事务包集合的数据不一致时,则对比结果失败,说明DUT输出的事务包带有错误数据,DUT的ECC校验未能纠正小于2bit的错误。本申请实施例在针对插入大于或等于2bit的错误数据的情况之外,对于插入小于2bit错误数据的情况也可以进行验证,从而可以发现更多边界情况,进一步扩大验证范围。
在一种可能的实现方式中,该DUT包括一个或多个计数器,该方法,还包括:通过该一个或多个计数器对该插错组件插入的错误数据进行统计,得到第一错误数;统计该第三事务包集合中错误数据的个数,得到第二错误数;对该第一错误数和该第二错误数进行第三对比;当该第三对比的对比结果通过时,则判定该通过该一个或多个计数器对该插错组件插入的错误数据进行统计的过程正确;当该第三对比的对比结果失败时,则判定该通过该一个或多个计数器对该插错组件插入的错误数据进行统计的过程错误。
本申请实施例中,DUT包括一个或多个计数器,在利用UVM验证平台对DUT进行验证的过程中,除了验证DUT的ECC校验以及插错标记的过程之外,还可以通过DUT进行ECC校验前后的错误数据统计数量的对比,实现对DUT的计数过程进行验证,从而可以发现更多边界情况,进一步扩大验证范围。
在一种可能的实现方式中,该DUT包括一个或多个中断寄存器,该方法,还包括:
通过该一个或多个中断寄存器对中断信号进行统计,得到第一中断数;该中断信号为该插错组件插入错误数据时产生的脉冲信号;统计该第三事务包集合中错误数据的个数,得到第二中断数;对该第一中断数和该第二中断数进行第四对比;当该第四对比的对比结果通过时,则判定该通过该一个或多个计数器对该插错组件插入的错误数据进行统计的过程正确;当该第四对比的对比结果失败时,则判定该通过该一个或多个计数器对该插错组件插入的错误数据进行统计的过程错误。
本申请实施例中,DUT包括一个或多个中断寄存器,在利用UVM验证平台对DUT进行验证的过程中,除了验证DUT的ECC校验以及插错标记的过程之外,还可以通过中断寄存器的对于中断信号的统计结果和DUT进行ECC校验后的错误数据统计数量的对比,实现对DUT的中断寄存器工作过程进行验证,从而可以发现更多边界情况,进一步扩大验证范围。
在一种可能的实现方式中,该方法,还包括:在利用该插错组件对该第一事务包集合中的一个或多个事务包分别插入错误数据时,通过该插错组件对该错误数据的数量和/或插入的位置进行收集。
本申请实施例中,插错组件在向激励数据插入错误数据时,还可以对错误数据的数量以及插入的位置进行收集,以保证验证工程师可以根据收集结果了解错误数据产生的随机性,从而提高功能覆盖率,尽可能模拟芯片在实际使用过程中错误随机出现的情况,从而可以发现更多边界情况,进一步扩大验证范围。
在一种可能的实现方式中,该错误数据插入的位置包括ECC校验位或data数据位中的一种或多种,该ECC校验位用于存储ECC校验数据,该data数据位用于存储待校验数据。
本申请实施例中,插错组件在向激励数据插入错误数据时,可以对数据的ECC校验位进行插错,也可以对data数据位进行插错,还可以对ECC校验位和data数据位的组合进行插错,尽可能充分模拟芯片在实际使用过程中错误随机出现的情况,从而可以发现更多边界情况,进一步扩大验证范围。
在一种可能的实现方式中,该方法,还包括:监听并接收该DUT输出的该第三事务包集合;当该插错组件对该第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,将该第三事务包集合中的该一个或多个带有标记的事务包过滤掉。
本申请实施例中,当插错组件对激励数据插入大于或等于2bit的错误数据时,UVM验证平台可以在接收到DUT的输出后,将DUT输出的带有标记的事务包过滤掉,仅余留下不带标记的事务包(即当ECC校验以及标记过程正确时,无错误数据的事务包)作为对比的直接依据,可以有效提高对比效率,从而能够提高数据校验的验证效率。
第二方面,本申请实施例提供了一种数据校验的验证装置,应用于UVM验证平台,该UVM验证平台包括参考模型、插错组件,该装置包括:获取单元,用于获取与待验证的设计DUT对应的第一事务包集合;该第一事务包集合包括一个或多个事务包,每个事务包包括一个或多个数据;第一处理单元,用于将该第一事务包集合输入至该参考模型,通过该参考模型对该第一事务包集合处理后,输出第二事务包集合;第二处理单元,用于将该第一事务包集合输入至该DUT,利用该插错组件对该第一事务包集合中的一个或多个事务包分别插入错误数据,并通过该DUT对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记,输出第三事务包集合;其中,该第三事务包集合包括一个或多个带有标记的事务包和一个或多个不带有标记的事务包;对比单元,用于当该插错组件对该第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,对该第二事务包集合和该第三事务包集合中的该一个或多个不带有标记的事务包进行第一对比。
第三方面,本申请实施例提供了一种数据校验的验证装置,该装置包括:输入代理,用于获取与待验证的设计DUT对应的第一事务包集合;该第一事务包集合包括一个或多个事务包,每个事务包包括一个或多个数据;参考模型,用于接收该输入代理输入的该第一事务包,并对该第一事务包集合处理后,输出第二事务包集合;插错组件,用于在该输入代理将该第一事务包集合输入至该DUT时,对该第一事务包集合中的一个或多个事务包分别插入错误数据;该DUT用于对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记,输出第三事务包集合;其中,该第三事务包集合包括一个或多个带有标记的事务包和一个或多个不带有标记的事务包;计分板,用于当该插错组件对该第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,对该第二事务包集合和该第三事务包集合中的该一个或多个不带有标记的事务包进行第一对比。
在一种可能的实现方式中,当该第一对比的对比结果通过时,则判定该DUT用于对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;当该第一对比的对比结果失败时,则判定该DUT用于对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
在一种可能的实现方式中,该计分板,还用于:当该插错组件对该第一事务包集合中的一个或多个事务包分别插入小于2bit的错误数据时,对该第二事务包集合和第三事务包集合中的所有事务包进行第二对比。
在一种可能的实现方式中,当该第二对比的对比结果通过时,则判定该DUT用于对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;当该第二对比的对比结果失败时,则判定该DUT用于对插入错误数据的该一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
在一种可能的实现方式中,该DUT包括一个或多个计数器,该DUT,还用于:通过该一个或多个计数器对该插错组件插入的错误数据进行统计,得到第一错误数;该装置,还包括:输出代理,用于统计该第三事务包集合中错误数据的个数,得到第二错误数;该计分板,还用于对该第一错误数和该第二错误数进行第三对比;当该第三对比的对比结果通过时,则判定该通过该一个或多个计数器对该插错组件插入的错误数据进行统计的过程正确;当该第三对比的对比结果失败时,则判定该通过该一个或多个计数器对该插错组件插入的错误数据进行统计的过程错误。
在一种可能的实现方式中,该DUT包括一个或多个中断寄存器,该DUT,还用于:通过该一个或多个中断寄存器对中断信号进行统计,得到第一中断数;该中断信号为该插错组件插入错误数据时产生的脉冲信号;该装置,还包括:输出代理,用于统计该第三事务包集合中错误数据的个数,得到第二中断数;该计分板,还用于对该第一中断数和该第二中断数进行第四对比;当该第四对比的对比结果通过时,则判定该通过该一个或多个计数器对该插错组件插入的错误数据进行统计的过程正确;当该第四对比的对比结果失败时,则判定该通过该一个或多个计数器对该插错组件插入的错误数据进行统计的过程错误。
在一种可能的实现方式中,该插错组件,还用于:在对该第一事务包集合中的一个或多个事务包分别插入错误数据时,对该错误数据的数量和/或插入的位置进行收集。
在一种可能的实现方式中,该错误数据插入的位置包括ECC校验位或data数据位中的一种或多种,该ECC校验位用于存储ECC校验数据,该data数据位用于存储待校验数据。
在一种可能的实现方式中,该装置,还包括:输出代理,用于监听并接收该DUT输出的该第三事务包集合;当该插错组件对该第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,将该第三事务包集合中的该一个或多个带有标记的事务包过滤掉。
第四方面,本申请实施例提供了一种电子设备,包括处理器、输入设备、输出设备和存储器,该处理器、输入设备、输出设备和存储器相互连接,其中,该存储器用于存储计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用该程序指令,执行上述第一方面的数据校验的验证方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面的数据校验的验证方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中的一种ECC校验模型示意图。
图2是本申请实施例提供的一种UVM验证平台200的结构示意图。
图3是本申请实施例提供的一种数据校验的验证方法的流程示意图。
图4a是本申请实施例提供的一种激励数据结构示意图。
图4b是本申请实施例提供的一种数据处理流程示意图。
图4c是本申请实施例提供的一种数据插错标记正确的流程示意图。
图4d是本申请实施例提供的一种数据插错标记错误的流程示意图。
图4e是本申请实施例提供的一种数据插错对比流程示意图。
图4f是本申请实施例提供的一种UVM验证平台架构示意图。
图5是本申请实施例提供的一种数据校验的验证装置的结构示意图。
图6是本申请实施例提供的另一种数据校验的验证装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
还应当理解,在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)错误检测和修正(Error Checking and Correction,ECC)校验,当芯片设计使用的内存(memory)的宽度和深度到达一定规格时,为了芯片的健壮性和可测试性,通常需要写入对该内存的数据做ECC校验,以避免由于内存失效引起的致命错误。ECC校验的逻辑可参见图1,图1是现有技术中的一种ECC校验模型示意图,其中,输入数据在写入memory之前,由ECC生成逻辑(ECC gen逻辑)产生ECC校验数据,基于写入数据wr data得到{ecc,data}数据(数据写入memory时,涉及写使能、写地址、写数据的使能信号);然后,在将{ecc,data}数据从memory读出时(涉及读使能、读地址、读数据的使能信号),对输出数据rd data进行ECC检验(check),用于检查memory中的数据是否发生失效,1bit错误可以自动纠错,2bit错误可以报错;最后,可以对存在错误的读数据打上错误标记(abort)进行输出。本申请实施例中,在利用UVM验证平台对待验证的芯片DUT进行验证时,针对出现大于或等于2bit错误数据,ECC校验无法纠正的场景,可以对带有错误数据的数据包打上错误标记,然后采用基于错误标记包可丢弃的对比策略进行验证,可以发现更多边界情况,使得验证更加全面,扩大验证范围,同时减少验证效果对于验证工程师能力的过多依赖,从而降低了芯片验证的成本,提高验证方案通用性。
首先,分析并提出本申请所要解决的具体技术问题。在现有技术中,关于芯片验证的方案,具体可以包括如下步骤S200~S203:
步骤S200:输入代理向参考模型和DUT输入数据。
步骤S201:通过force语法(System Verilog所支持的一种语法)对输入至DUT的数据进行强制修改。
步骤S202:输出代理监听并接收DUT的输出。
步骤S203:计分板从输出代理和参考模型获取数据并进行对比。
现有技术中的芯片验证方案存在以下缺点:
成本较高,通用性受限,验证范围不够全面。现有技术中的芯片验证方案,在对具有ECC校验功能的DUT进行验证时,通常是利用force语法(SV支持的一种语法)强制修改数据的方式产生错误激励,以此模拟真实使用环境中数据出现错误的情况,但是在面对特殊场景时,例如产生大于或等于2bit的错误时,由于ECC校验的1bit纠错,2bit检错的特点,DUT只能检测出存在大于或等于2bit的错误而并不能进行纠正,使得DUT输出的数据是带有错误的数据,又因为参考模型一般是事务级模型,没有特殊时序同步机制(若有时序,则相当于设计了另一个DUT,极大增加验证的难度和复杂度),无法精确判断到DUT中数据出错的时间点和出错数值,因此计分板在对DUT和参考模型的数据进行对比时,对比结果将会失败,出现验证不通过的现象。若验证不通过仅是因为ECC校验的2bit检错无法纠正错误的特性导致的,仍可认为DUT是正确的(因为ECC校验无法纠正大于或等于2bit错误是可以被接受的),但是在验证过程中,除了验证ECC校验逻辑之外,还应该需要验证DUT的标记逻辑、计数逻辑以及中断上报逻辑等,现有技术的验证方案并不能感知到以上这些可能导致对比不通过的逻辑错误,也即是说,现有技术的验证方案无法确定对比失败时,在存在大于或等于2bit错误数据的同时,DUT的标记逻辑、计数逻辑以及中断上报逻辑等是否也存在错误,在面对该类测试时,验证工程师通常是以直接用例为主,在并行进程中的同步采样控制信号(例如图1中的写使能和写数据或者读使能和读数据信号)的适当位置通过force语法产生错误激励的方式进行有限的验证,除非验证工程师们投入大量时间和精力,拉长验证周期,设计出更多用例和检查才能使得验证更为全面,但这样做自然会导致芯片验证的时间和资金成本比较高,而且芯片验证周期变长,不利于实际部署推广和实施;另一方面,验证工程师针对特定场景设计的更多用例和检查,在可扩展性、泛化性方面也仍有待验证,通用性可能存在局限。
为了解决现有技术的芯片验证方案中存在的成本较高、通用性低和验证范围不够全面的问题,达到降低芯片验证成本、提高通用性和扩大验证范围的目的,综合考虑现有技术存在的缺点,本申请实际要解决的技术问题包括如下:
采用基于错误标记包可丢弃的对比策略的芯片验证方案。UVM搭建的验证环境对比通常以事务包(Transaction)对比策略为主,因此,在对输入至DUT的事务包集合插入错误数据时,DUT可以对事务包集合进行ECC校验,并可以对带有错误数据的事务包进行标记,则DUT在数据处理结束后输出的事务包集合中包含了带标记的事务包和不带标记的事务包,针对插入了大于或等于2bit错误数据的特殊场景,在进行对比时,可以过滤掉带有标记的事务包(即带有错误数据的事务包),仅对不带标记的事务包和参考模型输出的事务包集合进行对比。由于ECC校验对于大于或等于2bit的错误数据无法纠正,针对插入了大于或等于2bit错误数据的特殊场景,DUT输出的事务包集合中带有错误数据是可以接受的,因此带有错误数据的事务包可以不参与对比。采用基于错误标记包可丢弃的对比策略的芯片验证方案,在对插入大于或等于2bit错误数据的特殊场景进行验证时,可以有效排除因存在大于或等于2bit错误数据无法纠正导致对比不通过的干扰,通过简单配置环境中的插错组件和计分板的工作模式就可以对标记、计数、中断等过程进行验证,从而发现更多边界情况,使得验证更加全面,扩大验证范围,同时减少验证效果对于验证工程师能力的过多依赖,从而降低了芯片验证的成本,提高验证方案通用性。
综上所述,现有技术的芯片ECC验证方案中存在的成本较高、通用性低和验证范围不够全面的问题,导致无法满足实际应用对于芯片验证的更高要求。因此,本申请提供的数据校验的验证方法,采用基于错误标记包可丢弃的对比策略的芯片验证方案,可以扩大验证范围,使得验证更加全面,同时减少验证效果对于验证工程师能力的过多依赖,从而降低了芯片验证的成本,提高验证方案通用性,能够解决现有技术存在的问题。
为方便更好地理解本申请方案,以下本申请实施例将通过UVM验证平台200进行简单描述,请参见图2,图2是本申请实施例提供的一种UVM验证平台200的结构示意图。
UVM验证平台200可以通过环境配置(env cfg),包括以下组件:输入代理(agentin[210]),参考模型(Reference model[220]),计分板(Scoreboard[230]),输出代理(agent out[240]),插错组件(inject-error[250])等。可以理解的是,本发明实施例示意的结构并不构成对UVM验证平台200的具体限定。在本申请另一些实施例中,UVM验证平台200可以包括比图示更多或更少的组件,或者组合某些组件,或者拆分某些组件,或者不同的组件布置。图示的组件可以以硬件,软件或软件和硬件的组合实现。
输入代理(agent in[210])可以与参考模型(Reference model[220])和DUT相连,用于产生激励,并向参考模型(Reference model[220])和DUT输入激励数据(例如DUT的输入inputs),其中可以包括一个或多个处理单元,例如:输入代理(agent in[210])可以包括序列发生器(sequencer211)、驱动器(driver212)、监听器(monitor213)等,序列发生器(sequencer211)可以用于启动序列sequence,从序列中获取数据并将数据发送给驱动器(driver212);驱动器(driver212)和监听器(monitor213)可以对应不同的接口协议,驱动器(driver212)可以用于将序列发生器(sequencer211)发送的数据转发给DUT,将事务级激励转换成DUT能够识别的接口级或者信号级激励,而监听器(monitor213)可以将DUT的接口级或者信号级的输出转换成事务级数据。可理解的是,不同的处理单元可以是独立的组件,也可以集成在一个或多个组件中。
参考模型(Reference model[220])可以与输入代理(agent in[210])和计分板(Scoreboard[230])相连,用于对输入代理(agent in[210])发送的激励进行处理,产生期望并将期望发送给计分板(Scoreboard[230])。参考模型(Reference model[220])对激励进行处理的具体方式,是根据DUT的功能进行设置的。例如, DUT 是一个加法器,输入1+1时,期望 DUT 输出是2,因此,当DUT在计算1+1的结果时,参考模型(Reference model[220])也相应地执行同样的过程,即计算一次1+1,并将2作为期望输出给计分板(Scoreboard[230]),为计分板(Scoreboard[230])进行数据对比提供数据依据。
计分板(Scoreboard[230])可以与参考模型(Reference model[220])和输出代理(agent out[240])相连,用于接收参考模型(Reference model[220])发送的期望和输出代理(agent out[240])监听DUT得到数据处理结果(例如DUT的输出outputs),并对两者进行对比,最终可将对比结果输出,以便验证工程师根据对比结果分析DUT的功能和逻辑的准确性和完备性。在本申请实施例中,当某个事务包存在大于或等于2bit错误数据时,计分板(Scoreboard[230])可以将DUT输出的带有标记的事务包过滤掉,仅通过无标记的事务包与参考模型(Reference model[220])输出的期望进行对比。
输出代理(agent out[240])可以与计分板(Scoreboard[230])和DUT相连,用于监听DUT得到数据处理结果(即DUT输出结果,例如DUT的输出outputs),并将数据处理结果转发给计分板(Scoreboard[230]),其中可以包括一个或多个处理单元,例如:输出代理(agent out[240])可以包括监听器(monitor241)和其他单元,监听器(monitor241)在监听DUT得到数据处理结果后,可以将DUT的接口级或者信号级的输出转换成验证工程师容易理解的事务级数据,最后将事务级数据发送给计分板(Scoreboard[230])。需要说明的是,在一些设计中,输出代理(agent out[240])的功能也可以封装在计分板(Scoreboard[230])中,为方便理解,本申请实施例将输出代理(agent out[240])独立封装进行描述。
插错组件(inject-error[250])可以与DUT相连,用于对输入代理(agent in[210])输入的激励进行插错处理(例如插入错误数据),以此模拟实际使用环境中出现数据错误的情况,此外还可对插错的具体bit位以及插错的数量进行收集。本申请实施例中,插错组件(inject-error[250])可以对DUT中的任意一个或任意几个内存(memory)进行插错,可在数据写入内存时或数据从内存读出时进行插错,具体在数据中的插错配置随机,可在有效数据bit进行插错,也可以在校验数据bit进行插错。
可以理解的是,本申请实施例示意的UVM验证平台200中的各模块或组件之间的接口连接关系,只是示意性说明,并不构成对UVM验证平台200的结构限定。在本申请另一些实施例中,UVM验证平台200也可以采用与上述不同的接口连接方式,或多种接口连接方式的组合。
以下将基于图2提供的UVM验证平台200的架构示意图,结合本申请中提供的数据校验的验证方法的流程,对本申请中提出的技术问题进行具体分析和解决。
参见图3,图3是本申请实施例提供的一种数据校验的验证方法的流程示意图,该数据校验的验证方法可应用于上述图2所述的UVM验证平台200中,UVM验证平台200可以用于支持并执行图3中所示的方法流程步骤S300-步骤S303,下面将通过S300-步骤S303对本申请实施例所提供的数据校验的验证方法进行描述。
步骤S300:获取与待验证的设计DUT对应的第一事务包集合。
具体地,在利用UVM验证平台200对DUT进行验证的过程中,首先获取用于验证DUT功能和逻辑的激励数据,即与DUT对应的第一事务包集合,其中,所述第一事务包集合中可以包括一个或多个事务包,每个事务包中可以包括一个或多个数据。为方便理解,本申请实施例以事务包集合的数据结构为例进行简单说明,请参见图4a,图4a是本申请实施例提供的一种激励数据结构示意图,其中,第一事务包集合可以包括a、b、c共3个事务包,每个事务包分别可以包括一个或多个bit的数据(例如a有n个bit数据,b有m个bit数据,c有k个bit数据)。需要说明的是,事务包集合可以包括比3个更多或更少的事务包,各个事务包中数据量可以相同,也可以不同,由于实际验证环境中使用的都是标准的接口数据,各个事务包中的数据量一般都是相同的,在此不作具体限定。
步骤S301:将所述第一事务包集合输入至所述参考模型,通过所述参考模型对所述第一事务包集合处理后,输出第二事务包集合。
具体地,UVM验证平台200可以包括参考模型(Reference model[220]),在UVM验证平台200获取到激励数据后(即第一事务包集合),可以将该激励数据输入至参考模型(Reference model[220]),参考模型(Reference model[220])可以对该第一事务包集合进行处理,最后输出处理结果(即第二事务包集合)。需要说明的是,参考模型(Referencemodel[220])一般是事务级(或功能级)模型,实现与DUT一样的功能,通常不带有时序,而DUT处理数据需要按照一定时序接收数据然后进行相应的处理,例如DUT按照时钟clk打拍的时序接收和处理数据。如上述例子,第一事务包集合可以包括a、b、c共3个事务包,参见图4b,图4b是本申请实施例提供的一种数据处理流程示意图,其中,参考模型(Referencemodel[220])在接收到第一事务包集合后进行数据处理,处理结束后输出第二事务包集合,为方便理解,以参考模型(Reference model[220])实现转发功能为例,则第二事务包集合包括a、b、c共3个事务包,每个事务包分别可以包括一个或多个bit的数据(如上,a有n个bit数据,b有m个bit数据,c有k个bit数据)。
步骤S302:将所述第一事务包集合输入至所述DUT,利用所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入错误数据,并通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记,输出第三事务包集合。
具体地,UVM验证平台还可以包括插错组件(inject-error[250]),在UVM验证平台将激励数据(即第一事务包集合)输入DUT的过程中,为模拟芯片在实际使用环境中出现数据错误的情况,可以通过插错组件(inject-error[250])对该激励数据(即第一事务包集合)进行插错,从而产生错误数据。插错的位置可以出现在第一事务包集合中的所有事务包中,也可以出现在某个或某几个事务包中,DUT可以对被插入错误数据的事务包进行ECC校验,并在校验之后对带有错误数据的事务包进行标记,并在处理结束后输出处理结果(即第三事务包集合),其中,第三事务包集合包括一个或多个带有标记的事务包和一个或多个不带有标记的事务包中的一种或多种。这里以一个事务包的数据为例进行简单说明,因为DUT设计有ECC校验功能,所以当某个事务包中出现1bit的错误数据时,该错误可以被ECC校验逻辑发现并纠正,而当事务包中出现大于或等于2bit的错误数据时,ECC校验逻辑只能检测出存在错误数据,但不能进行纠正。需要说明的是,DUT给事务包进行标记的目的是将数据正确的事务包和带有错误数据的事务包区分开,所以DUT在进行标记时,也可以对数据正确的事务包打上正确标记(例如“1”),而对于带有错误数据的事务包打上错误标记(例如“0”)。
在一种可能的实现方式中,在插错组件(inject-error[250])对激励数据(即第一事务包集合)中的一个或多个事务包分别插入错误数据后,可以打印report报告,该报告可以包括插错的具体个数或具体位置中的一种的或多种等,例如在针对DUT中的具体某个内存(memory)进行功能验证时插入错误,以及具体插入了1bit或者大于或等于2bit错误,以及具体插入错误的位置发生在具体某个事务包中的具体某一bit位。
步骤S303:对所述第二事务包集合和所述第三事务包集合中的所述一个或多个不带有标记的事务包进行第一对比。
具体地,如果插错组件(inject-error[250])对第一事务包集合中的任何一个事务包插入大于或等于2bit的错误数据时,计分板(Scoreboard[230])可以仅对所述第二事务包集合和所述第三事务包集合中的不带有标记的事务包进行对比,也即是说,当DUT输出的事务包集合中的某个或某几个事务包带有大于或等于2bit的错误数据时,计分板(Scoreboard[230])可以将这某个或某几个事务包过滤掉,仅通过其它不带有错误数据的事务包与参考模型(Reference model[220])的输出进行对比。当DUT输出的不带标记的事务包和参考模型(Reference model[220])输出的事务包集合的部分数据一致时,则对比结果通过,说明DUT的ECC校验和标记过程是正确的;当DUT输出的不带标记的事务包和参考模型(Reference model[220])输出的事务包集合的部分数据不一致时,则对比结果失败,说明DUT输出的不带标记的事务包带有错误数据,DUT的标记过程是错误的,未能将标记完全打在带有错误数据的事务包上,或者将标记打在了无错误数据的事务包上而未在带有错误数据的事务包上打标记。如上述例子,输入至DUT的第一事务包集合可以包括a、b、c共3个事务包,参见图4c,图4c是本申请实施例提供的一种数据插错标记正确的流程示意图,其中,在将第一事务包集合输入到DUT的过程中,插错组件(inject-error[250])可以对事务包集合中的一个或多个事务包进行插错,DUT在接收到第一事务包集合后进行数据处理,处理结束后输出第三事务包集合,为方便理解,以DUT实现转发功能为例,第一事务包集合输入的过程中,插错组件(inject-error[250])对事务包a插入大于或等于2bit错误数据,对事务包b和c不插错,则DUT可以对事务包a进行标记,记为事务包a`,DUT在数据处理结束后输出第三事务包集合,该第三事务包集合包括a`、b、c共3个事务包,每个事务包分别可以包括一个或多个bit的数据(如上,a`有n个bit数据,b有m个bit数据,c有k个bit数据)。可理解地,当计分板(Scoreboard[230])需要对参考模型(Reference model[220])输出的第二事务包集合和DUT输出的第三事务包集合进行对比时,可以过滤掉第三事务包集合中带有标记的事务包,即事务包a`,仅通过第三事务包集合中的事务包b和c与第二事务包集合中事务包a、b、c进行对比,因为DUT输出事务包b和c都不带有错误数据,所以在和参考模型(Reference model[220])输出的事务包b和c对比时,计分板(Scoreboard[230])的对比结果将会通过,见如下标记正确的对比表。
标记正确的对比表
预期队列(参考模型) a、b、c
实际队列(过滤DUT输出后) b、c
为方便理解,以下将数据插错标记错误的情况作为对照,如上述例子,输入至DUT的第一事务包集合可以包括a、b、c共3个事务包,参见图4d,图4d是本申请实施例提供的一种数据插错标记错误的流程示意图,其中,在将第一事务包集合输入到DUT的过程中,插错组件(inject-error[250])可以对事务包集合中的一个或多个事务包进行插错,DUT在接收到第一事务包集合后进行数据处理,处理结束后输出第三事务包集合,为方便理解,以DUT实现转发功能为例,第一事务包集合输入的过程中,插错组件(inject-error[250])对事务包a插入大于或等于2bit的错误数据,对事务包b和c不插错,此时DUT需要对被插入错误数据的事务包(即事务包a)进行标记,但是由于DUT标记逻辑存在问题,可能将对事务包a的标记,错误地打到了事务包b上,记为事务包b`,此时输入DUT的事务包a的数据是存在错误的,为方便进行区分先记为事务包A,DUT在数据处理结束后输出第三事务包集合,该第三事务包集合包括A、b`、c共3个事务包,每个事务包分别可以包括一个或多个bit的数据(如上,A有n个bit数据,b`有m个bit数据,c有k个bit数据)。可理解地,当计分板(Scoreboard[230])需要对参考模型(Reference model[220])输出的第二事务包集合和DUT输出的第三事务包集合进行对比时,可以过滤掉第三事务包集合中带有标记的事务包,即事务包b`,仅通过第三事务包集合中的事务包a(已记为A)和c与第二事务包集合中事务包a、b、c进行对比,因为DUT输出事务包A带有错误数据,所以在和参考模型(Reference model[220])输出的事务包a和c对比时,计分板(Scoreboard[230])的对比结果将会出错,导致无法通过。见如下标记错误的对比表。
标记错误的对比表
预期队列(参考模型) a、b、c
实际队列(过滤DUT输出后) A、c
在一种可能的实现方式中,如果插错组件(inject-error[250])对第一事务包集合中的一个或多个事务包分别插入小于2bit的错误数据时,由于ECC校验的1bit纠错的特点,计分板(Scoreboard[230])可以对所述第二事务包集合的所有事务包和所述第三事务包集合中的所有事务包进行对比。也即是说,由于ECC校验的1bit纠错的特点,当DUT处理的事务包集合中的某个或某几个事务包带有小于2bit的错误数据时,可以被DUT的ECC校验纠正,因此,计分板(Scoreboard[230])可以对DUT输出的所有事务包和参考模型(Referencemodel[220])输出的所有事务包进行对比。当DUT输出的所有事务包和参考模型(Referencemodel[220])输出的事务包集合的数据一致时,则对比结果通过,说明DUT的ECC校验过程是正确的;当DUT输出的所有事务包和参考模型(Reference model[220])输出的事务包集合的数据不一致时,则对比结果失败,说明DUT输出的事务包带有错误数据,DUT的ECC校验未能纠正小于2bit的错误。如上述例子,输入至DUT的第一事务包集合可以包括a、b、c共3个事务包,参见图4e,图4e是本申请实施例提供的一种数据插错对比流程示意图,其中,在将第一事务包集合输入到DUT的过程中,插错组件(inject-error[250])可以对事务包集合中的一个或多个事务包进行插错,DUT在接收到第一事务包集合后进行数据处理,处理结束后输出第三事务包集合,为方便理解,仍以DUT实现转发功能为例,第一事务包集合输入的过程中,插错组件(inject-error[250])对事务包a插入1bit错误数据,对事务包b和c不插错,DUT在进行ECC校验时,可以对事务包a中的错误数据进行纠正,为方便理解记为事务包a`,处理结束后输出第三事务包集合,该第三事务包集合包括a`、b、c共3个事务包(事务包a`中已无错误数据),每个事务包分别可以包括一个或多个bit的数据(如上,a`有n个bit数据,b有m个bit数据,c有k个bit数据)。可理解地,当计分板(Scoreboard[230])需要对参考模型(Reference model[220])输出的第二事务包集合和DUT输出的第三事务包集合进行对比时,可以通过第三事务包集合中的事务包a`、b和c与第二事务包集合中事务包a、b、c进行对比,因为DUT输出事务包a`、b和c都不带有错误数据,所以在和参考模型(Reference model[220])输出的事务包a、b和c对比时,计分板(Scoreboard[230])的对比结果将会通过,见如下插入1bit错误的结果对比表。
插入1bit错误的结果对比表
预期队列(参考模型) a、b、c
实际队列(过滤DUT输出后) a`、b、c
在一种可能的实现方式中,DUT包括一个或多个计数器,在利用UVM验证平台200对DUT进行验证的过程中,除了验证DUT的ECC校验逻辑以及插错标记的逻辑之外,还可以对DUT的计数逻辑进行验证。具体地,在利用插错组件(inject-error[250])进行插错时,可以通过上述一个或多个计数器对插入的错误数据进行统计,然后在DUT处理结束输出结果(即第三事务包集合)时,UVM验证平台200可以对第三事务包集合中的错误数据进行统计,最后对比上述一个或多个计数器的统计结果(即第一错误数)和UVM验证平台200的统计结果(即第二错误数),若对比结果通过,则说明DUT的计数逻辑正确,否则说明计数逻辑错误或者ECC校验逻辑错误。需要说明的是,在插错组件(inject-error[250])对输入至DUT的事务包集合中的多个事务包时,当插入的都是大于或等于2bit的错误时,可以通过计数器的统计结果和DUT输出的错误数据数量对比,确定DUT的计数过程是否正确(当然还可以借助插错组件(inject-error[250])的插错数量进行结果验证);当插入的错误均为小于2bit或既有插入了1bit错误数据,又有插入大于或等于2bit错误数据的情况时(如对事务包a插入了1bit错误数据,对事务包b插入了2bit错误数据),因为ECC校验可以纠正1bit错误数据,UVM验证平台200在进行错误数据统计时可能统计不到这部分数据,可以根据计数器的数值与DUT输出后的错误数量的差值,和插错组件(inject-error[250])插入的1bit错误的个数进行比对,从而确定DUT的计数过程是否正确。
在一种可能的实现方式中,DUT包括一个或多个中断寄存器,在利用UVM验证平台200对DUT进行验证的过程中,除了验证DUT的ECC校验逻辑以及插错标记的逻辑之外,还可以对DUT的中断逻辑进行验证。具体地,在利用插错组件(inject-error[250])进行插错时会产生使得中断寄存器出现中断的脉冲信号,可以通过上述一个或多个中断寄存器可以对该脉冲信号进行统计,然后在DUT处理结束输出结果(即第三事务包集合)时,UVM验证平台200可以对第三事务包集合中的错误数据进行统计,最后对比上述一个或多个中断寄存器的统计结果和UVM验证平台200的统计结果,若对比结果通过,则说明DUT的中断逻辑正确,否则说明中断逻辑错误或者ECC校验逻辑错误。需要说明的是,在插错组件(inject-error[250])对输入至DUT的事务包集合中的多个事务包时,当插入的都是大于或等于2bit的错误时,可以通过中断寄存器的统计结果和DUT输出的错误数据数量对比,确定DUT的中断过程是否正确(当然还可以借助插错组件(inject-error[250])的插错数量进行结果验证);当插入的错误均为小于2bit或既有插入了1bit错误数据,又有插入大于或等于2bit错误数据的情况时(如对事务包a插入了1bit错误数据,对事务包b插入了2bit错误数据),因为ECC校验可以纠正1bit错误数据,UVM验证平台200在进行错误数据统计时可能统计不到这部分数据,可以根据中断寄存器的数值与DUT输出后的错误数量的差值,和插错组件(inject-error[250])插入的1bit错误的个数进行比对,从而确定DUT的中断过程是否正确。还需要说明的是,常规的中断寄存器检查涉及到中断产生(正确产生,且必须是脉冲信号)、中断上报(不同中断之间信号以及没有连接错误)、中断处理、处理完成后写清中断、写清后可继续上报(后续中断发送处理)等一系列动作,本申请实施例可以将针对中断寄存器的一系列检查改为针对中断所对应的脉冲的检查,具体地,从DUT内部拉取信号和插错组件(inject-error[250])的插错个数做精确的统计,同时对中断寄存器最终的值做检查,将插错个数和中断寄存器的值进行对比,能够使得中断寄存器做到不多报,不漏报。此外,还可以避免出现一次校验插错响应正常,但连续多次插错DUT行为出错的情况(中断信号产生错误时,后续中断无法清除,DUT则会出错),也可以避免校验出错后中断寄存器上报异常(中断无法正常清除或无法继续上报)。
在一种可能的实现方式中,在利用插错组件(inject-error[250])对激励数据插入错误数据时,可以通过所述插错组件(inject-error[250])对所述错误数据插入的位置或错误数据的数量中的一种或多种进行收集。具体地,可以在利用插错组件(inject-error[250])对第一事务包集合中的一个或多个事务包分别插入错误数据时,对错误数据的数量以及插入位置进行收集,例如在针对DUT中的具体某个内存(memory)进行功能验证时插入错误,以及具体插入了1bit或者大于或等于2bit错误,以及具体插入错误的位置发生在具体某个事务包中的具体某一bit位,从而提高功能覆盖率。可选地,错误数据插入的位置可以包括ECC校验位或者data数据位中的一种或多种,ECC校验位用于存储ECC校验数据,所述data数据位用于存储待校验数据。需要说明的是,对于插入2bit错误数据的情况,可以随机选择一个内存(memory)进行插错,插错位置可以发生在data 2bit或者发生在ECC 1bit和data 1bit,也可以是发生在ECC 2bit(但此时待校验数据没有错误,所以可以在监听器(monitor241)侧对插入错误数据的标记进行修改,计分板(Scoreboard[230])在进行对比时,可以不过滤掉被监听器(monitor241)修改过标记的事务包,仍采用该事务包与参考模型(Reference model[220])的输出进行对比)。此外,还可以避免校验错误分别发生在ECC校验位或者data数据位时,逻辑处理出错的情况;当data数据位和ECC校验位是由多块memory拼接而成时,本申请实施例也可以发现更多存在的边界情况(corner case)。需要说明的是,现有技术的芯片验证方案在环回、激励有效数据宽度变化、处理拥塞流量时,可能会出现ECC逻辑实现存在错误的情况,或者当memory有多个读端口,可能存在某个读端口ECC报错影响其他读端口数据处理的情况,或者ECC功能被bypass后,出现异常报错的情况,以及存储数据Reserve data的数据异常导致ECC检查出错的情况,本申请实施例可以基于插错组件(inject-error[250]),然后打开随机用例的控制开关,就可以进行ECC功能的验证,这样更多的用例可以执行ECC功能相关的回归,配合插错组件(inject-error[250])添加的功能覆盖率可以有效提高发现上述异常情况的可能性。
在一种可能的实现方式中,在插错组件(inject-error[250])对激励数据(即第一事务包集合)中的一个或多个事务包分别插入大于或等于2bit的错误数据时,可以通过监听器(monitor241)对DUT的输出(即第三事务包集合)进行过滤,仅向计分板(Scoreboard[230])发送第三事务包集合中的一个或多个不带有标记的事务包,使得计分板(Scoreboard[230])可以仅参考模型(Reference model[220])的输出(即第二事务包集合)和DUT输出的第三事务包集合中的一个或多个不带有标记的事务包进行对比。可选地,监听器(monitor241)可以封装在计分板(Scoreboard[230])中,也可以封装在输出代理(agentout[240])中。本申请实施例以监听器(monitor)封装在输出代理(agent out)中为例进行简单说明,可参见图4f,图4f是本申请实施例提供的一种UVM验证平台架构示意图,可以通过向监听器(monitor)引入callback回调机制,使得监听器(monitor)能够通过callback回调的方式,对DUT输出的带有错误标记的事务包进行过滤,仅将不带有标记的事务包发送给计分板(Scoreboard),其中计分板(Scoreboard)允许进行基于错误标记包可丢弃的对比策略。可选地,监听器(monitor)也可以对过滤掉的带有标记的事务包进行统计和检查,该统计结果可以用于验证上述实施例中DUT计数器和/或中断寄存器的功能逻辑。可理解地,监听器(monitor)封装在计分板(Scoreboard)中的设计也应属于本申请实施例的保护范围。
可理解地,当上述数据校验的验证方法应用于芯片验证时,由于采用了基于错误标记包可丢弃的对比策略,使得芯片验证在对插入大于或等于2bit错误数据的特殊场景进行验证时,可以有效排除因存在大于或等于2bit错误数据无法纠正导致对比不通过的干扰,通过简单配置就可以对标记、计数、中断等过程进行验证,从而发现更多边界情况,使得验证更加全面,扩大验证范围,同时减少验证效果对于验证工程师能力的过多依赖,从而降低了芯片验证的成本,提高验证方案通用性。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的相关装置。
请参见图5,图5是本申请实施例提供的一种数据校验的验证装置的结构示意图。该装置10可以包括获取单元101、第一处理单元102、第二处理单元103和对比单元104,可选地,还包括第三处理单元105、第四处理单元106、第五处理单元107。其中,各个单元的详细描述如下:
获取单元101,用于获取与待验证的设计DUT对应的第一事务包集合;所述第一事务包集合包括一个或多个事务包,每个事务包包括一个或多个数据;
第一处理单元102,用于将所述第一事务包集合输入至所述参考模型,通过所述参考模型对所述第一事务包集合处理后,输出第二事务包集合;
第二处理单元103,用于将所述第一事务包集合输入至所述DUT,利用所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入错误数据,并通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记,输出第三事务包集合;其中,所述第三事务包集合包括一个或多个带有标记的事务包和一个或多个不带有标记的事务包;
对比单元104,用于当所述插错组件对所述第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,对所述第二事务包集合和所述第三事务包集合中的所述一个或多个不带有标记的事务包进行第一对比。
在一种可能的实施方式中,当所述第一对比的对比结果通过时,则判定所述通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;
当所述第一对比的对比结果失败时,则判定所述通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
在一种可能的实施方式中,所述对比单元104,还用于:
当所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入小于2bit的错误数据时,对所述第二事务包集合和第三事务包集合中的所有事务包进行第二对比。
在一种可能的实施方式中,当所述第二对比的对比结果通过时,则判定所述通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;
当所述第二对比的对比结果失败时,则判定所述通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
在一种可能的实施方式中,所述DUT包括一个或多个计数器,所述装置,还包括:
第三处理单元105,用于通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计,得到第一错误数;
统计所述第三事务包集合中错误数据的个数,得到第二错误数;
所述对比单元104,还用于:对所述第一错误数和所述第二错误数进行第三对比;
当所述第三对比的对比结果通过时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程正确;
当所述第三对比的对比结果失败时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程错误。
在一种可能的实施方式中,所述DUT包括一个或多个中断寄存器,所述装置,还包括:
第四处理单元106,用于通过所述一个或多个中断寄存器对中断信号进行统计,得到第一中断数;所述中断信号为所述插错组件插入错误数据时产生的脉冲信号;
统计所述第三事务包集合中错误数据的个数,得到第二中断数;
所述对比单元104,还用于:对所述第一中断数和所述第二中断数进行第四对比;
当所述第四对比的对比结果通过时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程正确;
当所述第四对比的对比结果失败时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程错误。
在一种可能的实施方式中,所述第二处理单元103,还用于:
在利用所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入错误数据时,通过所述插错组件对所述错误数据的数量和/或插入的位置进行收集。
在一种可能的实施方式中,所述错误数据插入的位置包括ECC校验位或data数据位中的一种或多种,所述ECC校验位用于存储ECC校验数据,所述data数据位用于存储待校验数据。
在一种可能的实施方式中,所述装置,还包括:
第五处理单元107,用于监听并接收所述DUT输出的所述第三事务包集合;
当所述插错组件对所述第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,将所述第三事务包集合中的所述一个或多个带有标记的事务包过滤掉。
需要说明的是,本申请实施例中所描述的数据校验的验证装置10中各功能单元的功能可参见上述图3中所述的方法实施例中步骤S300-步骤S303的相关描述,此处不再赘述。
请参见图6,图6是本申请实施例提供的另一种数据校验的验证装置的结构示意图。如图6所示,该装置20可以包括:一个或多个处理器601;一个或多个输入设备602,一个或多个输出设备603和存储器604。上述处理器601、输入设备602、输出设备603和存储器604通过总线605连接。存储器604用于存储计算机程序,所述计算机程序包括程序指令,处理器601用于执行存储器604存储的程序指令。
其中,处理器601被配置用于调用所述程序指令执行:获取与待验证的设计DUT对应的第一事务包集合;所述第一事务包集合包括一个或多个事务包,每个事务包包括一个或多个数据;将所述第一事务包集合输入至所述参考模型,通过所述参考模型对所述第一事务包集合处理后,输出第二事务包集合;将所述第一事务包集合输入至所述DUT,利用所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入错误数据,并通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记,输出第三事务包集合;其中,所述第三事务包集合包括一个或多个带有标记的事务包和一个或多个不带有标记的事务包;当所述插错组件对所述第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,对所述第二事务包集合和所述第三事务包集合中的所述一个或多个不带有标记的事务包进行第一对比。
应当理解,在本申请实施例中,处理器601可以是中央处理单元 (CentralProcessing Unit,CPU),该处理器601还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路 (Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备602可以包括触控板、麦克风等,输出设备603可以包括显示器(LCD等)、扬声器等。
该存储器604可以包括只读存储器和随机存取存储器,并向处理器601 提供指令和数据。存储器604的一部分还可以包括非易失性随机存取存储器。例如,存储器604还可以存储设备类型的信息。
具体实现中,本申请实施例中所描述的处理器601、输入设备602、输出设备603可执行本申请实施例提供的数据校验的验证方法中所描述的实现方式,也可执行本申请实施例所描述的数据校验的验证装置的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图3所示的数据校验的验证方法,具体细节请参照图3所示实施例的描述,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例所述的数据校验的验证装置或电子设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smartmedia card, SMC),安全数字(secure digital, SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种UVM验证平台200,包括输入代理(agent in[210])、参考模型(Reference model[220])、计分板(Scoreboard[230])、输出代理(agent out[240])、插错组件(inject-error[250]),请参见图2,图2是本申请实施例提供的一种UVM验证平台200的结构示意图。该输入代理(agent in[210])、参考模型(Reference model[220])、计分板(Scoreboard[230])、输出代理(agent out[240])、插错组件(inject-error[250])相互连接,执行上述的数据校验的验证方法。
可理解地,上述UVM验证平台200仅是本申请实施例中的一种示例,而不应作为本发明的限定。其它仅包括上述输入代理(agent in[210])、参考模型(Reference model[220])、计分板(Scoreboard[230])、输出代理(agent out[240])、插错组件(inject-error[250])中的一种或多种的UVM验证平台,当其存在执行上述的数据校验的验证方法进行芯片验证的模块或单元或组件时,也应属于本申请保护范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请是参照本申请实施例的方法、装置和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程诊疗数据的处理设备的处理器以产生一个机器,使得通过计算机或其他可编程诊疗数据的处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程诊疗数据的处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程诊疗数据的处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (21)

1.一种数据校验的验证方法,其特征在于,应用于通用验证方法学UVM验证平台,所述UVM验证平台包括参考模型、插错组件,所述方法包括:
获取与待验证的设计DUT对应的第一事务包集合;所述第一事务包集合包括一个或多个事务包,每个事务包包括一个或多个数据;
将所述第一事务包集合输入至所述参考模型,通过所述参考模型对所述第一事务包集合处理后,输出第二事务包集合;
将所述第一事务包集合输入至所述DUT,利用所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入错误数据,并通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记,输出第三事务包集合;其中,所述第三事务包集合包括一个或多个带有标记的事务包和一个或多个不带有标记的事务包;
当所述插错组件对所述第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,对所述第二事务包集合和所述第三事务包集合中的所述一个或多个不带有标记的事务包进行第一对比。
2.如权利要求1所述的方法,其特征在于,当所述第一对比的对比结果通过时,则判定所述通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;
当所述第一对比的对比结果失败时,则判定所述通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
3.如权利要求1-2中任一项所述的方法,其特征在于,所述方法,还包括:
当所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入小于2bit的错误数据时,对所述第二事务包集合和第三事务包集合中的所有事务包进行第二对比。
4.如权利要求3所述的方法,其特征在于,当所述第二对比的对比结果通过时,则判定所述通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;
当所述第二对比的对比结果失败时,则判定所述通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
5.如权利要求4所述的方法,其特征在于,所述DUT包括一个或多个计数器,所述方法,还包括:
通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计,得到第一错误数;
统计所述第三事务包集合中错误数据的个数,得到第二错误数;
对所述第一错误数和所述第二错误数进行第三对比;
当所述第三对比的对比结果通过时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程正确;
当所述第三对比的对比结果失败时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程错误。
6.如权利要求5所述的方法,其特征在于,所述DUT包括一个或多个中断寄存器,所述方法,还包括:
通过所述一个或多个中断寄存器对中断信号进行统计,得到第一中断数;所述中断信号为所述插错组件插入错误数据时产生的脉冲信号;
统计所述第三事务包集合中错误数据的个数,得到第二中断数;
对所述第一中断数和所述第二中断数进行第四对比;
当所述第四对比的对比结果通过时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程正确;
当所述第四对比的对比结果失败时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程错误。
7.如权利要求6所述的方法,其特征在于,所述方法,还包括:
在利用所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入错误数据时,通过所述插错组件对所述错误数据的数量和/或插入的位置进行收集。
8.如权利要求7所述的方法,其特征在于,所述错误数据插入的位置包括ECC校验位或data数据位中的一种或多种,所述ECC校验位用于存储ECC校验数据,所述data数据位用于存储待校验数据。
9.如权利要求8所述的方法,其特征在于,所述方法,还包括:
监听并接收所述DUT输出的所述第三事务包集合;
当所述插错组件对所述第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,将所述第三事务包集合中的所述一个或多个带有标记的事务包过滤掉。
10.一种数据校验的验证装置,其特征在于,应用于UVM验证平台,所述UVM验证平台包括参考模型、插错组件,所述装置包括:
获取单元,用于获取与待验证的设计DUT对应的第一事务包集合;所述第一事务包集合包括一个或多个事务包,每个事务包包括一个或多个数据;
第一处理单元,用于将所述第一事务包集合输入至所述参考模型,通过所述参考模型对所述第一事务包集合处理后,输出第二事务包集合;
第二处理单元,用于将所述第一事务包集合输入至所述DUT,利用所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入错误数据,并通过所述DUT对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记,输出第三事务包集合;其中,所述第三事务包集合包括一个或多个带有标记的事务包和一个或多个不带有标记的事务包;
对比单元,用于当所述插错组件对所述第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,对所述第二事务包集合和所述第三事务包集合中的所述一个或多个不带有标记的事务包进行第一对比。
11.一种数据校验的验证装置,其特征在于,所述装置包括:
输入代理,用于获取与待验证的设计DUT对应的第一事务包集合;所述第一事务包集合包括一个或多个事务包,每个事务包包括一个或多个数据;
参考模型,用于接收所述输入代理输入的所述第一事务包,并对所述第一事务包集合处理后,输出第二事务包集合;
插错组件,用于在所述输入代理将所述第一事务包集合输入至所述DUT时,对所述第一事务包集合中的一个或多个事务包分别插入错误数据;所述DUT用于对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记,输出第三事务包集合;其中,所述第三事务包集合包括一个或多个带有标记的事务包和一个或多个不带有标记的事务包;
计分板,用于当所述插错组件对所述第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,对所述第二事务包集合和所述第三事务包集合中的所述一个或多个不带有标记的事务包进行第一对比。
12.如权利要求11所述的装置,其特征在于,当所述第一对比的对比结果通过时,则判定所述DUT用于对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;
当所述第一对比的对比结果失败时,则判定所述DUT用于对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
13.如权利要求11-12中任一项所述的装置,其特征在于,所述计分板,还用于:
当所述插错组件对所述第一事务包集合中的一个或多个事务包分别插入小于2bit的错误数据时,对所述第二事务包集合和第三事务包集合中的所有事务包进行第二对比。
14.如权利要求13所述的装置,其特征在于,当所述第二对比的对比结果通过时,则判定所述DUT用于对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程正确;
当所述第二对比的对比结果失败时,则判定所述DUT用于对插入错误数据的所述一个或多个事务包进行错误检测和修正ECC校验,并对有错误数据的事务包进行标记的过程错误。
15.如权利要求14所述的装置,其特征在于,所述DUT包括一个或多个计数器,所述DUT,还用于:
通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计,得到第一错误数;
所述装置,还包括:
输出代理,用于统计所述第三事务包集合中错误数据的个数,得到第二错误数;
所述计分板,还用于对所述第一错误数和所述第二错误数进行第三对比;
当所述第三对比的对比结果通过时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程正确;
当所述第三对比的对比结果失败时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程错误。
16.如权利要求15所述的装置,其特征在于,所述DUT包括一个或多个中断寄存器,所述DUT,还用于:
通过所述一个或多个中断寄存器对中断信号进行统计,得到第一中断数;所述中断信号为所述插错组件插入错误数据时产生的脉冲信号;
所述装置,还包括:
输出代理,用于统计所述第三事务包集合中错误数据的个数,得到第二中断数;
所述计分板,还用于对所述第一中断数和所述第二中断数进行第四对比;
当所述第四对比的对比结果通过时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程正确;
当所述第四对比的对比结果失败时,则判定所述通过所述一个或多个计数器对所述插错组件插入的错误数据进行统计的过程错误。
17.如权利要求16所述的装置,其特征在于,所述插错组件,还用于:
在对所述第一事务包集合中的一个或多个事务包分别插入错误数据时,对所述错误数据的数量和/或插入的位置进行收集。
18.如权利要求17所述的装置,其特征在于,所述错误数据插入的位置包括ECC校验位或data数据位中的一种或多种,所述ECC校验位用于存储ECC校验数据,所述data数据位用于存储待校验数据。
19.如权利要求18所述的装置,其特征在于,所述装置,还包括:
输出代理,用于监听并接收所述DUT输出的所述第三事务包集合;
当所述插错组件对所述第一事务包集合中的任一个事务包插入大于或等于2bit的错误数据时,将所述第三事务包集合中的所述一个或多个带有标记的事务包过滤掉。
20.一种电子设备,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-9中任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-9中任一项所述的方法。
CN202210595634.0A 2022-05-30 2022-05-30 一种数据校验的验证方法、相关设备和存储介质 Active CN114676011B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210595634.0A CN114676011B (zh) 2022-05-30 2022-05-30 一种数据校验的验证方法、相关设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210595634.0A CN114676011B (zh) 2022-05-30 2022-05-30 一种数据校验的验证方法、相关设备和存储介质

Publications (2)

Publication Number Publication Date
CN114676011A true CN114676011A (zh) 2022-06-28
CN114676011B CN114676011B (zh) 2022-08-12

Family

ID=82079769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210595634.0A Active CN114676011B (zh) 2022-05-30 2022-05-30 一种数据校验的验证方法、相关设备和存储介质

Country Status (1)

Country Link
CN (1) CN114676011B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112069074A (zh) * 2020-09-10 2020-12-11 上海明矽微电子有限公司 一种基于uvm的rfid标签芯片验证装置
CN112349343A (zh) * 2020-11-06 2021-02-09 海光信息技术股份有限公司 电路结构、芯片以及电子设备
US20210133123A1 (en) * 2019-11-04 2021-05-06 Nvidia Corporation Techniques for an efficient fabric attached memory
CN114153672A (zh) * 2021-11-26 2022-03-08 山东云海国创云计算装备产业创新中心有限公司 一种芯片验证方法、系统、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210133123A1 (en) * 2019-11-04 2021-05-06 Nvidia Corporation Techniques for an efficient fabric attached memory
CN112069074A (zh) * 2020-09-10 2020-12-11 上海明矽微电子有限公司 一种基于uvm的rfid标签芯片验证装置
CN112349343A (zh) * 2020-11-06 2021-02-09 海光信息技术股份有限公司 电路结构、芯片以及电子设备
CN114153672A (zh) * 2021-11-26 2022-03-08 山东云海国创云计算装备产业创新中心有限公司 一种芯片验证方法、系统、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
许宏杰等: "ARINC659芯片设计与实现关键技术研究", 《计算机技术与发展》 *

Also Published As

Publication number Publication date
CN114676011B (zh) 2022-08-12

Similar Documents

Publication Publication Date Title
US9141463B2 (en) Error location specification method, error location specification apparatus and computer-readable recording medium in which error location specification program is recorded
JPH10283274A (ja) メモリをテストするための方法および装置
US20140040841A1 (en) Apparatus and method thereof for hybrid timing exception verification of an integrated circuit design
CN116256621B (zh) 芯粒的测试方法、装置、电子设备及存储介质
CN112506730A (zh) 适用于网络交换芯片ecc功能验证的验证平台及验证方法
CN115563914A (zh) 验证方法及装置、计算设备、计算机可读存储介质
CN101923494B (zh) 一种存储器控制器验证系统、方法及记分板
CN110502382B (zh) Type-c接口测试方法、装置、存储介质及电子设备
CN114676011B (zh) 一种数据校验的验证方法、相关设备和存储介质
CN107480045A (zh) 一种电能表软件的检错纠错与轨迹跟踪方法
US12086022B2 (en) Bus monitoring device and method, storage medium, and electronic device
CN116955040A (zh) 一种芯片读写性能测试方法、系统、设备及存储介质
EP2677429A1 (en) Error correction
JP3986898B2 (ja) メモリ擬似故障注入装置
US9288161B2 (en) Verifying the functionality of an integrated circuit
JP4652317B2 (ja) 論理回路の機能検証装置、機能カバレッジアイテムの検証方法及びプログラム
US8612905B1 (en) System method and apparatus for vacuity detection
CN110096402B (zh) 对芯片数据异常处理逻辑的验证装置和方法
CN110991129A (zh) 一种基于fpga的密码协处理器全自动仿真验证方法
CN116256620B (zh) Chiplet集成芯片的检测方法、装置、电子设备及存储介质
CN117076183B (zh) 一种错误上报方法、片上系统、计算机设备及存储介质
US20240329135A1 (en) Testing multi-cycle paths using scan test
CN118013897A (zh) 寄存器的验证方法及装置
CN116595921A (zh) 一种soc芯片系统问题定位方法及装置
CN209980234U (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 200080 7th floor, No.137 Haining Road, Hongkou District, Shanghai

Patentee after: Xinyaohui Technology Co.,Ltd.

Country or region after: China

Address before: 519000 room 901-9003, Hengqin international business center, No. 3000, Huandao East Road, Hengqin new area, Zhuhai, Guangdong

Patentee before: Xinyaohui Technology Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address