CN109802864A - 芯片设计验证方法、装置及芯片测试器 - Google Patents
芯片设计验证方法、装置及芯片测试器 Download PDFInfo
- Publication number
- CN109802864A CN109802864A CN201711137980.XA CN201711137980A CN109802864A CN 109802864 A CN109802864 A CN 109802864A CN 201711137980 A CN201711137980 A CN 201711137980A CN 109802864 A CN109802864 A CN 109802864A
- Authority
- CN
- China
- Prior art keywords
- message
- list
- verified
- measured
- comparing
- 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
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种芯片设计验证方法、装置及芯片测试器,预先设置报文对比策略库,该报文对比策略库用于预先存储多种类型的报文之报文对比策略;然后在测试过程中,接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文,参考模型模拟待测芯片设计预实现的功能;然后根据待验证报文的类型,从报文比对策略库中获取与该报文类型相匹配的目标报文比对策略,进而根据获取的目标报文对比策略对参考报文和待验证报文进行比对。因此可以适用于报文激励为多种类型报文的测试场景,相对现有验证平台兼容性、通用性更好,测试效率也能得到有效的提高。
Description
技术领域
本发明涉及通信领域,尤其涉及一种芯片设计验证方法、装置及芯片测试器。
背景技术
逻辑验证是数字芯片前端设计过程中的一个关键步骤,验证平台模拟芯片实际运行环境,并通过测试用例检验芯片功能的正确性。为了提高验证效率,需要有一种自动化的检查机制。一种典型的验证平台架构图如图1所示。总线代理Agent负责生成和接受报文激励。发送侧的总线代理Agent生成报文激励,将报文激励同时送往待测芯片设计DUT(DeviceUnder Test)和参考模型Ref_model。参考模型Ref_model模拟待测芯片设计DUT的功能,对输入进来的报文激励进行处理,将处理完的报文送往计分板Scoreboard。同时待测芯片设计DUT也对输入进来的报文激励进行处理,接收侧的总线代理Agent接收待测芯片设计DUT处理完的报文并将报文送往计分板Scoreboard。记分板Scoreboard对从参考模型Ref_model和待测芯片设计DUT处理的报文进行自动化对比,如果完全相同,则认为待测芯片设计DUT的功能正确;如果不相同,则认为待测芯片设计DUT的功能存在问题。
现有图1所示的验证平台架构中的计分板中的报文对比规则很单一,一般只能针对一种固定类型的报文进行对比分析。而对于网络数据类芯片,各种类型的网络报文是最主要的激励,此时图1所示的验证平台由于只能针对单一类型的报文进行分析比对而不能供多种类型报文复用,因此不能满足报文激励为多种类型报文的测试场景。
发明内容
本发明实施例提供的一种芯片设计验证方法、装置及芯片测试器,主要解决的技术问题是:解决现有验证平台只能针对单一类型的报文进行对比分析,不能满足报文激励为多种类型报文的测试场景的问题。
为解决上述技术问题,本发明实施例提供一种芯片设计验证方法,包括:
接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文,所述参考模型模拟所述待测芯片设计预实现的功能;
根据所述待验证报文的类型,从报文比对策略库中获取与所述类型相匹配的目标报文比对策略,所述报文对比策略库用于存储多种类型的报文之报文对比策略;
根据获取的目标报文对比策略对所述参考报文和待验证报文进行比对。
为解决上述技术问题,本发明实施例提供一种芯片设计验证方法,包括:
接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文分别按序存入参考报文列表和待测报文列表中,并分别按序分配对应的序列号,所述参考模型模拟所述待测芯片设计预实现的功能;
在检测到所述待测报文列表中存入一个新的待验证报文时,将所述待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对;
当所述待测报文列表中的某一待验证报文和所述参考报文列表中的某一参考报文的对比结果为匹配时,将该对待验证报文和参考报文分别从所述待测报文列表和所述参考报文列表中删除。
为解决上述技术问题,本发明实施例提供一种芯片设计验证装置,包括:
报文接收模块,用于接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文,所述参考模型模拟所述待测芯片设计预实现的功能;
报文对比策略库,用于存储多种类型的报文之报文对比策略;
策略获取模块,用于根据所述待验证报文的类型,从所述报文比对策略库中获取与所述报文类型相匹配的目标报文比对策略;
比较模块,用于根据获取的目标报文对比策略对所述参考报文和待验证报文进行比对。
为解决上述技术问题,本发明实施例提供一种芯片设计验证装置,包括:
信息接收模块,用于接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文分别按序存入参考报文列表和待测报文列表中,并分别按序分配对应的序列号,所述参考模型模拟所述待测芯片设计预实现的功能;
匹配处理模块,用于在检测到所述待测报文列表中存入一个新的待验证报文时,将所述待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对,以及用于当所述待测报文列表中的某一待验证报文和所述参考报文列表中的某一参考报文的对比结果为匹配时,将该对待验证报文和参考报文分别从所述待测报文列表和所述参考报文列表中删除。
为解决上述技术问题,本发明实施例提供一种芯片测试器,包括处理器、存储器和通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个第一程序,以实现所述的芯片设计验证方法的步骤。
或,所述处理器用于执行存储器中存储的一个或者多个第二程序,以实现如上所述的芯片设计验证方法的步骤。
为解决上述技术问题,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个第一程序,所述一个或者多个第一程序可被处理器调用以实现所述的芯片设计验证方法的步骤。
或,所述计算机可读存储介质存储有一个或者多个第二程序,所述一个或者多个第二程序可被处理器调用以实现所述的芯片设计验证方法的步骤。
本发明的有益效果是:
根据本发明实施例提供的芯片设计验证方法、装置、芯片测试器及计算机可读存储介质,预先设置报文对比策略库,该报文对比策略库用于预先存储多种类型的报文之报文对比策略;然后在测试过程中,接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文,参考模型模拟待测芯片设计预实现的功能;然后根据待验证报文的类型,从报文比对策略库中获取与该报文类型相匹配的目标报文比对策略,进而根据获取的目标报文对比策略对参考报文和待验证报文进行比对。本发明通过在报文对比策略库预先存储多种类型的报文之报文对比策略,进而可以在测试过程中根据当前待验证报文的类型选择对应的目标报文比对策略进行匹配,因此可以适用于报文激励为多种类型报文的测试场景,相对现有验证平台兼容性、通用性更好,测试效率也能得到有效的提高。
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
图1为现有的一种验证平台架构示意图;
图2为本发明实施例一的芯片设计验证方法流程示意图;
图3为本发明实施例一的参考报文和待验证报文比对过程流程示意图;
图4为本发明实施例二的芯片设计验证装置结构示意图;
图5为本发明实施例二的DUT测报文流处理流程示意图;
图6为本发明实施例二的REFM测报文流处理流程示意图;
图7为本发明实施例二的报文表比对流程示意图;
图8为本发明实施例二的报文表结构示意图;
图9为本发明实施例二的报文比较结果队列结构示意图;
图10为本发明实施例二的报文对比状态检查流程示意图;
图11为本发明实施例二的报文建模架构示意图;
图12为本发明实施例二的报文比对调用链结构示意图;
图13为本发明实施例二的多级报文结构示意图;
图14为本发明实施例三的芯片设计验证装置结构示意图;
图15为本发明实施例四的芯片测试器结构示意图;
图16为本发明实施例四的验证平台架构示意图;
图17为本发明实施例四的报文元素算法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
为了解决现有验证平台只能针对单一类型的报文进行对比分析,不能满足报文激励为多种类型报文的测试场景的问题。本实施例提供了一种新的芯片设计验证方法,预先设置好报文对比策略库,该报文对比策略库用于预先存储多种类型的报文之报文对比策略,且该报文对比策略库中的报文比对策略可以动态更新,并可支持用户自定义更新。在测试过程中,接收到参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文后,根据待验证报文的类型,从报文比对策略库中获取与该报文类型相匹配的目标报文比对策略,进而根据获取的目标报文对比策略对参考报文和待验证报文进行比对。本实施例中参考模型模拟待测芯片设计预实现的功能。本实施例提供的芯片设计验证方法可以在测试过程中根据当前待验证报文的类型选择对应的目标报文比对策略进行匹配,因此可以适用于报文激励为多种类型报文的测试场景,相对现有验证平台兼容性、通用性更好,测试效率也能得到有效的提高。例如当设计的芯片为网络芯片时,报文激励则可能是多种类型的网络报文,本实施例提供的芯片设计验证方法就能很好的对网络芯片设计的多种类型的网络报文进行处理,以对芯片设计进行可靠验证。
具体的,参见图2所示,本实施例提供的一种芯片设计验证方法包括:
S201:接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文。
本实施例中的待测芯片设计设置设计的待进行功能验证的芯片,该芯片可以是各种类型的芯片,例如可以是网络芯片,也可以是其他数据处理芯片等。本实施例中的参考模型模拟待测芯片设计预实现的功能。
本实施例中,在对待测芯片设计进行验证时,将待测试功能对应的报文激励分别发给参考模型和待测芯片设计,参考模型对接收到的报文激励进行处理后输出,待测芯片设计也对接收到的报文激励进行处理后输出,以供后续进行比对验证。
S202:根据待验证报文的类型,从报文比对策略库中获取与该类型相匹配的目标报文比对策略。
本实施例中,待验证报文的类型与基于同一报文激励得到的参考报文的类型一般相同,因此在S202中,也可以根据S201中的参考报文的类型,从报文比对策略库中获取与该参考报文类型相匹配的目标报文比对策略。当报文激励的类型与输出的待验证报文类型和参考报文类型也相同时,可以根据报文激励的类型从报文比对策略库中获取与该报文激励类型相匹配的目标报文比对策略。
本实施例中的报文对比策略库用于存储多种类型的报文之报文对比策略。且应当理解的是,本实施例中报文对比策略库中的报文对比策略可以动态更新,且可支持用户手动更新,该更新包括但不限于向报文对比策略库中增加新的报文比对策略,从报文比对策略库中删除原来存储的报文比对策略,具体可通过提供相应的策略设置或扩展接口以供用户进行策略扩展或设置。
且在本实施例中,一种报文类型可以对应一种报文比对策略,当然也可以对应至少两种报文对比策略,具体可以根据具体应用场景灵活设定。
S203:根据获取的目标报文对比策略对参考报文和待验证报文进行比对。
通过S203比对后,即可得到报文比对结果,从而为待测芯片设计提供判断其功能是否正常的依据。应当理解的是,本实施例中分析的待验证报文的类型和数量根据具体的待测芯片设计以及待验证的功能等灵活确定。
在本实施例中,报文比对策略包括报文级比对策略,报文级对比策略包含各种类型报文所需要对比的报文元素,报文比对策略库包括用于存储报文级比对策略的报文级策略子库;
此时,根据待验证报文的类型,从报文比对策略库中获取与报文类型相匹配的目标报文比对策略包括:
根据待验证报文的类型,从报文级策略子库获取与所述类型相匹配的报文级比对策略。
在本实施例中,针对报文比对策略库还可进一步设置用于存储报文元素之比对方法的报文元素级策略子库;
此时,根据待验证报文的类型,从报文比对策略库中获取与该报文类型相匹配的目标报文比对策略还包括:
从报文级策略子库获取与所述类型相匹配的报文级比对策略后,从报文元素级策略子库中获取该报文级比对策略包含的报文元素之比对方法。
应当理解的是,本实施例中报文级比对策略具体包含需要对比哪些报文元素可以根据具体的报文类型等场景灵活设定,从而可以得到报文级的比对结果。各报文元素的具体比对方法也可以根据具体需求灵活设定,可以得到报文元素级的对比结果,该报文元素包括但不限于各种类型数据,队列,数组等。
基于上述设置,根据待验证报文的类型,从报文比对策略库中获取与报文类型相匹配的目标报文比对策略包括:
根据待验证报文的类型,从报文级策略子库获取与报文类型相匹配的目标报文级比对策略,并从报文元素级策略子库中获取目标报文级对比策略包含的需对比的报文元素之比对方法。通过多级调用即可自动获取到相应类型报文的比对方法,从而实现各种类型报文对比策略的自动匹配,提升芯片测试器的通用性。
在本实施例中,可以分别设置参考报文列表(REFM报文表)和待测报文列表(DUT报文表)以用于分别存储接收到的参考报文和待验证报文。在参考报文列表中,每新接收到一个参考报文就为其分配一个序列号;在待测报文列表中,每新接收到一个待验证报文也为其分配一个序列号。序列号分配规则按照顺序递增的方式分配。
因此,在本实施例中,接收到来自参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文后,还包括将接收到的参考报文和待验证报文分别按序存入参考报文列表中,并分别按序分配对应的序列号。
S203中根据获取的目标报文对比策略对参考报文和待验证报文进行比对参见图3所示,包括:
S301:在检测到待测报文列表中存入一个新的待验证报文后,将待测报文列表中当前的各个待验证报文分别采用获取的目标报文对比策略与参考报文列表中当前的各参考报文进行比对。
在本实施例中,在进行上述比对之前,也可先判断当前的参考报文列表是否为空,如为空,则不进行该比较,可以监测到参考报文列表不为空时再进行比对,或在待测报文列表中存储一个新的待验证报文后再转回上述判断当前的参考报文列表是否为空的步骤。
S302:当待测报文列表中的某一待验证报文和参考报文列表中的某一参考报文的对比结果为匹配时,将对比结果、待验证报文的序列号和参考报文的序列号关联存入对比结果列表中。
在本实施例中,当待测报文列表中的待验证报文与参考报文列表中的参考报文不匹配时,可以将其保存在待测报文列表中。在S301中进行报文比对时,是将待测报文列表中当前的各待验证报文与参考报文列表中的各参考报文进行匹配;因此在当前的报文比对过程中支持乱序比对时,则可以实现报文乱序的识别。例如假设在参考报文列表中t1时刻接收到一个参考报文,按序将其ID设置为5,而与该参考报文匹配的待验证报文则是在t2时刻才接收到存入待测报文列表中,按序将其ID设置为7,此时将待测报文列表中的待验证报文与参考报文列表中的各参考报文进行比较时就能发现序号为7的待验证报文与序号为5的参考报文相匹配,但二者的序号并不匹配,此时即可判定二者序号不匹配,出现该情况的原因可能是丢包造成的,也可能是报文接收顺序发生错乱造成的(此时可认为发生了乱序),例如如果后续比对过程中检测到序号为8的待验证报文与序号为4的参考报文相匹配,则表明报文接收顺序发生了错乱,此时可判定发生了乱序。
在本实施例中,将待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对后,还可包括:
将待测报文列表中与参考报文列表中相匹配的待验证报文和参考报文删除;
判断列表清空条件是否满足,如是,将待测报文列表和所述参考报文列表按预设清空规则进行清空;
本实施例中,列表清空条件可包括以下条件中的任意一种:
待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值;
参考报文列表中当前的参考报文个数大于等于预设第二报文个数阈值;
待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值;
待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值,或参考报文列表中当前的参考报文个数大于等于预设第二报文个数阈值;
待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值,且参考报文列表中当前的参考报文个数大于等于预设第二报文个数阈值。
应当理解的是,本实施例中第一报文个数阈值和第二报文个数阈值可以根据具体应用场景灵活设定。且第一报文个数阈值与第二报文个数阈值可以相等,也可以不等。本实施例中具体选择上述条件中的哪一种条件作为列表清空条件也可以根据具体场景灵活设定。
在本实施例中,预设清空规则包括将待测报文列表和参考报文列表中当前的报文删除并在比对结果列表中进行以下设置:
将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对,并将配对的待验证报文和参考报文的序号在所述对比结果列表中进行存储,并在比对结果列表中将该配对的待验证报文和参考报文的比对结果设置为不匹配;
将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在参考报文列表中存在未配对的参考报文时,将该参考证报文的序号在对比结果列表中进行存储,并将该参考报文在对比结果列表中将对比结果设置为丢待验证报文;
将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在待测报文列表中存在未配对的待验证报文时,将该待验证报文的序号在所述对比结果列表中进行存储,并将该待验证报文在所述对比结果列表中将对比结果设置为丢参考报文。
例如,在一种示例中,待测报文列表中剩余序号分别为1,3,5的3个待验证报文,参考报文列表中剩余序号分别为2、4、6、8、9的5个参考报文;此时将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对得到的报文对是3对(等于待测报文列表中剩余的报文个数3,也即此时不匹配的报文数据等于参考报文列表中和待测报文列表中剩余的报文最少的个数)分别为序号为1的待验证报文与序号为2的参考报文配为一对、序号为3的待验证报文与序号为4的参考报文配为一对、序号为5的待验证报文与序号为6的参考报文配为一对,将序号1、2,3、4,5、6三对序号分别在对比结果列表中进行存储,并将这三对序号对应的(也即三对报文)对比结果设置为不匹配。
在该示例中,将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在参考报文列表中剩余序号为8和9的参考报文,将参考报文的序号8和9分别在对比结果列表中进行存储,并将序号为8和9的参考报文的对比结果分别设置为丢待验证报文。
也即本实施例可以识别出匹配、乱序、不匹配、丢参考报文、丢待验证报文等结果。
在本实施例中,根据获取的目标报文对比策略对参考报文和待验证报文进行比对之前,还可包括获取乱序比对配置信息;本实施例中的乱序比对配置信息可以由用户在测试时根据当前测试需求灵活配置为支持或不支持,也可以根据报文类型等因素配置为支持或不支持。
在本实施例中,将待测报文列表中与参考报文列表中相匹配的待验证报文和参考报文删除后,判断列表清空条件是否满足之前,还可包括以下步骤:
根据乱序对比配置信息判断是否支持乱序对比,如否,进行以下临时表处理过程:
将待测报文列表中在所述删除的待验证报文之前接收到的报文及序列号转移(具体可以是从待测报文列表中的报文复制到待测报文临时列表中,并将待测报文列表中的该待验证报文删除)到待测报文临时列表中按序存储,并将参考报文列表中在删除的参考报文之前接收到的报文及序列号转移到参考报文临时列表中按序存储;
将待测报文临时列表和参考报文临时列表中当前的报文删除并在比对结果列表中进行以下设置:
将待测报文临时列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对,并将配对的待验证报文和参考报文的序号在对比结果列表中进行存储,并在比对结果列表中将该配对的待验证报文和参考报文的比对结果设置为不匹配;
将待测报文临时列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在参考报文临时列表中存在未配对的参考报文时,将该参考证报文的序号在对比结果列表中进行存储,并将该参考报文在对比结果列表中将对比结果设置为丢待验证报文;在待测报文临时列表中存在未配对的待验证报文时,将该待验证报文的序号在对比结果列表中进行存储,并将该待验证报文在对比结果列表中将对比结果设置为丢参考报文。
例如,在一种示例中,待测报文临时列表中剩余序号分别为1,3,5,7,9的5个待验证报文,参考报文临时列表中剩余序号分别为1,3,5的3个参考报文;此时将待测报文临时列表中的待验证报文与参考报文临时列表中的参考报文按序号从大到小的顺序依次配对得到的报文对是3对(此时等于待参考报文临时列表中剩余的参考报文个数3,也即此时不匹配的报文数据等于参考报文临时列表中和待测报文临时列表中剩余的报文最少的个数)分别为序号为1的待验证报文与序号为1的参考报文配为一对、序号为3的待验证报文与序号为3的参考报文配为一对、序号为5的待验证报文与序号为5的参考报文配为一对,将序号1、1,3、3,5、5三对序号分别在对比结果列表中进行存储,并将这三对序号对应的(也即三对报文)对比结果设置为不匹配。
在该示例中,将待测报文临时列表中的待验证报文与参考报文临时列表中的参考报文按序号从大到小的顺序依次配对后,在待测报文临时列表中剩余序号为7和9的待验证报文,将待验证报文的序号7和9分别在对比结果列表中进行存储,并将序号为7和9的待验证报文的对比结果分别设置为丢参考报文。此时则表明参考模型出问题了,但这种情况一般较少出现。
在本实施例中,当待测报文列表中的某一待验证报文和参考报文列表中的某一参考报文的对比结果为匹配时,并将对比结果、待验证报文的序列号和参考报文的序列号关联存入对比结果列表中后,还包括:
判断在当前对比结果列表中存在比最后存入的待验证报文之序列号大的待验证报文的序列号时,则确定比最后存入的待验证报文之序列号大的序列号所对应的待验证报文为乱序报文。
在本实施例中,在根据获取的目标报文对比策略对参考报文和待验证报文进行比对后,还包括以下对比终止判断过程:
判断比对结束条件是否满足,如是,停止将所述参考报文和待验证报文进行比对,从而避免无效比对的继续,提升资源利用率。
比对结束条件包括以下条件中的至少一种:
对比结果列表中比结果设置为不匹配的个数大于预设不匹配个数阈值;
对比结果列表中比结果设置为丢包的个数大于预设丢包个数阈值,所述丢包个数等于丢待验证报文个数,或等于丢验证报文个数与丢参考报文个数之和;
对比结果列表中乱序报文的个数大于乱序个数阈值。
本实施例中上述阈值的具体取值则可以根据具体需求灵活设定。
本实施例提供的芯片设计验证方法通过在报文对比策略库预先存储多种类型的报文之报文对比策略,进而可以在测试过程中根据当前待验证报文的类型选择对应的目标报文比对策略进行匹配,因此可以适用于报文激励为多种类型报文的测试场景,相对现有验证平台兼容性、通用性更好,测试效率也能得到有效的提高。
另外,现有验证平台的验证方式并不能识别出报文存在丢包、错包、乱序等情况,本实施例提供的方法则可以识别出丢包、错包和乱序情况,识别结果更为细化和精准。
同时,由于参考模型是在更高抽象层次对待测设计进行建模,无法模拟一些细节底层行为,因此在一些特殊情况下的处理会和待测设计有区别,例如报文调度导致的乱序,缓存满导致的丢包等等,本实施例提供的比对方法支持不同的比对策略来判断验证是否通过,能更好的适应各种比对场景的需求。
本实施例提供的方法为各报文设置对应的ID号,因此在出现出错的报文、丢包的报文、乱序的报文时,可以根据相应的ID号进行准确定位。
可见,本实施例提供的验证方法能适用于各类网络流量报文的对比,具有高度复用性;支持错包,丢包,乱序的识别;能配置不同的对比策略影响对比结果;能提供丰富友好的对比信息供用户定位;并且在此基础上能够和自动化脚本有机的结合,构建自动化的测试结果判断机制,从而有效的提升验证效率。
实施例二:
为了更好的理解本发明,本实施例还提供了一种芯片设计验证装置,参见图4所示,包括:
报文接收模块41,用于接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文,也即报文接收模块41既可接收参考模型发送的参考报文,也可以接收待测芯片设计发的待验证报文。本实施例中的参考模型模拟待测芯片设计预实现的功能。
报文对比策略库42,用于存储多种类型的报文之报文对比策略,以供策略获取模块调用。
在本实施例中,报文对比策略库42具体可包括用于存储多种类型的报文之报文比对策略的报文级策略子库(packet_item),以及用于存储多种报文元素之比对方法的报文元素级策略子库(packet_comparer)。
本实施例中报文元素级策略子库(packet_comparer)提供报文的具体元素(例如字段)比对时需要的各种方法,如各种类型数据对比,队列对比,数组对比等方法,其返回字段级别的比对结果和比对信息。
报文级策略子库(packet_item)中的报文对比策略中包含需对比的报文元素;
在实现时,可以定义标准的报文比较方法接口packet_compare()以及用户扩展接口do_packet_compare()。一般情况下用户可以自行扩展出实际的报文类,并在用户扩展接口do_packet_compare()中定义该报文的报文比对策略,包括比对哪些元素(例如哪些字段),判断比对结果是否匹配。具体元素比对时所使用的方法由报文元素级策略子库(packet_comparer)提供。报文比较方法接口packet_compare()可汇总该报文所有元素的比对结果和比对信息,返回报文级别的比对结果,和比对信息。
应当理解的是,本实施例中报文对比策略具体包含需要对比哪些报文元素可以根据具体的报文类型等场景灵活设定。
策略获取模块43,用于根据待验证报文的类型,从报文比对策略库中获取与所述报文类型相匹配的目标报文比对策略。
比较模块(packet_comparator)44,用于根据获取的目标报文对比策略对所述参考报文和待验证报文进行比对。比较模块44是报文比对功能的主要实现组件,一般情况下用户可以直接使用。比较模块通对输入进来的两条报文流进行比对,获取每一对报文的比对结果和比对信息,并通过比对算法,判断出报文流中存在的丢包,乱序等情况。最终汇总所有报文的比对结果和比对信息,返回报文流级别的比对结果和比对信息。
还可包括计分模块(Scoreboard)45:用于提供记分板外壳,一个记分板内可以封装多个比较模块44。记分板内提供了一个标准的流分类接口。一般情况下用户可以根据需要自行定义流分类接口,计分模块45通过该接口获取每个进入记分板报文的通道,并据此将报文送入不同的比较模块44中进行对比。也即一个通道可以对应一个比较模块44。
为了便于理解,本实施例仍以从待测芯片设计接收到的报文流命名为DUT侧报文流,从参考模型接收到的报文流命名为REFM侧报文流。
对于报文比对结果,本示例可以定义5种比对结果:
1.匹配(match):指两个报文,按照比对算法的比对结果输出为匹配,在不支持乱序的情况下,匹配的报文不存在乱序;
2.乱序(disorder):指两个报文的比对结果为匹配,但DUT侧收到的报文顺序与REFM侧收到的报文顺序不一致,具体顺序可以通过二者的序号进行表征;
3.不匹配(mismatch):指两个报文,按照比对算法的比对结果输出为不匹配;
4.DUT丢弃(dut_drop):指DUT侧将报文丢弃了;
5.REFM丢弃(refm_drop):指REFM侧将报文丢弃,这种情况较少出现,如果出现这种情况,一般代表参考模型的算法存在问题。
在本示例中,对DUT测报文流处理的算法流程参见图5所示,包括:
S501:DUT侧等待报文(即待验证报文)输入。
S502:判断是否有报文输入,如是,转至S503;否则,转至S501。
S503:将报文存入DUT报文表(即待测报文列表),位置为当前报文序列id号,默认id从0开始,转到S504。
S504:获取当前DUT报文表中的类型,从报文对比策略库中获取到相应的报文比对策略。
S505:将DUT报文表中的报文DUT[i]与REFM报文表中的报文(即参考报文)REFM[j]进行比对。i和j分别是两个报文表的序号,默认从第一个有效的报文序号开始。
S506:判断是否匹配,如是,转至S507;否则,转至转到S513。
S507:将DUT[i]和REFM[j]的比对信息存入比对结果队列中保存,转到S508。
S508:将DUT[i]和REFM[j]分别从DUT报文表和REFM报文表中删除;转到S509。
S509:查询配置是否支持乱序匹配,如果支持,转到S513;如果不支持,转到S510。
S510:将DUT报文表中序号i之前的报文取出,存入DUT_TMP报文表;转到S511。
S511:将REFM报文表中序号j之前的报文取出,存入REFM_TMP报文表,转到S512。
S512:对DUT_TMP报文表和REFM_TMP报文表进行表比对,转到S513。
S513:查找DUT报文表的下一个有效的报文序号i,判断是否存在下一个报文,如是,转至S505;否则,转至S514。
S514:查找REFM报文表的下一个有效的报文序号j,判断是否存在下一个报文,如果存在下一个报文,转到S505;否则,转到S515。
S515:检查当前DUT报文表的大小是否超出预设第一报文个数阈值,如是,则转到S516;否则转到S517。
S516:对当前的DUT报文表和REFM报文表进行表比对,转到S517。
S517:检查当前的对比状态是否通过,如是,转至S518;否则,转至S519。
S518:将报文序列号id加1,转到S501。
S519:结束当前比对进程。
在本示例中,对REFM测报文流处理的算法流程如图6所示,包括:
S601:REFM侧等待报文输入。
S602:判断是否有报文输入,入是,转至S603;否则,转至S601。
S603:将报文存入REFM报文表,位置为当前报文序列id号,默认id从0开始,转到S604。
S604:检查当前REFM报文表的大小,如果超出预设的第二报文个数阈值,则转到S605;否则转到S606。
S605:对当前的DUT报文表和REFM报文表进行表比对,转到S606。
S606:检查当前的对比状态,判断是否通过,如是,转至S607;否则,转至S608。
S607通过则将报文序列号id加1,转到S601。
S608:结束当前比对进程。
在本实施例中,进行报文表比对(list_compare)时,表比对不同于报文之间的直接比对,在本实施例中用于报文搜索完成后或者比对流程终结后的对两张报文表的比对处理,算法流程如图7所示,包括:
S701:检查要对比的两张表是否都为空,如果都为空,转至S706;否则,转至S702。
S702:计算错包数e,错包数取两张表大小的最小值,转到S703。
S703:计算丢包数d,丢包数取两张表差值的绝对值,转到S704。
S704:依次对比两张表的前e组报文,将比较信息存入比较结果队列,转到S705。
S705:处理两张表中较大的一张表的后d个报文,按照丢包处理,将比较信息存入比较结果队列。
S706:则直接返回,不进行比对。
在本实施例中,对于乱序,本示例可以设定参考模型REFM侧输入的报文都是正确的,乱序仅存在于DUT侧报文流中。对于已经匹配的DUT[i]和REFM[j]报文,搜索报文比对结果队列中的DUT报文序号,如果存在DUT报文序号大于i的情况,则认为报文序号大于i的报文为乱序报文。
本实施例中的报文列表具体可以采用哈希数组结构,例如在一种示例中,参见图8所示,DUT报文表、DUT_TMP报文表、REFM报文表和REFM_TMP报文表的结构,数组的索引为报文的序号,数组存储的内容为报文对象。报文对比器中一共使用了4张报文表:
1.DUT报文表:用于存储从DUT侧发送过来的报文;
2.DUT_TMP报文表:用于临时存储从DUT报文表中取出的报文;
3.REFM报文表:用于存储从REFM侧发送过来的报文;
4.REFM_TMP报文表:用于临时存储从REFM报文表中取出的报文。
一种示例的报文比较结果队列参见图9所示,采用队列形式存储报文比较信息,报文比较信息包含四个部分:
1.对比结果:匹配,乱序,不匹配,DUT丢弃,REFM丢弃;
2.DUT序号:参与对比的DUT侧报文序号,如果对比结果是DUT丢弃,则为-1;
3.REFM序号:参与对比的REFM侧报文序号,如果对比结果是REFM丢弃,则为-1;
4.对比详细信息:本次对比的相关信息,对于不匹配的情况,对比信息包含所有不匹配的字段相关错误信息。
本实施例还示例了一种具体的报文对比状态检查机制。该机制依据配置值,决定是否提前结束对比,如图10所示。
S1001:检查不匹配的报文数量是否超过设定的最大不匹配数,如是,转至S1004;否则,转到S1002。
S1002:检查丢弃报文的个数(REFM侧加DUT侧的丢包数)是否超过设定的最大丢包数,如是,转至S1004;否则,转到S1003。
S1003:检查乱序报文的个数是否超过设定的最大乱序包数,如是,转至S1004;否则,转到S1001。
S1004:结束对比。
由于不同的报文对比的字段不同,为了最大程度的复用,本实施例中将具体报文比对的方法定义在报文类中。由于网络是由不同的层次组成,本发明提供的报文比对方法基于层次化的报文建模架构。如图11所示。
根据报文的层次和种类,对报文进行分类单独建模,通过报文模型的组合,可以构造出各种结构的报文。应当理解的是本实施例中的报文的具体结构可以根据具体应用场景灵活设定。
基于层次化的报文建模架构,本实施例还提供了一种报文比对调用链结构。如图12所示。报文比对方法除了比对本层报文的变量,还调用下层报文模型的比对方法对下层报文进行比对,依次递归,直到最底层。每层的报文比对方法都向上层报文比对方法返回本层的比对结果和比对信息。
基于层次化的比对架构,每级比对的结果都会存入比对信息队列中,本实施例提供了3级比对信息存储结构。包含报文流级、报文级、字段级,如图13所示。
报文流级:针对的是比较模块的比对信息,是通过该比较模块的所有报文的比对信息的汇总。本实施例定义了两种比对结果:成功或失败。对于成功或者失败的定义可由用户自行配置。如是否允许丢包,是否允许乱序等。报文流的比较结果信息中还包含本报文流的相关统计信息,如报文数,报文字节数,丢包率,错包率,等等
报文级:针对的是两个报文的比对信息,包括比对结果,比对报文的序号,比对详细信息。
字段级(也可称之为元素级):针对的是具体的字段或者子报文的比对信息,包括该报文的所有使用字段的对比信息(默认情况下,仅包含不匹配的字段信息),如果有下层报文,则包含下层报文的字段级比对信息。
依据本实施例提供的报文对比信息存储架构,可以方便灵活的打印所需要的比对信息。每个报文都是由不同的字段和子报文(报文元素的一种)组成。虽然组成每种报文的字段定义不同,但是这些字段的数据类型一般均为常见的几种数据类型。本实施例中定义了常见的几种数据类型字段的比较方法以供调用。本实施例提供的芯片设计验证方法支持以下功能:
支持报文流级别的对比;
支持任意类型报文的对比;
支持丢包识别;
支持乱序对比;
支持不匹配报文的字段级定位;
支持对比策略的配置;
支持对比结果的判定及判定策略的配置;
支持仿真结束的判定与结束策略的配置;
支持对比结果的打印及打印策略的配置;
支持报文和字节级别的统计;
由上可知,本实施例可以在报文级和字段级两个层次对打印信息进行配置。配置是针对比较模块进行的,不同的比较模块可以有不同的配置。
报文级:针对报文的5种比对结果,提供5位掩码配置。例如匹配的结果,掩码配置为1,则打印匹配的报文;掩码配置为0,则不打印匹配的报文。
字段级:针对匹配和不匹配两种字段比对结果,提供2位掩码供配置。
应当理解的是,本实施例中的上述各模块的功能可以通过计算机软件编程语言编写实现,具体可采用包括对象,类,句柄,方法,接口,派生等公知元素组成实现,且上述各模块的功能具体可由处理器实现。
实施例三:
现有的验证平台架构中,记分板Scoreboard对从参考模型Ref_model和待测芯片设计DUT处理的报文进行对比时,其比对规则是按接收到的顺序依次配对比对。具体为:将从参考模型接收到的第一个参考报文与从待测芯片设计接收到的第一个待验证报文进行比对,比对完之后就将这对报文丢弃,然后比对下一对报文,这种比对结果就只能得到简单的匹配和不匹配,不能得到具体的准确的丢包情况,也不能得到乱序情况,例如针对从参考模型接收到的第一个参考报文,由于各种原因在待测芯片设计侧其发送顺序是第三个发送过来,此时由于从参考模型接收到的第一个参考报文已经被丢弃,该第三个发送过来的待验证报文就必然不会得到正确的匹配,从而也会影响后续其他报文的正确匹配。
针对上述问题,本实施例提供了一种芯片设计验证方法,包括:
接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文分别按序存入参考报文列表和待测报文列表中,并分别按序分配对应的序列号,参考模型模拟待测芯片设计预实现的功能,具体的,可以分别设置参考报文列表(REFM报文表)和待测报文列表(DUT报文表)以用于分别存储接收到的参考报文和待验证报文。在参考报文列表中,每新接收到一个参考报文就为其分配一个序列号;在待测报文列表中,每新接收到一个待验证报文也为其分配一个序列号。序列号分配规则按照顺序递增的方式分配,当然也可以按照其他规则分配。
在检测到待测报文列表中存入一个新的待验证报文时,将待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对。
在本实施例中,在进行上述比对之前,也可先判断当前的参考报文列表是否为空,如为空,则不进行该比较,可以监测到参考报文列表不为空时再进行比对,或在待测报文列表中存储一个新的待验证报文后再转回上述判断当前的参考报文列表是否为空的步骤。
当待测报文列表中的某一待验证报文和所述参考报文列表中的某一参考报文的对比结果为匹配时,将该对待验证报文和参考报文分别从待测报文列表和所述参考报文列表中删除。并可将对比结果、待验证报文的序列号和参考报文的序列号关联存入对比结果列表中。
可见,在本实施例中,待测报文列表和参考报文列表中存储的是当前最新接收到的报文以及之前比对过程中未比对上的报文。且在具体匹配时,是将待测报文列表中当前的各待验证报文与参考报文列表中的各参考报文进行匹配;因此在当前的报文比对过程中支持乱序比对时,则可以实现报文乱序的识别。例如假设在参考报文列表中t1时刻接收到一个参考报文,按序将其ID设置为3,而与该参考报文匹配的待验证报文则是在t2时刻才接收到存入待测报文列表中,按序将其ID设置为5,此时将待测报文列表中的待验证报文与参考报文列表中的各参考报文进行比较时就能发现序号为5的待验证报文与序号为3的参考报文相匹配,但二者的序号并不匹配,此时即可判定二者序号不匹配,出现该情况的原因可能是丢包造成的,也可能是报文接收顺序发生错乱造成的(此时可认为发生了乱序),例如如果后续比对过程中检测到序号为6的待验证报文与序号为2的参考报文相匹配,则表明报文接收顺序发生了错乱,此时可判定发生了乱序。
在本实施例中,将待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对后,还可包括:
判断列表清空条件是否满足,如是,将待测报文列表和所述参考报文列表按预设清空规则进行清空;
本实施例中,列表清空条件可包括以下条件中的任意一种:
待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值;
参考报文列表中当前的参考报文个数大于等于预设第二报文个数阈值;
待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值;
待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值,或参考报文列表中当前的参考报文个数大于等于预设第二报文个数阈值;
待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值,且参考报文列表中当前的参考报文个数大于等于预设第二报文个数阈值。
应当理解的是,本实施例中第一报文个数阈值和第二报文个数阈值可以根据具体应用场景灵活设定。且第一报文个数阈值与第二报文个数阈值可以相等,也可以不等。本实施例中具体选择上述条件中的哪一种条件作为列表清空条件也可以根据具体场景灵活设定。
在本实施例中,预设清空规则包括将待测报文列表和参考报文列表中当前的报文删除并在比对结果列表中进行以下设置:
将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对,并将配对的待验证报文和参考报文的序号在所述对比结果列表中进行存储,并在比对结果列表中将该配对的待验证报文和参考报文的比对结果设置为不匹配;
将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在参考报文列表中存在未配对的参考报文时,将该参考证报文的序号在对比结果列表中进行存储,并将该参考报文在对比结果列表中将对比结果设置为丢待验证报文;
将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在待测报文列表中存在未配对的待验证报文时,将该待验证报文的序号在所述对比结果列表中进行存储,并将该待验证报文在所述对比结果列表中将对比结果设置为丢参考报文。
例如,在一种示例中,待测报文列表中剩余序号分别为2,4,6的3个待验证报文,参考报文列表中剩余序号分别为1、3、7、8、9的5个参考报文;此时将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对得到的报文对是3对(等于待测报文列表中剩余的报文个数3,也即此时不匹配的报文数据等于参考报文列表中和待测报文列表中剩余的报文最少的个数)分别为序号为2的待验证报文与序号为1的参考报文配为一对、序号为4的待验证报文与序号为3的参考报文配为一对、序号为6的待验证报文与序号为7的参考报文配为一对,将序号2、1,4、3,6、7三对序号分别在对比结果列表中进行存储,并将这三对序号对应的(也即三对报文)对比结果设置为不匹配。
在该示例中,将待测报文列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在参考报文列表中剩余序号为8和9的参考报文,将参考报文的序号8和9分别在对比结果列表中进行存储,并将序号为8和9的参考报文的对比结果分别设置为丢待验证报文。
也即本实施例可以识别出匹配、乱序、不匹配、丢参考报文、丢待验证报文等结果。
在本实施例中,根据获取的目标报文对比策略对参考报文和待验证报文进行比对之前,还可包括获取乱序比对配置信息;本实施例中的乱序比对配置信息可以由用户在测试时根据当前测试需求灵活配置为支持或不支持,也可以根据报文类型等因素配置为支持或不支持。
在本实施例中,将待测报文列表中与参考报文列表中相匹配的待验证报文和参考报文删除后,判断列表清空条件是否满足之前,还可包括以下步骤:
根据乱序对比配置信息判断是否支持乱序对比,如否,进行以下临时表处理过程:
将待测报文列表中在所述删除的待验证报文之前接收到的报文及序列号转移(具体可以是从待测报文列表中的报文复制到待测报文临时列表中,并将待测报文列表中的该待验证报文删除)到待测报文临时列表中按序存储,并将参考报文列表中在删除的参考报文之前接收到的报文及序列号转移到参考报文临时列表中按序存储;
将待测报文临时列表和参考报文临时列表中当前的报文删除并在比对结果列表中进行以下设置:
将待测报文临时列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对,并将配对的待验证报文和参考报文的序号在对比结果列表中进行存储,并在比对结果列表中将该配对的待验证报文和参考报文的比对结果设置为不匹配;
将待测报文临时列表中的待验证报文与参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在参考报文临时列表中存在未配对的参考报文时,将该参考证报文的序号在对比结果列表中进行存储,并将该参考报文在对比结果列表中将对比结果设置为丢待验证报文;在待测报文临时列表中存在未配对的待验证报文时,将该待验证报文的序号在对比结果列表中进行存储,并将该待验证报文在对比结果列表中将对比结果设置为丢参考报文。
例如,在一种示例中,待测报文临时列表中剩余序号分别为1,3,5,7,9的5个待验证报文,参考报文临时列表中剩余序号分别为2,4,6的3个参考报文;此时将待测报文临时列表中的待验证报文与参考报文临时列表中的参考报文按序号从大到小的顺序依次配对得到的报文对是3对(此时等于待参考报文临时列表中剩余的参考报文个数3,也即此时不匹配的报文数据等于参考报文临时列表中和待测报文临时列表中剩余的报文最少的个数)分别为序号为1的待验证报文与序号为2的参考报文配为一对、序号为3的待验证报文与序号为4的参考报文配为一对、序号为5的待验证报文与序号为6的参考报文配为一对,将序号1、2,3、4,5、6三对序号分别在对比结果列表中进行存储,并将这三对序号对应的(也即三对报文)对比结果设置为不匹配。
在该示例中,将待测报文临时列表中的待验证报文与参考报文临时列表中的参考报文按序号从大到小的顺序依次配对后,在待测报文临时列表中剩余序号为7和9的待验证报文,将待验证报文的序号7和9分别在对比结果列表中进行存储,并将序号为7和9的待验证报文的对比结果分别设置为丢参考报文。此时则表明参考模型出问题了,但这种情况一般较少出现。
在本实施例中,当待测报文列表中的某一待验证报文和参考报文列表中的某一参考报文的对比结果为匹配时,并将对比结果、待验证报文的序列号和参考报文的序列号关联存入对比结果列表中后,还包括:
判断在当前对比结果列表中存在比最后存入的待验证报文之序列号大的待验证报文的序列号时,则确定比最后存入的待验证报文之序列号大的序列号所对应的待验证报文为乱序报文。
在本实施例中,在根据获取的目标报文对比策略对参考报文和待验证报文进行比对后,还包括以下对比终止判断过程:
判断比对结束条件是否满足,如是,停止将所述参考报文和待验证报文进行比对,从而避免无效比对的继续,提升资源利用率。
比对结束条件包括以下条件中的至少一种:
对比结果列表中比结果设置为不匹配的个数大于预设不匹配个数阈值;
对比结果列表中比结果设置为丢包的个数大于预设丢包个数阈值,所述丢包个数等于丢待验证报文个数,或等于丢验证报文个数与丢参考报文个数之和;
对比结果列表中乱序报文的个数大于乱序个数阈值。
本实施例中上述阈值的具体取值则可以根据具体需求灵活设定。
现有验证平台的验证方式并不能识别出报文存在丢包、错包、乱序等情况,本实施例提供的方法则可以识别出丢包、错包和乱序情况,识别结果更为细化和精准。
同时,由于参考模型是在更高抽象层次对待测设计进行建模,无法模拟一些细节底层行为,因此在一些特殊情况下的处理会和待测设计有区别,例如报文调度导致的乱序,缓存满导致的丢包等等,本实施例提供的比对方法支持不同的比对策略来判断验证是否通过,能更好的适应各种比对场景的需求。
本实施例提供的方法为各报文设置对应的ID号,因此在出现出错的报文、丢包的报文、乱序的报文时,可以根据相应的ID号进行准确定位。
可见,本实施例提供的验证方法能适用于各类网络流量报文的对比,具有高度复用性;支持错包,丢包,乱序的识别;能配置不同的对比策略影响对比结果;能提供丰富友好的对比信息供用户定位;并且在此基础上能够和自动化脚本有机的结合,构建自动化的测试结果判断机制,从而有效的提升验证效率。
为了更好的理解本发明,本实施例还提供了一种芯片设计验证装置,参见图14所示,包括:
信息接收模块141,用于接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文分别按序存入参考报文列表和待测报文列表中,并分别按序分配对应的序列号。信息接收模块141具体接收报文以及将报文在列表中进行存储的过程参见上述实施例所示,在此不再赘述。
匹配处理模块142,用于在检测到所述待测报文列表中存入一个新的待验证报文时,将待测报文列表中当前的各个待验证报文分别采用目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对,以及用于当所述待测报文列表中的某一待验证报文和所述参考报文列表中的某一参考报文的对比结果为匹配时,将该对待验证报文和参考报文分别从所述待测报文列表和所述参考报文列表中删除。匹配处理模块142具体进行报文匹配的过程参见上述实施例所示,在此不再赘述。
应当理解的是,本实施例中的芯片设计验证方法既适用于支持多种类型报文测试匹配的芯片测试器(或验证平台架构),也适用于仅能实现一种类型报文测试匹配的芯片测试器(或验证平台架构)。
实施例四:
本实施例还提供了一种芯片测试器,参见图15所示,包括:
包括处理器1501、存储器1502和通信总线1503;
通信总线1503用于实现处理器1501和存储器1502之间的连接通信;
处理器1501用于执行存储器1502中存储的一个或者多个第一程序,以实现上述实施例一和实施例二中的芯片设计验证方法的步骤;
或,处理器1501用于执行存储器1502中存储的一个或者多个第二程序,以实现上述实施例三中的芯片设计验证方法的步骤。
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个第一程序,所述一个或者多个第一程序可被处理器调用以实现上述实施例一和实施例二中的芯片设计验证方法的步骤;
或,所述计算机可读存储介质存储的一个或者多个第二程序,所述一个或者多个第二程序可被处理器调用以实现上述实施例三中的芯片设计验证方法的步骤。
为了便于理解,下面结合一种具体的以太网芯片验证架构为示例,对本发明做进一步说明。
参见图16所示,假设本示例中的芯片设计为以太网芯片,具体实现千兆接口到万兆接口的桥接。以太报文激励从M个千兆接口输入,经待测芯片设计内部的处理后,转发到N个万兆接口输出。
验证平台如图16所示,M个千兆agent发送报文给DUT,同时将报文送给参考模型,参考模型对报文处理后,将报文送往芯片测试器(也可用计分板表征)。N个万兆Agent接收从DUT的万兆接口输出的报文,然后将报文送往芯片测试器,本实施例中芯片测试器中可调用的报文元素算法参见图17所示。
芯片测试器(也可用计分板表征)中例化了N个比较模块,输入进来的报文经过流分类后,分别送往N个比较模块,每个比较模块处理一个万兆接口通道的报文对比。在本例中,由于每个比较模块独立处理一个通道的报文,因此不存在乱序的情况。用户可以配置比较模块不支持乱序,另外由于端口有可能出现拥塞丢包,用户可以配置比较模块允许丢弃报文dut_drop。在比对完成后,芯片测试器将每个比较模块的比对信息全部打印出来供用户定位。
本实施例提供的芯片测试器,与现有技术相比提供了一个标准的报文比对架构,在这个架构内最大限度的实现了报文比对相关验证组件的复用,验证不同的设计时仅需要增加不同类型的报文策略并进行相应的调用配置即可;比较模块具体采用的比较机制还提供了强大的比对功能,能够支持对丢包,错包,乱序的识别并提供了丰富的定位信息;同时,可以对比对策略打印策略等做灵活的配置,为用户的使用提供了极大的便利。
显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (14)
1.一种芯片设计验证方法,包括:
接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文,所述参考模型模拟所述待测芯片设计预实现的功能;
根据所述待验证报文的类型,从预设的报文比对策略库中获取与所述类型相匹配的目标报文比对策略,所述报文对比策略库用于存储多种类型报文的报文对比策略;
根据获取的目标报文对比策略对所述参考报文和待验证报文进行比对。
2.如权利要求1所述的芯片设计验证方法,其特征在于,所述报文比对策略包括报文级比对策略,所述报文级对比策略包含各种类型报文所需要对比的报文元素,所述报文比对策略库包括用于存储所述报文级比对策略的报文级策略子库;
所述根据所述待验证报文的类型,从报文比对策略库中获取与所述报文类型相匹配的目标报文比对策略包括:
根据所述待验证报文的类型,从所述报文级策略子库获取与所述类型相匹配的报文级比对策略。
3.如权利要求2所述的芯片设计验证方法,其特征在于,所述报文比对策略库还包括用于存储报文元素之比对方法的报文元素级策略子库;
所述根据所述待验证报文的类型,从报文比对策略库中获取与所述报文类型相匹配的目标报文比对策略还包括:
从所述报文级策略子库获取与所述类型相匹配的报文级比对策略后,从报文元素级策略子库中获取该报文级比对策略包含的报文元素之比对方法。
4.如权利要求1-3任一项所述的芯片设计验证方法,其特征在于,接收到所述参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文后,还包括将接收到的参考报文和待验证报文分别按序存入参考报文列表和待测报文列表中,并分别按序分配对应的序列号;
所述根据获取的目标报文对比策略对所述参考报文和待验证报文进行比对包括:
在检测到所述待测报文列表中存入一个新的待验证报文后,将所述待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对;
当所述待测报文列表中的某一待验证报文和所述参考报文列表中的某一参考报文的对比结果为匹配时,将对比结果、待验证报文的序列号和参考报文的序列号关联存入对比结果列表中。
5.如权利要求4所述的芯片设计验证方法,其特征在于,所述待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对后,还包括:
将所述待测报文列表中与所述参考报文列表中相匹配的待验证报文和参考报文删除;
判断列表清空条件是否满足,如是,将待测报文列表和所述参考报文列表按预设清空规则进行清空;
所述列表清空条件包括以下条件中的任意一种:
所述待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值;
所述参考报文列表中当前的参考报文个数大于等于预设第二报文个数阈值;
所述待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值;
所述待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值,或所述参考报文列表中当前的参考报文个数大于等于预设第二报文个数阈值;
所述待测报文列表中当前的待验证报文个数大于等于预设第一报文个数阈值,且所述参考报文列表中当前的参考报文个数大于等于预设第二报文个数阈值。
6.如权利要求5所述的芯片设计验证方法,其特征在于,所述预设清空规则包括将所述待测报文列表和所述参考报文列表中当前的报文删除并在比对结果列表中进行以下设置:
将所述待测报文列表中的待验证报文与所述参考报文列表中的参考报文按序号从大到小的顺序依次配对,并将配对的待验证报文和参考报文的序号在所述对比结果列表中进行存储,并在所述比对结果列表中将该配对的待验证报文和参考报文的比对结果设置为不匹配;
将所述待测报文列表中的待验证报文与所述参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在所述参考报文列表中存在未配对的参考报文时,将该参考证报文的序号在所述对比结果列表中进行存储,并将该参考报文在所述对比结果列表中将对比结果设置为丢待验证报文;在所述待测报文列表中存在未配对的待验证报文时,将该待验证报文的序号在所述对比结果列表中进行存储,并将该待验证报文在所述对比结果列表中将对比结果设置为丢参考报文。
7.如权利要求5所述的芯片设计验证方法,其特征在于,所述根据获取的目标报文对比策略对所述参考报文和待验证报文进行比对之前,还包括获取乱序比对配置信息;
所述将所述待测报文列表中与所述参考报文列表中相匹配的待验证报文和参考报文删除后,判断列表清空条件是否满足之前,还包括:
根据所述乱序对比配置信息判断是否支持乱序对比,如否,进行以下临时表处理过程:
将所述待测报文列表中在所述删除的待验证报文之前接收到的报文及序列号转移到待测报文临时列表中按序存储,并将所述参考报文列表中在所述删除的参考报文之前接收到的报文及序列号转移到参考报文临时列表中按序存储;
将所述待测报文临时列表和所述参考报文临时列表中当前的报文删除并在比对结果列表中进行以下设置:
将所述待测报文临时列表中的待验证报文与所述参考报文列表中的参考报文按序号从大到小的顺序依次配对,并将配对的待验证报文和参考报文的序号在所述对比结果列表中进行存储,并在所述比对结果列表中将该配对的待验证报文和参考报文的比对结果设置为不匹配;
将所述待测报文临时列表中的待验证报文与所述参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在所述参考报文临时列表中存在未配对的参考报文时,将该参考证报文的序号在所述对比结果列表中进行存储,并将该参考报文在所述对比结果列表中将对比结果设置为丢待验证报文;在所述待测报文临时列表中存在未配对的待验证报文时,将该待验证报文的序号在所述对比结果列表中进行存储,并将该待验证报文在所述对比结果列表中将对比结果设置为丢参考报文。
8.如权利要求6所述的芯片设计验证方法,其特征在于,当所述待测报文列表中的某一待验证报文和所述参考报文列表中的某一参考报文的对比结果为匹配时,并将对比结果、待验证报文的序列号和参考报文的序列号关联存入对比结果列表中后,还包括:
判断在当前对比结果列表中存在比最后存入的待验证报文之序列号大的待验证报文的序列号时,则确定比最后存入的待验证报文之序列号大的序列号所对应的待验证报文为乱序报文。
9.如权利要求8所述的芯片设计验证方法,其特征在于,所述根据获取的目标报文对比策略对所述参考报文和待验证报文进行比对后,还包括:判断比对结束条件是否满足,如是,停止将所述参考报文和待验证报文进行比对;
所述比对结束条件包括以下条件中的至少一种:
所述对比结果列表中比结果设置为不匹配的个数大于预设不匹配个数阈值;
所述对比结果列表中比结果设置为丢包的个数大于预设丢包个数阈值,所述丢包个数等于丢待验证报文个数,或等于丢验证报文个数与丢参考报文个数之和;
所述对比结果列表中乱序报文的个数大于乱序个数阈值。
10.一种芯片设计验证方法,包括:
接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文分别按序存入参考报文列表和待测报文列表中,并分别按序分配对应的序列号,所述参考模型模拟所述待测芯片设计预实现的功能;
在检测到所述待测报文列表中存入一个新的待验证报文时,将所述待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对;
当所述待测报文列表中的某一待验证报文和所述参考报文列表中的某一参考报文的对比结果为匹配时,将该对待验证报文和参考报文分别从所述待测报文列表和所述参考报文列表中删除。
11.如权利要求10所述的芯片设计验证方法,其特征在于,待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对后,还包括:
判断列表清空条件是否满足,如是,将所述待测报文列表和所述参考报文列表中当前的报文删除并在比对结果列表中进行以下设置:
将所述待测报文列表中的待验证报文与所述参考报文列表中的参考报文按序号从大到小的顺序依次配对,将配对的待验证报文和参考报文的序号在所述对比结果列表中进行存储,并在所述比对结果列表中将该配对的待验证报文和参考报文的比对结果设置为不匹配;
将所述待测报文列表中的待验证报文与所述参考报文列表中的参考报文按序号从大到小的顺序依次配对后,在所述参考报文列表中存在未配对的参考报文时,将该参考证报文的序号在所述对比结果列表中进行存储,并将该参考报文在所述对比结果列表中将对比结果设置为丢待验证报文;在所述待测报文列表中存在未配对的待验证报文时,将该待验证报文的序号在所述对比结果列表中进行存储,并将该待验证报文在所述对比结果列表中将对比结果设置为丢参考报文。
12.一种芯片设计验证装置,包括:
报文接收模块,用于接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文,所述参考模型模拟所述待测芯片设计预实现的功能;
报文对比策略库,用于存储多种类型的报文之报文对比策略;
策略获取模块,用于根据所述待验证报文的类型,从所述报文比对策略库中获取与所述报文类型相匹配的目标报文比对策略;
比较模块,用于根据获取的目标报文对比策略对所述参考报文和待验证报文进行比对。
13.一种芯片设计验证装置,包括:
信息接收模块,用于接收参考模型和待测芯片设计基于相同报文激励分别输出的参考报文和待验证报文分别按序存入参考报文列表和待测报文列表中,并分别按序分配对应的序列号,所述参考模型模拟所述待测芯片设计预实现的功能;
匹配处理模块,用于在检测到所述待测报文列表中存入一个新的待验证报文时,将所述待测报文列表中当前的各个待验证报文分别采用所述目标报文对比策略与所述参考报文列表中当前的各参考报文进行比对,以及用于当所述待测报文列表中的某一待验证报文和所述参考报文列表中的某一参考报文的对比结果为匹配时,将该对待验证报文和参考报文分别从所述待测报文列表和所述参考报文列表中删除。
14.一种芯片测试器,包括处理器、存储器和通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个第一程序,以实现如权利要求1-9任一项所述的芯片设计验证方法的步骤;
或,
所述处理器用于执行存储器中存储的一个或者多个第二程序,以实现如权利要求10或11所述的芯片设计验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711137980.XA CN109802864B (zh) | 2017-11-16 | 2017-11-16 | 芯片设计验证方法、装置及芯片测试器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711137980.XA CN109802864B (zh) | 2017-11-16 | 2017-11-16 | 芯片设计验证方法、装置及芯片测试器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109802864A true CN109802864A (zh) | 2019-05-24 |
CN109802864B CN109802864B (zh) | 2023-01-10 |
Family
ID=66555546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711137980.XA Active CN109802864B (zh) | 2017-11-16 | 2017-11-16 | 芯片设计验证方法、装置及芯片测试器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109802864B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474819A (zh) * | 2019-07-12 | 2019-11-19 | 中国人民解放军战略支援部队信息工程大学 | 基于包计数的fc-eth协议转换芯片验证装置及方法 |
CN111596203A (zh) * | 2020-05-29 | 2020-08-28 | 大连卓志创芯科技有限公司 | 一种芯片测试装置、平台及方法 |
CN111931161A (zh) * | 2020-09-10 | 2020-11-13 | 鹏城实验室 | 基于risc-v处理器的芯片验证方法、设备及存储介质 |
CN111983429A (zh) * | 2020-08-19 | 2020-11-24 | Oppo广东移动通信有限公司 | 芯片验证系统、芯片验证方法、终端及存储介质 |
CN112448915A (zh) * | 2019-08-28 | 2021-03-05 | 华为技术有限公司 | 配置报文的验证方法及装置、计算机存储介质 |
CN112702236A (zh) * | 2020-12-23 | 2021-04-23 | 锐捷网络股份有限公司 | 一种实现丢包检测的方法和处理器 |
CN112839057A (zh) * | 2021-02-09 | 2021-05-25 | 芯河半导体科技(无锡)有限公司 | 一种灵活可扩展的以太网报文激励发生器 |
CN113238897A (zh) * | 2021-04-25 | 2021-08-10 | 北京物芯科技有限责任公司 | 芯片的系统级测试方法、装置、计算机设备及存储介质 |
CN113671349A (zh) * | 2021-08-22 | 2021-11-19 | 山东云海国创云计算装备产业创新中心有限公司 | 一种fpga芯片测试平台和fpga芯片测试方法 |
CN114650246A (zh) * | 2020-12-18 | 2022-06-21 | 中国移动通信有限公司研究院 | Ip核调用的检测方法、装置及设备 |
CN117494638A (zh) * | 2023-11-09 | 2024-02-02 | 摩尔线程智能科技(上海)有限责任公司 | 芯片功能的验证方法、验证平台、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855855A (zh) * | 2005-04-28 | 2006-11-01 | 华为技术有限公司 | 仿真路由分析测试的装置及其方法 |
CN103036734A (zh) * | 2011-10-10 | 2013-04-10 | 盛科网络(苏州)有限公司 | 网络芯片逻辑验证方法及系统 |
US20130142063A1 (en) * | 2011-12-05 | 2013-06-06 | International Business Machines Corporation | Verifying the functionality of an integrated circuit |
CN103346974A (zh) * | 2013-06-03 | 2013-10-09 | 华为技术有限公司 | 一种业务流程的控制方法及网络设备 |
-
2017
- 2017-11-16 CN CN201711137980.XA patent/CN109802864B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855855A (zh) * | 2005-04-28 | 2006-11-01 | 华为技术有限公司 | 仿真路由分析测试的装置及其方法 |
CN103036734A (zh) * | 2011-10-10 | 2013-04-10 | 盛科网络(苏州)有限公司 | 网络芯片逻辑验证方法及系统 |
US20130142063A1 (en) * | 2011-12-05 | 2013-06-06 | International Business Machines Corporation | Verifying the functionality of an integrated circuit |
CN103346974A (zh) * | 2013-06-03 | 2013-10-09 | 华为技术有限公司 | 一种业务流程的控制方法及网络设备 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474819A (zh) * | 2019-07-12 | 2019-11-19 | 中国人民解放军战略支援部队信息工程大学 | 基于包计数的fc-eth协议转换芯片验证装置及方法 |
CN110474819B (zh) * | 2019-07-12 | 2021-04-02 | 中国人民解放军战略支援部队信息工程大学 | 基于包计数的fc-eth协议转换芯片验证装置及方法 |
CN112448915B (zh) * | 2019-08-28 | 2023-03-24 | 华为技术有限公司 | 配置报文的验证方法及装置、计算机存储介质 |
CN112448915A (zh) * | 2019-08-28 | 2021-03-05 | 华为技术有限公司 | 配置报文的验证方法及装置、计算机存储介质 |
CN111596203A (zh) * | 2020-05-29 | 2020-08-28 | 大连卓志创芯科技有限公司 | 一种芯片测试装置、平台及方法 |
CN111983429B (zh) * | 2020-08-19 | 2023-07-18 | Oppo广东移动通信有限公司 | 芯片验证系统、芯片验证方法、终端及存储介质 |
CN111983429A (zh) * | 2020-08-19 | 2020-11-24 | Oppo广东移动通信有限公司 | 芯片验证系统、芯片验证方法、终端及存储介质 |
CN111931161B (zh) * | 2020-09-10 | 2021-01-12 | 鹏城实验室 | 基于risc-v处理器的芯片验证方法、设备及存储介质 |
CN111931161A (zh) * | 2020-09-10 | 2020-11-13 | 鹏城实验室 | 基于risc-v处理器的芯片验证方法、设备及存储介质 |
CN114650246A (zh) * | 2020-12-18 | 2022-06-21 | 中国移动通信有限公司研究院 | Ip核调用的检测方法、装置及设备 |
CN112702236A (zh) * | 2020-12-23 | 2021-04-23 | 锐捷网络股份有限公司 | 一种实现丢包检测的方法和处理器 |
CN112839057A (zh) * | 2021-02-09 | 2021-05-25 | 芯河半导体科技(无锡)有限公司 | 一种灵活可扩展的以太网报文激励发生器 |
CN113238897A (zh) * | 2021-04-25 | 2021-08-10 | 北京物芯科技有限责任公司 | 芯片的系统级测试方法、装置、计算机设备及存储介质 |
CN113238897B (zh) * | 2021-04-25 | 2024-04-12 | 北京物芯科技有限责任公司 | 芯片的系统级测试方法、装置、计算机设备及存储介质 |
CN113671349A (zh) * | 2021-08-22 | 2021-11-19 | 山东云海国创云计算装备产业创新中心有限公司 | 一种fpga芯片测试平台和fpga芯片测试方法 |
CN117494638A (zh) * | 2023-11-09 | 2024-02-02 | 摩尔线程智能科技(上海)有限责任公司 | 芯片功能的验证方法、验证平台、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109802864B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109802864A (zh) | 芯片设计验证方法、装置及芯片测试器 | |
CN103348640B (zh) | 中继装置 | |
CN103414600B (zh) | 近似匹配方法和相关设备及通信系统 | |
CN104253723B (zh) | 基于软硬件协同实现的交换机验证测试的方法及装置 | |
CN106598824A (zh) | 区块链的性能分析方法及装置 | |
CN109561106A (zh) | 一种船舶通信报文实时解析过滤方法 | |
CN109345200A (zh) | 基于大批量报告单的自动审核方法及装置、计算机可读存储介质 | |
CN110362473A (zh) | 测试环境的优化方法及装置、存储介质、终端 | |
CN104901886B (zh) | 考虑时延与流量均衡性的广域保护通信迂回通道重构算法 | |
CN105468619B (zh) | 用于数据库连接池的资源分配方法和装置 | |
CN113660140A (zh) | 基于数据控制平面混合感知的服务功能链故障检测方法 | |
CN107231266A (zh) | 报文通道的检测方法及装置 | |
US8681812B2 (en) | Method and device for analyzing transaction propagation in a multiprotocol network of a system on chip | |
CN107729924A (zh) | 图片复审概率区间生成方法及图片复审判定方法 | |
CN110221960A (zh) | 生成测试用例的方法及装置、计算机设备、存储介质 | |
CN109828790A (zh) | 一种基于申威异构众核处理器的数据处理方法和系统 | |
CN110191382B (zh) | 一种基于路径排序的虚链路优先映射方法 | |
CN103258389B (zh) | 自助终端上传文件的方法、系统和自助终端 | |
CN107294814A (zh) | 一种片上网络的测试方法及装置 | |
CN107293330A (zh) | 对随机存取存储器ram进行仿真验证的方法和仿真验证系统 | |
CN107871055A (zh) | 一种数据分析方法和装置 | |
CN101980487B (zh) | 一种路由选择出口的方法和装置 | |
CN104750871B (zh) | 基于fpga的aos卫星数传有效数据区提取系统及方法 | |
CN100366003C (zh) | 仿真路由分析测试的装置及其方法 | |
CN111935767B (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 |