CN113342669B - 一种缩短芯片代码覆盖率收敛时间的验证方法及装置 - Google Patents
一种缩短芯片代码覆盖率收敛时间的验证方法及装置 Download PDFInfo
- Publication number
- CN113342669B CN113342669B CN202110692255.9A CN202110692255A CN113342669B CN 113342669 B CN113342669 B CN 113342669B CN 202110692255 A CN202110692255 A CN 202110692255A CN 113342669 B CN113342669 B CN 113342669B
- Authority
- CN
- China
- Prior art keywords
- assertion
- input state
- point
- environment
- counter example
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种缩短芯片代码覆盖率收敛时间的验证方法及装置,该方法包括通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点;接收第一操作指令,基于所述第一操作指令编写待测点对应的断言,断言用以表征待测点所表示的输入状态无法达到;构建形式化环境,在形式化环境中运行断言,判断断言的运行结果;根据运行结果反向补充待测点的输入状态假设,并基于输入状态假设生成测试激励进行仿真验证。本发明实现了通过形式化验证工具构建形式化环境来进行断言证明,基于断言证明结果产生作为输入状态假设的反例,进而形成测试激励,从而减少芯片代码验证过程中与设计人员的交流时间,且缩短了芯片代码验证过程中的覆盖率收敛时间。
Description
技术领域
本申请涉及芯片硅前功能正确性验证技术领域,具体而言,涉及一种缩短芯片代码覆盖率收敛时间的验证方法及装置。
背景技术
代码覆盖率是芯片正确性验证中检测和评估整个模拟验证工作的进展和质量的重要手段。对于即将出厂的产品,必须对芯片进行百分百覆盖率的验证,即对芯片所有功能进行验证,以此确保出厂芯片的质量。而在覆盖率较高后,传统模拟验证的方式会在面临如下困难:1.难以反推出上层模块的状态;2.推算出的上层模块状态,只局限于一种或有限数量的情况;3.需要多方人员进行共同商讨,在未覆盖点数较多的时候,影响进度。也就是说,传统模拟验证的方式在验证至覆盖率较高后,验证效率将会极大的降低,导致芯片代码覆盖率收敛时间非常长,效率低。
发明内容
为了解决上述问题,本申请实施例提供了一种缩短芯片代码覆盖率收敛时间的验证方法及装置。
第一方面,本申请实施例提供了一种缩短芯片代码覆盖率收敛时间的验证方法,所述方法包括:
通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点;
接收第一操作指令,基于所述第一操作指令编写所述待测点对应的断言,所述断言用以表征所述待测点所表示的输入状态无法达到;
构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果;
根据所述运行结果反向补充所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励,通过所述测试激励对芯片代码进行仿真验证。
优选的,所述通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点,包括:
获取待验证的芯片代码,基于预设的激励回归对所述芯片代码进行仿真计算,确定所述芯片代码中实现激励回归的覆盖点;
将各所述覆盖点与所述芯片代码进行比对,筛选确定无覆盖率的待测点。
优选的,所述构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果,包括:
通过形式化验证工具构建形式化环境;
在所述形式化环境中运行所述断言,并判断所述断言的运行结果;
当所述断言的运行结果表征所述断言运行成功时,则确定所述待测点无法进行覆盖;
当所述断言的运行结果表征所述断言运行失败时,则确定所述待测点存在输入状态问题,并基于所述形式化验证工具生成第一反例。
优选的,所述根据所述运行结果反向补充所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励,通过所述测试激励对芯片代码进行仿真验证,包括:
当从所述运行结果中检测到第一反例时,确定所述断言对应的输入状态不正确;
将所述第一反例作为所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励;
重复所述构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果的步骤,直至所有所述待测点均不存在输入状态问题后,通过得到的各所述测试激励对芯片代码进行仿真验证。
优选的,所述将所述第一反例作为所述待测点的输入状态假设之后,还包括:
在所述形式化环境中重新运行所述断言,获得第二反例;
对比所述第一反例与第二反例,判断所述第一反例与第二反例是否相同;
当所述第一反例与第二反例不相同时,重复所述在所述形式化环境中重新运行所述断言的步骤,形成反例集合;
分析所述反例集合,确定所述反例集合的反例共性,基于所述反例共性补充完善所述反例集合,将完善后的所述反例集合确定为所述待测点的输入状态假设集合;
所述基于所述输入状态假设生成测试激励,包括:
基于所述输入状态假设集合生成测试激励。
第二方面,本申请实施例提供了一种缩短芯片代码覆盖率收敛时间的验证装置,所述装置包括:
仿真模块,用于通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点;
生成模块,用于接收第一操作指令,基于所述第一操作指令编写所述待测点对应的断言,所述断言用以表征所述待测点所表示的输入状态无法达到;
运行模块,用于构建形式化环境,在所述形式化环境中运行所述断言,获得断言运行结果;
补充模块,用于根据所述运行结果反向补充所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励,通过所述测试激励对芯片代码进行仿真验证。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法。
本发明的有益效果:针对覆盖率检测中无法覆盖的点,通过形式化验证工具构建形式化环境来进行断言证明,基于断言证明结果产生作为输入状态假设的反例,进而形成测试激励,从而大大减少芯片代码验证过程中与设计人员的交流时间,且缩短了芯片代码验证过程中的覆盖率收敛时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种缩短芯片代码覆盖率收敛时间的验证方法的流程示意图;
图2为本申请实施例提供的一种缩短芯片代码覆盖率收敛时间的验证装置的结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本申请的多个实施例,不同实施例之间可以替换或者合并组合,因此本申请也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征A、B、C,另一个实施例包含特征B、D,那么本申请也应视为包括含有A、B、C、D的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。
下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本申请内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。
参见图1,图1是本申请实施例提供的一种缩短芯片代码覆盖率收敛时间的验证方法的流程示意图。在本申请实施例中,所述方法包括:
S101、通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点。
本申请的执行主体可以是控制器。
所述覆盖率在本申请实施例中可以理解为度量测试代码完整性的一个手段,是测试有效性的一个度量,其通过已执行代码表示,用于可靠性、稳定性以及性能的评测。
在本申请实施例中,对于要出厂的芯片,需要对其芯片代码进行覆盖率测试,即对芯片代码的所有代码功能的正确性与可靠性进行运行与验证,然而仅通过现有的激励回归方式是不可能做到百分百覆盖率验证的,覆盖率越高,验证难度越大。故本申请首先将通过预设的现有方式中的激励回归对芯片代码进行仿真计算,对芯片代码实现较高的覆盖率后,再来确定无覆盖率的点作为待测点进行后续的验证。
在一种可实施方式中,步骤S101包括:
获取待验证的芯片代码,基于预设的激励回归对所述芯片代码进行仿真计算,确定所述芯片代码中实现激励回归的覆盖点;
将各所述覆盖点与所述芯片代码进行比对,筛选确定无覆盖率的待测点。
在本申请实施例中,对于需要进行验证出厂的芯片,首先将会获取待其对应的芯片代码,并基于预设好的现有激励回归对芯片代码进行仿真计算,仿真计算后便能够从芯片代码中确定已经实现验证的覆盖点。将已实现验证的各覆盖点与芯片代码进行比对后,便能够筛选确定出在现有激励回归过程中无覆盖率即没有被验证测试到待测点。
S102、接收第一操作指令,基于所述第一操作指令编写所述待测点对应的断言,所述断言用以表征所述待测点所表示的输入状态无法达到。
所述第一操作指令在本申请实施例中可以理解为测试人员在电脑端进行手动输入操作所生成的操作指令。生成的第一操作指令将发送至控制器来对控制器进行控制。
所述断言在本申请实施例中可以理解为一个包含布尔表达式的语句,其代表用户做出一些假设来相信程序中的某个特定点的表达式值为真。
在本申请实施例中,为了对没有被验证到的待测点进行覆盖率验证,将根据该待测点来生成断言,断言为测试人员根据各待测点的特点而手动编写生成的,生成的断言用以表征该待测点所表示的输入状态无法达到。示例性的,针对某个未覆盖率的待测点,将编写生成一个断言来断定该待测点不存在,即无法进行覆盖。
S103、构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果。
在本申请实施例中,为了通过生成的断言对待测点进行验证,首先将构建形式化环境,并在构建出的形式化环境中运行该断言,进而对该断言的运行结果进行判断。
在一种可实施方式中,步骤S103包括:
通过形式化验证工具构建形式化环境;
在所述形式化环境中运行所述断言,并判断所述断言的运行结果;
当所述断言的运行结果表征所述断言运行成功时,则确定所述待测点无法进行覆盖;
当所述断言的运行结果表征所述断言运行失败时,则确定所述待测点存在输入状态问题,并基于所述形式化验证工具生成第一反例。
在本申请实施例中,形式化验证工具可以选用VaaS、Mythril等。通过形式化验证工具来构建出形式化环境后,将在该形式化环境中运行之前生成的断言,并对断言的运行结果进行判断。当断言的运行结果表征为运行成功,即认为之前基于断言所作出的假设是正确的,待测点所表示的输入状态无法达到,也就是该待测点不存在,无法进行覆盖,其并不在本申请要进行代码覆盖率验证的目标对象里。当断言的运行结果表征为运行失败,即认为之前生成的断言是错误的,该待测点并非输入状态无法达到,此时将基于形式化验证工具生成第一反例来证明其输入状态是能够达到的。
S104、根据所述运行结果反向补充所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励,通过所述测试激励对芯片代码进行仿真验证。
在本申请实施例中,由于事先基于断言假设了该待测点是不存在输入状态的,基于该断言运行所得到的运行结果将会表征出该断言的假设是否正确,对于不正确的断言(即存在输入状态),将会反向产生一个能够达到该测试点的输入状态来证明存在输入状态,并将其补充作为待测点的一个输入状态假设,通过补充得到的输入状态假设便能生成测试激励,基于测试激励再正向进行一次验证,以此实现对未覆盖的芯片代码进行仿真验证的过程,且整个过程无需与设计人员讨论,芯片代码覆盖率收敛时间短。
在一种可实施方式中,步骤S104包括:
当从所述运行结果中检测到第一反例时,确定所述断言对应的输入状态不正确;
将所述第一反例作为所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励;
重复所述构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果的步骤,直至所有所述待测点均不存在输入状态问题后,通过得到的各所述测试激励对芯片代码进行仿真验证。
在本申请实施例中,如果能够从运行结果中检测到第一反例,便能够断定生成的断言所对应的输入状态是不正确的,该测试点并非输入状态无法达到。由于形式化验证工具已经生成了第一反例,即第一反例便可以理解为待测点的一个输入状态,故将第一反例作为待测点的输入状态假设,并以此生成测试激励。上述过程仅完成了对一个待测点的验证,重复上述过程对每个待测点对应的断言进行运行验证,并根据不正确的断言来生成测试激励,直至所有的待测点均进行过断言的验证,且其中存在输入状态问题的待测点经过反例证明后均不存在输入状态问题后,根据各测试激励来进行仿真验证。
在一种可实施方式中,所述将所述第一反例作为所述待测点的输入状态假设之后,还包括:
在所述形式化环境中重新运行所述断言,获得第二反例;
对比所述第一反例与第二反例,判断所述第一反例与第二反例是否相同;
当所述第一反例与第二反例不相同时,重复所述在所述形式化环境中重新运行所述断言的步骤,形成反例集合;
分析所述反例集合,确定所述反例集合的反例共性,基于所述反例共性补充完善所述反例集合,将完善后的所述反例集合确定为所述待测点的输入状态假设集合;
所述基于所述输入状态假设生成测试激励,包括:
基于所述输入状态假设集合生成测试激励。
在本申请实施例中,一个待测点所对应的输入状态可能并不唯一,因此在得到第一反例后,将会在形式化环境中重新运行该断言,以此获得第二反例,并通过第一反例与第二反例的对比判断二者是否相同。当二者不相同时,便认为该待测点确实存在多个对应的输入状态,故不断重复重新运行断言的过程,生成多个反例,进而形成反例集合。对反例集合进行反例共性的分析便能够补充完善该反例集合的所有可能性,以此得到该待测点的输入状态假设集合,即确定了该待测点的所有输入状态,最终根据该输入状态假设集合来生成测试激励。
示例性的,对于某个待测点,对其断言进行运行后,得到了第一反例,第一反例表征为字母A,重复运行后得到了第二反例,第二反例表征为字母D,接着在重复上述过程中分别得到了表征为字母C、U、F、K、L、N的反例,对这些反例形成的反例集合进行共性分析后,确定该反例集合均为英文字母,故最终补充完善该反例集合,使该反例集合为:A、B、C、D…Y、Z。
下面将结合附图2,对本申请实施例提供的缩短芯片代码覆盖率收敛时间的验证装置进行详细介绍。需要说明的是,附图2所示的缩短芯片代码覆盖率收敛时间的验证装置,用于执行本申请图1所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图1所示的实施例。
请参见图2,图2是本申请实施例提供的一种缩短芯片代码覆盖率收敛时间的验证装置的结构示意图。如图2所示,所述装置包括:
仿真模块201,用于通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点;
生成模块202,用于接收第一操作指令,基于所述第一操作指令编写所述待测点对应的断言,所述断言用以表征所述待测点所表示的输入状态无法达到;
运行模块203,用于构建形式化环境,在所述形式化环境中运行所述断言,获得断言运行结果;
补充模块204,用于根据所述运行结果反向补充所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励,通过所述测试激励对芯片代码进行仿真验证。
在一种可实施方式中,仿真模块201包括:
获取单元,用于获取待验证的芯片代码,基于预设的激励回归对所述芯片代码进行仿真计算,确定所述芯片代码中实现激励回归的覆盖点;
比对单元,用于将各所述覆盖点与所述芯片代码进行比对,筛选确定无覆盖率的待测点。
在一种可实施方式中,运行模块203包括:
构建单元,用于通过形式化验证工具构建形式化环境;
运行单元,用于在所述形式化环境中运行所述断言,并判断所述断言的运行结果;
第一表征单元,用于当所述断言的运行结果表征所述断言运行成功时,则确定所述待测点无法进行覆盖;
第二表征单元,用于当所述断言的运行结果表征所述断言运行失败时,则确定所述待测点存在输入状态问题,并基于所述形式化验证工具生成第一反例。
在一种可实施方式中,补充模块204包括:
确定单元,用于当从所述运行结果中检测到第一反例时,确定所述断言对应的输入状态不正确;
生成单元,用于将所述第一反例作为所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励;
重复单元,用于重复所述构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果的步骤,直至所有所述待测点均不存在输入状态问题后,通过得到的各所述测试激励对芯片代码进行仿真验证。
在一种可实施方式中,所述生成单元包括:
重复元件,用于在所述形式化环境中重新运行所述断言,获得第二反例;
对比元件,用于对比所述第一反例与第二反例,判断所述第一反例与第二反例是否相同;
集合形成元件,用于当所述第一反例与第二反例不相同时,重复所述在所述形式化环境中重新运行所述断言的步骤,形成反例集合;
分析元件,用于分析所述反例集合,确定所述反例集合的反例共性,基于所述反例共性补充完善所述反例集合,将完善后的所述反例集合确定为所述待测点的输入状态假设集合;
生成元件,用于基于所述输入状态假设集合生成测试激励。
本领域的技术人员可以清楚地了解到本申请实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammableGate Array,FPGA)、集成电路(Integrated Circuit,IC)等。
本申请实施例的各处理单元和/或模块,可通过实现本申请实施例所述的功能的模拟电路而实现,也可以通过执行本申请实施例所述的功能的软件而实现。
参见图3,其示出了本申请实施例所涉及的一种电子设备的结构示意图,该电子设备可以用于实施图1所示实施例中的方法。如图3所示,电子设备300可以包括:至少一个中央处理器301,至少一个网络接口304,用户接口303,存储器305,至少一个通信总线302。
其中,通信总线302用于实现这些组件之间的连接通信。
其中,用户接口303可以包括显示屏(Display)、摄像头(Camera),可选用户接口303还可以包括标准的有线接口、无线接口。
其中,网络接口304可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,中央处理器301可以包括一个或者多个处理核心。中央处理器301利用各种接口和线路连接整个电子设备300内的各个部分,通过运行或执行存储在存储器305内的指令、程序、代码集或指令集,以及调用存储在存储器305内的数据,执行终端300的各种功能和处理数据。可选的,中央处理器301可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。中央处理器301可集成中央中央处理器(Central Processing Unit,CPU)、图像中央处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到中央处理器301中,单独通过一块芯片进行实现。
其中,存储器305可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器305包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器305可用于存储指令、程序、代码、代码集或指令集。存储器305可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器305可选的还可以是至少一个位于远离前述中央处理器301的存储装置。如图3所示,作为一种计算机存储介质的存储器305中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
在图3所示的电子设备300中,用户接口303主要用于为用户提供输入的接口,获取用户输入的数据;而中央处理器301可以用于调用存储器305中存储的缩短芯片代码覆盖率收敛时间的验证应用程序,并具体执行以下操作:
通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点;
接收第一操作指令,基于所述第一操作指令编写所述待测点对应的断言,所述断言用以表征所述待测点所表示的输入状态无法达到;
构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果;
根据所述运行结果反向补充所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励,通过所述测试激励对芯片代码进行仿真验证。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory, ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (5)
1.一种缩短芯片代码覆盖率收敛时间的验证方法,其特征在于,所述方法包括:
通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点;
接收第一操作指令,基于所述第一操作指令编写所述待测点对应的断言,所述断言用以表征所述待测点所表示的输入状态无法达到;
构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果;
根据所述运行结果反向补充所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励,通过所述测试激励对芯片代码进行仿真验证;
所述构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果,包括:
通过形式化验证工具构建形式化环境;
在所述形式化环境中运行所述断言,并判断所述断言的运行结果;
当所述断言的运行结果表征所述断言运行成功时,则确定所述待测点无法进行覆盖;
当所述断言的运行结果表征所述断言运行失败时,则确定所述待测点存在输入状态问题,并基于所述形式化验证工具生成第一反例;
所述根据所述运行结果反向补充所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励,通过所述测试激励对芯片代码进行仿真验证,包括:
当从所述运行结果中检测到第一反例时,确定所述断言对应的输入状态不正确;
将所述第一反例作为所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励;
重复所述构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果的步骤,直至所有所述待测点均不存在输入状态问题后,通过得到的各所述测试激励对芯片代码进行仿真验证;
所述将所述第一反例作为所述待测点的输入状态假设之后,还包括:
在所述形式化环境中重新运行所述断言,获得第二反例;
对比所述第一反例与第二反例,判断所述第一反例与第二反例是否相同;
当所述第一反例与第二反例不相同时,重复所述在所述形式化环境中重新运行所述断言的步骤,形成反例集合;
分析所述反例集合,确定所述反例集合的反例共性,基于所述反例共性补充完善所述反例集合,将完善后的所述反例集合确定为所述待测点的输入状态假设集合;
所述基于所述输入状态假设生成测试激励,包括:
基于所述输入状态假设集合生成测试激励。
2.根据权利要求1所述的方法,其特征在于,所述通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点,包括:
获取待验证的芯片代码,基于预设的激励回归对所述芯片代码进行仿真计算,确定所述芯片代码中实现激励回归的覆盖点;
将各所述覆盖点与所述芯片代码进行比对,筛选确定无覆盖率的待测点。
3.一种缩短芯片代码覆盖率收敛时间的验证装置,其特征在于,所述装置包括:
仿真模块,用于通过预设的激励回归对芯片代码进行仿真计算,确定无覆盖率的待测点;
生成模块,用于接收第一操作指令,基于所述第一操作指令编写所述待测点对应的断言,所述断言用以表征所述待测点所表示的输入状态无法达到;
运行模块,用于构建形式化环境,在所述形式化环境中运行所述断言,获得断言运行结果;
补充模块,用于根据所述运行结果反向补充所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励,通过所述测试激励对芯片代码进行仿真验证;
所述运行模块包括:
构建单元,用于通过形式化验证工具构建形式化环境;
运行单元,用于在所述形式化环境中运行所述断言,并判断所述断言的运行结果;
第一表征单元,用于当所述断言的运行结果表征所述断言运行成功时,则确定所述待测点无法进行覆盖;
第二表征单元,用于当所述断言的运行结果表征所述断言运行失败时,则确定所述待测点存在输入状态问题,并基于所述形式化验证工具生成第一反例;
所述补充模块包括:
确定单元,用于当从所述运行结果中检测到第一反例时,确定所述断言对应的输入状态不正确;
生成单元,用于将所述第一反例作为所述待测点的输入状态假设,并基于所述输入状态假设生成测试激励;
重复单元,用于重复所述构建形式化环境,在所述形式化环境中运行所述断言,判断所述断言的运行结果的步骤,直至所有所述待测点均不存在输入状态问题后,通过得到的各所述测试激励对芯片代码进行仿真验证;
所述生成单元包括:
重复元件,用于在所述形式化环境中重新运行所述断言,获得第二反例;
对比元件,用于对比所述第一反例与第二反例,判断所述第一反例与第二反例是否相同;
集合形成元件,用于当所述第一反例与第二反例不相同时,重复所述在所述形式化环境中重新运行所述断言的步骤,形成反例集合;
分析元件,用于分析所述反例集合,确定所述反例集合的反例共性,基于所述反例共性补充完善所述反例集合,将完善后的所述反例集合确定为所述待测点的输入状态假设集合;
生成元件,用于基于所述输入状态假设集合生成测试激励。
4.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-2任一项所述方法的步骤。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-2任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692255.9A CN113342669B (zh) | 2021-06-22 | 2021-06-22 | 一种缩短芯片代码覆盖率收敛时间的验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692255.9A CN113342669B (zh) | 2021-06-22 | 2021-06-22 | 一种缩短芯片代码覆盖率收敛时间的验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342669A CN113342669A (zh) | 2021-09-03 |
CN113342669B true CN113342669B (zh) | 2022-12-30 |
Family
ID=77477895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110692255.9A Active CN113342669B (zh) | 2021-06-22 | 2021-06-22 | 一种缩短芯片代码覆盖率收敛时间的验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342669B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886319A (zh) * | 2021-10-09 | 2022-01-04 | 北京爱芯科技有限公司 | 一种基于形式化验证快速收敛覆盖率的验证方法及装置 |
CN114519332B (zh) * | 2022-02-18 | 2022-12-27 | 超睿科技(长沙)有限公司 | 一种基于断言的处理器验证方法、装置及电子设备 |
CN115576821B (zh) * | 2022-10-20 | 2024-01-19 | 沐曦科技(成都)有限公司 | 一种验证方法、装置,电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036730A (zh) * | 2011-09-29 | 2013-04-10 | 西门子公司 | 一种对协议实现进行安全测试的方法及装置 |
CN104408264A (zh) * | 2014-12-12 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于断言的嵌入式存储控制器验证系统及方法 |
CN111832235A (zh) * | 2019-04-15 | 2020-10-27 | 畅想科技有限公司 | 对实现在一个或多个输入变量中为多项式的函数的集成电路的硬件设计的验证 |
-
2021
- 2021-06-22 CN CN202110692255.9A patent/CN113342669B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036730A (zh) * | 2011-09-29 | 2013-04-10 | 西门子公司 | 一种对协议实现进行安全测试的方法及装置 |
CN104408264A (zh) * | 2014-12-12 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于断言的嵌入式存储控制器验证系统及方法 |
CN111832235A (zh) * | 2019-04-15 | 2020-10-27 | 畅想科技有限公司 | 对实现在一个或多个输入变量中为多项式的函数的集成电路的硬件设计的验证 |
Also Published As
Publication number | Publication date |
---|---|
CN113342669A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113342669B (zh) | 一种缩短芯片代码覆盖率收敛时间的验证方法及装置 | |
JP6995451B2 (ja) | 回路適正化装置及び回路適正化方法 | |
CN109582559B (zh) | 系统的验证方法、装置、电子设备及存储介质 | |
CN110597675B (zh) | 芯片的测试方法、装置、存储介质及烧录器 | |
CN110162322A (zh) | 一种升级方法及装置 | |
CN111522734A (zh) | 软件功能测试方法、装置、电子设备及存储介质 | |
CN112433944A (zh) | 业务测试方法、装置、计算机设备和存储介质 | |
US8560991B1 (en) | Automatic debugging using automatic input data mutation | |
CN112286750A (zh) | 一种gpio验证方法、装置、电子设备和介质 | |
CN111104155A (zh) | 数据库脚本管理平台、方法及电子设备和存储介质 | |
CN111966551A (zh) | 远程命令执行结果的校验方法、系统、终端及存储介质 | |
CN112463633B (zh) | 一种片上存储器的地址译码校验方法、装置、设备及介质 | |
CN110609786A (zh) | 软件测试方法、装置、计算机设备和存储介质 | |
CN111176917B (zh) | 一种cpu sst-bf功能稳定性测试方法、系统、终端及存储介质 | |
US20140281719A1 (en) | Explaining excluding a test from a test suite | |
CN109802866B (zh) | 一种网卡sr-iov功能测试方法、装置、终端及存储介质 | |
CN116414762A (zh) | 一种PCIe链路控制方法、控制装置、设备及介质 | |
CN109144806B (zh) | 一种寄存器传输级电路的功能验证方法及装置 | |
US20160070846A1 (en) | System for testing ic design | |
CN115470738A (zh) | 功能验证方法及装置、电子设备和存储介质 | |
CN107679266A (zh) | 闪存电路的仿真方法及仿真装置 | |
CN114116449A (zh) | 一种自动化测试用例的参数化方法、装置及电子设备 | |
CN113535499A (zh) | 一种支持多核心共享访问的多类型并存访存流验证方法 | |
CN115576821B (zh) | 一种验证方法、装置,电子设备及存储介质 | |
US9710581B1 (en) | VIP assisted method and apparatus to enable SOC integration and software development |
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 |