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

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

Info

Publication number
CN113850046A
CN113850046A CN202111055784.4A CN202111055784A CN113850046A CN 113850046 A CN113850046 A CN 113850046A CN 202111055784 A CN202111055784 A CN 202111055784A CN 113850046 A CN113850046 A CN 113850046A
Authority
CN
China
Prior art keywords
class
configuration
function
verification
variable
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
Application number
CN202111055784.4A
Other languages
English (en)
Inventor
索健
王正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aixin Yuanzhi Semiconductor Shanghai Co Ltd
Original Assignee
Aixin Yuanzhi Semiconductor Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aixin Yuanzhi Semiconductor Shanghai Co Ltd filed Critical Aixin Yuanzhi Semiconductor Shanghai Co Ltd
Priority to CN202111055784.4A priority Critical patent/CN113850046A/zh
Publication of CN113850046A publication Critical patent/CN113850046A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

验证实例生成方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种验证实例生成方法、装置、电子设备及存储介质。
背景技术
随着芯片设计规模越来越大而复杂,在相关技术中,使用随机约束验证方法以满足验证需求。
但是,在随机约束验证方法中,随着约束(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操作。比如,可将以上代码修改为以下代码:
Figure BDA0003254578930000091
又比如,对于包含乘法运算符、取整运算符或取余运算符等函数,在可能的情况下用移位和逻辑运算来代替。
又比如,对于包含“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)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (18)

1.一种验证实例生成方法,其特征在于,包括:
针对验证环境中的每个类,配置所述类中的各个变量;
针对验证环境中的每个实例,对所述实例需要的已配置的类进行加载处理,并对所述类中的变量进行约束配置处理;
针对所述实例中的每个约束配置,对所述约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。
2.根据权利要求1所述的方法,其特征在于,所述针对验证环境中的每个类,配置所述类中的各个变量,包括:
针对验证环境中的每个类,根据所述类中定义的各个变量以及变量之间关系,确定所述类中的目标变量,以及所述目标变量对应的配置类型;
对所述类中的各个所述目标变量按照对应的配置类型进行配置。
3.根据权利要求2所述的方法,其特征在于,所述针对验证环境中的每个类,根据所述类中定义的各个变量以及变量之间关系,确定所述类中待随机配置的目标变量,以及所述目标变量对应的配置类型,包括:
针对验证环境中的每个类,针对所述类中的每个变量,判断所述变量是否满足预设配置条件,其中,所述预设配置条件为所述变量可以根据所述类中的其他变量计算得到;
在所述变量满足所述预设配置条件时,确定所述变量为所述目标变量;
根据所述目标变量所定义的参数的位数要求,确定所述目标变量对应的配置类型。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标变量所定义的参数的位数要求,确定所述目标变量对应的配置类型,包括:
在所述目标变量所定义的参数的位数要求为位数小于等于预设位数阈值时,确定所述目标变量对应的配置类型为比特类型;
在所述目标变量所定义的参数的位数要求为位数大于所述预设位数阈值时,确定所述目标变量对应的配置类型为整数类型。
5.根据权利要求1所述的方法,其特征在于,所述针对验证环境中的每个实例,对所述实例需要的已配置的类进行加载处理,并对所述类中的变量进行约束配置处理,包括:
针对验证环境中的每个实例,对所述实例需要的已配置的类进行加载处理;
针对所述实例中加载的每个类,对所述类中的所有变量进行约束配置处理。
6.根据权利要求1所述的方法,其特征在于,所述针对所述实例中的每个约束配置,对所述约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例,包括:
针对所述实例中的每个约束配置中的每个函数,判断所述替代函数库中是否存在与所述函数对应的替代函数;
在所述替代函数库中存在与所述函数对应的替代函数时,对所述实例中的所述函数采用对应的替代函数进行替代处理。
7.根据权利要求6所述的方法,所述替代函数库中包括函数以及对应的替代函数,所述函数包括以下函数中的至少一种:嵌套函数、存在对同一个变量进行不同机制处理的函数、包含指定运算符的函数、包含指定关键字的函数;
所述指定运算符包括以下运算符中的至少一种:不等于运算符、乘法运算符、取整运算符、取余运算符。
8.根据权利要求1所述的方法,其特征在于,还包括:
获取已有的验证实例;
针对所述已有的验证实例中的每个约束配置,对所述约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理。
9.一种验证实例生成装置,其特征在于,包括:
配置模块,用于针对验证环境中的每个类,配置所述类中的各个变量;
处理模块,用于针对验证环境中的每个实例,对所述实例需要的已配置的类进行加载处理,并对所述类中的变量进行约束配置处理;
生成模块,用于针对所述实例中的每个约束配置,对所述约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理,生成验证实例。
10.根据权利要求9所述的装置,其特征在于,所述配置模块,具体用于:
针对验证环境中的每个类,根据所述类中定义的各个变量以及变量之间关系,确定所述类中的目标变量,以及所述目标变量对应的配置类型;
对所述类中的各个所述目标变量按照对应的配置类型进行配置。
11.根据权利要求10所述的方法,其特征在于,所述配置模块,还用于:
针对验证环境中的每个类,针对所述类中的每个变量,判断所述变量是否满足预设配置条件,其中,所述预设配置条件为所述变量可以根据所述类中的其他变量计算得到;
在所述变量满足所述预设配置条件时,确定所述变量为所述目标变量;
根据所述目标变量所定义的参数的位数要求,确定所述目标变量对应的配置类型。
12.根据权利要求11所述的装置,其特征在于,所述配置模块,还用于:
在所述目标变量所定义的参数的位数要求为位数小于等于预设位数阈值时,确定所述目标变量对应的配置类型为比特类型;
在所述目标变量所定义的参数的位数要求为位数大于所述预设位数阈值时,确定所述目标变量对应的配置类型为整数类型。
13.根据权利要求9所述的装置,其特征在于,所述处理模块,具体用于:
针对验证环境中的每个实例,对所述实例需要的已配置的类进行加载处理;
针对所述实例中加载的每个类,对所述类中的所有变量进行约束配置处理。
14.根据权利要求9所述的装置,其特征在于,所述生成模块,具体用于:
针对所述实例中的每个约束配置中的每个函数,判断所述替代函数库中是否存在与所述函数对应的替代函数;
在所述替代函数库中存在与所述函数对应的替代函数时,对所述实例中的所述函数采用对应的替代函数进行替代处理。
15.根据权利要求14所述的装置,所述替代函数库中包括函数以及对应的替代函数,所述函数包括以下函数中的至少一种:嵌套函数、存在对同一个变量进行不同机制处理的函数、包含指定运算符的函数、包含指定关键字的函数;
所述指定运算符包括以下运算符中的至少一种:不等于运算符、乘法运算符、取整运算符、取余运算符。
16.根据权利要求9所述的装置,其特征在于,还包括:
获取模块,用于获取已有的验证实例;
替代模块,用于针对所述已有的验证实例中的每个约束配置,对所述约束配置中的各个函数采用替代函数库中对应的替代函数进行替代处理。
17.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
CN202111055784.4A 2021-09-09 2021-09-09 验证实例生成方法、装置、电子设备及存储介质 Pending CN113850046A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111055784.4A CN113850046A (zh) 2021-09-09 2021-09-09 验证实例生成方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111055784.4A CN113850046A (zh) 2021-09-09 2021-09-09 验证实例生成方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113850046A true CN113850046A (zh) 2021-12-28

Family

ID=78973751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111055784.4A Pending CN113850046A (zh) 2021-09-09 2021-09-09 验证实例生成方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113850046A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117709294A (zh) * 2024-02-05 2024-03-15 英诺达(成都)电子科技有限公司 集成电路的约束验证方法、装置、电子设备、介质及产品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117709294A (zh) * 2024-02-05 2024-03-15 英诺达(成都)电子科技有限公司 集成电路的约束验证方法、装置、电子设备、介质及产品
CN117709294B (zh) * 2024-02-05 2024-04-30 英诺达(成都)电子科技有限公司 集成电路的约束验证方法、装置、电子设备、介质及产品

Similar Documents

Publication Publication Date Title
JP5211751B2 (ja) 計算機、ダンププログラムおよびダンプ方法
US10044370B1 (en) Lossless binary compression in a memory constrained environment
US10884744B2 (en) System and method of loop vectorization by compressing indices and data elements from iterations based on a control mask
KR20110001881A (ko) 비트 에러 임계값 및 메모리 장치의 리맵핑
US20110154299A1 (en) Apparatus and method for executing instrumentation code
US10229044B2 (en) Conditional stack frame allocation
JP5840712B2 (ja) オンダイのプログラム可能なヒューズ
US20210132953A1 (en) Arithmetic devices for neural network
CN113850046A (zh) 验证实例生成方法、装置、电子设备及存储介质
US20100332914A1 (en) Dump output control apparatus and dump output control method
CN114676040A (zh) 一种测试覆盖率验证方法、装置及存储介质
US10103747B1 (en) Lossless binary compression in a memory constrained environment
CN110286990B (zh) 用户界面展示方法、装置、设备及存储介质
CN104536884A (zh) 代码测试方法和装置
CN110060196B (zh) 图像处理方法及装置
US9760282B2 (en) Assigning home memory addresses to function call parameters
US8803903B2 (en) Color space determination devices and display devices and systems including the same
US7895393B2 (en) RAID system and the operating method for the same
US7966361B1 (en) Single-cycle modulus operation
CN113379038A (zh) 数据处理方法和电子设备
US20020083291A1 (en) Nonvolatile semiconductor memory
US20040054956A1 (en) Accelerated galois data integrity crosscheck system and method
US8423748B2 (en) Register control circuit and register control method
US9021234B2 (en) Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing
US8566638B2 (en) Error detection and/or correction through coordinated computations

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
CB02 Change of applicant information

Country or region after: China

Address after: Room 59, 17th Floor, Science and Technology Innovation Building, No. 777 Zhongguan West Road, Zhuangshi Street, Ningbo City, Zhejiang Province, 315200

Applicant after: Aixin Yuanzhi Semiconductor Co.,Ltd.

Address before: Room 59, 17th Floor, Science and Technology Innovation Building, No. 777 Zhongguan West Road, Zhuangshi Street, Zhenhai District, Ningbo City, Zhejiang Province, 315200

Applicant before: Aixin Yuanzhi Semiconductor (Ningbo) Co.,Ltd.

Country or region before: China

Country or region after: China

Address after: Room 59, 17th Floor, Science and Technology Innovation Building, No. 777 Zhongguan West Road, Zhuangshi Street, Zhenhai District, Ningbo City, Zhejiang Province, 315200

Applicant after: Aixin Yuanzhi Semiconductor (Ningbo) Co.,Ltd.

Address before: 201702 room 1190, zone B, floor 11, building 1, No. 158 Shuanglian Road, Yangpu District, Shanghai

Applicant before: Aisin Yuanzhi semiconductor (Shanghai) Co.,Ltd.

Country or region before: China