芯片的随机化验证方法及装置转让专利

申请号 : CN202010648096.8

文献号 : CN111796975A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱海周

申请人 : 云知声智能科技股份有限公司厦门云知芯智能科技有限公司

摘要 :

本申请提供一种芯片的随机化验证方法及装置。该方法包括:将多个输入项划分为多个输入组;针对每个输入组,确定每个输入组的第二解析空间,并基于第二解析空间确定输入组对应的每个输入项的随机输入激励,其中,每个第二解析空间根据输入组对应的第一解析空间确定;以及基于多个输入项的随机输入激励对待验证功能进行验证。以此可以提升随机输入激励的确定速度,提升芯片的验证速度,提高验证效率。

权利要求 :

1.一种芯片的随机化验证方法,其特征在于,所述芯片包括至少一个待验证功能,所述待验证功能包括多个输入项,每个输入项对应一个第一解析空间;所述方法包括:将所述多个输入项划分为多个输入组;

针对每个输入组,确定每个输入组的第二解析空间,并基于所述第二解析空间确定所述输入组对应的每个输入项的随机输入激励,其中,每个所述第二解析空间根据所述输入组对应的第一解析空间确定;

基于所述多个输入项的随机输入激励对所述待验证功能进行验证。

2.根据权利要求1所述的随机化验证方法,其特征在于,每个输入组对应一个输入项。

3.根据权利要求1所述的随机化验证方法,其特征在于,所述第一解析空间对应有随机属性,所述随机属性包括开启状态和关闭状态。

4.根据权利要求3所述的随机化验证方法,其特征在于,所述针对每个输入组,确定每个输入组的第二解析空间,并基于所述第二解析空间确定所述输入组对应的每个输入项的随机输入激励,包括:依次从所述多个输入组中确定当前输入组,并执行如下步骤,直至遍历所述多个输入组:将所述当前输入组对应的第一解析空间的随机属性设置为开启状体,其他的第一解析空间的随机属性设置为关闭状态,得到所述当前输入组的第二解析空间;

基于已确定的输入组的随机输入激励以及所述当前输入组的第二解析空间,确定所述当前输入组对应的每个输入项的随机输入激励。

5.根据权利要求4所述的随机化验证方法,其特征在于,输入随机项之间存在约束关系。

6.根据权利要求4所述的随机化验证方法,其特征在于,所述基于已确定的输入组的随机输入激励以及所述当前输入组的第二解析空间,确定所述当前输入组对应的每个输入项的随机输入激励,包括:基于已确定的输入组的随机输入激励,所述已确定的输入组与所述当前输入组之间的约束关系,以及所述当前输入组的第二解析空间,确定所述当前输入组对应的每个输入项的随机输入激励。

7.一种芯片的随机化验证装置,其特征在于,所述芯片包括至少一个待验证功能,所述待验证功能包括多个输入项,每个输入项对应一个第一解析空间;所述装置包括:划分模块,用于将所述多个输入项划分为多个输入组;

确定模块,用于针对每个输入组,确定每个输入组的第二解析空间,并基于所述第二解析空间确定所述输入组对应的每个输入项的随机输入激励,其中,每个所述第二解析空间根据所述输入组对应的第一解析空间确定;

验证模块,用于基于所述多个输入项的随机输入激励对所述待验证功能进行验证。

8.根据权利要求7所述的随机化验证装置,其特征在于,每个输入组对应一个输入项。

9.一种计算机设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至6任一项所述的方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至6任一项所述的方法。

说明书 :

芯片的随机化验证方法及装置

技术领域

[0001] 本申请涉及计算机技术领域,具体而言,涉及一种芯片的随机化验证方法及装置。

背景技术

[0002] 在芯片验证过程中,为了保证验证的完备性,一般会采用受约束的随机化方法来产生输入激励。如下图所示,假如芯片的某个功能模块有三个输入,分别为A、B和C,它们的取值范围分别为下图中红、绿和紫色框。为了充分验证该模块,在A、B和C这三个输入上需要分别输入红、绿和紫色框中所有的值。由于A、B和C分别具有自己的解析空间(红、绿、紫),且A、B和C之间又有关系,因此在产生某一组特定的输入值时需要同时考虑红、绿和紫色框中所有的解析空间。
[0003] 传统随机方法中,当A、B和C的解析空间较大时,由于每产生一组特定的输入均需要同时考虑它们解析空间中所有的可能性,因此产生该组输入的时间会较长。更有甚者,当A、B和C的解析空间很大或者某个模块的输入比较多且具有相关性时,整个解析空间会非常大,而此时产生一组特定的输入往往需要很长的时间,或者由于服务器性能有限导致无法产生任何输入激励。
[0004] 传统数据方法中,当遇到随机输入激励解析空间较大时,为了能顺利产生随机的输入激励,往往会扩展服务器数量或者增强服务器性能,这无疑增加了芯片的研发成本;而且有时候在扩展服务器数量或者增加服务器性能的情况下,产生随机激励所花费的时间仍然较长,这无疑增加了芯片的验证时间,从而导致整个芯片的验证时间变长。

发明内容

[0005] 本申请实施例的目的在于提供一种芯片的随机化验证方法及装置,用以解决现有技术中芯片验证时间过长的问题。
[0006] 第一方面,本发明实施例提供一种芯片的随机化验证方法,芯片包括至少一个待验证功能,待验证功能包括多个输入项,每个输入项对应一个第一解析空间;方法包括:
[0007] 将多个输入项划分为多个输入组;
[0008] 针对每个输入组,确定每个输入组的第二解析空间,并基于第二解析空间确定输入组对应的每个输入项的随机输入激励,其中,每个第二解析空间根据输入组对应的第一解析空间确定;
[0009] 基于多个输入项的随机输入激励对待验证功能进行验证。
[0010] 在可选的实施方式中,每个输入组对应一个输入项。
[0011] 在可选的实施方式中,第一解析空间对应有随机属性,随机属性包括开启状态和关闭状态。
[0012] 在可选的实施方式中,针对每个输入组,确定每个输入组的第二解析空间,并基于第二解析空间确定输入组对应的每个输入项的随机输入激励,包括:
[0013] 依次从多个输入组中确定当前输入组,并执行如下步骤,直至遍历多个输入组:
[0014] 将当前输入组对应的第一解析空间的随机属性设置为开启状体,其他的第一解析空间的随机属性设置为关闭状态,得到当前输入组的第二解析空间;
[0015] 基于已确定的输入组的随机输入激励以及当前输入组的第二解析空间,确定当前输入组对应的每个输入项的随机输入激励。
[0016] 在可选的实施方式中,输入随机项之间存在约束关系。
[0017] 在可选的实施方式中,基于已确定的输入组的随机输入激励以及当前输入组的第二解析空间,确定当前输入组对应的每个输入项的随机输入激励,包括:
[0018] 基于已确定的输入组的随机输入激励,已确定的输入组与当前输入组之间的约束关系,以及当前输入组的第二解析空间,确定当前输入组对应的每个输入项的随机输入激励。
[0019] 第二方面,本发明实施例提供一种芯片的随机化验证装置,芯片包括至少一个待验证功能,待验证功能包括多个输入项,每个输入项对应一个第一解析空间;装置包括:
[0020] 划分模块,用于将多个输入项划分为多个输入组;
[0021] 确定模块,用于针对每个输入组,确定每个输入组的第二解析空间,并基于第二解析空间确定输入组对应的每个输入项的随机输入激励,其中,每个第二解析空间根据输入组对应的第一解析空间确定;
[0022] 验证模块,用于基于多个输入项的随机输入激励对待验证功能进行验证。
[0023] 在可选的实施方式中,每个输入组对应一个输入项。
[0024] 第三方面,本发明实施例提供一种计算机设备,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述前述实施方式任一项的方法的步骤。
[0025] 第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有机器可运行指令,计算机可运行指令在被处理器调用和运行时,计算机可运行指令促使处理器运行前述实施方式任一项的方法。
[0026] 本发明实施例提供了一种芯片的随机化验证方法及装置,通过将多个输入项划分为多个输入组;针对每个输入组,确定每个输入组的第二解析空间,并基于第二解析空间确定输入组对应的每个输入项的随机输入激励,其中,每个第二解析空间根据输入组对应的第一解析空间确定;以及基于多个输入项的随机输入激励对待验证功能进行验证。通过将多个输入项划分为多个组,并分别确定各个组的随机输入激励,以此可以提升随机输入激励的确定速度,提升芯片的验证速度,提高验证效率。

附图说明

[0027] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028] 图1为一种芯片的输入的取值范围示例;
[0029] 图2为本申请实施例提供的一种芯片的随机化验证方法流程示意图;
[0030] 图3为本申请实施例提供的另一种芯片的随机化验证方法流程示意图;
[0031] 图4为本申请实施例提供的一种芯片的随机化验证装置结构示意图;
[0032] 图5为本申请实施例提供的一种计算机设备结构示意图。

具体实施方式

[0033] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0034] 因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0036] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0037] 下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0038] 图2为本发明实施例提供的一种芯片的随机化验证方法流程示意图。如图2所示,该芯片包括至少一个待验证功能,该待验证功能包括多个输入项,每个输入项对应一个第一解析空间;该方法具体可以包括如下步骤:
[0039] 步骤S210,将多个输入项划分为多个输入组;
[0040] 可以根据预先确定的规则将该多个输入项进行划分,该预先确定的规则可以根据实际需要确定,例如可以随机划分,按照依赖关系划分或者每个输入组对应一个输入项,等等。
[0041] 步骤S220,针对每个输入组,确定每个输入组的第二解析空间,并基于第二解析空间确定输入组对应的每个输入项的随机输入激励,其中,每个第二解析空间根据输入组对应的第一解析空间确定。
[0042] 结合图1所示,第一解析空间可以包括A、B以及C,如果A和B作为一组,此时,该输入组对应的第二解析空间由A和B构成。如果,A、B和C分别作为一个输入组,那么该A、B以及C可以分别作为第二解析空间。
[0043] 可以根据每个组对应的解析空间,生成该组对应的随机输入激励,这样可以将确定随机输入激励的解析空间缩小,提升处理效率。
[0044] 另外,在本发明实施例中,每个输入组可以对应一个阶段,各个阶段存在一定的次序,根据该次序一次确定每个输入组的随机输入激励。
[0045] 步骤S230,基于多个输入项的随机输入激励对待验证功能进行验证。
[0046] 基于上述步骤S220,可以得到各个输入项的随机输入激励,通过该随机输入激励,可以对待验证功能进行验证。其中,对于每个随待验证功能,可能需要多次确定随机输入激励,此时,可以重复执行上述步骤S220-S230多次,具体重复的次数根据实际需要确定。
[0047] 另外,对于每个芯片,可以包括多个功能,在对各个功能进行验证时,可以仅对复杂度较高的功能采用上述方式进行验证。例如,可以设置解析空间阈值,当功能对应的全部的解析空间大于该解析空间阈值时,执行上述步骤S210-S230。
[0048] 本发明实施例通过将多个输入项划分为多个组,并分别确定各个组的随机输入激励,以此可以提升随机输入激励的确定速度,提升芯片的验证速度,提高验证效率。
[0049] 在一些实施例中,第一解析空间对应有随机属性,随机属性包括开启状态和关闭状态。作为一个示例,如图3所示,上述步骤S220具体可以通过如下步骤实现:
[0050] 步骤S310,依次从多个输入组中确定当前输入组,并执行如下步骤S320-S330,直至遍历多个输入组。
[0051] 步骤S320,将当前输入组对应的第一解析空间的随机属性设置为开启状体,其他的第一解析空间的随机属性设置为关闭状态,得到当前输入组的第二解析空间;
[0052] 步骤S330,基于已确定的输入组的随机输入激励以及当前输入组的第二解析空间,确定当前输入组对应的每个输入项的随机输入激励。
[0053] 输入随机项之间存在约束关系。作为一个示例,该步骤S330可以通过如下步骤实现:基于已确定的输入组的随机输入激励,已确定的输入组与当前输入组之间的约束关系,以及当前输入组的第二解析空间,确定当前输入组对应的每个输入项的随机输入激励。
[0054] 作为一个示例,当随机输入激励的解析空间较大时,采用分phase(阶段)随机的方法提高随机输入激励的产生效率。如下图,当A、B和C所形成的完整解析空间较大时,为了提高随机输入激励的产生效率,可以将随机过程分为三个phase。phase 1:将A的随机属性打开,B和C的随机属性关闭,根据约束关系随机出A的输入激励;phase2:将B的随机属性打开,将A和C的随机属性关闭,根据约束关系及phase1中产生的A,随机出B的输入激励。phase3:将C的随机属性打开,将A和B的随机属性关闭,根据约束关系及phase1和phase 2中产生的A和B,随机出C的输入激励。
[0055] 根据随机输入激励的整个解析空间的大小,将输入激励产生的过程分成若干个phase,每个phase产生随机输入激励时只需要考虑该phase中随机属性打开了的那些输入激励的解析空间,而不需要考虑整个解析空间,从而大大减少了随机输入激励的产生时间。假如输入随机激励A、B和C的解析空间分别有2^41、2^33和2^51种可能性。在服务器性能和数量相同的情况下,下表给出了传统方法和分phase随机方法所需要时间对比。
[0056] 表1
[0057]
[0058] 表1中只是针对随机输入激励只有A、B和C的情况下给出的时间对比,而当芯片某个功能模块的输入激励很多且约束关系复杂时,即使在服务器性能较强的情况下传统随机方法仍然需要花费很长的时间产生随机输入激励,而分phase随机方法在服务器性能一般的情况下,产生随机输入激励所需要的时间会短很多。这无疑既减少了硬件成本,又节省了芯片验证时间。
[0059] 图4为本发明实施例提供的一种芯片的随机化验证装置结构示意图。芯片包括至少一个待验证功能,待验证功能包括多个输入项,每个输入项对应一个第一解析空间;如图4所示,该装置包括:
[0060] 划分模块401,用于将多个输入项划分为多个输入组;
[0061] 确定模块402,用于针对每个输入组,确定每个输入组的第二解析空间,并基于第二解析空间确定输入组对应的每个输入项的随机输入激励,其中,每个第二解析空间根据输入组对应的第一解析空间确定;
[0062] 验证模块403,用于基于多个输入项的随机输入激励对待验证功能进行验证。
[0063] 在一些实施例中,每个输入组对应一个输入项。
[0064] 在一些实施例中,第一解析空间对应有随机属性,随机属性包括开启状态和关闭状态。
[0065] 在一些实施例中,确定模块402具体用于:
[0066] 依次从多个输入组中确定当前输入组,并执行如下步骤,直至遍历多个输入组:
[0067] 将当前输入组对应的第一解析空间的随机属性设置为开启状体,其他的第一解析空间的随机属性设置为关闭状态,得到当前输入组的第二解析空间;
[0068] 基于已确定的输入组的随机输入激励以及当前输入组的第二解析空间,确定当前输入组对应的每个输入项的随机输入激励。
[0069] 在一些实施例中,输入随机项之间存在约束关系。
[0070] 在一些实施例中,确定模块402具体用于:
[0071] 于已确定的输入组的随机输入激励,已确定的输入组与当前输入组之间的约束关系,以及当前输入组的第二解析空间,确定当前输入组对应的每个输入项的随机输入激励。
[0072] 本申请实施例提供的芯片的随机化验证装置,与上述实施例提供的芯片的随机化验证方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
[0073] 如图5所示,本申请实施例提供的一种计算机设备700,包括:处理器701、存储器702和总线,存储器702存储有处理器701可执行的机器可读指令,当电子设备运行时,处理器701与存储器702之间通过总线通信,处理器701执行机器可读指令,以执行如上述芯片的随机化验证方法的步骤。
[0074] 具体地,上述存储器702和处理器701能够为通用的存储器和处理器,这里不做具体限定,当处理器701运行存储器702存储的计算机程序时,能够执行上述芯片的随机化验证方法。
[0075] 对应于上述芯片的随机化验证方法,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有机器可运行指令,计算机可运行指令在被处理器调用和运行时,计算机可运行指令促使处理器运行上述芯片的随机化验证方法的步骤。
[0076] 本申请实施例所提供的芯片的随机化验证装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
[0077] 在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0078] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0079] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0080] 另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0081] 功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本申请各个实施例移动控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0082] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0083] 最后应说明的是:以上实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。