CN118013903A - 文件操作验证系统、验证方法、设备及介质 - Google Patents
文件操作验证系统、验证方法、设备及介质 Download PDFInfo
- Publication number
- CN118013903A CN118013903A CN202410419626.XA CN202410419626A CN118013903A CN 118013903 A CN118013903 A CN 118013903A CN 202410419626 A CN202410419626 A CN 202410419626A CN 118013903 A CN118013903 A CN 118013903A
- Authority
- CN
- China
- Prior art keywords
- constraint
- handle
- configuration
- component
- environment
- 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.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims abstract description 130
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012360 testing method Methods 0.000 claims abstract description 43
- 230000005284 excitation Effects 0.000 claims abstract description 40
- 230000006870 function Effects 0.000 claims description 90
- 239000000306 component Substances 0.000 description 157
- 238000010586 diagram Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 238000013142 basic testing Methods 0.000 description 2
- 239000008358 core component Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/20—Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
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)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种文件操作验证系统、验证方法、设备及介质,文件操作验证系统包括约束配置组件、核心配置组件以及环境组件;环境组件包括配置池以及至少一个环境;约束配置组件,用于根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;核心配置组件,用于基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,获得变量随机值,并将变量随机值放至配置池中;环境,用于从配置池中获取验证所需的变量随机值,以配置环境;根据变量随机值生成测试激励;以及,基于测试激励在经过配置的环境下对待测设备进行验证。本申请的方案将约束关系与变量分离,从而能够缓解求解器的压力,提升工作效率。
Description
技术领域
本申请涉及芯片验证技术领域,尤其涉及一种文件操作验证系统、验证方法、设备及介质。
背景技术
随着集成电路产业的快速发展,芯片复杂度大大增加,对芯片功能验证的要求也越来越高。由于芯片验证的工作量在整个设计周期中的比例日益增大,因此,提升芯片验证的工作效率显得尤为重要。
当前验证环境以主流UVM(Universal Verification Methodology,通用验证方法学)组件为基础进行芯片验证工作。在仿真中,验证环境往往通过定义一个文件中的各种变量,附带一些约束集成在该文件中。同时,对该文件进行编译,在随机化过程中,求解器求解该文件时,需要找到约束与变量之间的对应关系,才能随机化得到验证所需变量的随机值。
但是,在现有验证环境中,由于在文件中存在大量的约束关系,导致求解器负载严重,同时还要对文件进行编译,增加了验证时间,降低工作效率。
发明内容
本申请提供一种文件操作验证系统、验证方法、设备及介质,将约束关系与变量分离,从而能够缓解求解器的压力,提升工作效率。
一方面,本申请提供一种文件操作验证系统,文件操作验证系统包括约束配置组件、核心配置组件以及环境组件;环境组件包括配置池以及至少一个环境;约束配置组件,用于根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;约束句柄库包括多个约束句柄,约束句柄中定义有对应变量的约束;约束配置文件包括用户指定的约束句柄的标识;核心配置组件,用于基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,获得变量随机值,并将变量随机值放至配置池中;环境,用于从配置池中获取验证所需的变量随机值,以配置环境;根据变量随机值生成测试激励;以及,基于测试激励在经过配置的环境下对待测设备进行验证。
在一种可能的实现方式中,约束配置组件包括文件生成组件、文件工具组件以及约束句柄库;文件生成组件用于提供操作界面,并根据操作界面下的用户操作生成约束配置文件;文件工具组件用于通过对约束配置文件进行解析,确定目标约束句柄的标识。
在一种可能的实现方式中,文件工具组件,还用于根据接收到的约束配置文件的文件名,通过命令行宏定义的方式,将约束配置文件加载至文件工具组件。
在一种可能的实现方式中,约束句柄库还包括约束句柄的标识以及约束句柄的函数;约束句柄库,具体用于根据目标约束句柄的标识,从约束句柄库中选取目标约束句柄的标识对应的约束句柄作为目标约束句柄。
在一种可能的实现方式中,核心配置组件,具体用于:将目标约束句柄添加至约束句柄队列;针对当前约束句柄队列中的每个目标约束句柄,通过调用约束句柄库中目标约束句柄的函数,对目标约束句柄对应的变量进行随机化,并将该目标约束句柄从约束句柄队列中清除,直至约束句柄队列当前被清空,得到变量随机值。
在一种可能的实现方式中,文件操作验证系统还包括激励配置组件;激励配置组件用于通过指针从核心配置组件中获取变量随机值,并根据变量随机值得到对应的事务包;以及,将事务包发送至环境,以使环境根据变量随机值生成测试激励。
在一种可能的实现方式中,约束配置文件的文件格式为txt格式。
另一方面,本申请提供一种基于文件操作验证系统的验证方法,文件操作验证系统包括约束配置组件、核心配置组件以及环境组件;环境组件包括配置池以及至少一个环境;方法包括:约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;约束句柄库包括多个约束句柄,约束句柄中定义有对应变量的约束;约束配置文件包括用户指定的约束句柄的标识;核心配置组件基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,获得变量随机值,并将变量随机值放至配置池中;环境从配置池中获取验证所需的变量随机值,以配置环境;根据变量随机值生成测试激励;以及,基于测试激励在经过配置的环境下对待测设备进行验证。
又一方面,本申请提供一种电子设备,包括:处理器、与处理器通信连接的存储器以及如前的系统。
又一方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,包括如前的系统。
本申请提供的文件操作验证系统、验证方法、设备及介质中,文件操作验证系统包括约束配置组件、核心配置组件以及环境组件;环境组件包括配置池以及至少一个环境;约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;相应的,核心配置组件基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,得到变量随机值放入配置池中;然后环境从配置池中获取验证所需的变量随机值,配置环境,根据变量随机值产生测试激励,基于测试激励在经过配置的环境下对待测设备进行验证。本申请的方案,将约束关系与变量分离开来,极大的缓解了求解器求解的压力,避免出现约束冲突的情况,并且便于调试,同时也减少了编译时间,提升了工作效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1中示例性示出了本申请实施例一提供的文件操作验证系统的结构示意图;
图2为约束配置组件的结构示意图;
图3为本示例提供的文件操作验证系统的结构示意图;
图4中示例性示出了本申请实施例二提供的基于文件操作验证系统的验证方法的流程示意图;
图5为本申请实施例三提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请中的用语“包括”和“具有”用以表示开放式的包括在内的意思,并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记或区分使用,不是对其对象的先后顺序或数量限制。此外,附图中的不同元件和区域只是示意性示出,因此不限于附图中示出的尺寸或距离。下面以具体的实施例对技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
近些年来,随着集成电路技术的发展,芯片的集成度越来越高。在芯片设计的各阶段,需要不同验证方法和多种验证工具相互配合,解决不同的验证问题,给芯片的验证工作带来了困难和挑战。在现有的验证环境中,通常使用UVM验证方法学来进行芯片验证。UVM验证方法学为通用验证方法学,是一个以系统级硬件描述语言类库为主体的验证平台开发框架,研究人员可以利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。
作为示例,在实际应用中,验证环境通常是在文件中定义各种变量,以及定义一些约束一起存储在该文件中,通过约束变量的不同内容以对应代码中的各种功能。该文件被实例化在事务包中,被激励配置组件传达至驱动器组件中以产生激励,从而控制验证环境中各组件的行为。记分牌通过预测值和实际值的比较来验证代码功能的准确性。
但是,由于现有技术文件中的各变量和约束均集成在该文件中,导致了求解器在求解时,需要兼顾约束关系,找到约束与变量之间的对应关系,使得整个验证平台拓展文件时受到限制,需要不断修改约束关系或需要定向随机某些约束关系。多人共同开展该平台的验证工作或在验证工作进行一段时间有新的工程师加入团队共同开发文件时,由于需要定向随机某些约束关系,使得验证工作与待测设备的功能形成强相关的关系。在编写文件的初级阶段需要充分了解对应的功能才能控制定向约束,使得整个平台对多人开发文件不友好,降低了工作效率。同时现有的验证平台不易于跨平台复用验证环境,在复杂的验证环境中,大量的文件需要编译,增加了编译时间,并且由于存在大量约束关系,导致求解器负载严重,影响求解性能。
本申请提供的技术内容,旨在解决相关技术的如上述技术问题。本申请实施例中,文件操作验证系统包括约束配置组件、核心配置组件以及环境组件;环境组件包括配置池以及至少一个环境;约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;相应的,核心配置组件基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,得到变量随机值放入配置池中;然后环境从配置池中获取验证所需的变量随机值,配置环境,根据变量随机值产生测试激励,基于测试激励在经过配置的环境下对待测设备进行验证。本申请的方案,将约束关系与变量分离开来,极大的缓解了求解器求解的压力,避免出现约束冲突的情况,并且便于调试,同时也减少了编译时间,提升了工作效率。
本申请示例的一些方面涉及上述考虑。以下结合一些示例对方案进行示例介绍。
在对本申请实施例进行介绍说明之前,首先对本申请中涉及的一些名词进行解释说明。
1、约束配置组件:根据约束配置文件,从约束句柄库中选取目标约束句柄。
2、核心配置组件:内置配置信息以及环境配置信息,存储n个可约束的数据变量。
3、环境组件:包括配置池和多个环境。
4、配置池:存储n次配置信息进行n次激励的池子。
5、环境:是一个综合性的工具软件,它把程序设计全过程所需的各项功能集合在一起,为程序设计人员提供完整的服务。
6、文件生成组件:用于生成约束配置文件,描述验证所需的约束句柄。
7、文件工具组件:解析约束配置文件,并将约束配置文件中的文字描述转化编译器能认可的语言。
8、约束句柄库:用于存放验证所需的约束句柄,控制变量随机取值的范围。
9、激励配置组件:多个激励序列的集合。
10、事务包:访问并可能更新数据库中各种数据项的一个程序执行单元。当在数据库中更改数据成功时,在事务中更改的数据便会提交,不再改变。否则,事务就取消或者回滚,更改无效。
实施例一
图1中示例性示出了本申请实施例一提供的文件操作验证系统的结构示意图,如图1,该系统包括:约束配置组件11、核心配置组件12以及环境组件13;环境组件13包括配置池131以及至少一个环境132;
约束配置组件11,用于根据用户输入的约束配置文件,从约束句柄库113中选取目标约束句柄;约束句柄库113包括多个约束句柄,约束句柄中定义有对应变量的约束;约束配置文件包括用户指定的约束句柄的标识;
核心配置组件12,用于基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,获得变量随机值,并将变量随机值放至配置池131中;
环境132,用于从配置池131中获取验证所需的变量随机值,以配置环境132;根据变量随机值生成测试激励;以及,基于测试激励在经过配置的环境132下对待测设备进行验证。
实际应用中,该文件操作验证系统的实现方式有多种,比如,可以通过计算机程序实现,例如,应用软件等;或者,也可以实现为存储有相关计算机程序的介质,例如,U盘、云盘等;再或者,还可以通过集成或安装有相关计算机程序的实体装置实现,例如,芯片等。
具体的,文件操作验证系统以基础测试为基类,派生出不同的任务。其中,每个任务中包括需要进行随机化的变量。该文件操作验证系统包括约束配置组件、核心配置组件以及环境组件,环境组件包括配置池以及至少一个环境。图1中所示为该文件操作验证系统包括4个环境,分别为环境A、环境B、环境C和环境D。需要说明的是,环境的数量在图1中仅为示例,具体数量在此不做限定,只需满足当前验证系统的需求即可。约束配置文件为用户预先生成的,其中,约束配置文件包括用户指定的约束句柄的标识,用户通过对约束配置文件的编写来选择当前任务中的变量需对应的约束句柄标识。约束句柄的标识可以为数字,比如1、2、3、4等,也可以为字母,比如A、B、C、D等,可以为文字也可以为其他形式,在此不做限定。
具体的,约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄,约束句柄库中包括多个约束句柄,约束句柄中定义有对应变量的约束。结合前述内容,用户输入的约束配置文件中包括约束句柄的标识为A、B、C、D,对应在约束句柄库中选取到约束句柄标识为A对应的约束句柄为a<0;约束句柄标识为B对应的约束句柄为b>0;约束句柄标识为C对应的约束句柄为0<c<10;约束句柄标识为D对应的约束句柄为10<d<20,将在约束句柄库中选取到的以上四个约束句柄,即a<0、b>0、0<c<10、10<d<20作为目标约束句柄,对应变量为a、b、c、d。
相应的,文件操作验证系统中的核心组件,即核心配置组件,基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,得到变量随机值放入配置池中。在核心配置组件中的各个变量的状态受约束句柄库的约束,约束句柄库中包括各种约束关系,由函数来控制变量的开关行为。环境组件中包括配置池,用来存放验证所需的变量随机值,控制验证环境相对应的验证行为。结合前述内容,核心配置组件基于前述内容的目标约束句柄,对变量a、b、c、d进行随机化,得到变量a对应的随机值为﹣1、﹣2;变量b对应的随机值为3、4;变量c对应的随机值为6、7;变量d对应的随机值为11、12。并将得到的各变量的随机值放置于配置池中。需要说明的是,上述仅为一种示例,对变量进行随机化得到的随机值的数量在此不做限定。其中,表1为配置池的示意图。配置池中分为类的成员和类的函数两部分。类的成员包括变量队列和变量,对应表1中的cfg_queue和cfg,变量队列负责存储所有的变量随机值,变量为指针变量,通过指针将文件操作验证系统中生成的变量随机值索引至变量队列中。类的函数包括put函数、get_size函数、get函数以及peak函数,分别对应表1中的function_put、function_get_size、function_get以及function_peak。put函数用于在文件操作验证系统中调用该函数将生成的变量随机值放置于变量队列中;get_size函数用于返回当前变量队列中变量随机值的数量;get函数用于返回变量队列中先放入的变量随机值成员,返回后在变量队列中删除该成员;peak函数用于返回变量队列中先放入的变量随机值成员,返回后在变量队列中不删除该成员。
表1
再具体的,环境从配置池中获取验证所需的变量随机值,配置环境,根据变量随机值生成测试激励,并基于测试激励在经过配置的环境下对待测设备进行验证。若预测值与实际值一致,则判定待测设备验证成功;若预测值与实际值不一致,则判定待测设备验证失败。
上述示例中,约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;相应的,核心配置组件基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,得到变量随机值放入配置池中;然后环境从配置池中获取验证所需的变量随机值,配置环境,根据变量随机值产生测试激励,基于测试激励在经过配置的环境下对待测设备进行验证。本申请的方案,将约束关系与变量分离开来,极大的缓解了求解器求解的压力,避免出现约束冲突的情况,并且便于调试,同时也减少了编译时间,提升了工作效率。
图2为约束配置组件11的结构示意图。在前述示例的基础上,约束配置组件11包括文件生成组件111、文件工具组件112以及约束句柄库113;文件生成组件111用于提供操作界面,并根据操作界面下的用户操作生成约束配置文件;文件工具组件112用于通过对约束配置文件进行解析,确定目标约束句柄的标识。
具体的,约束配置组件包括文件生成组件、文件工具组件以及约束句柄库。文件生成组件提供用户操作的界面,用户通过在界面上操作,生成约束配置文件。该界面可以为一个系统,用户在系统中输入指定的约束句柄的标识,可以自动生成约束配置文件,也可以为其他形式,在此不做限定,只需满足可以生成约束配置文件即可。其中,约束配置文件的文件格式为txt格式。约束配置文件的每一行代表生成一次激励和验证环境行为的配置。格式为value1_mode_describe:xxx内容可由用户自行定义和改进。一个value_mode的描述,控制着一个约束句柄中打开和关闭某些约束,进而控制对应的变量。文件工具组件负责解析生成的约束配置文件的值,提取其中的描述,将文件的内容解析,并转化为文件操作验证系统可以认可的数据类型,控制约束句柄内的约束体的开关,并确定出目标约束句柄的标识。通过本示例的方案,用户根据操作界面生成约束配置文件,并且约束配置文件的文件格式为txt格式,无需编译,减少了文件编译时间,提升了工作效率。
在前述示例的基础上,文件工具组件112还用于根据接收到的约束配置文件的文件名,通过命令行宏定义的方式,将约束配置文件加载至文件工具组件112。具体的,在验证过程中,文件生成组件生成约束配置文件后,文件工具组件接收文件生成组件生成的约束配置文件,每个约束配置文件对应一个文件名,文件工具组件根据接收到的约束配置文件的文件名,通过命令行宏定义的方式,将文字描述转换成硬件描述语言,并将约束配置文件加载至文件工具组件。命令行宏定义的方式与现有技术相同,在此不再解释。通过本示例的方案,提高了约束配置文件的可读性和运行效率。
在一个示例中,约束句柄库113还包括约束句柄的标识以及约束句柄的函数;约束句柄库113,具体用于:根据目标约束句柄的标识,从约束句柄库113中选取目标约束句柄的标识对应的约束句柄作为目标约束句柄。具体的,约束句柄库中包括多个约束句柄,还包括多个约束句柄对应的标识以及对应约束句柄的函数。在约束句柄库中,每个约束句柄对应着该约束句柄内容、该约束句柄标识以及该约束句柄的函数。其中约束句柄的函数为set_item函数,该函数原型为void set_item(ITEM item){this.item=item;}。根据文件工具组件对约束配置文件进行解析得到的目标约束句柄的标识,从约束句柄库中选取目标约束句柄的标识对应的约束句柄,并将选取得到的约束句柄作为目标约束句柄。结合前述内容,文件工具组件对约束配置文件进行解析得到的目标约束句柄的标识为A,从约束句柄库中选取得到标识为A的约束句柄为a<0,那么将a<0作为目标约束句柄。上述示例中,通过设置约束句柄库,提升了工作效率。
在前述示例的基础上,核心配置组件12,具体用于:将目标约束句柄添加至约束句柄队列;针对当前约束句柄队列中的每个目标约束句柄,通过调用约束句柄库113中目标约束句柄的函数,对目标约束句柄对应的变量进行随机化,并将该目标约束句柄从约束句柄队列中清除,直至约束句柄队列当前被清空,得到变量随机值。
具体的,表2为核心配置组件的示意图。核心配置组件中分为类的成员和类的函数两部分。类的成员包括约束句柄队列和变量,对应表2中的HANLDER_QUEUE和value_a、value_b、value_c,约束句柄队列负责存储所有的变量对应的约束句柄,变量负责规划激励产生的相关变量以及一些验证环境需要用到的变量,所有变量需要随机,用rand定义,生成指定范围内的随机数。类的函数包括add_HANLDER函数、policy_reset函数以及pre_randomize函数,分别对应表2中的function_add_HANLDER、function_policy_reset以及function_pre_randomize。add_HANLDER函数用于向约束句柄队列中添加约束句柄元素;policy_reset函数用于清空约束句柄队列中的元素;pre_randomize函数用于在此函数阶段,调用约束句柄队列中的约束句柄函数,对约束句柄函数对应的变量进行随机化。
表2
具体的,核心配置组件通过add_HANLDER函数将在约束句柄库中选取的目标约束句柄添加至约束句柄队列,也就是添加至HANLDER_QUEUE函数中,针对当前HANLDER_QUEUE函数中的每个目标约束句柄,通过调用约束句柄库中目标约束句柄的函数,也就是set_item函数,在核心配置组件中pre_randomize函数生效的阶段,对目标约束句柄对应的变量进行随机化,并将该目标约束句柄通过policy_reset函数从目标约束句柄队列中清除,直至约束句柄队列当前被清空,得到变量随机值。通过本示例的方案,缓解了求解器求解的压力,避免出现约束冲突的情况,并且便于调试,提升了工作效率。
图3为本示例提供的文件操作验证系统的结构示意图。如图3,在一个示例中,文件操作验证系统还包括激励配置组件14;激励配置组件14用于通过指针从核心配置组件12中获取变量随机值,并根据变量随机值得到对应的事务包;以及,将事务包发送至环境132,以使环境132根据变量随机值生成测试激励。
具体的,文件操作验证系统还包括激励配置组件,激励配置组件使用指针函数,在核心配置组件中获取变量随机值,根据变量随机值配置激励配置组件中的事务包,得到变量随机值对应的事务包,并将变量随机值对应的事务包发送至环境中,环境接收到事务包,根据其中的变量随机值生成对应的测试激励。通过本示例的方案,使得验证过程稳定有序,便于调试。
本实施例提供的文件操作验证系统中,文件操作验证系统包括约束配置组件、核心配置组件以及环境组件;环境组件包括配置池以及至少一个环境;约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;相应的,核心配置组件基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,得到变量随机值放入配置池中;然后环境从配置池中获取验证所需的变量随机值,配置环境,根据变量随机值产生测试激励,基于测试激励在经过配置的环境下对待测设备进行验证。本申请的方案,将约束关系与变量分离开来,极大的缓解了求解器求解的压力,避免出现约束冲突的情况,并且便于调试,同时也减少了编译时间,提升了工作效率。
实施例二
图4中示例性示出了本申请实施例二提供的基于文件操作验证系统的验证方法的流程示意图,本示例的执行主体可以为文件操作验证系统,文件操作验证系统包括约束配置组件、核心配置组件以及环境组件;环境组件包括配置池以及至少一个环境;如图4,该方法包括:
步骤101、约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;约束句柄库包括多个约束句柄,约束句柄中定义有对应变量的约束;约束配置文件包括用户指定的约束句柄的标识;
步骤102、核心配置组件基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,获得变量随机值,并将变量随机值放至配置池中;
步骤103、环境从配置池中获取验证所需的变量随机值,以配置环境;根据变量随机值生成测试激励;以及,基于测试激励在经过配置的环境下对待测设备进行验证。
实际应用中,该方法的执行主体可以为文件操作验证系统,其实现方式有多种,比如,可以通过计算机程序实现,例如,应用软件等;或者,也可以实现为存储有相关计算机程序的介质,例如,U盘、云盘等;再或者,还可以通过集成或安装有相关计算机程序的实体装置实现,例如,芯片等。
本示例中的验证方法应用于如图1的文件操作验证系统,具体的,文件操作验证系统以基础测试为基类,派生出不同的任务。其中,每个任务中包括需要进行随机化的变量。该文件操作验证系统包括约束配置组件、核心配置组件以及环境组件,环境组件包括配置池以及至少一个环境。作为示例,图1中所示为该文件操作验证系统包括4个环境,分别为环境A、环境B、环境C和环境D。需要说明的是,环境的数量在图1中仅为示例,具体数量在此不做限定,只需满足当前验证系统的需求即可。约束配置文件为用户预先生成的,其中,约束配置文件包括用户指定的约束句柄的标识,用户通过对约束配置文件的编写来选择当前任务中的变量需对应的约束句柄标识。举例来说,约束句柄的标识可以为数字,比如1、2、3、4等,也可以为字母,比如A、B、C、D等,可以为文字也可以为其他形式,在此不做限定。
具体的,约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄,约束句柄库中包括多个约束句柄,约束句柄中定义有对应变量的约束。结合前述举例,用户输入的约束配置文件中包括约束句柄的标识为A、B、C、D,对应在约束句柄库中选取到约束句柄标识为A对应的约束句柄为a<0;约束句柄标识为B对应的约束句柄为b>0;约束句柄标识为C对应的约束句柄为0<c<10;约束句柄标识为D对应的约束句柄为10<d<20,将在约束句柄库中选取到的以上四个约束句柄,即a<0、b>0、0<c<10、10<d<20作为目标约束句柄,对应变量为a、b、c、d。
相应的,文件操作验证系统中的核心组件,即核心配置组件,基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,得到变量随机值放入配置池中。在核心配置组件中的各个变量的状态受约束句柄库的约束,约束句柄库中包括各种约束关系,由函数来控制变量的开关行为。环境组件中包括配置池,用来存放验证所需的变量随机值,控制验证环境相对应的验证行为。结合前述举例,核心配置组件基于前述举例的目标约束句柄,对变量a、b、c、d进行随机化,得到变量a对应的随机值为﹣1、﹣2;变量b对应的随机值为3、4;变量c对应的随机值为6、7;变量d对应的随机值为11、12。并将得到的各变量的随机值放置于配置池中。需要说明的是,上述仅为一种示例,对变量进行随机化得到的随机值的数量在此不做限定。其中,表1为配置池的示意图。配置池中分为类的成员和类的函数两部分。类的成员包括变量队列和变量,对应表1中的cfg_queue和cfg,变量队列负责存储所有的变量随机值,变量为指针变量,通过指针将文件操作验证系统中生成的变量随机值索引至变量队列中。类的函数包括put函数、get_size函数、get函数以及peak函数,分别对应表1中的function_put、function_get_size、function_get以及function_peak。put函数用于在文件操作验证系统中调用该函数将生成的变量随机值放置于变量队列中;get_size函数用于返回当前变量队列中变量随机值的数量;get函数用于返回变量队列中先放入的变量随机值成员,返回后在变量队列中删除该成员;peak函数用于返回变量队列中先放入的变量随机值成员,返回后在变量队列中不删除该成员。
表1
再具体的,环境从配置池中获取验证所需的变量随机值,配置环境,根据变量随机值生成测试激励,并基于测试激励在经过配置的环境下对待测设备进行验证。若预测值与实际值一致,则判定待测设备验证成功;若预测值与实际值不一致,则判定待测设备验证失败。
上述示例中,约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;相应的,核心配置组件基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,得到变量随机值放入配置池中;然后环境从配置池中获取验证所需的变量随机值,配置环境,根据变量随机值产生测试激励,基于测试激励在经过配置的环境下对待测设备进行验证。本申请的方案,将约束关系与变量分离开来,极大的缓解了求解器求解的压力,避免出现约束冲突的情况,并且便于调试,同时也减少了编译时间,提升了工作效率。
在前述示例的基础上,约束配置组件包括文件生成组件、文件工具组件以及约束句柄库;约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄,包括:文件生成组件提供操作界面,并根据操作界面下的用户操作生成约束配置文件;文件工具组件通过对约束配置文件进行解析,确定目标约束句柄的标识。
具体的,约束配置组件包括文件生成组件、文件工具组件以及约束句柄库。文件生成组件提供用户操作的界面,用户通过在界面上操作,生成约束配置文件。该界面可以为一个系统,用户在系统中输入指定的约束句柄的标识,可以自动生成约束配置文件,也可以为其他形式,在此不做限定,只需满足可以生成约束配置文件即可。其中,约束配置文件的文件格式为txt格式。约束配置文件的每一行代表生成一次激励和验证环境行为的配置。比如,格式为value1_mode_describe:xxx内容可由用户自行定义和改进。一个value_mode的描述,控制着一个约束句柄中打开和关闭某些约束,进而控制对应的变量。文件工具组件负责解析生成的约束配置文件的值,提取其中的描述,将文件的内容解析,并转化为文件操作验证系统可以认可的数据类型,控制约束句柄内的约束体的开关,并确定出目标约束句柄的标识。通过本示例的方案,用户根据操作界面生成约束配置文件,并且约束配置文件的文件格式为txt格式,无需编译,减少了文件编译时间,提升了工作效率。
在前述示例的基础上,方法还包括:文件工具组件根据接收到的约束配置文件的文件名,通过命令行宏定义的方式,将约束配置文件加载至文件工具组件。具体的,在验证过程中,文件生成组件生成约束配置文件后,文件工具组件接收文件生成组件生成的约束配置文件,每个约束配置文件对应一个文件名,文件工具组件根据接收到的约束配置文件的文件名,通过命令行宏定义的方式,将文字描述转换成硬件描述语言,并将约束配置文件加载至文件工具组件。命令行宏定义的方式与现有技术相同,在此不再解释。通过本示例的方案,提高了约束配置文件的可读性和运行效率。
在一个示例中,约束句柄库还包括约束句柄的标识以及约束句柄的函数;方法还包括:根据目标约束句柄的标识,从约束句柄库中选取目标约束句柄的标识对应的约束句柄作为目标约束句柄。具体的,约束句柄库中包括多个约束句柄,还包括多个约束句柄对应的标识以及对应约束句柄的函数。比如,在约束句柄库中,每个约束句柄对应着该约束句柄内容、该约束句柄标识以及该约束句柄的函数。其中约束句柄的函数为set_item函数,该函数原型为void set_item(ITEM item){this.item=item;}。根据文件工具组件对约束配置文件进行解析得到的目标约束句柄的标识,从约束句柄库中选取目标约束句柄的标识对应的约束句柄,并将选取得到的约束句柄作为目标约束句柄。结合前述举例,文件工具组件对约束配置文件进行解析得到的目标约束句柄的标识为A,从约束句柄库中选取得到标识为A的约束句柄为a<0,那么将a<0作为目标约束句柄。上述示例中,通过设置约束句柄库,提升了工作效率。
在前述示例的基础上,核心配置组件基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,获得变量随机值,包括:将目标约束句柄添加至约束句柄队列;针对当前约束句柄队列中的每个目标约束句柄,通过调用约束句柄库中目标约束句柄的函数,对目标约束句柄对应的变量进行随机化,并将该目标约束句柄从约束句柄队列中清除,直至约束句柄队列当前被清空,得到变量随机值。
具体的,表2为核心配置组件的示意图。核心配置组件中分为类的成员和类的函数两部分。类的成员包括约束句柄队列和变量,对应表2中的HANLDER_QUEUE和value_a、value_b、value_c,约束句柄队列负责存储所有的变量对应的约束句柄,变量负责规划激励产生的相关变量以及一些验证环境需要用到的变量,所有变量需要随机,用rand定义,生成指定范围内的随机数。类的函数包括add_HANLDER函数、policy_reset函数以及pre_randomize函数,分别对应表2中的function_add_HANLDER、function_policy_reset以及function_pre_randomize。add_HANLDER函数用于向约束句柄队列中添加约束句柄元素;policy_reset函数用于清空约束句柄队列中的元素;pre_randomize函数用于在此函数阶段,调用约束句柄队列中的约束句柄函数,对约束句柄函数对应的变量进行随机化。
表2
具体的,核心配置组件通过add_HANLDER函数将在约束句柄库中选取的目标约束句柄添加至约束句柄队列,也就是添加至HANLDER_QUEUE函数中,针对当前HANLDER_QUEUE函数中的每个目标约束句柄,通过调用约束句柄库中目标约束句柄的函数,也就是set_item函数,在核心配置组件中pre_randomize函数生效的阶段,对目标约束句柄对应的变量进行随机化,并将该目标约束句柄通过policy_reset函数从目标约束句柄队列中清除,直至约束句柄队列当前被清空,得到变量随机值。通过本示例的方案,缓解了求解器求解的压力,避免出现约束冲突的情况,并且便于调试,提升了工作效率。
在一个示例中,文件操作验证系统还包括激励配置组件,方法还包括:激励配置组件通过指针从核心配置组件中获取变量随机值,并根据变量随机值得到对应的事务包;以及,将事务包发送至环境,以使环境根据变量随机值生成测试激励。
具体的,文件操作验证系统还包括激励配置组件,激励配置组件使用指针函数,在核心配置组件中获取变量随机值,根据变量随机值配置激励配置组件中的事务包,得到变量随机值对应的事务包,并将变量随机值对应的事务包发送至环境中,环境接收到事务包,根据其中的变量随机值生成对应的测试激励。通过本示例的方案,使得验证过程稳定有序,便于调试。
本实施例提供的基于文件操作验证系统的验证方法中,文件操作验证系统包括约束配置组件、核心配置组件以及环境组件;环境组件包括配置池以及至少一个环境;约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;相应的,核心配置组件基于目标约束句柄,对目标约束句柄对应的变量在约束下进行随机化,得到变量随机值放入配置池中;然后环境从配置池中获取验证所需的变量随机值,配置环境,根据变量随机值产生测试激励,基于测试激励在经过配置的环境下对待测设备进行验证。本申请的方案,将约束关系与变量分离开来,极大的缓解了求解器求解的压力,避免出现约束冲突的情况,并且便于调试,同时也减少了编译时间,提升了工作效率。
实施例三
图5为本申请实施例三提供的电子设备的结构示意图,如图5,该电子设备包括:
处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(Communication Interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器292中的逻辑指令,以执行上述示例的方法。
此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法示例中的方法。
存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现任一实施例中的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种文件操作验证系统,其特征在于,包括约束配置组件、核心配置组件以及环境组件;所述环境组件包括配置池以及至少一个环境;
所述约束配置组件,用于根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;所述约束句柄库包括多个约束句柄,所述约束句柄中定义有对应变量的约束;所述约束配置文件包括所述用户指定的约束句柄的标识;
所述核心配置组件,用于基于所述目标约束句柄,对所述目标约束句柄对应的变量在约束下进行随机化,获得变量随机值,并将所述变量随机值放至所述配置池中;
所述环境,用于从所述配置池中获取验证所需的变量随机值,以配置所述环境;根据所述变量随机值生成测试激励;以及,基于所述测试激励在经过配置的所述环境下对待测设备进行验证。
2.根据权利要求1所述的系统,其特征在于,所述约束配置组件包括文件生成组件、文件工具组件以及所述约束句柄库;
所述文件生成组件用于提供操作界面,并根据所述操作界面下的用户操作生成所述约束配置文件;
所述文件工具组件用于通过对所述约束配置文件进行解析,确定所述目标约束句柄的标识。
3.根据权利要求2所述的系统,其特征在于,所述文件工具组件,还用于根据接收到的所述约束配置文件的文件名,通过命令行宏定义的方式,将所述约束配置文件加载至所述文件工具组件。
4.根据权利要求2所述的系统,其特征在于,所述约束句柄库还包括所述约束句柄的标识以及所述约束句柄的函数;所述约束句柄库,具体用于:
根据所述目标约束句柄的标识,从所述约束句柄库中选取所述目标约束句柄的标识对应的约束句柄作为目标约束句柄。
5.根据权利要求4所述的系统,其特征在于,所述核心配置组件,具体用于:
将所述目标约束句柄添加至约束句柄队列;
针对当前所述约束句柄队列中的每个目标约束句柄,通过调用所述约束句柄库中所述目标约束句柄的函数,对所述目标约束句柄对应的变量进行随机化,并将该目标约束句柄从所述约束句柄队列中清除,直至所述约束句柄队列当前被清空,得到所述变量随机值。
6.根据权利要求1所述的系统,其特征在于,所述文件操作验证系统还包括激励配置组件;
所述激励配置组件用于通过指针从所述核心配置组件中获取所述变量随机值,并根据所述变量随机值得到对应的事务包;以及,将所述事务包发送至所述环境,以使所述环境根据所述变量随机值生成所述测试激励。
7.根据权利要求1-6中任一项所述的系统,其特征在于,所述约束配置文件的文件格式为txt格式。
8.一种基于文件操作验证系统的验证方法,其特征在于,所述文件操作验证系统包括约束配置组件、核心配置组件以及环境组件;所述环境组件包括配置池以及至少一个环境;所述方法包括:
所述约束配置组件根据用户输入的约束配置文件,从约束句柄库中选取目标约束句柄;所述约束句柄库包括多个约束句柄,所述约束句柄中定义有对应变量的约束;所述约束配置文件包括所述用户指定的约束句柄的标识;
所述核心配置组件基于所述目标约束句柄,对所述目标约束句柄对应的变量在约束下进行随机化,获得变量随机值,并将所述变量随机值放至所述配置池中;
所述环境从所述配置池中获取验证所需的变量随机值,以配置所述环境;根据所述变量随机值生成测试激励;以及,基于所述测试激励在经过配置的所述环境下对待测设备进行验证。
9.一种电子设备,其特征在于,包括:处理器、与所述处理器通信连接的存储器以及如权利要求1-7中任一项所述的系统。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,包括如权利要求1-7中任一项所述的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410419626.XA CN118013903B (zh) | 2024-04-09 | 2024-04-09 | 文件操作验证系统、验证方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410419626.XA CN118013903B (zh) | 2024-04-09 | 2024-04-09 | 文件操作验证系统、验证方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118013903A true CN118013903A (zh) | 2024-05-10 |
CN118013903B CN118013903B (zh) | 2024-06-28 |
Family
ID=90958093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410419626.XA Active CN118013903B (zh) | 2024-04-09 | 2024-04-09 | 文件操作验证系统、验证方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118013903B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318486A1 (en) * | 2012-05-23 | 2013-11-28 | Lawrence SASAKI | Method and system for generating verification environments |
CN114492257A (zh) * | 2022-01-25 | 2022-05-13 | 杭州云合智网技术有限公司 | 芯片验证测试用例随机约束的管理和重用方法、存储介质 |
CN117744548A (zh) * | 2023-11-21 | 2024-03-22 | 深圳鲲云信息科技有限公司 | 一种芯片验证方法、装置和存储介质 |
-
2024
- 2024-04-09 CN CN202410419626.XA patent/CN118013903B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318486A1 (en) * | 2012-05-23 | 2013-11-28 | Lawrence SASAKI | Method and system for generating verification environments |
CN114492257A (zh) * | 2022-01-25 | 2022-05-13 | 杭州云合智网技术有限公司 | 芯片验证测试用例随机约束的管理和重用方法、存储介质 |
CN117744548A (zh) * | 2023-11-21 | 2024-03-22 | 深圳鲲云信息科技有限公司 | 一种芯片验证方法、装置和存储介质 |
Non-Patent Citations (2)
Title |
---|
SANTAMBROGIO, M.D等: "Analysis and validation of partially dynamically reconfigurable architecture based on Xilinx FPGAs", 《2010 IEEE INTERNATIONAL SYMPOSIUM ON PARALLEL & DISTRIBUTED PROCESSING, WORKSHOPS AND PHD FORUM》, 31 December 2010 (2010-12-31) * |
朱思良;: "基于VMM验证方法学的MCU验证环境", 中国集成电路, no. 01, 5 January 2011 (2011-01-05) * |
Also Published As
Publication number | Publication date |
---|---|
CN118013903B (zh) | 2024-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5303170A (en) | System and method for process modelling and project planning | |
US7941771B2 (en) | Method for functional verification of an integrated circuit model for constituting a verification platform, equipment emulator and verification platform | |
US8402438B1 (en) | Method and system for generating verification information and tests for software | |
CN107480327B (zh) | 一种仿真验证方法、装置和电子设备 | |
Ferreira et al. | Automated verification of the FreeRTOS scheduler in Hip/Sleek | |
US7007207B2 (en) | Scheduling of transactions in system-level test program generation | |
Seiger et al. | Test modeling for context-aware ubiquitous applications with feature petri nets | |
Feuerstack et al. | Automated usability evaluation during model-based interactive system development | |
CN118013903B (zh) | 文件操作验证系统、验证方法、设备及介质 | |
CN111580409B (zh) | 面向实时嵌入式系统的故障仿真测试方法 | |
Nativ et al. | Cost evaluation of coverage directed test generation for the IBM mainframe | |
Khoroshilov et al. | Modeling environment for static verification of Linux kernel modules | |
Pettit et al. | Modeling behavioral patterns of concurrent software architectures using Petri nets | |
Liu et al. | Software component specification using design by contract | |
Schmitt et al. | A case study of specification and verification using JML in an avionics application | |
US6385763B1 (en) | Methodology for mapping use cases to operations for operational profile development | |
Krämer et al. | Implementing Wireless Sensor Network applications using hierarchical finite state machines | |
Osterloh et al. | Automated UI evaluation based on a cognitive architecture and UsiXML | |
CN112989752B (zh) | 一种电源方案的仿真方法、仿真装置、终端设备及介质 | |
US20180129481A1 (en) | Method and computer for determining selection connection structures in a graphics computer program | |
Davis et al. | Prototyping | |
US7634396B2 (en) | Method and computer program product for generation of bus functional models | |
Ballance | Unleashing Portable Stimulus Productivity with a PSS Reuse Strategy | |
Bouarioua et al. | From UML sequence diagrams to labeled generalized stochastic Petri net models using graph transformation | |
US7739654B2 (en) | Model curation for integrated circuit designs |
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 |