CN103455672B - 一种fpga仿真测试用例自动化回归方法 - Google Patents
一种fpga仿真测试用例自动化回归方法 Download PDFInfo
- Publication number
- CN103455672B CN103455672B CN201310386248.1A CN201310386248A CN103455672B CN 103455672 B CN103455672 B CN 103455672B CN 201310386248 A CN201310386248 A CN 201310386248A CN 103455672 B CN103455672 B CN 103455672B
- Authority
- CN
- China
- Prior art keywords
- test case
- test
- fpga
- case
- emulation
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种FPGA仿真测试用例自动化回归方法。本方法为:1)FPGA从测试用例列表中选取一组测试用例;2)删除所选测试用例的库文件、编译文件、仿真log和波形;3)FPGA对每一所选测试用例,编译对应的库文件及其编译文件;4)对于每一所述测试用例,FPGA调用仿真工具运行一所述测试用例,然后从所述测试用例列表中查找该测试用例并将其放到对应的测试用例组中;5)FPGA提交每一所述测试用例到服务器上进行回归或在本地进行回归;6)FPGA搜集每一所述测试用例的仿真log,并生成测试报告。本发明能快速得到测试用例的仿真测试结果,从而大大提高了工作效率。
Description
技术领域
本发明涉及一种FPGA仿真测试用例自动化回归方法,属于计算机软件技术领域。
技术背景
随着FPGA容量和规模的日益扩大,FPGA设计的复杂度也越来越高,为了保证设计的质量,需要依靠仿真工具进行测试验证。目前常用的仿真工具有Questasim,VCS,NC-sim等,验证语言有systemverilog,systemC等,验证方法有VMM,OVM,UVM等。仿真工具可以对FPGA设计代码进行行为模拟,通过log和波形可以方便进行调试。验证语言和验证方法学用来搭建验证环境,通过仿真工具编译后运行,可以根据接口协议产生所需的激励,并对设计代码进行检查,保证设计功能的正确性。通常,验证流程包括搭建验证平台,编写测试用例,调试,回归。回归是指对所有的测试用例都运行一次,观察是否有错误发生。
由于设计规模的增加,测试用例也越来越多,并且为保证测试质量和完备性多采用随机验证的方法,所以有大量的测试用例需要多次回归才能保证测试向量覆盖所有功能。并且为了方便后期设计的维护性,也需要对测试用例进行回归来保证修改的正确性。单个测试用例执行需要先编译设计和验证代码,然后指定测试用例和设定仿真选项后使用仿真工具进行仿真,仿真结束后查看仿真波形和仿真log。所以手动执行一个测试用例,至少要在键盘上输入4次命令,如果一个项目一共有50个测试用例,完成一次回归就需要手动输入200次命令,而且还要查看每个仿真log是否出错,会非常耗时耗力,工作效率低下。另外,目前的测试用例开发都是基于随机验证加功能覆盖率的方法,使用一个种子回归一遍测试用例并不能达到覆盖率的要求,所以还需要不同的种子回归多次,这样手动执行测试用例的次数就会成倍增加。
发明内容
针对这种需要大量测试用例需要回归的情况,本发明提供了一种FPGA仿真测试用例自动化回归方法。
本发明的技术方案为:
一种FPGA仿真测试用例自动化回归方法,其步骤为:
1)FPGA从测试用例列表中选取一组测试用例;
2)删除所选测试用例的库文件、编译文件、仿真log和波形;
3)FPGA对每一所选测试用例,编译对应的库文件及其编译文件;
4)对于每一所述测试用例,FPGA调用仿真工具运行一所述测试用例,然后从所述测试用例列表中查找该测试用例并根据测试特性将其放到对应的测试用例组中;
5)FPGA提交每一所述测试用例到服务器上进行回归或在本地进行回归;
6)FPGA搜集每一所述测试用例的仿真log,并生成测试报告。
进一步的,所述FPGA中设置一脚本文件,通过所述脚本文件中记录的FPGA指令,执行步骤1)~6)。
进一步的,采用Perl语言编写所述脚本文件。
进一步的,利用正则表达式匹配查找该测试用例对应的测试用例组。
进一步的,所述编译文件为测试用例的编译设计和验证代码的编译文件。
进一步的,所述测试报告包括以下内容:所有测试用例的数量,通过的测试用例的数量,失败的测试用例的数量,未完成的测试用例的数量,起始与结束的时间,所有通过的测试用例的列表,所有失败的测试用例的列表,所有未完成的测试用例的列表,运行测试用例所使用的种子。
进一步的,所述种子为设定的仿真种子或随机生成的仿真种子。
本发明通过一个脚本实现,当所有测试用例开发完毕,并已调试通过后,可通过该脚本对所有测试用例进行回归。该脚本运行前可提供以下选项进行选择:
(1)指定单个测试用例,还是一组测试用例,还是所有测试用例。
(2)选择在本地仿真还是提交到服务器上仿真。
(3)选择最大同时运行测试用例数量。
(4)选择采用指定仿真种子还是随机生成仿真种子。
(5)是否打开覆盖率分析。
(6)打印等级选择。
(7)是否采用图形化界面。
所有选项均有默认值,如没有特殊要求,无需对选项进行设置,可以做到一键式完成测试用例的回归并得到测试报告。运行该脚本前也可参考帮助命令,对所需要配置的参数进行设定。
与现有技术相比,本发明的积极效果为:
本发明基于硬件FPGA实现了测试用例的自动化回归,可以做到一键式自动对所有的测试用例进行回归,并收集测试的结果,自动生成测试报告,大大减少了手动执行的工作量和 时间,并且能快速得到仿真测试结果,从而大大提高了工作效率。
附图说明
附图1为本发明的方法流程图。
具体实施方式
该脚本采用Perl语言编写。Perl语言具有简单限制少,速度快等优点。该脚本由以下几个子程序组成:
is_windows():判断是在Windows还是再Linux环境下运行,从而采用相应的操作命令。
check_time():记录仿真开始和结束的时间。
usage():显示帮助信息。
show_case():从测试用例列表中获得测试用例名称。
show_group():从测试用例列表中获取一组测试用例。
clean_env():删除之前编译好的库文件,删除之前编译设计和验证代码生成的文件,删除以前的log和波形。为了保证不同版本代码回归的正确性,需要把之前本地编译好的文件删除后重新编译。
setup():调用编译库文件的命令,编译每一所选测试用例对应的库文件。
comp():调用编译设计和验证文件的命令,对设计和验证代码重新进行编译。
run_a_case():调用仿真工具运行其中一个测试用例。
find_case_list():从测试用例列表中查找该测试用例并放到对应的测试用例组中。测试用例列表中根据不同的测试特性对测试用例分组,并用特殊符号隔开;本发明利用正则表达式匹配可提取出对应的测试用例组;
run_lsf_regress():提交所有测试用例到服务器上进行回归。
run_nor_regress():在本地机器上回归所有测试用例。
result_analysis():搜集所有测试用例仿真log的结果,并生成测试报告。
该程序运行的顺序如附图1所示:
第一步,记录仿真开始的时间。
第二步,删除之前编译的库文件。
第三步,编译库文件。
第四步,编译设计和验证文件。
第五步,运行所有测试用例。
第六步,记录仿真结束的时间。
第七步,分析仿真结果并生成测试报告。
回归结束后生成的测试报告包括以下内容:所有测试用例的数量,通过的测试用例的数量,失败的测试用例的数量,未完成的测试用例的数量,起始与结束的时间,所有通过的测试用例的列表,所有失败的测试用例的列表,所有未完成的测试用例的列表,运行测试用例所使用的种子。
通过使用该自动化回归脚本,可以快速的对测试用例进行回归,并发现测试用例是否通过,并有针对性的对失败的测试用例进行分析,不但保证了FPGA设计代码的质量,而且大大提高了工作效率。
Claims (6)
1.一种FPGA仿真测试用例自动化回归方法,其步骤为:
1)FPGA从测试用例列表中选取一组测试用例;
2)删除所选测试用例的库文件、编译文件、仿真log和波形;
3)FPGA对每一所选测试用例,编译对应的库文件及其编译文件;所述编译文件为测试用例的编译设计和验证代码的编译文件;
4)对于每一所述测试用例,FPGA调用仿真工具运行一所述测试用例,然后从所述测试用例列表中查找该测试用例并根据测试特性将其放到对应的测试用例组中;
5)FPGA提交每一所述测试用例到服务器上进行回归或在本地进行回归;
6)FPGA搜集每一所述测试用例的仿真log,并生成测试报告。
2.如权利要求1所述的方法,其特征在于所述FPGA中设置一脚本文件,通过所述脚本文件中记录的FPGA指令,执行步骤1)~6)。
3.如权利要求2所述的方法,其特征在于采用Perl语言编写所述脚本文件。
4.如权利要求1或2所述的方法,其特征在于利用正则表达式匹配查找该测试用例对应的测试用例组。
5.如权利要求1或2所述的方法,其特征在于所述测试报告包括以下内容:所有测试用例的数量,通过的测试用例的数量,失败的测试用例的数量,未完成的测试用例的数量,起始与结束的时间,所有通过的测试用例的列表,所有失败的测试用例的列表,所有未完成的测试用例的列表,运行测试用例所使用的种子。
6.如权利要求5所述的方法,其特征在于所述种子为设定的仿真种子或随机生成的仿真种子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310386248.1A CN103455672B (zh) | 2013-08-29 | 2013-08-29 | 一种fpga仿真测试用例自动化回归方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310386248.1A CN103455672B (zh) | 2013-08-29 | 2013-08-29 | 一种fpga仿真测试用例自动化回归方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103455672A CN103455672A (zh) | 2013-12-18 |
CN103455672B true CN103455672B (zh) | 2016-09-14 |
Family
ID=49738028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310386248.1A Active CN103455672B (zh) | 2013-08-29 | 2013-08-29 | 一种fpga仿真测试用例自动化回归方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103455672B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463473B (zh) * | 2017-09-01 | 2023-06-27 | 珠海泰芯半导体有限公司 | 基于uvm和fpga的芯片软硬件仿真环境 |
CN110348127B (zh) * | 2019-07-12 | 2023-05-09 | 北京物芯科技有限责任公司 | 一种测试用例的生成方法、装置、设备及存储介质 |
CN113094274B (zh) * | 2021-04-14 | 2023-10-13 | 深圳忆联信息系统有限公司 | 基于Python的FPGA验证方法、装置、计算机设备及存储介质 |
CN116594872B (zh) * | 2023-04-28 | 2023-11-07 | 进迭时空(杭州)科技有限公司 | 一种soc原型验证自动化回归测试装置和方法 |
CN116719728B (zh) * | 2023-06-12 | 2023-12-29 | 南京金阵微电子技术有限公司 | 多节点回归测试方法、装置、介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577274A (zh) * | 2003-07-01 | 2005-02-09 | 华为技术有限公司 | 自动化仿真方法及系统 |
CN101995546A (zh) * | 2010-11-16 | 2011-03-30 | 复旦大学 | 基于边界扫描的可编程逻辑器件自动测试系统与方法 |
CN102141951A (zh) * | 2010-11-25 | 2011-08-03 | 华为技术有限公司 | 芯片仿真系统及方法 |
CN102156784A (zh) * | 2011-04-18 | 2011-08-17 | 烽火通信科技股份有限公司 | 验证环境图形化的芯片验证方法与装置 |
CN102567189A (zh) * | 2010-12-14 | 2012-07-11 | 中兴通讯股份有限公司 | 每日构造的自动仿真方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006056432A1 (de) * | 2006-11-28 | 2008-05-29 | Certess, Inc., Campbell | Verfahren zum Testen eines Computerprogramms |
-
2013
- 2013-08-29 CN CN201310386248.1A patent/CN103455672B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577274A (zh) * | 2003-07-01 | 2005-02-09 | 华为技术有限公司 | 自动化仿真方法及系统 |
CN101995546A (zh) * | 2010-11-16 | 2011-03-30 | 复旦大学 | 基于边界扫描的可编程逻辑器件自动测试系统与方法 |
CN102141951A (zh) * | 2010-11-25 | 2011-08-03 | 华为技术有限公司 | 芯片仿真系统及方法 |
CN102567189A (zh) * | 2010-12-14 | 2012-07-11 | 中兴通讯股份有限公司 | 每日构造的自动仿真方法及系统 |
CN102156784A (zh) * | 2011-04-18 | 2011-08-17 | 烽火通信科技股份有限公司 | 验证环境图形化的芯片验证方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103455672A (zh) | 2013-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7302677B2 (en) | Event driven graph explorer for model-based testing of software | |
US6385765B1 (en) | Specification and verification for concurrent systems with graphical and textual editors | |
CN103455672B (zh) | 一种fpga仿真测试用例自动化回归方法 | |
US20070094541A1 (en) | Method and apparatus for generating test execution sequences automatically for a software testing process | |
CN104834600B (zh) | 一种测试Android应用控件的方法 | |
CN107562969B (zh) | 航空发动机控制系统软件的集成方法和装置 | |
US9239773B1 (en) | Method and system for debugging a program that includes declarative code and procedural code | |
US8904321B1 (en) | System and method for automatically generating coverage constructs and constraint solver distributions | |
CN102156784A (zh) | 验证环境图形化的芯片验证方法与装置 | |
CN104391791B (zh) | 嵌入式控制算法的测试方法及装置 | |
US10489534B1 (en) | Support for multiple user defined assertion checkers in a multi-FPGA prototyping system | |
Xie | Developing cost-effective model-based techniques for GUI testing | |
CN112732579B (zh) | 一种WebUI的自动化测试方法和系统 | |
CN111352826A (zh) | 一种界面测试用例自动生成方法及工具 | |
CN103678116A (zh) | 用于促进自动化程序测试的方法和系统 | |
US8265918B1 (en) | Simulation and emulation of a circuit design | |
Said et al. | Towards Interactive Mining of Understandable State Machine Models from Embedded Software. | |
Torsel | Automated test case generation for web applications from a domain specific model | |
CN106528429A (zh) | 一种ui界面测试方法及装置 | |
Xu et al. | A requirement-based regression test selection technique in behavior-driven development | |
Yang et al. | Memoise: a tool for memoized symbolic execution | |
US9373077B1 (en) | System and method for identifying constraint solver calls | |
Vinter et al. | Fiscade-a fault injection tool for scade models | |
CN108984401A (zh) | 一种解耦测试方法 | |
Ibrahim et al. | Finite State Machine-Model Based Testing on Website Application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |