CN114357918A - 一种芯片验证方法及装置、电子设备、存储介质 - Google Patents
一种芯片验证方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN114357918A CN114357918A CN202111528657.1A CN202111528657A CN114357918A CN 114357918 A CN114357918 A CN 114357918A CN 202111528657 A CN202111528657 A CN 202111528657A CN 114357918 A CN114357918 A CN 114357918A
- Authority
- CN
- China
- Prior art keywords
- error
- test
- simulation
- test case
- error information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开一种芯片验证方法及装置、电子设备、存储介质,涉及电子设计自动化领域,能够有效提高芯片验证效率并减少硬盘资源占用。所述方法包括:获取已运行结束的测试用例对应的仿真日志;从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。本发明适用于芯片验证中。
Description
技术领域
本发明涉及电子设计自动化领域,尤其涉及一种芯片验证方法及装置、电子设备、存储介质。
背景技术
在集成电路技术领域,芯片在交付代工厂制造之前,通常要经过一系列的验证,以保证制造出的芯片能够满足设计要求。随着集成电路系统设计规模的增大,芯片验证为保证芯片的质量变得越来越重要。为此,不仅大量的测试用例被用于对待测设计进行更加充分的验证,还通过对未通过的测试用例(failed case)反复进行回归测试分析以便发现更多的设计缺陷,或者通过重复回归测试确认最新的设计代码修改不会影响设计原有的功能等。
为了提高验证中回归测试的仿真速度和节约硬盘资源,项目开展过程中进行的回归测试一般是不生成波形的。然而由于待测设计和环境的缺陷,特别是在项目初期,会有大量的测试用例验证不通过,这就意味着验证人员需要花费大量的时间和精力在回归测试failed case的分析调试上。而对测试用例的分析调试主要是通过分析仿真日志和查看波形文件进行的,这就需要加载大量的failed case的波形供验证人员查看,不仅会占用较多的硬盘资源,还大大降低了验证效率。
在完成芯片验证目标的同时,如何有效提高验证效率并减少硬盘资源占用,相关技术中尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例提供一种芯片验证方法及装置、电子设备、计算机可读存储介质,能够有效提高芯片验证效率并减少硬盘资源占用。
第一方面,本发明的实施例提供一种芯片验证方法,包括:获取已运行结束的测试用例对应的仿真日志;从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。
可选的,所述从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类包括:根据每个所述测试用例的仿真日志中是否含有第一关键字,确定所述测试用例是否验证通过;响应于所述测试用例验证未通过,确定所述测试用例为未通过用例;从所述未通过用例对应的仿真日志中获取所述错误信息,并根据所述错误信息对所述未通过用例进行分类。
可选的,所述从所述未通过用例对应的仿真日志中获取所述错误信息,并根据所述错误信息对所述未通过用例进行分类包括:根据第二关键字,从所述仿真日志中提取每个所述未通过用例对应的错误信息;比对各所述未通过用例对应的错误信息,以将所述错误信息的相似度符合预设条件的各所述未通过用例,划分为同一种错误类型。
可选的,所述错误信息包括错误原因、报错模块、相关数字;所述比对各所述未通过用例对应的错误信息,以将所述错误信息的相似度符合预设条件的各所述未通过用例,划分为同一种错误类型包括:比对各所述未通过用例对应的错误信息,以将所述错误原因和所述报错模块均相同的各所述未通过用例,划分为同一种错误类型。
可选的,所述得到对应的错误类型和每种错误类型下的测试用例之后,所述方法还包括:确定每种错误类型下的测试用例的用例数量;根据所述用例数量,对各所述错误类型的严重程度分级。
可选的,所述从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类之后,所述方法还包括:为每种所述错误类型生成对应的验证报告;将所述验证报告向预先指定的负责人发送,所述负责人与所述错误类型相对应。
可选的,所述验证报告包括以下至少一项:验证通过率、所述错误类型下的测试用例的用例数量、所述错误类型下各测试用例所属的电路模块、所述错误类型对应的负责人、所述错误类型的严重程度、所述错误类型下待分析测试用例的重运行命令。
可选的,所述从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例之后,所述方法还包括:根据预先配置的选择参数,分别从每种错误类型下的测试用例中选择至少一个测试用例作为待分析测试用例;从所述待分析测试用例的仿真日志中,获取上一次使用所述待分析测试用例仿真时所使用的仿真种子;根据所述仿真种子重新运行所述待分析测试用例,并加载所述待分析测试用例的仿真波形。
第二方面,本发明的实施例还提供一种芯片验证装置,包括:日志获取单元,用于获取已运行结束的测试用例对应的仿真日志;分类单元,用于从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。
可选的,所述分类单元包括:第一确定模块,用于根据每个所述测试用例的仿真日志中是否含有第一关键字,确定所述测试用例是否验证通过;第二确定模块,用于响应于所述测试用例验证未通过,确定所述测试用例为未通过用例;分类模块,用于从所述未通过用例对应的仿真日志中获取所述错误信息,并根据所述错误信息对所述未通过用例进行分类。
可选的,所述分类模块包括:提取子模块,用于根据第二关键字,从所述仿真日志中提取每个所述未通过用例对应的错误信息;比对子模块,用于比对各所述未通过用例对应的错误信息,以将所述错误信息的相似度符合预设条件的各所述未通过用例,划分为同一种错误类型。
可选的,所述错误信息包括错误原因、报错模块、相关数字;所述比对子模块,具体用于比对各所述未通过用例对应的错误信息,以将所述错误原因和所述报错模块均相同的各所述未通过用例,划分为同一种错误类型。
可选的,所述装置还包括:数量确定单元,用于在得到对应的错误类型和每种错误类型下的测试用例之后,确定每种错误类型下的测试用例的用例数量;分级单元,用于根据所述用例数量,对各所述错误类型的严重程度分级。
可选的,所述装置还包括:报告生成单元,用于在从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类之后,为每种所述错误类型生成对应的验证报告;报告发送单元,用于将所述验证报告向预先指定的负责人发送,所述负责人与所述错误类型相对应。
可选的,所述验证报告包括以下至少一项:验证通过率、所述错误类型下的测试用例的用例数量、所述错误类型下各测试用例所属的电路模块、所述错误类型对应的负责人、所述错误类型的严重程度、所述错误类型下待分析测试用例的重运行命令。
可选的,所述装置还包括:选择单元,用于在从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例之后,根据预先配置的选择参数,分别从每种错误类型下的测试用例中选择至少一个测试用例作为待分析测试用例;仿真种子获取单元,用于从所述待分析测试用例的仿真日志中,获取上一次使用所述待分析测试用例仿真时所使用的仿真种子;波形加载单元,用于根据所述仿真种子重新运行所述待分析测试用例,并加载所述待分析测试用例的仿真波形。
第三方面,本发明的实施例还提供一种电子设备,包括:壳体、至少一个处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;所述至少一个处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的实施例提供的任一种芯片验证方法。
第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种芯片验证方法。
本发明的实施例提供的芯片验证方法及装置、电子设备、计算机可读存储介质,能够获取已运行结束的测试用例对应的仿真日志,从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。这样,由于对验证未通过的测试用例进行了错误分类,只需从每种错误类型中找出一部分测试用例进行波形分析即可发现问题,而无需对每个验证未通过的测试用例都加载波形,从而能够有效提高芯片验证效率并减少硬盘资源占用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例提供的芯片验证方法的一种流程图;
图2为本发明的实施例提供的芯片验证方法的一种详细流程图;
图3为本发明的实施例提供的芯片验证装置的一种结构示意图;
图4为本发明的实施例提供的电子设备的一种结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为使本领域技术人员更好地理解本发明的实施例的技术构思、实施方案和有益技术效果,以下通过具体实施例进行详细说明。
第一方面,本发明的实施例提供一种芯片验证方法,能够有效提高芯片验证效率并减少硬盘资源占用。
如图1所示,本发明的实施例提供的芯片验证方法,该方法可以包括:
S11、获取已运行结束的测试用例对应的仿真日志;
在对目标芯片的一次验证中,常常需要运行大量的测试用例,以便覆盖目标芯片的各种使用场景。这里,对目标芯片的验证,既可以指对整个芯片系统的验证,也可以指对芯片中的某个功能模块的验证。相应的,验证过程中使用的测试用例,既可以是整个芯片系统的测试用例,也可以是某个模块的测试用例。这些测试用例可以同时或分批输入目标芯片,由于执行各测试用例验证操作的计算机资源具有差异性,各测试用例开始执行的时间可能相同或不同,结束运行的时间也可能相同或不同。本发明的实施例中,可以随着一些测试用例的执行结束,获取这些测试用例对应的仿真日志,因此具有良好的实时性,而无需等待全部测试用例都运行结束。
仿真日志是利用测试用例对目标芯片进行验证时记录的一些程序运行状况。验证过程中,每个测试用例都有自己对应的仿真生成文件的存放路径,其中就包含仿真日志。本步骤中,可以获取所有已运行结束的测试用例对应的带有仿真日志的仿真目录,并根据这些仿真目录读取对应的仿真日志。
S12、从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。
仿真日志中记录了使用该测试用例进行验证时的一些具体验证情况,例如,验证是否通过,如果未通过的话,还会记录相关的错误信息。通过读取仿真日志即可获知该测试用例是否验证通过,并了解相关的错误信息。本步骤中,可以对各测试用例的错误信息进行分类,将错误相同或相似的测试用例分为同一种错误类型,得到对应的错误类型和每种错误类型下的测试用例。例如,测试用例case1和case3的错误类型均为typeA,测试用例case15、case4、case8的错误类型均为typeB等。这样,由于同一错误类型下的各测试用例在运行时发生了相同或相似的错误,因此,只需从该错误类型下选取一部分测试用例进行波形分析即可。
本发明的实施例提供的芯片验证方法,能够获取已运行结束的测试用例对应的仿真日志,从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。这样,由于对验证未通过的测试用例进行了错误分类,只需从每种错误类型中找出一部分测试用例进行波形分析即可发现问题,而无需对每个验证未通过的测试用例都加载波形,从而能够有效提高芯片验证效率并减少硬盘资源占用。
具体而言,本发明的实施例中,为了提高验证效率,节约计算资源,在使用测试用进行电路验证中可以先不加载波形,得到各测试用例的仿真结果,仿真过程中发生的一些具体情况被记录在仿真日志中。为了对验证未通过的测试用例进行详细分析,以便找到问题之所在,本发明的实施例中,可以在获取已运行结束的测试用例对应的仿真日志后,根据仿真日志中记录的内容确定测试用例是否验证通过,以及是否需要加载对应的波形进行分析,具体可以通过步骤S12来实现。在步骤S12中,可以从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。
具体而言,在本发明的一个实施例中,从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类可以包括:根据每个所述测试用例的仿真日志中是否含有第一关键字,确定所述测试用例是否验证通过;响应于所述测试用例验证未通过,确定所述测试用例为未通过用例;从所述未通过用例对应的仿真日志中获取所述错误信息,并根据所述错误信息对所述未通过用例进行分类。可选的,可以通过脚本遍历各已运行结束的测试用例对应的仿真日志,在每个仿真日志中检索是否存在第一关键字,该第一关键字可以是能够表示对应的测试用例是否验证通过的字符或字符串等。例如,在本发明的一个实施例中,第一关键字为“passed”,则可以由此获知,含有该第一关键字的仿真日志所对应的测试用例已通过验证,而不含有该第一关键字的仿真日志所对应的测试用例则未通过验证。当然,在本发明的其他实施例中,第一关键字还可以为其他,例如“failed”等,本发明的实施例对此不做限定。
本发明的实施例中,如果根据仿真日志获知对应的测试用例验证未通过,则可以确定该测试用例为未通过用例。进一步地,可以从各未通过用例的仿真日志中获取导致验证未通过的错误信息,并可以根据各错误信息之间的异同,对未通过用例分类。
可选的,在本发明的一个实施例中,从所述未通过用例对应的仿真日志中获取所述错误信息,并根据所述错误信息对所述未通过用例进行分类具体可以包括:根据第二关键字,从所述仿真日志中提取每个所述未通过用例对应的错误信息;比对各所述未通过用例对应的错误信息,以将所述错误信息的相似度符合预设条件的各所述未通过用例,划分为同一种错误类型。
具体而言,可以遍历各未通过用例对应的仿真日志,在每个仿真日志中检索是否存在第二关键字,并根据该第二关键字提取错误信息。该第二关键字可以是能够表示仿真中发生的错误或警告的字符或字符串,例如,“error”、“warning”等。在本发明的一个实施例中,如果检索到仿真日志中存在一个第二关键词“error”,则可以将该“error”所在的整句话、或整段作为错误信息提取出来。
将各未通过用例对应的错误信息提取出后,可以将各错误信息进行比对,得到两个错误信息的相似程度,即相似度。如果两个错误信息的相似度符合预设条件,则可以将这两个错误信息对应的未通过用例划分为同一种错误类型,否则,如果两个错误信息的相似度不符合该预设条件,则可以将这两个错误信息对应的未通过用例划分为不同的错误类型。其中,符合预设条件,既可以是相似度达到预设阈值以上,也可以是对相似度的其他限定条件。
举例而言,在本发明的一个实施例中,将两个错误信息逐个字符比对,错误信息共有20个字符,其中有19个字符都相同,只有一个字符不相同,即相似度为95%,如果预设阈值为90%,则可以确定相似度为95%的两个错误信息对应的未通过用例可以划分为同一种错误类型。
可选的,在本发明的另一个实施例中,从仿真日志中提取出的错误信息可以包括错误原因、报错模块、相关数字等信息,则基于此,比对各所述未通过用例对应的错误信息,以将所述错误信息的相似度符合预设条件的各所述未通过用例,划分为同一种错误类型具体可以包括:比对各所述未通过用例对应的错误信息,以将所述错误原因和所述报错模块均相同的各所述未通过用例,划分为同一种错误类型。其中,错误原因例如可以为配置错误、链接错误、运行错误等,报错模块可以指该错误发生在哪个模块上,例如在模块A上发生了配置错误等,相关数字可以指错误信息中的数字,例如通道2(channel2)中的数字2即为相关数字。本实施例中,如果两个错误信息中,错误原因和报错模块都相同,只有相关数字不同,则可以将这两个错误信息对应的未通过用例划分为同一种错误类型。
通过上述错误类型划分,就可以将错误信息相同或相似的未通过用例划归到同一错误类型中,也即是说,同一错误类型下的各未通过用例的出错信息相同或很相似,那么在进行波形分析时,也只需要从每种错误类型的未通过用例中选择一部分进行波形分析即可找到问题所在,而无需对每个未通过用例都进行波形分析,因此,既能有效减小硬盘资源占用,又能有效提高验证效率。
进一步地,在根据错误信息进行分类,得到对应的错误类型和每种错误类型下的测试用例之后,本发明的实施例提供的芯片验证方法还可以包括:确定每种错误类型下的测试用例的用例数量;根据所述用例数量,对各所述错误类型的严重程度分级。也即是说,一种错误类型下的测试用例数量越多,则说明发生该错误的概率就越大,该错误类型的严重程度就越高,反之亦然。这样,就能够从众多错误类型中,找到比较严重的错误,并优先解决这些错误,从而进一步优化了芯片验证的流程。
为了使工程师能够尽快了解芯片验证情况,以便对验证未通过到的测试用例进行进一步分析,在本发明的一个实施例中,从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类之后,本发明的实施例提供的芯片验证方法还可以包括:为每种所述错误类型生成对应的验证报告;将所述验证报告向预先指定的负责人发送,所述负责人与所述错误类型相对应。也即是说,本发明的实施例中,验证报告也可以根据错误类型的不同而分别生成,从而使验证报告不再纷乱,每个验证报告可以专注于其所对应的错误类型。而且,由于负责人与错误类型相对应,每个负责人就可以专注于其所对应的错误类型,并进行相关分析,因此进一步提高了工程师的工作效率。进一步地,当验证工作由于工作分配等原因进行调整时,仅仅在脚本中修改对应到的负责人即可,而无需对测试用例进行额外的配置修改,从而大大简化了项目变动带来的工作量,进一步提高了验证效率。
验证报告主要用于向对应的负责人反映其负责的错误类型下,目前已经运行结束的测试用例的验证情况。可选的,在本发明的一个实施例中,验证报告可以包括以下一项或多项:验证通过率、所述错误类型下的测试用例的用例数量、所述错误类型下各测试用例所属的电路模块、所述错误类型对应的负责人、所述错误类型的严重程度、所述错误类型下待分析测试用例的重运行命令。其中,验证通过率等于验证通过的测试用例数与已运行结束的测试用例数的比值,例如,如果目前运行结束的测试用例有100个,其中60个测试用例验证通过,则验证通过率为60%。所述错误类型下的测试用例的用例数量,具体可以为被划分在该错误类型下的验证未通过的测试用例有多少个,例如typeA错误类型下有15个测试用例。所述错误类型下各测试用例所属的电路模块,具体可以为被划分在该错误类型下的验证未通过的测试用例,是属于哪个电路模块的。需要说明的是,这里测试用例所属的电路模块与前文的报错模块不同。测试用例所属的电路模块是测试用例设计时所针对的电路模块,报错模块是指验证过程中发生错误的模块。所述错误类型对应的负责人以及所述错误类型的严重程度前文已经进行了介绍,此处不再赘述。所述错误类型下待分析测试用例的重运行命令,具体可以指从所述错误类型下的各测试用例中,选择哪个或哪些测试用例进行重新运行,以便进行波形分析。通过验证报告中的上述内容,可以使对应的负责人快速清晰地了解到其负责的错误类型的总体情况,并对其中的重点问题进行详细分析,有效提高了验证效率。
本发明的实施例中,根据所述错误信息对验证未通过的所述测试用例进行分类能够更简明、清晰和条理化地发现验证中存在的问题,但这些问题需要如何处理,还需要通过波形分析进行具体判断。为此,在本发明的一个实施例中,从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例之后,本发明的实施例提供的芯片验证方法还可以包括:根据预先配置的选择参数,分别从每种错误类型下的测试用例中选择至少一个测试用例作为待分析测试用例;从所述待分析测试用例的仿真日志中,获取上一次使用所述待分析测试用例仿真时所使用的仿真种子;根据所述仿真种子重新运行所述待分析测试用例,并加载所述待分析测试用例的仿真波形。
可选的,选择参数可以通过脚本进行配置,其表示以何种方式,从每种错误类型下的测试用例中,选择几个测试用例作为待分析测试用例。例如,选择参数可以为以顺序方式、从每种错误类型下的测试用例中选择一个测试用例作为待分析测试用例,或者选择参数也可以为以随机方式、从每种错误类型下的测试用例中选择2个测试用例作为待分析测试用例等。仿真种子是一个随机数,每次仿真都会随机生成一个仿真种子,即使同一个测试用例,如果两次仿真使用的仿真种子不同,那么得到的仿真结果可能也是不同的,因此,通过获取待分析测试用例前一次的仿真种子,可以复现该测试用例出现错误时的场景,从而便于进行针对性的分析。
下面通过具体实施例对本发明的实施例提供的芯片验证方法进行详细说明。
如图2所示,本发明的实施例提供的芯片验证方法可以包括:
S201、获取所有case(测试用例)带有仿真日志信息的仿真目录。
回归测试执行过程中,每个case都有自己对应的仿真生成文件的存放路径,其中包含仿真日志信息,首先要获取所有case带有仿真日志信息的仿真目录。
S202、利用脚本遍历查询每个case目录下的仿真日志,查找关键词PASSED。若当前case目录下存在PASSED关键字,则判定case是通过的,若不存在,则判定case是未通过的。
S203、每通过一个case,就统计case通过的数量加1,直到遍历完回归测试中所有的case,统计总的case通过的数量计为passed_num。
S204、若当前case没有通过,就查找其仿真日志下的错误信息,例如UVM_ERROR/ERROR等关键字下的错误信息,将错误信息提取出来。
S205、将错误信息进行分类,若前面已经有相似的此类错误,在去除数字影响下,其他信息均一致,则分类为一类错误,将该类错误下的所有的case名字及所属模块列到错误信息下,方便查看当前错误类型的case所属是单个模块还是多个模块。
S206、遍历所未通过的case,统计未通过case的数量记为failed_num,每遍历完一个case的仿真目录,若没有查询到PASSED关键字,就将failed_num数量加1,直到遍历完所有case的仿真目录。
S207、计算当前回归测试总的通过率pass-rate,
pass-rate=passed_num/(failed_num+passed_num)。
S208、在S205步骤中将错误信息进行分类之后,统计每种错误类型下case的数量,根据每种错误类型下case的数量对错误类型的严重级别进行排序,case数量多的错误类型严重级别高,并按照严重级别由高到低的顺序输出到回归测试报告中。
S209、将上述分类好的错误类型链接到相应的owner;
具体实施方式是查询每种错误类型下报错模块的名字,查找系统分类中负责此报错模块的owner(负责人),输出该错误类型时会标记该错误类型的owner,同时可以触发对该类型错误owner的邮件提醒,方便owner实时掌控自己所负责模块当前回归测试缺陷情况。若在实际执行过程中owner有调整,只需要在生成回归测试报告的脚本中对owner进行更改即可,不需要调整每个case的配置信息。
S210、将每种错误类型下第一个case的仿真路径及仿真发生错误时使用的seed提取出来,形成完整的重运行(rerun)命令输出到每种错误类型的case列表下。
S211、在S210中形成的每种错误类型下所有case的rerun命令中,可以利用参数控制自动redump的数量,例如设置自动redump每种错误类型下1个case,这时候就会提取第一个case的redump命令,将所有错误类型下的第一个case的redump命令输出到加载波形的shell脚本redump.csh中。
S212、将S207中生成的pass-rate,S208中分类好的携带错误case数量的错误信息,S209中每种错误类型链接好的owner,以及S210中输出的每种错误类型下case的rerun命令,依次输出到回归测试报告中供各个owner查看。同时触发S211中redump.csh脚本执行,只加载每种错误类型下参数指定数量的错误case的波形,以节省硬盘资源。
相应的,第二方面,本发明的实施例提供一种芯片验证装置,能够有效提高芯片验证效率并减少硬盘资源占用
如图3所示,本发明的实施例提供的芯片验证装置可以包括:
日志获取单元31,用于获取已运行结束的测试用例对应的仿真日志;
分类单元32,用于从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。
本发明的实施例提供的芯片验证装置,能够获取已运行结束的测试用例对应的仿真日志,从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。这样,由于对验证未通过的测试用例进行了错误分类,只需从每种错误类型中找出一部分测试用例进行波形分析即可发现问题,而无需对每个验证未通过的测试用例都加载波形,从而能够有效提高芯片验证效率并减少硬盘资源占用。
可选的,分类单元32可以包括:
第一确定模块,用于根据每个所述测试用例的仿真日志中是否含有第一关键字,确定所述测试用例是否验证通过;
第二确定模块,用于响应于所述测试用例验证未通过,确定所述测试用例为未通过用例;
分类模块,用于从所述未通过用例对应的仿真日志中获取所述错误信息,并根据所述错误信息对所述未通过用例进行分类。
可选的,所述分类模块可以包括:
提取子模块,用于根据第二关键字,从所述仿真日志中提取每个所述未通过用例对应的错误信息;
比对子模块,用于比对各所述未通过用例对应的错误信息,以将所述错误信息的相似度符合预设条件的各所述未通过用例,划分为同一种错误类型。
可选的,所述错误信息包括错误原因、报错模块、相关数字;所述比对子模块,具体用于比对各所述未通过用例对应的错误信息,以将所述错误原因和所述报错模块均相同的各所述未通过用例,划分为同一种错误类型。
可选的,本发明的实施例提供的芯片验证装置还可以包括:
数量确定单元,用于在得到对应的错误类型和每种错误类型下的测试用例之后,确定每种错误类型下的测试用例的用例数量;
分级单元,用于根据所述用例数量,对各所述错误类型的严重程度分级。
可选的,本发明的实施例提供的芯片验证装置还可以包括:
报告生成单元,用于在从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类之后,为每种所述错误类型生成对应的验证报告;
报告发送单元,用于将所述验证报告向预先指定的负责人发送,所述负责人与所述错误类型相对应。
可选的,所述验证报告包括以下至少一项:验证通过率、所述错误类型下的测试用例的用例数量、所述错误类型下各测试用例所属的电路模块、所述错误类型对应的负责人、所述错误类型的严重程度、所述错误类型下待分析测试用例的重运行命令。
可选的,本发明的实施例提供的芯片验证装置还可以包括:
选择单元,用于在从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例之后,根据预先配置的选择参数,分别从每种错误类型下的测试用例中选择至少一个测试用例作为待分析测试用例;
仿真种子获取单元,用于从所述待分析测试用例的仿真日志中,获取上一次使用所述待分析测试用例仿真时所使用的仿真种子;
波形加载单元,用于根据所述仿真种子重新运行所述待分析测试用例,并加载所述待分析测试用例的仿真波形。
第三方面,如图4所示,本发明的实施例还提供一种电子设备,包括:壳体100、至少一个处理器110、存储器120、电路板130和电源电路140,其中,电路板130安置在壳体100围成的空间内部,处理器110和存储器120设置在电路板130上;电源电路140,用于为上述电子设备的各个电路或器件供电;存储器120用于存储可执行程序代码;处理器110通过读取存储器120中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述实施例提供的任一种的芯片验证方法。处理器110对上述步骤的具体执行过程以及处理器110通过运行可执行程序代码来进一步执行的步骤,可以参见前述实施例的描述,在此不再赘述。
第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种的芯片验证方法。处理器对上述步骤的具体执行过程以及处理器通过运行可执行程序代码来进一步执行的步骤,可以参见前述实施例的描述,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (18)
1.一种芯片验证方法,其特征在于,包括:
获取已运行结束的测试用例对应的仿真日志;
从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。
2.根据权利要求1所述的方法,其特征在于,所述从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类包括:
根据每个所述测试用例的仿真日志中是否含有第一关键字,确定所述测试用例是否验证通过;
响应于所述测试用例验证未通过,确定所述测试用例为未通过用例;
从所述未通过用例对应的仿真日志中获取所述错误信息,并根据所述错误信息对所述未通过用例进行分类。
3.根据权利要求2所述的方法,其特征在于,所述从所述未通过用例对应的仿真日志中获取所述错误信息,并根据所述错误信息对所述未通过用例进行分类包括:
根据第二关键字,从所述仿真日志中提取每个所述未通过用例对应的错误信息;
比对各所述未通过用例对应的错误信息,以将所述错误信息的相似度符合预设条件的各所述未通过用例,划分为同一种错误类型。
4.根据权利要求3所述的方法,其特征在于,所述错误信息包括错误原因、报错模块、相关数字;
所述比对各所述未通过用例对应的错误信息,以将所述错误信息的相似度符合预设条件的各所述未通过用例,划分为同一种错误类型包括:
比对各所述未通过用例对应的错误信息,以将所述错误原因和所述报错模块均相同的各所述未通过用例,划分为同一种错误类型。
5.根据权利要求1所述的方法,其特征在于,所述得到对应的错误类型和每种错误类型下的测试用例之后,所述方法还包括:
确定每种错误类型下的测试用例的用例数量;
根据所述用例数量,对各所述错误类型的严重程度分级。
6.根据权利要求1所述的方法,其特征在于,所述从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类之后,所述方法还包括:
为每种所述错误类型生成对应的验证报告;
将所述验证报告向预先指定的负责人发送,所述负责人与所述错误类型相对应。
7.根据权利要求6所述的方法,其特征在于,所述验证报告包括以下至少一项:验证通过率、所述错误类型下的测试用例的用例数量、所述错误类型下各测试用例所属的电路模块、所述错误类型对应的负责人、所述错误类型的严重程度、所述错误类型下待分析测试用例的重运行命令。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例之后,所述方法还包括:
根据预先配置的选择参数,分别从每种错误类型下的测试用例中选择至少一个测试用例作为待分析测试用例;
从所述待分析测试用例的仿真日志中,获取上一次使用所述待分析测试用例仿真时所使用的仿真种子;
根据所述仿真种子重新运行所述待分析测试用例,并加载所述待分析测试用例的仿真波形。
9.一种芯片验证装置,其特征在于,包括:
日志获取单元,用于获取已运行结束的测试用例对应的仿真日志;
分类单元,用于从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例,以从每种错误类型下的测试用例中选择一部分,生成仿真波形。
10.根据权利要求9所述的装置,其特征在于,所述分类单元包括:
第一确定模块,用于根据每个所述测试用例的仿真日志中是否含有第一关键字,确定所述测试用例是否验证通过;
第二确定模块,用于响应于所述测试用例验证未通过,确定所述测试用例为未通过用例;
分类模块,用于从所述未通过用例对应的仿真日志中获取所述错误信息,并根据所述错误信息对所述未通过用例进行分类。
11.根据权利要求10所述的装置,其特征在于,所述分类模块包括:
提取子模块,用于根据第二关键字,从所述仿真日志中提取每个所述未通过用例对应的错误信息;
比对子模块,用于比对各所述未通过用例对应的错误信息,以将所述错误信息的相似度符合预设条件的各所述未通过用例,划分为同一种错误类型。
12.根据权利要求11所述的装置,其特征在于,所述错误信息包括错误原因、报错模块、相关数字;
所述比对子模块,具体用于比对各所述未通过用例对应的错误信息,以将所述错误原因和所述报错模块均相同的各所述未通过用例,划分为同一种错误类型。
13.根据权利要求9所述的装置,其特征在于,还包括:
数量确定单元,用于在得到对应的错误类型和每种错误类型下的测试用例之后,确定每种错误类型下的测试用例的用例数量;
分级单元,用于根据所述用例数量,对各所述错误类型的严重程度分级。
14.根据权利要求9所述的装置,其特征在于,还包括:
报告生成单元,用于在从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类之后,为每种所述错误类型生成对应的验证报告;
报告发送单元,用于将所述验证报告向预先指定的负责人发送,所述负责人与所述错误类型相对应。
15.根据权利要求14所述的装置,其特征在于,所述验证报告包括以下至少一项:验证通过率、所述错误类型下的测试用例的用例数量、所述错误类型下各测试用例所属的电路模块、所述错误类型对应的负责人、所述错误类型的严重程度、所述错误类型下待分析测试用例的重运行命令。
16.根据权利要求9至15中任一项所述的装置,其特征在于,还包括:
选择单元,用于在从所述仿真日志中获取验证未通过的测试用例的错误信息,并根据所述错误信息对验证未通过的所述测试用例进行分类,得到对应的错误类型和每种错误类型下的测试用例之后,根据预先配置的选择参数,分别从每种错误类型下的测试用例中选择至少一个测试用例作为待分析测试用例;
仿真种子获取单元,用于从所述待分析测试用例的仿真日志中,获取上一次使用所述待分析测试用例仿真时所使用的仿真种子;
波形加载单元,用于根据所述仿真种子重新运行所述待分析测试用例,并加载所述待分析测试用例的仿真波形。
17.一种电子设备,其特征在于,包括:壳体、至少一个处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;所述至少一个处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1-8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111528657.1A CN114357918A (zh) | 2021-12-14 | 2021-12-14 | 一种芯片验证方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111528657.1A CN114357918A (zh) | 2021-12-14 | 2021-12-14 | 一种芯片验证方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114357918A true CN114357918A (zh) | 2022-04-15 |
Family
ID=81099424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111528657.1A Pending CN114357918A (zh) | 2021-12-14 | 2021-12-14 | 一种芯片验证方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114357918A (zh) |
-
2021
- 2021-12-14 CN CN202111528657.1A patent/CN114357918A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10394694B2 (en) | Unexplored branch search in hybrid fuzz testing of software binaries | |
US8397104B2 (en) | Creation of test plans | |
US20080244317A1 (en) | Program and apparatus for generating system test specifications | |
CN111382070B (zh) | 兼容性测试方法、装置、存储介质和计算机设备 | |
US20200065226A1 (en) | Automated software program repair of similar code snippets | |
CN111522708B (zh) | 一种日志记录方法、计算机设备及存储介质 | |
US10761961B2 (en) | Identification of software program fault locations | |
CN114116496A (zh) | 自动化测试方法、装置、设备及介质 | |
CN112328499A (zh) | 一种测试数据生成方法、装置、设备及介质 | |
CN105630656A (zh) | 基于日志模型的系统健壮性分析方法及装置 | |
CN111797006B (zh) | 一种线程测试的方法、装置、设备以及存储介质 | |
CN113065300A (zh) | 芯片eda仿真中回溯仿真波形的方法、系统及装置 | |
CN114661290A (zh) | 一种脚本错误的处理方法、装置、设备及存储介质 | |
CN112905370A (zh) | 拓扑图生成方法、异常检测方法、装置、设备及存储介质 | |
US10496519B2 (en) | Method invocation synthesis for software program repair | |
US8478575B1 (en) | Automatic anomaly detection for HW debug | |
CN115422092B (zh) | 一种基于多方法融合的软件bug定位方法 | |
CN114357918A (zh) | 一种芯片验证方法及装置、电子设备、存储介质 | |
CN116069650A (zh) | 一种测试用例的生成方法及装置 | |
CN116126692A (zh) | 一种基于python的算法工具自动化测试系统及方法 | |
CN115640155A (zh) | 基于语句依赖和补丁相似性的程序自动修复方法与系统 | |
JP7331681B2 (ja) | テスト実行プログラム、テスト実行方法、およびテスト実行装置 | |
CN114490413A (zh) | 测试数据的准备方法及装置、存储介质和电子设备 | |
CN113392016A (zh) | 对程序异常情况处理的规约生成方法、装置、设备及介质 | |
CN113297069A (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 |