CN117973280A - 一种基于跨平台重播和回放的功能验证方法 - Google Patents
一种基于跨平台重播和回放的功能验证方法 Download PDFInfo
- Publication number
- CN117973280A CN117973280A CN202311838165.1A CN202311838165A CN117973280A CN 117973280 A CN117973280 A CN 117973280A CN 202311838165 A CN202311838165 A CN 202311838165A CN 117973280 A CN117973280 A CN 117973280A
- Authority
- CN
- China
- Prior art keywords
- verification
- functional model
- test
- result
- functional
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012360 testing method Methods 0.000 claims abstract description 160
- 239000013598 vector Substances 0.000 claims abstract description 76
- 230000006870 function Effects 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims description 14
- 238000004088 simulation Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012827 research and development Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013024 troubleshooting 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
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
本发明提供一种基于跨平台重播和回放的功能验证方法,属于数字验证技术领域,预先提供一基于第一编程语言的第一功能模型以及为第一功能模型提供的测试用例;预先提供一基于第二编程语言的第二功能模型;第一功能模型和第二功能模型的功能相同;方法包括:步骤S1,对第一功能模型运行测试用例的运行结果进行提取处理和解析处理,得到文本格式的测试向量;步骤S2,采用测试向量对第二功能模型进行验证,并输出一第一验证结果。有益效果:通过提取和解析为第一编程语言的第一功能模型开发的测试用例的运行结果,将得到的测试向量直接应用于第二编程语言的第二功能模型的验证测试,无需重新开发测试用例,降低测试工作量,提高验证测试的效率。
Description
技术领域
本发明涉及数字验证技术领域,尤其涉及一种基于跨平台重播和回放的功能验证方法。
背景技术
随着芯片的规模不断增大,其功能也变得越来越复杂;与此同时,消费电子产品的更新速度也越来越快,这对芯片研发提出了更高的要求,既要确保研发进展顺利,同时也要保证研发质量的高标准。
芯片验证是芯片研发过程中的一个重要环节,用于确保芯片设计的正确性和可靠性。通用验证方法学(Universal Verification Methodology,UVM)是一种常用的芯片验证方法学,旨在提供一种统一的用于硬件验证的标准方法学,以加快和简化硬件设计的验证过程。UVM基于硬件描述语言(HDL)和面向对象编程(OOP)的概念,提供了一套用于创建可重用、可扩展和可维护的验证环境的框架和库。UVM的主要目标是提高验证的效率和质量,同时降低验证的复杂性和成本。
然而,在芯片研发过程中通常会涉及到不同的编程语言,由于不同编程语言之间的语法、数据结构和调用方式等方面存在差异,导致原有的测试用例无法直接在新的验证环境中运行,增加了测试工作量和风险。
发明内容
为了解决以上技术问题,本发明提供了一种基于跨平台重播和回放的功能验证方法。
本发明所解决的技术问题可以采用以下技术方案实现:
一种基于跨平台重播和回放的功能验证方法,预先提供一基于第一编程语言的第一功能模型以及为所述第一功能模型提供的测试用例;
预先提供一基于第二编程语言的第二功能模型;所述第一功能模型和所述第二功能模型的功能相同;
所述功能验证方法包括:
步骤S1,对所述第一功能模型运行所述测试用例的运行结果进行提取处理和解析处理,得到文本格式的测试向量;
步骤S2,采用所述测试向量对所述第二功能模型进行验证,并输出一第一验证结果。
优选地,所述测试向量包括输入测试向量和输出测试向量;
所述步骤S2包括:
步骤S21,将所述输入测试向量输入至所述第二功能模型的输入端,以驱动所述第二功能模型运行,并得到所述第二功能模型的第一输出结果;
步骤S22,判断所述第一输出结果与所述输出测试向量是否一致:
若是,则输出一第一验证子结果;
若否,则输出一第二验证子结果;
所述第一验证结果包括所述第一验证子结果或所述第二验证子结果。
优选地,所述步骤S1包括:
在所述第一功能模型上运行所述测试用例,得到运行结果;
提取和解析处理所述运行结果,得到所述测试向量。
优选地,所述步骤S2之后还包括:
步骤S3,在所述第一验证结果表示出错时,采用所述测试向量对所述第一功能模型进行验证;
步骤S4,在所述步骤S3的验证过程中,于一控制信号作用下输出所述第一功能模型的验证关键信息;
步骤S5,对所述验证关键信息与所述第二功能模型的仿真波形进行比较,输出一第一比较结果,以根据所述第一比较结果定位出错点。
优选地,所述控制信号为打印信号;
所述步骤S4包括:
在所述步骤S3的验证过程中,当接收到所述打印信号时开始打印所述第一功能模型的验证关键信息。
优选地,所述步骤S3中,还包括:
步骤S31,在采用所述测试向量对所述第一功能模型验证完成后,输出一第二验证结果;
步骤S32,根据所述第二验证结果确定所述测试用例是否正确。
优选地,所述第一编程语言与所述第二编程语言不同。
优选地,所述第一编程语言为C语言;
所述第二编程语言为System Verilog语言。
优选地,所述步骤S2中的验证采用通用验证方法学。
本发明技术方案的优点或有益效果在于:
本发明通过提取和解析为第一编程语言的第一功能模型开发的测试用例的运行结果,将得到的测试向量直接应用于第二编程语言的第二功能模型的验证测试,无需重新开发测试用例,从而降低了测试工作量,并提高了验证测试的效率。
附图说明
图1为本发明的较佳实施例中,基于跨平台重播和回放的功能验证方法的流程示意图;
图2为本发明的较佳实施例中,步骤S2的流程示意图;
图3为本发明的较佳实施例中,重播的原理框图;
图4为本发明的较佳实施例中,第二功能模型验证出错后的流程示意图;
图5为本发明的较佳实施例中,步骤S3的流程示意图;
图6为本发明的较佳实施例中,回放的原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
参见图1,本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种基于跨平台重播和回放的功能验证方法,预先提供一基于第一编程语言的第一功能模型以及为第一功能模型提供的测试用例;
预先提供一基于第二编程语言的第二功能模型;第一功能模型和第二功能模型的功能相同;
功能验证方法包括:
步骤S1,对第一功能模型运行测试用例输出的运行结果进行提取处理和解析处理,得到文本格式的测试向量;
步骤S2,采用测试向量对第二功能模型进行验证,并输出一第一验证结果。
具体的,考虑到在芯片研发过程中通常会涉及到不同的编程语言,而不同编程语言之间在语法、数据结构和调用方式等方面存在差异,导致原有的测试用例无法直接在新的验证环境中运行,增加了测试工作量和风险。
在本实施例中,首先,提供在开发第一编程语言的第一功能模型时编写的相应的测试用例;
然后,在对开发的第二编程语言的第二功能模型进行测试时,提取并解析第一功能模型运行测试用例输出的运行结果,得到测试向量,将提取并解析得到的测试向量转换为可被第二编程语言的第二功能模型所理解的格式,如文本格式;接着,将测试向量直接应用于第二功能模型进行验证测试,无需重新开发测试向量;分析验证测试的结果,检查第二功能模型的正确性。
上述方案中,利用第一功能模型已经开发好的测试用例,无需重新开发测试用例,直接应用于第二功能模型的验证测试,可以大大减少测试工作量,并提高验证测试的效率。
在一些实施方式中,测试用例可以包括多个,以确保所有的测试场景都被覆盖到。在第二功能模型的验证测试过程中,需要针对每一个测试用例执行上述步骤S1-S2,直到所有的测试用例都被应用于第二功能模型的验证测试,确保第二功能模型在各种测试场景下都能正常运行,并且符合预期的功能要求。
测试用例是使用编程语言开发的程序或脚本文件;
测试向量指的是从测试用例的运行结果中提取出来的文本文件。
作为优选的实施方式,其中,测试向量包括输入测试向量和输出测试向量;
如图2所示,步骤S2包括:
步骤S21,将输入测试向量输入至第二功能模型的输入端,以驱动第二功能模型运行,并得到第二功能模型的第一输出结果;
步骤S22,判断第一输出结果与输出测试向量是否一致:
若是,则输出一第一验证子结果;
若否,则输出一第二验证子结果;
第一验证结果包括第一验证子结果或第二验证子结果。
具体的,在本实施例中,通过在第二功能模型上运行输入测试向量,然后将其输出的第一输出结果与测试向量中的输出测试向量进行比较:
如果第一输出结果与输出测试向量一致,则输出第一验证子结果,表示第二功能模型在该输入测试向量下的输出符合预期。
如果第一输出结果与输出测试向量不一致,则输出第二验证子结果,表示第二功能模型在该输入测试向量下的输出与预期不符。
通过上述方案,直接利用其他编程语言模型的测试用例对第二功能模型进行全面的测试和验证,确保其在各种输入情况下的输出结果符合预期,并且能够及时发现和解决模型输出与预期不一致的问题。
作为优选的实施方式,其中,步骤S2中的验证采用通用验证方法学(UVM)。
进一步的,本发明实施例第二功能模型使用SV语言编写,使用UVM方法学进行验证,也可根据需要选择其他验证方法。
本发明实施例重播功能是在第二功能模型上运行测试向量,采用UVM法学方法学实现的原理框图如图3所示,其中,被测试设计1(Design UnderTest,DUT)为本发明的第二功能模型。
第一消息代理2是UVM的主(Master)代理,第一消息代理2的消息驱动器21用于提取输入测试向量in_pattern文件中的内容,并解析成对应的输入信号,然后驱动给第二功能模型的输入;
第二消息代理3是UVM的从属(slave)代理,第二消息代理3的消息检测器负责提取输出测试向量out_pattern文件中提取预期值,并与第二功能模型的的实际输出值进行比较,根据比较结果判断测试是否通过。
根据比较结果,分析测试的通过情况,并生成测试报告。如果有不一致的情况,可以通过报告提供给软件团队的开发人员进行问题排查和修复。
采用上述方案,可以实现在第二功能模型上重播测试向量的功能,确保第二功能模型在运行为其他编程语言模型提供的测试向量时的正确性,无需重新编写测试用例,降低测试工作量,缩短模型开发周期。
作为优选的实施方式,其中,步骤S1包括:
在第一功能模型上运行测试用例,得到运行结果;
提取和解析处理运行结果,得到测试向量。
具体的,在本实施例中,提供为其他编程语言的第一功能模型编写的测试用例,通过提取和解析测试用例的运行结果,得到输入测试向量和输出测试向量。输入测试向量是测试用例中的输入参数的集合,可以作为第二功能模型的输入进行测试。输出测试向量是测试用例中的预期输出结果的集合,可以用于验证第二功能模型的输出是否符合预期。
作为示例,假设第一功能模型和第二功能模型是简单的计算器,可以进行加法运算。
测试用例1:输入为2和3,预期输出为5。
测试用例2:输入为-1和5,预期输出为4。
测试用例3:输入为0和0,预期输出为0。
然后,通过提取和解析测试用例的运行结果,得到输入测试向量和输出测试向量:
输入测试向量:[2,3],[-1,5],[0,0]
输出测试向量:[5],[4],[0]
使用输入测试向量对第二功能模型进行测试,并验证第二功能模型的输出是否与输出测试向量中的结果一致。
本发明实施例中,测试用例可以采用任意语言编写,根据项目的需求和团队的技术栈,可以选择适合的编程语言来编写测试用例。例如采用Python、C或者其他编程语言编写和执行测试用例。
作为优选的实施方式,其中,如图4所示,步骤S2之后还包括:
步骤S3,在第一验证结果表示出错时,采用测试向量对第一功能模型进行验证;
步骤S4,在步骤S3的验证过程中,于一控制信号作用下输出第一功能模型的验证关键信息;
步骤S5,对验证关键信息与第二功能模型的仿真波形进行比较,输出一第一比较结果,以根据第一比较结果定位出错点。
具体的,当第二功能模型重播测试向量进行验证的过程中,发现其输出与输出测试向量中的结果不一致,说明第二功能模型出错。在本实施例中,可以实现在第一功能模型上回放测试向量的功能,协助定位第二功能模型的问题。
作为优选的实施方式,其中,控制信号为打印信号;
步骤S4包括:
在步骤S3的验证过程中,当接收到打印信号时开始打印第一功能模型的验证关键信息。
具体的,在第一功能模型上回放测试向量进行验证的过程中,通过触发打印信号,将需要的信息打印出来,避免整个测试过程中存在过多的无用信息,从而减少比较工作量并提高定位速度。
本发明实施例打印信号可以由经验丰富的相关人员手动触发。
进一步的,也可以添加打印信号的触发条件,触发条件可以是运行第二功能模型的输出与输出测试向量中的结果不一致的功能部分时触发打印信号。
作为优选的实施方式,其中,如图5所示,步骤S3中,还包括:
步骤S31,在采用测试向量对第一功能模型验证完成后,输出一第二验证结果;
步骤S32,根据第二验证结果确定测试用例是否正确。
具体的,本发明实施例回放功能是在第一功能模型上运行测试向量,其原理框图如图6所示,回放测试向量能够实现协助定位第二功能模型的问题,同时,还可校验为第一功能模型编写的测试用例的正确性。
当第二功能模型被重播功能发现问题时,利用回放技术,将输入测试向量in_pattern在第一功能模型上进行回放,在回放过程中可以添加打印,将验证关键信息打印出来,然后通过比较器5将验证关键信息与第二功能模型的仿真波形做比较,便于定位第二功能模型的问题。
同时,利用回放技术将输入测试向量在第一功能模型上进行回放时,可以将第一功能模型的输出与输出测试向量进行比较。如果比较结果一致,则说明编写的测试用例正确,否则说明测试用例错误。
作为优选的实施方式,其中,第一编程语言与第二编程语言不同。
具体的,第一功能模型和第二功能模型的编程语言不同,从而为第一功能模型编写的测试用例可能无法直接用于第二功能模型的测试。因为不同的编程语言可能有不同的语法和库函数,所以测试用例的编写方式也会有所不同。现有技术中需要根据具体情况重新编写适用于第二功能模型的测试用例。
而本发明实施例通过提取和解析为第一功能模型编写的测试用例的运行结果中的测试向量,将其直接在第二功能模型上重播测试向量,实现第二功能模型的测试,无需重新编写适用于第二功能模型的测试用例,减少测试工作量。
作为优选的实施方式,其中,第一编程语言为C语言;
第二编程语言为SV语言。
具体的,通过使用不同的编程语言编写具有相同功能的第一功能模型和第二功能模型,可以充分发挥各种语言的优势,提高系统的性能和可靠性。作为示例,第一功能模型可以使用C语言编写,第二功能模型使用SV(System Verilog)语言编写。
需要注意的是,第一功能模型和第二功能模型亦可使用其他不同的语言编写得到。
采用上述技术方案的优点或有益效果在于:本发明通过提取和解析为第一编程语言的第一功能模型开发的测试用例的运行结果,将得到的测试向量直接应用于第二编程语言的第二功能模型的验证测试,无需重新开发测试用例,从而降低了测试工作量,并提高了验证测试的效率。
以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (9)
1.一种基于跨平台重播和回放的功能验证方法,其特征在于,预先提供一基于第一编程语言的第一功能模型以及为所述第一功能模型提供的测试用例;
预先提供一基于第二编程语言的第二功能模型;所述第一功能模型和所述第二功能模型的功能相同;
所述功能验证方法包括:
步骤S1,对所述第一功能模型运行所述测试用例的运行结果进行提取处理和解析处理,得到文本格式的测试向量;
步骤S2,采用所述测试向量对所述第二功能模型进行验证,并输出一第一验证结果。
2.根据权利要求1所述的基于跨平台重播和回放的功能验证方法,其特征在于,所述测试向量包括输入测试向量和输出测试向量;
所述步骤S2包括:
步骤S21,将所述输入测试向量输入至所述第二功能模型的输入端,以驱动所述第二功能模型运行,并得到所述第二功能模型的第一输出结果;
步骤S22,判断所述第一输出结果与所述输出测试向量是否一致:
若是,则输出一第一验证子结果;
若否,则在所述第一输出结果与所述输出测试向量不一致时,输出一第二验证子结果;
所述第一验证结果包括所述第一验证子结果或所述第二验证子结果。
3.根据权利要求2所述的基于跨平台重播和回放的功能验证方法,其特征在于,所述步骤S1包括:
在所述第一功能模型上运行所述测试用例,得到运行结果;
提取和解析处理所述运行结果,得到所述测试向量。
4.根据权利要求1所述的基于跨平台重播和回放的功能验证方法,其特征在于,所述步骤S2之后还包括:
步骤S3,在所述第一验证结果表示出错时,采用所述测试向量对所述第一功能模型进行验证;
步骤S4,在所述步骤S3的验证过程中,于一控制信号作用下输出所述第一功能模型的验证关键信息;
步骤S5,对所述验证关键信息与所述第二功能模型的仿真波形进行比较,输出一第一比较结果,以根据所述第一比较结果定位出错点。
5.根据权利要求4所述的基于跨平台重播和回放的功能验证方法,其特征在于,所述控制信号为打印信号;
所述步骤S4包括:
在所述步骤S3的验证过程中,当接收到所述打印信号时开始打印所述第一功能模型的验证关键信息。
6.根据权利要求4所述的基于跨平台重播和回放的功能验证方法,其特征在于,所述步骤S3中,还包括:
步骤S31,在采用所述测试向量对所述第一功能模型验证完成后,输出一第二验证结果;
步骤S32,根据所述第二验证结果确定所述测试用例是否正确。
7.根据权利要求1所述的基于跨平台重播和回放的功能验证方法,其特征在于,所述第一编程语言与所述第二编程语言不同。
8.根据权利要求6所述的基于跨平台重播和回放的功能验证方法,其特征在于,所述第一编程语言为C语言;
所述第二编程语言为System Verilog语言。
9.根据权利要求1所述的基于跨平台重播和回放的功能验证方法,其特征在于,所述步骤S2中的验证采用通用验证方法学。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311838165.1A CN117973280A (zh) | 2023-12-28 | 2023-12-28 | 一种基于跨平台重播和回放的功能验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311838165.1A CN117973280A (zh) | 2023-12-28 | 2023-12-28 | 一种基于跨平台重播和回放的功能验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117973280A true CN117973280A (zh) | 2024-05-03 |
Family
ID=90857135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311838165.1A Pending CN117973280A (zh) | 2023-12-28 | 2023-12-28 | 一种基于跨平台重播和回放的功能验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117973280A (zh) |
-
2023
- 2023-12-28 CN CN202311838165.1A patent/CN117973280A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7890806B2 (en) | Auto-executing tool for developing test harness files | |
CN108509336B (zh) | 一种操作系统规范形式化验证与测试方法 | |
US6058493A (en) | Logging and reproduction of automated test operations for computing systems | |
US7689973B2 (en) | Language for development of test harness files | |
US7673292B2 (en) | Auto conversion of tests between different functional testing tools | |
US20110173239A1 (en) | Web Application Record-Replay System and Method | |
US7844929B2 (en) | Optimizing test code generation for verification environment | |
US20060271824A1 (en) | Auto-recording tool for developing test harness files | |
CN105608012A (zh) | 一种自动化测试方法及系统 | |
WO2008012172A1 (en) | Automatic globalization verification testing for user interfaces | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
CN102567164A (zh) | 用于处理器的指令集批量测试装置与方法 | |
CN103605556A (zh) | 虚拟试验对象一体化构建系统及方法 | |
CN113343617B (zh) | 软硬件协同仿真方法 | |
CN111488275B (zh) | Ui自动化测试方法、装置、存储介质及电子设备 | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
CN115952758A (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
CN113742215A (zh) | 一种自动配置和调用测试工具进行测试分析的方法及系统 | |
CN115858336A (zh) | 测试向量生成方法及装置、计算设备和存储介质 | |
CN112860587B (zh) | Ui自动测试方法和装置 | |
CN117973280A (zh) | 一种基于跨平台重播和回放的功能验证方法 | |
CN111221728B (zh) | 用于轨道交通自动控制软件的自适应测试脚本系统及方法 | |
KR20080052261A (ko) | 내장형 시스템 오류 수정을 위한 비정지 디버깅 장치 및방법 | |
JP3152205B2 (ja) | 論理シミュレーション装置及びその方法並びにその制御プログラムを記録した記録媒体 | |
CN114781294B (zh) | 一种risc-v cpu验证中的签名比较方法及装置 |
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 |