CN114564394A - 一种测试用例确定方法、***及相关组件 - Google Patents
一种测试用例确定方法、***及相关组件 Download PDFInfo
- Publication number
- CN114564394A CN114564394A CN202210182265.2A CN202210182265A CN114564394A CN 114564394 A CN114564394 A CN 114564394A CN 202210182265 A CN202210182265 A CN 202210182265A CN 114564394 A CN114564394 A CN 114564394A
- Authority
- CN
- China
- Prior art keywords
- test
- test case
- target
- function
- excitation sequence
- 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
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/3684—Test management for test design, e.g. generating new test cases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请公开了一种测试用例确定方法、***及相关组件,该方法包括:接收目标测试参数;查询激励池中是否存在对应所述目标测试参数的测试激励序列;若否,则根据所述目标测试参数和测试函数生成所述测试激励序列;输出所述测试激励序列,以生成测试用例进行待测设计验证。本申请根据目标测试参数自动输出测试激励序列,该激励序列能够直接生成测试用例进行待测设计验证,避免了繁杂的手动配置及流程梳理,具有灵活复用、利用项目迭代的优点。
Description
技术领域
本发明涉及***测试领域,特别涉及一种测试用例确定方法、***及相关组件。
背景技术
当前,测试验证是芯片开发过程中至关重要的过程,是决定待测设计正常并正确工作的关键点。目前,最通用的验证方法是采用UVM(Universal VerificationMethodology,通用验证方法)方法,从搭建UVM验证平台到开发基于SV语言的测试用例,其中激励Sequence是最重要的一环,它用于产生测试激励,以使被测设备工作,进而观测测试结果。
当被测设备为SoC(Systemon Chip,片上***)级,由于规模过大,众多调试资源需要调试,无疑会增加验证人员的调试复杂度。编译基于SV(System Verilog,***硬件描述语言)语言开发的测试用例时,将涉及到对整个UVM验证环境的编译,继而生成可执行文件(simv)。该过程耗时长,对服务器资源的消耗较大,不宜频繁修改测试用例,对于测试用例需求较高的被测设备来说灵活性不强。
因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种高效快速的测试用例确定方法、***及相关组件。其具体方案如下:
一种测试用例确定方法,包括:
接收目标测试参数;
查询激励池中是否存在对应所述目标测试参数的测试激励序列;
若否,则根据所述目标测试参数和测试函数生成所述测试激励序列;
输出所述测试激励序列,以生成测试用例进行待测设计验证。
优选的,所述根据所述目标测试参数和测试函数生成所述测试激励序列的过程,包括:根据所述目标测试参数和测试函数,通过JTAG接口链生成所述测试激励序列。
优选的,所述测试激励序列具体为IR序列和DR序列。
优选的,所述待测设计为包括DAP的待测设计。
优选的,所述根据所述目标测试参数和测试函数生成所述测试激励序列的过程包括:
根据所述目标测试参数和测试函数生成并结合DPI-C接口方法输出所述测试激励序列。
优选的,所述测试函数包括:
VIP复位与解复位函数;
IR/DR载入函数;
TDO检查函数;
基本测试用例函数。
优选的,所述测试用例为C语言测试用例;
相应的,所述测试用例进行待测设计验证的过程包括:对所述测试用例在编译过程中产生的预设格式文件发送到可执行文件,以启动待测设计验证。
相应的,本申请还公开了一种测试用例确定***,包括:
参数接口,用于接收目标测试参数;
动作模块,用于查询激励池中是否存在对应所述目标测试参数的测试激励序列;若否,则根据所述目标测试参数和测试函数生成所述测试激励序列;
输出模块,用于输出所述测试激励序列,以生成测试用例进行待测设计验证。
相应的,本申请还公开了一种测试用例确定装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上文任一项所述测试用例确定方法的步骤。
相应的,本申请还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述测试用例确定方法的步骤。
本申请公开了一种测试用例确定方法,包括:接收目标测试参数;查询激励池中是否存在对应所述目标测试参数的测试激励序列;若否,则根据所述目标测试参数和测试函数生成所述测试激励序列;输出所述测试激励序列,以生成测试用例进行待测设计验证。本申请根据目标测试参数自动输出测试激励序列,该激励序列能够直接生成测试用例进行待测设计验证,避免了繁杂的手动配置及流程梳理,具有灵活复用、利用项目迭代的优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例中一种测试用例确定方法的步骤流程图;
图2为本发明实施例中一种测试用例确定方法的过程示意图;
图3为本发明实施例中一种测试用例确定***的结构分布图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当被测设备为SoC级,由于规模过大,众多调试资源需要调试,无疑会增加验证人员的调试复杂度。编译基于SV语言开发的测试用例时,将涉及到对整个UVM验证环境的编译,继而生成可执行文件(simv)。该过程耗时长,对服务器资源的消耗较大,不宜频繁修改测试用例,对于测试用例需求较高的被测设备来说灵活性不强。
本申请根据目标测试参数自动输出测试激励序列,该激励序列能够直接生成测试用例进行待测设计验证,避免了繁杂的手动配置及流程梳理,具有灵活复用、利用项目迭代的优点。
本发明实施例公开了一种测试用例确定方法,参见图1所示,包括:
S1:接收目标测试参数;
S2:查询激励池中是否存在对应目标测试参数的测试激励序列;若否,则依次执行步骤S3和S4,若是,则直接执行步骤S4;
S3:根据目标测试参数和测试函数生成测试激励序列;
S4:输出测试激励序列,以生成测试用例进行待测设计验证。
可以理解的是,步骤S3生成的测试激励序列,可存储在激励池中,如果后续测试中再次需要该测试激励序列,则可直接输出使用。
可以理解的是,传统基于DAP(Debug Access Port,调试访问端口)访问***资源的基本流程相似但实现调试功能过程复杂这一特征,即根据DAP位于JTAG(Joint TestAction Group,联合测试工作组)链中的位置,DP(Debug Port,调试端口)类型,AP(AccessPort,访问端口)的位置与类型,访问对象等,针对不同验证目标,其所需测试激励不同,这些测试激励需要工作人员手动设置,极为繁琐耗时。
通过本实施例中的测试用例确定方法,可直接输出与目标测试参数对应的测试激励序列,从而生成目标测试参数对应的测试用例,以完成相关的待测设计验证,不需要工作人员手动修改测试用例代码,可灵活复用。
在一些具体的实施例中,目标测试参数包括但不限于验证目标参数verf_obj、和/或结构参数dap_offset/ap_offset/ap_type、和/或对象参数obj_id/obj_reg_addr。
在一些具体的实施例中,所述根据所述目标测试参数和测试函数生成所述测试激励序列的过程,包括:根据所述目标测试参数和测试函数,通过JTAG接口链生成所述测试激励序列。具体的,JTAG接口链由多个器件通过JTAG接口串联在一起,前一个器件的输出作为后一个器件的输入,根据该链式结构即可实现对***中各器件的分别调试;进一步的,所述测试激励序列具体为IR序列和DR序列;此时,本实施例可应用测试用例的所述待测设计(Design Under Test,DUT),可以为包括DAP的待测设计,也可使用其他形式进行调试的待测设计。通常,DAP接收外部端口的JTAG数据,将其转化成对DAP内部的AP的选择,AP再将其转化为内存映射的总线访问,从而访问到***内部资源。
如图2所示,每个器件TAP1-TAP3都有各自的IR及DR宽度及自己在JTAG链中所处的位置。假设待测设计的DAP位于图中位置,此时对应的位置设定为dap_offset,IR(Instruction Register,指令寄存器)和DR(Data Register,数据寄存器)的宽度分别为ir_width及dr_width,将这些结构参数以及访问的调试对象、bypass需求等参数作为目标测试参数,分别进行IR及DR内容的拼接,便可确定JTAG链的结构,IR序列及DR序列即可确定。
而在验证包括DAP的待测设计时,通常编译基于SV语言开发的测试用例,会涉及到对整个UVM验证环境的编译,再生成可执行文件simv,使得前期验证过程耗时长,对服务器资源的消耗较大。
而基于C语言的测试用例则无需对整个UVM验证环境重编译,只需要将该编译过程中产生的.so文件作为参数传递给之前已生成的可执行文件simv,以此启动仿真即可,因此本实施例选择以DPI-C接口生成C语言测试用例,可大幅节省验证环境重编译的时间,快速启动后续验证。因此,步骤S3所述根据所述目标测试参数和测试函数生成所述测试激励序列的过程包括:根据所述目标测试参数和测试函数生成并结合DPI-C接口方法输出所述测试激励序列。
具体的,所述测试函数包括:
VIP复位与解复位函数;
IR/DR载入函数;
TDO检查函数;
基本测试用例函数。
具体的,VIP复位与解复位函数提供函数jtag_reset(),用于复位并解复位JTAGVIP,具体函数工作过程包括:例化一个reset的激励sequence;启动该激励sequence。其中id表示VIP的配置参数。
具体的,当按照JTAG协议对DAP输入进行有效写访问时,需要将预先指定的指令通过协议接口输入信号更新到指令寄存器中,再按位转移至DAP输入信号上,此时DAP通过解析指令选择到相应DP寄存器。因此IR/DR载入函数提供函数tag_load_ir()/jtag_load_dr(),具体函数工作过程包括:输入IR/DR链的宽度;例化一个载入IR/DR的sequence;设置sequence内部的参数(如IR/DR数据等);启动sequence。其中ir表示预先指定的输入指令,IR_CHAIN_WIDTH表示IR链最大位宽。
具体的,当需要捕捉DAP的输出信号(TDO)以获取调试信息时,需要对JTAG_VIP的TDO进行采样,这个采样过程可以在Shift_IR状态或者在Shift_DR状态完成并通过JTAGVIP输出,将输出值与期望值比较,根据比较结果可进一步分析调试信息。因此,TDO检查函数提供函数jtag_check_ir()/jtag_check_dr(),函数工作过程包括:输入IR/DR链的宽度,输入IR/DR指令;设置期望输出的DR值;例化一个检查DR的sequence;设置sequence内部的参数(如IR/DR数据等);比较当前输出的DR值与期望值,并打印比较结果;启动sequence。
可以理解的是,本实施例中定义好SV任务后,需要建立C语言与SV语言之间的DPI链接。所有SV的函数接口均实现在SV的头文件中,当在DPI-C用例中进行使用时,采用DPI的方法将上述接口导入DPI-C用例侧,只需通过“export”关键字即可创建基于SV的C函数接口,通用函数定义如下所示:
export“DPI-C”dpi_jtag_load_ir=task jtag_load_ir;
进一步的,以上所有定义好的函数,可封装在DPI-C库文件(dpi_lib.h)里以便调用并复用。
进一步的,由于整个验证环境是基于UVM验证平台搭建的,因此需要创建基本测试用例以使用DPI-C接口。创建SV语言的DPI测试用例top_dpi_test.sv,通过dpi_c_thread()与DPI-C测试用例my_test.c通信,该函数在DPI-C测试用例中定义,内容为自定义的测试激励。因此,基本测试用例函数提供函数import“DPI-C”context task dpi_c_thread(),dpi_c_thread()通过“import”关键字创建基于C语言的SV任务或函数接口。
此外,本实施例还可通过写、读内存,延时等实现DPI用例与UVM环境间的同步,具体可按照验证人员需求扩展同步接口函数。
可以理解的是,所述测试用例为C语言测试用例;
相应的,所述测试用例进行待测设计验证的过程包括:对所述测试用例在编译过程中产生的预设格式文件发送到可执行文件,以启动待测设计验证。
上文已提到,基于C语言的测试用例则无需对整个UVM验证环境重编译,只需要将该编译过程中产生的.so文件作为参数传递给之前已生成的可执行文件simv,以此启动仿真即可,预设格式文件即.so文件,可执行文件为simv。
本申请公开了一种测试用例确定方法,包括:接收目标测试参数;查询激励池中是否存在对应所述目标测试参数的测试激励序列;若否,则根据所述目标测试参数和测试函数生成所述测试激励序列;输出所述测试激励序列,以生成测试用例进行待测设计验证。本申请根据目标测试参数自动输出测试激励序列,该激励序列能够直接生成测试用例进行待测设计验证,避免了繁杂的手动配置及流程梳理,具有灵活复用、利用项目迭代的优点。
相应的,本申请实施例还公开了一种测试用例确定***,参见图3所示,包括:
参数接口1,用于接收目标测试参数;
动作模块2,用于查询激励池中是否存在对应所述目标测试参数的测试激励序列;若否,则根据所述目标测试参数和测试函数生成所述测试激励序列;
输出模块3,用于输出所述测试激励序列,以生成测试用例进行待测设计验证。
本申请实施例根据目标测试参数自动输出测试激励序列,该激励序列能够直接生成测试用例进行待测设计验证,避免了繁杂的手动配置及流程梳理,具有灵活复用、利用项目迭代的优点。
在一些具体的实施例中,动作模块2根据所述目标测试参数和测试函数生成所述测试激励序列的过程,包括:根据所述目标测试参数和测试函数,通过JTAG接口链生成所述测试激励序列。
在一些具体的实施例中,所述测试激励序列具体为IR序列和DR序列。
在一些具体的实施例中,所述待测设计为包括DAP的待测设计。
在一些具体的实施例中,动作模块2根据所述目标测试参数和测试函数生成所述测试激励序列的过程包括:根据所述目标测试参数和测试函数生成并结合DPI-C接口方法输出所述测试激励序列。
在一些具体的实施例中,所述测试函数包括:VIP复位与解复位函数;IR/DR载入函数;TDO检查函数;基本测试用例函数。
在一些具体的实施例中,所述测试用例为C语言测试用例;相应的,所述测试用例进行待测设计验证的过程包括:对所述测试用例在编译过程中产生的预设格式文件发送到可执行文件,以启动待测设计验证。
相应的,本申请实施例还公开了一种测试用例确定装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上文任一项所述测试用例确定方法的步骤。
相应的,本申请实施例还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述测试用例确定方法的步骤。
其中,本实施例中有关测试用例确定方法的具体内容可以参照上文实施例中相关描述,此处不再赘述。
其中,本实施例中测试用例确定装置和可读存储介质具有与上文实施例中测试用例确定方法相同的技术效果,此处不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种测试用例确定方法、***及相关组件进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种测试用例确定方法,其特征在于,包括:
接收目标测试参数;
查询激励池中是否存在对应所述目标测试参数的测试激励序列;
若否,则根据所述目标测试参数和测试函数生成所述测试激励序列;
输出所述测试激励序列,以生成测试用例进行待测设计验证。
2.根据权利要求1所述测试用例确定方法,其特征在于,所述根据所述目标测试参数和测试函数生成所述测试激励序列的过程,包括:根据所述目标测试参数和测试函数,通过JTAG接口链生成所述测试激励序列。
3.根据权利要求2所述测试用例确定方法,其特征在于,
所述测试激励序列具体为IR序列和DR序列。
4.根据权利要求3所述测试用例确定方法,其特征在于,所述待测设计为包括DAP的待测设计。
5.根据权利要求1至4任一项所述测试用例确定方法,其特征在于,所述根据所述目标测试参数和测试函数生成所述测试激励序列的过程包括:
根据所述目标测试参数和测试函数生成并结合DPI-C接口方法输出所述测试激励序列。
6.根据权利要求5所述测试用例确定方法,其特征在于,所述测试函数包括:
VIP复位与解复位函数;
IR/DR载入函数;
TDO检查函数;
基本测试用例函数。
7.根据权利要求6所述测试用例确定方法,其特征在于,所述测试用例为C语言测试用例;
相应的,所述测试用例进行待测设计验证的过程包括:对所述测试用例在编译过程中产生的预设格式文件发送到可执行文件,以启动待测设计验证。
8.一种测试用例确定***,其特征在于,包括:
参数接口,用于接收目标测试参数;
动作模块,用于查询激励池中是否存在对应所述目标测试参数的测试激励序列;若否,则根据所述目标测试参数和测试函数生成所述测试激励序列;
输出模块,用于输出所述测试激励序列,以生成测试用例进行待测设计验证。
9.一种测试用例确定装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述测试用例确定方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述测试用例确定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210182265.2A CN114564394A (zh) | 2022-02-25 | 2022-02-25 | 一种测试用例确定方法、***及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210182265.2A CN114564394A (zh) | 2022-02-25 | 2022-02-25 | 一种测试用例确定方法、***及相关组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564394A true CN114564394A (zh) | 2022-05-31 |
Family
ID=81715536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210182265.2A Pending CN114564394A (zh) | 2022-02-25 | 2022-02-25 | 一种测试用例确定方法、***及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564394A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115563019A (zh) * | 2022-12-05 | 2023-01-03 | 天津哈威克科技有限公司 | 一种uvm与c联合验证方法和*** |
CN117389818A (zh) * | 2023-12-12 | 2024-01-12 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
-
2022
- 2022-02-25 CN CN202210182265.2A patent/CN114564394A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115563019A (zh) * | 2022-12-05 | 2023-01-03 | 天津哈威克科技有限公司 | 一种uvm与c联合验证方法和*** |
CN117389818A (zh) * | 2023-12-12 | 2024-01-12 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
CN117389818B (zh) * | 2023-12-12 | 2024-03-29 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110865971B (zh) | Soc芯片的验证***及其方法 | |
US8402438B1 (en) | Method and system for generating verification information and tests for software | |
CN112131829A (zh) | 一种芯片寄存器的验证方法、***及相关装置 | |
US7480826B2 (en) | Test executive with external process isolation for user code modules | |
US20020091968A1 (en) | Object-oriented data driven software GUI automated test harness | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
CN114564394A (zh) | 一种测试用例确定方法、***及相关组件 | |
US9690888B2 (en) | Method and apparatus for system design verification | |
US8117499B2 (en) | Generation of a stimuli based on a test template | |
CN112444731A (zh) | 芯片测试方法、装置、处理器芯片及服务器 | |
US7149943B2 (en) | System for flexible embedded Boundary Scan testing | |
Zhang et al. | Automated unit testing intelligent agents in PDT | |
US6715134B2 (en) | Method and apparatus to facilitate generating simulation modules for testing system designs | |
CN112580282B (zh) | 用于集成电路设计验证的方法、装置、设备以及存储介质 | |
Feng et al. | Action-driven automation test framework for graphical user interface (GUI) software testing | |
CN117236239B (zh) | 用于数字电路验证的通用连通性测试方法、设备和介质 | |
JP4149047B2 (ja) | シミュレータ | |
Aich | Open Source Python based Hardware Verification Tool | |
Kujala | HW/SW testing framework | |
Ojala | Automated UVM testbench generation | |
CN117172203A (zh) | 处理脚本命令的方法、电子设备和存储介质 | |
CN116048999A (zh) | 一种嵌入式软件数据访问方法、装置、终端及存储介质 | |
CN117234941A (zh) | Mcu芯片验证平台和方法 | |
Klepinin et al. | Integration of semantic verifiers into Java language compilers | |
Xie et al. | An automata-theoretic approach for model-checking systems with unspecified components |
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 |