验证实例生成方法、装置、电子设备及存储介质

文档序号:449825 发布日期:2021-12-28 浏览:26次 >En<

阅读说明:本技术 验证实例生成方法、装置、电子设备及存储介质 (Verification instance generation method and device, electronic equipment and storage medium ) 是由 索健 王正 于 2021-09-09 设计创作,主要内容包括:本申请提出一种验证实例生成方法、装置、电子设备及存储介质,其中方法包括:针对验证环境中的每个类,配置所述类中的各个变量;针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理,并对类中的变量进行约束配置处理;针对实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。该方法通过对验证环境中的实例需要的已配置的类进行约束配置处理,并对约束配置中的函数采用替代函数库中的函数进行替代,以生成验证实例。由此,可使生成的验证实例既满足复杂约束同时可提高验证平台中约束部分的性能,可对后期调试提供较高的便利性。(The application provides a verification example generation method, a verification example generation device, electronic equipment and a storage medium, wherein the method comprises the following steps: for each class in a verification environment, configuring respective variables in the class; for each instance in the verification environment, loading the configured class required by the instance, and performing constraint configuration processing on variables in the class; and aiming at each constraint configuration in the example, carrying out substitution processing on each function in the constraint configuration by adopting a corresponding substitution function in the substitution function library to generate a verification example. The method generates the verification example by performing constraint configuration processing on configured classes required by the example in the verification environment and replacing functions in the constraint configuration with functions in a replacement function library. Therefore, the generated verification example can meet complex constraint, the performance of a constraint part in a verification platform can be improved, and higher convenience can be provided for later debugging.)

验证实例生成方法、装置、电子设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种验证实例生成方法、装置、电子设备及存储介质。

背景技术

随着芯片设计规模越来越大而复杂,在相关技术中,使用随机约束验证方法以满足验证需求。

但是,在随机约束验证方法中,随着约束(constraints)的尺寸和复杂性的增加,验证平台性能也随之降低,对后期调试带来很大不便。

发明内容

本申请旨在至少在一定程度上解决上述技术中的技术问题之一。

本申请提出一种验证实例生成方法,以实现对验证环境中的实例需要的已配置的类进行约束配置处理,并对约束配置中的函数采用替代函数库中的函数进行替代,以生成验证实例,由此,可使生成的验证实例既满足复杂约束同时提高验证平台中约束部分的性能,可对后期调试提供较高的便利性。

本申请第一方面实施例提出了一种验证实例生成方法,包括:针对验证环境中的每个类,配置所述类中的各个变量;针对验证环境中的每个实例,对所述实例需要的已配置的类进行加载处理,并对所述类中的变量进行约束配置处理;针对所述实例中的每个约束配置,对所述约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。

本申请实施例的验证实例生成方法,通过针对验证环境中的每个类,配置类中的各个变量;针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理,并对类中的变量进行约束配置处理;针对实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。该方法通过对验证环境中的实例需要的已配置的类进行约束配置处理,并对约束配置中的函数采用替代函数库中的函数进行替代,以生成验证实例,由此,可使生成的验证实例既满足复杂约束同时提高验证平台中约束部分的性能,可对后期调试提供较高的便利性。

可选地,所述针对验证环境中的每个类,配置所述类中的各个变量,包括:针对验证环境中的每个类,根据所述类中定义的各个变量以及变量之间关系,确定所述类中的目标变量,以及所述目标变量对应的配置类型;对所述类中的各个所述目标变量按照对应的配置类型进行配置。

可选地,所述针对验证环境中的每个类,根据所述类中定义的各个变量以及变量之间关系,确定所述类中的目标变量,以及所述目标变量对应的配置类型,包括:针对验证环境中的每个类,针对所述类中的每个变量,判断所述变量是否满足预设配置条件,其中,所述预设配置条件为所述变量可以根据所述类中的其他变量计算得到;在所述变量满足所述预设配置条件时,确定所述变量为所述目标变量;根据所述目标变量所定义的参数的位数要求,确定所述目标变量对应的配置类型。

可选地,所述根据所述目标变量所定义的参数的位数要求,确定所述目标变量对应的配置类型,包括:在所述目标变量所定义的参数的位数要求为位数小于等于预设位数阈值时,确定所述目标变量对应的配置类型为比特类型;在所述目标变量所定义的参数的位数要求为位数大于所述预设位数阈值时,确定所述目标变量对应的配置类型为整数类型。

可选地,所述针对验证环境中的每个实例,对所述实例需要的已配置的类进行加载处理,并对所述类中的变量进行约束配置处理,包括:针对验证环境中的每个实例,对所述实例需要的已配置的类进行加载处理;针对所述实例中加载的每个类,对所述类中的所有变量进行约束配置处理。

可选地,所述针对所述实例中的每个约束配置,对所述约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例,包括:针对所述实例中的每个约束配置中的每个函数,判断所述替代函数库中是否存在与所述函数对应的替代函数;在所述替代函数库中存在与所述函数对应的替代函数时,对所述实例中的所述函数采用对应的替代函数进行替代处理。

可选地,所述替代函数库中包括函数以及对应的替代函数,所述函数包括以下函数中的至少一种:嵌套函数、存在对同一个变量进行不同机制处理的函数、包含指定运算符的函数、包含指定关键字的函数;所述指定运算符包括以下运算符中的至少一种:不等于运算符、乘法运算符、取整运算符、取余运算符。

可选地,还包括:获取已有的验证实例;针对所述已有的验证实例中的每个约束配置,对所述约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理。

本申请第二方面实施例提出了一种验证实例生成装置,包括:配置模块,用于针对验证环境中的每个类,配置所述类中的各个变量;处理模块,用于针对验证环境中的每个实例,对所述实例需要的已配置的类进行加载处理,并对所述类中的变量进行约束配置处理;生成模块,用于针对所述实例中的每个约束配置,对所述约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。

本申请实施例的验证实例生成装置,通过针对验证环境中的每个类,配置类中的各个变量;针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理,并对类中的变量进行约束配置处理;针对实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。该方法通过对验证环境中的实例需要的已配置的类进行约束配置处理,并对约束配置中的函数采用替代函数库中的函数进行替代,以生成验证实例,由此,可使生成的验证实例既满足复杂约束同时提高验证平台中约束部分的性能,可对后期调试提供较高的便利性。

本申请第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面实施例提出的验证实例生成方法。

本申请第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请第一方面实施例提出的验证实例生成方法。

本申请第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行本申请第一方面实施例提出的验证实例生成方法。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例一所提供的验证实例生成方法的流程示意图;

图2为本申请实施例二所提供的验证实例生成方法的流程示意图;

图3为本申请实施例三所提供的验证实例生成方法的流程示意图;

图4为本申请实施例四所提供的验证实例生成方法的流程示意图;

图5为本申请实施例五所提供的验证实例生成装置的结构示意图;

图6是根据一示例性实施例示出的一种用于验证实例生成方法的电子设备的框图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

图1为本申请实施例一所提供的验证实例生成方法的流程示意图,需要说明的是,该验证实例生成方法可应用于验证实例生成装置。其中,该装置可被配置于电子设备中。其中,该电子设备可以是移动终端,例如,手机、平板电脑、个人数字助理等具有各种操作系统的硬件设备。

如图1所示,验证实例生成方法包括如下步骤:

步骤101,针对验证环境中的每个类,配置类中的各个变量。

在本申请实施例中,为了生成验证实例,对于验证环境中的每个类,需对类中的各个变量进行配置,其中,类中的一些变量为随机配置,为了减少随机求解的时间,以提高验证平台中约束部分的性能,可对类中的待随机配置的变量根据该变量对应的配置类型进行配置。

步骤102,针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理,并对所述类中的变量进行约束配置处理。

需要了解的是,根据验证环境中的类,可构建验证环境中的实例,不同的实例可对应不同的类。

在本申请实施例中,对于验证环境中的每个实例,可对实例需要的并且已配置的类进行加载处理,并对加载的类中的变量进行约束配置处理。

步骤103,针对实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。

进一步地,对于实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,以生成验证实例。其中,替代函数库中包括函数以及对应的替代函数,函数可包括以下函数中的至少一种:嵌套函数、存在对同一个变量进行不同机制处理的函数、包含指定运算符的函数、包含指定关键字的函数。其中,指定运算符可包括以下运算符中的至少一种:不等于运算符、乘法运算符、取整运算符、取余运算符。存在对同一个变量进行不同机制处理的函数,比如,可为对同一个变量进行bit操作和非bit操作的函数;包含指定关键字的函数,比如,包含“solve..before”关键字的函数;嵌套函数,比如,可为函数foreach。

综上,通过对验证环境中的实例需要的已配置的类进行约束配置处理,并对约束配置中的函数采用替代函数库中的函数进行替代,以生成验证实例,由此,可使生成的验证实例既满足复杂约束同时提高验证平台中约束部分的性能,可对后期调试提供较高的便利性。

为了准确地配置验证环境中的类中的变量,如图2所示,图2为本申请实施例二所提供的验证实例生成方法的流程示意图。在本申请实施例中,可先确定类中的目标变量,以及目标变量对应的变量类型,根据目标变量对应的配置类型对目标变量进行类型配置。图2所示实施例可包括如下步骤:

步骤201,针对验证环境中的每个类,根据类中定义的各个变量以及变量之间关系,确定类中的目标变量,以及目标变量对应的配置类型。

在本申请实施例中,对于验证环境中的每个类,可分析类中定义的各个变量,确定各个变量之间的关系,根据各个变量之间的关系,可确定出类中的目标变量,并根据目标变量对应的配置类型对目标变量进行配置。

可选地,针对验证环境中的每个类,针对类中的每个变量,判断变量是否满足预设配置条件,其中,预设配置条件为变量可以根据类中的其他变量计算得到;在变量满足预设配置条件时,确定变量为目标变量;根据目标变量所定义的参数的位数要求,确定目标变量对应的配置类型。

也就是说,对于验证环境中的每个类中的每个变量,判断变量对应的值是否可以根据类中的其他随机配置的变量计算得到,在变量对应的值可通过类中的其他随机配置的变量计算得到时,可将通过类中的其他随机配置的变量计算得到的变量作为目标变量。可根据变量对应的值确定目标变量所定义的参数的位数,进而,根据目标变量所定义的参数的位数要求,确定目标变量对应的配置类型。

举例而言,以类中变量为以下变量为例,

“rand bit ch_en; //channel from ripp enable

rand bit ch_scaler_en;

rand bit[11:0]ch_win_h; //window height

rand bit[11:0]ch_win_w; //window width

rand bit ch_upsize_en;

rand bit[11:0]pic0_target_height; //target height

rand bit[11:0]pic0_target_width; //target width”

其中,需要随机产生channel的窗口尺寸,enable标志,该channel是否需要放大或者缩小(channel放大对应变量scaler_en,channel缩小对应变量upsize_en),目标的窗口尺寸(对应变量pic0_target_height和pic0_target_width)。若所有相关变量都是rand随机型的话,在不定义其他约束时,解空间矩阵包含可能解的数目是2*2*2^12*2^12*2*2^12*2^12。通过分析可以得知,在随机产生的窗口尺寸小于目标窗口尺寸时,channel需要放大,否则需要缩小,因此,变量ch_scaler_en和ch_upsize_en这两个变量,可以在其他变量随机产生之后再通过后续处理计算得出的,可将变量ch_scaler_en和ch_upsize_en定义为bit型。可使解空间矩阵减小到原始值的1/4大小。

为了避免将所有目标变量定义为整数型造成的过大的解空间矩阵,在本申请实施例中,在目标变量所定义的参数的位数要求为位数小于等于预设位数阈值时,确定目标变量对应的配置类型为比特类型;在目标变量所定义的参数的位数要求为位数大于预设位数阈值时,确定目标变量对应的配置类型为整数类型。比如,预设位数阈值为32位,在目标变量所定义的参数的位数要求为10位时,可确定目标变量对应的配置类型为比特类型,在目标变量所定义的参数的位数要求为64位时,可确定目标变量对应的配置类型为整数类型。

步骤202,对类中的各个目标变量按照对应的配置类型进行配置。

为了减小解空间的矩阵的大小,在确定类中的目标变量以及目标变量对应的配置类型后,可对类中的各个目标变量按照对应的配置类型进行配置。比如,待随机配置的目标变量为ch_scaler_en和ch_upsize_en,变量ch_scaler_en和ch_upsize_en对应的配置类型为bit型,可将变量ch_scaler_en和ch_upsize_en配置为bit型。

步骤203,针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理,并对类中的变量进行约束配置处理。

步骤204,针对实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。

在本申请实施例中,步骤203-204可以分别采用本申请的各实施例中的任一种方式实现,本申请实施例并不对此作出限定,也不再赘述。

综上,通过针对验证环境中的每个类,根据类中定义的各个变量以及变量之间关系,确定类中的目标变量,以及目标变量对应的配置类型;对类中的各个目标变量按照对应的配置类型进行配置。由此,可准确地配置验证环境中的类中的变量,避免随机配置导致过大的解空间矩阵。

为了进一步降低解空间矩阵的尺寸,如图3所示,图3为本申请实施例三所提供的验证实例生成方法的流程示意图。在本申请实施例中,可对类中所有的变量进行约束配置处理。图3所示实施例可包括如下步骤:

步骤301,针对验证环境中的每个类,配置类中的各个变量。

步骤302,针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理。

在本申请实施例中,在生成验证实例的过程中,可对验证环境中的每个实例需要的已配置的类进行加载处理。

步骤303,针对实例中加载的每个类,对类中的所有变量进行约束配置处理。

需要了解的是,对于创建随机配置的类时,并不对类中所有的变量进行约束配置处理,而是对一些变量进行随机配置,在验证实例中重载该类时,再对随机配置的一些变量进行约束配置处理,重载时一般只会对验证实例中里关注的随机变量进行约束配置处理,而不关注的随机变量则不进行约束配置处理,比如,对一些随机变量不进行取值范围限制,使得解空间矩阵的尺寸远远大于实际需要。

举例而言,以类中加载的变量为以下变量为例,

“rand bit[3:0]pic_num;

rand bit[4:0]pic_en;

rand bit array_pop_mode;

rand bit pop_mode;

rand bit pop_enable;

rand bit pip_enable;”;

在重新加载该类时,对变量pic_num和变量pic_en没有进行约束配置,导致解空间矩阵的规模变大了2^4*2^5倍。

因此,为了进一步降低解空间的矩阵尺寸,可对实例中加载的每个类中的所有变量进行约束配置处理。

步骤304,针对实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。

在本申请实施例中,步骤301、304可以分别采用本申请的各实施例中的任一种方式实现,本申请实施例并不对此作出限定,也不再赘述。

综上,通过针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理;针对实例中加载的每个类,对类中的所有变量进行约束配置处理。由此,可进一步降低解空间的矩阵尺寸。

为了进一步降低验证实例的解空间矩阵大小,如图4所示,图4为本申请实施例四所提供的验证实例生成方法的流程示意图。在本申请实施例中,可对约束配置中的各个函数采用替代函数进行替代,其中,函数包括以下函数中的至少一种:嵌套函数、存在对同一个变量进行不同机制处理的函数、包含指定运算符的函数、包含指定关键字的函数。图4所示实施例可包括如下步骤:

步骤401,针对验证环境中的每个类,配置类中的各个变量。

步骤402,针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理,并对类中的变量进行约束配置处理。

步骤403,针对实例中的每个约束配置中的每个函数,判断替代函数库中是否存在与函数对应的替代函数。

在本申请实施例中,针对实例中每个约束配置的每个函数,可根据函数的功能在替代函数库中进行判断,确定替代函数库中是否存在与函数对应的替代函数。其中,替代函数库中包括函数以及对应的替代函数,函数包括以下函数中的至少一种:嵌套函数、存在对同一个变量进行不同机制处理的函数、包含指定运算符的函数、包含指定关键字的函数。

步骤404,在替代函数库中存在与函数对应的替代函数时,对实例中的函数采用对应的替代函数进行替代处理。

举例而言,比如,一个N个元素的数组的嵌套函数foreach,该函数会产生N^2次约束,如,“foreach(ua[i]) //For every element

foreach(ua[j])

if(i!=j)//except the diagonals

ua[i]!=ua[j];”;

可将foreach函数使用替代函数库中的randc函数或者其他方式来代替。

又比如,对同一个随机变量同时进行bit操作和非bit操作,会导致验证性能下降,例如,“constraint cst{

randomUpper==(TraceBufferLimit-TraceBufferBase+1);

TraceAddrPtr==((TraceBufferLimit[15:0]&16'h3FFF)<<16)|random13_6);

}”,该代码对变量TraceBufferLimit同时进行bit操作和非bit操作,会导致验证性能下降。针对该问题,可以引入另外的变量,以避免对变量TraceBufferLimit同时进行bit操作和非bit操作。比如,可将以上代码修改为以下代码:

又比如,对于包含乘法运算符、取整运算符或取余运算符等函数,在可能的情况下用移位和逻辑运算来代替。

又比如,对于包含“solve..before”等关键字的函数,可用替代函数库中对于的替代函数进行替换。

又比如,对于包含不等于运算符的函数,可使用替代函数库中的大于运算符或小于运算符替代。

另外,需要说明的是,在一些验证实例中,嵌套函数更简便易读,对于这种情况,可以使用大于运算符或小于运算符来代替不等于运算符,可使求解的复杂度降低一半。

比如,“class packet;

rand int hdr[SIZE];

constraint cst{

foreach(hdr[i]){

hdr[i]inside{[1:SIZE-1]};

foreach(hdr[j]){

(i!=j)->hdr[i]!=hdr[j];

}

}

hdr[0]==ETHERNET;}

”,该验证实例求解的复杂度是O(N^2),当用i<j来代替i!=j后,复杂度可以降低到O((N)。比如可用下述代码进行替换,“class packet;

rand int hdr[SIZE];

function self(int arg);

return(arg);

endfunction

constraint cst{

foreach(hdr[i]){

hdr[i]inside{[1:SIZE-1]};

foreach(hdr[j]){

(i<j)->hdr[i]!=self(hdr[j]);

}

}

hdr[0]==ETHERNET;

}”,该验证实例在引入函数self后,嵌套函数foreach的约束化简为了单层的foreach约束,第二层foreach等同于对每一个hdr[i]做了一个常量范围的约束,不涉及到其他数组成员,因此,在不改变约束的可读性前提下,可使求解的复杂度降低到了O(N)。

为了更好地降低验证实例的解空间矩阵大小,在本申请实施例中,可获取已有的验证实例,并且针对已有的验证实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理。

在本申请实施例中,步骤401-402可以分别采用本申请的各实施例中的任一种方式实现,本申请实施例并不对此作出限定,也不再赘述。

综上,通过针对实例中的每个约束配置中的每个函数,判断替代函数库中是否存在与函数对应的替代函数;在替代函数库中存在与函数对应的替代函数时,对实例中的函数采用对应的替代函数进行替代处理。由此,可进一步降低验证实例的解空间矩阵大小。

本申请实施例的验证实例生成方法,通过针对验证环境中的每个类,配置所述类中的各个变量;针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理,并对类中的变量进行约束配置处理;针对实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。该方法通过对验证环境中的实例需要的已配置的类进行约束配置处理,并对约束配置中的函数采用替代函数库中的函数进行替代,以生成验证实例,由此,可使生成的验证实例既满足复杂约束同时提高验证平台中约束部分的性能,可对后期调试提供较高的便利性。

图5为本申请实施例五所提供的验证实例生成装置的结构示意图。

如图5所示,该验证实例生成装置500包括:配置模块510、处理模块520和生成模块530。

其中,配置模块510,用于针对验证环境中的每个类,配置类中的各个变量;处理模块520,用于针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理,并对类中的变量进行约束配置处理;生成模块530,用于针对实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。

作为本申请实施例的一种可能实现方式,配置模块510,具体用于:针对验证环境中的每个类,根据类中定义的各个变量以及变量之间关系,确定类中的目标变量,以及目标变量对应的配置类型;对类中的各个目标变量按照对应的配置类型进行配置。

作为本申请实施例的一种可能实现方式,配置模块510,还用于:针对验证环境中的每个类,针对类中的每个变量,判断变量是否满足预设配置条件,其中,预设配置条件为变量可以根据类中的其他变量计算得到;在变量满足预设配置条件时,确定变量为所述目标变量;根据目标变量所定义的参数的位数要求,确定目标变量对应的配置类型。

作为本申请实施例的一种可能实现方式,配置模块510,还用于:在目标变量所定义的参数的位数要求为位数小于等于预设位数阈值时,确定目标变量对应的配置类型为比特类型;在目标变量所定义的参数的位数要求为位数大于预设位数阈值时,确定目标变量对应的配置类型为整数类型。

作为本申请实施例的一种可能实现方式,处理模块520,具体用于:针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理;针对实例中加载的每个类,对类中的所有变量进行约束配置处理。

作为本申请实施例的一种可能实现方式,生成模块530,具体用于:针对实例中的每个约束配置中的每个函数,判断替代函数库中是否存在与所述函数对应的替代函数;在替代函数库中存在与函数对应的替代函数时,对实例中的函数采用对应的替代函数进行替代处理。

作为本申请实施例的一种可能实现方式,替代函数库中包括函数以及对应的替代函数,函数包括以下函数中的至少一种:嵌套函数、存在对同一个变量进行不同机制处理的函数、包含指定运算符的函数、包含指定关键字的函数;指定运算符包括以下运算符中的至少一种:不等于运算符、乘法运算符、取整运算符、取余运算符。

作为本申请实施例的一种可能实现方式,验证实例生成装置500还包括:获取模块和替代模块。

其中,获取模块,用于获取已有的验证实例;替代模块,用于针对已有的验证实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理。

本申请实施例的验证实例生成装置,通过针对验证环境中的每个类,配置所述类中的各个变量;针对验证环境中的每个实例,对实例需要的已配置的类进行加载处理,并对类中的变量进行约束配置处理;针对实例中的每个约束配置,对约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。该装置可实现通过对验证环境中的实例需要的已配置的类进行约束配置处理,并对约束配置中的函数采用替代函数库中的函数进行替代,以生成验证实例,由此,可使生成的验证实例既满足复杂约束同时提高验证平台中约束部分的性能,可对后期调试提供较高的便利性。

为了实现上述实施例,本申请还提出一种电子设备,如图6所示,图6是根据一示例性实施例示出的一种用于验证实例生成方法的电子设备的框图。

如图6所示,上述电子设备600包括:

存储器610及处理器620,连接不同组件(包括存储器610和处理器620)的总线630,存储器610存储有计算机程序,当处理器620执行所述程序时实现本申请实施例所述的验证实例生成方法。

总线630表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

电子设备600典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备600访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器610还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)640和/或高速缓存存储器650。电子设备600可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统660可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线630相连。存储器610可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。

具有一组(至少一个)程序模块670的程序/实用工具680,可以存储在例如存储器610中,这样的程序模块670包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块670通常执行本申请所描述的实施例中的功能和/或方法。

电子设备600也可以与一个或多个外部设备690(例如键盘、指向设备、显示器1091等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口692进行。并且,电子设备600还可以通过网络适配器693与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器693通过总线630与电子设备600的其它模块通信。应当明白,尽管图6中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理器620通过运行存储在存储器610中的程序,从而执行各种功能应用以及数据处理。

需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本申请实施例的验证实例生成的解释说明,此处不再赘述。

为了实现上述实施例,本申请还提出一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行上述实施例所述的验证实例生成方法。

为了实现上述实施例,本申请还提供一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行上述实施例所述的验证实例生成方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于印刷电路板的仿真系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类