CN109783298A - 一种流程灵活可控的软硬件协同SoC验证方法 - Google Patents
一种流程灵活可控的软硬件协同SoC验证方法 Download PDFInfo
- Publication number
- CN109783298A CN109783298A CN201910048073.0A CN201910048073A CN109783298A CN 109783298 A CN109783298 A CN 109783298A CN 201910048073 A CN201910048073 A CN 201910048073A CN 109783298 A CN109783298 A CN 109783298A
- Authority
- CN
- China
- Prior art keywords
- case
- software
- soc
- verification method
- hardware
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012795 verification Methods 0.000 title claims abstract description 30
- 238000004088 simulation Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 10
- 238000013461 design Methods 0.000 claims description 4
- 238000012806 monitoring device Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种流程灵活可控的软硬件协同SoC验证方法,涉及IC仿真验证领域,所述验证方法的软件环境所使用的顶层库可以和开发所使用的保持一致,并且根据验证的特点加入验证过程的控制,具体包括以下步骤:步骤1、搭建SoC软硬件仿真环境;步骤2、编写软件测试用例,并编译成SoC可执行二进制文件;步骤3、运行仿真,SoC执行编译完成的程序;步骤4、仿真结束,处理仿真结果。本发明中SoC仿真环境软件部分搭建非常快捷,且项目之间可重用性非常高,通过加入控制流程,可以将多个用例一起编译仿真,便于用例的分类管理,减少软件编译次数,同时和嵌入式软件开发环境有很高的重合性,和软件人员沟通、联调比较方便。
Description
技术领域
本发明涉及IC仿真验证领域,尤其涉及一种流程灵活可控的软硬件协同SoC验证方法。
背景技术
目前常用的SoC验证方法中,通过软件编写测试用例,测试环境让SoC运行编写的测试用例进行仿真验证。软件编写测试用例时,大多数的做法是采用Linux环境,使用gcc进行C程序的编译。采用此种方法进行验证,可以将编译、运行以及结果检查等用脚本一次性做好,但是在环境的搭建上相对比较繁琐,软件库等底层库文件不能完全和嵌入式软件人员共用,在和软件人员进行联调时环境不统一,调试效率会收到影响。
因此,本领域的技术人员致力于开发一种流程灵活可控的软硬件协同SoC验证方法,采用的Keil MDK软件验证环境,采用C语言编写软件测试用例,采用ARMCC编译器进行编译,可以和软件人员的开发环境高度重合,只需添加少量流程控制等内容就可以,环境搭建比较简单快捷;对于此种方式,鉴于C程序的编译和后续的流程分离,所以加入软件执行过程控制流程,编译的程序可以包含很多用例,用例之间可以通过加入少许控制使两者不互相影响,用例之间可以清晰划分,同时可以灵活控制出现什么错误时结束仿真。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是传统SoC验证方法的测试环境的搭建上相对比较繁琐,软件库等底层库文件不能完全和嵌入式软件人员共用,在和软件人员进行联调时环境不统一,影响调试效率。
为实现上述目的,本发明提供了一种流程灵活可控的软硬件协同SoC验证方法,所述验证方法的软件环境所使用的顶层库可以和开发所使用的保持一致,并且根据验证的特点加入验证过程的控制,具体包括以下步骤:
步骤1、搭建SoC软硬件仿真环境;
步骤2、编写软件测试用例,并编译成SoC可执行二进制文件;
步骤3、运行仿真,SoC执行编译完成的程序;
步骤4、仿真结束,处理仿真结果。
进一步地,所述步骤1中的所述SoC软硬件仿真环境的包括软件环境、外部激励、待测设计以及检查器与监视器。
进一步地,所述步骤1中的所述SoC软硬件仿真环境的软件环境使用Keil MDK搭建。
进一步地,所述步骤1中的所述SoC软硬件仿真环境的软件环境的搭建包括以下步骤:
步骤1.1、加入顶层库文件;
步骤1.2、加入验证软件执行过程控制部分,并分类添加验证用例。
进一步地,所述顶层库文件包括启动文件和模块库。
进一步地,所述步骤2中的所述编写软件测试用例采用C语言进行编写,采用ARMCC编译器进行编译。
进一步地,所述步骤2中的所述编写软件测试用例包括以下步骤:
步骤2.1、初始化;
步骤2.2、进行用例的注册;
步骤2.3、进入软件执行过程控制流程;
步骤2.4、等待所有用例测试完毕,仿真结束。
进一步地,所述初始化包括时钟频率的切换,必要模块时钟的使能和频率的设置以及变量的初始化。
进一步地,所述用例的注册包括测试函数的用例的确定,以及每个测试函数的用例的预备用例和收尾用例的函数的确定。
进一步地,所述软件执行过程控制流程包括循环判断是否有注册的用例,如果有注册的用例接着判断此用例是否已经执行过,如果用例没有执行过则记录此用例的序列号,然后执行此用例,执行此用例前,可以有选择地是否执行此用例的预备用例,执行此用例后,可以有选择地是否执行此用例的收尾用例,在用例执行结束后,记录此用例执行结束,同时返回结果,如果用例执行过程中如果碰到比较严重的错误,提前结束此用例,然后进入下一个用例。
本发明中SoC仿真环境软件部分搭建非常快捷,且项目之间可重用性非常高,通过加入控制流程,可以将多个用例一起编译仿真,便于用例的分类管理,减少软件编译次数;同时和嵌入式软件开发环境有很高的重合性,和软件人员沟通、联调比较方便。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例的软硬件协同SoC验证方法验证平台结构图;
图2是本发明的一个较佳实施例的软硬件协同SoC验证方法总体流程示意图;
图3是本发明的一个较佳实施例的软硬件协同SoC验证方法软件控制流程示意图。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。
如图1所示,是本发明的一个较佳实施例的软硬件协同SoC验证方法验证平台结构图,包括软件环境、外部激励、待测设计以及检查器与监视器。
如图2所示,是本发明的一个较佳实施例的软硬件协同SoC验证方法总体流程示意图,具体流程如下:
步骤S1,搭建SoC软硬件仿真环境。
步骤S2,软件测试用例编写,将编写好的软件测试用例编译成硬件环境可执行的二进制文件,供后续仿真使用。
步骤S3,运行仿真,SoC执行编译完成的程序。
步骤S4,仿真结束,仿真结果处理。
如图3所示,是一个较佳实施例的软硬件协同SoC验证方法软件控制流程示意图。
具体过程如下:
步骤S1,搭建软件仿真环境,将启动文件,模块库文件加入,此两部分可重用。加入验证特有部分,验证流程控制的各个函数以及总体流程控制函数,中断函数,用例注册函数。
步骤S2,分类编写用例,将用例按照功能点进行分类。
步骤S3,将要仿真测试的用例进行注册,只有被注册的用例才会被执行,可以灵活调整和分类已有的用例。
步骤S4,以上步骤完成后,可以编译运行了,软件运行时,会有一个总体控制流程。
步骤S5,总体控制流程中,首先由计数器(计数器的值一直被保存)计数,判断是否达到预先设定的用例最大数(比如一次最多可仿真32个用例),如果到达最大数,那么结束仿真,否则进入S6。
步骤S6,判断用例case[i]是否被预先注册过,如果没有注册过,进入S5,否则进入S7。
步骤S7,判断用例case[i]是否已经仿真完成,如果仿真完成,则进入S15,否则进入S8。
步骤S8,经S7判断,用例case[i]没有仿真完成,记录用例case[i]仿真开始。
步骤S9,判断用例case[i]的预备用例pre_case[i]是否被注册过如果注册过,进入S10,否则进入S11。
步骤S10,执行预备用例pre_case[i],预备用例pre_case[i]可以为用例case[i]执行一些预备工作。
步骤S11,执行用例case[i],功能点的验证主要集中在用例case[i]中进行。
步骤S12,判断用例case[i]的收尾post_case[i]是否被注册过如果注册过,进入S13,否则进入S14。
步骤S13,执行收尾用例post_case[i],收尾用例post_case[i]可以为用例case[i]执行一些收尾工作。
步骤S14,记录用例case[i]的仿真结果。
步骤S15,用例case[i]执行完成,记录用例case[i]完成标志,进入S5。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (10)
1.一种流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述验证方法的软件环境所使用的顶层库可以和开发所使用的保持一致,并且根据验证的特点加入验证过程的控制,具体包括以下步骤:
步骤1、搭建SoC软硬件仿真环境;
步骤2、编写软件测试用例,并编译成SoC可执行二进制文件;
步骤3、运行仿真,SoC执行编译完成的程序;
步骤4、仿真结束,处理仿真结果。
2.如权利要求1所述的流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述步骤1中的所述SoC软硬件仿真环境的包括软件环境、外部激励、待测设计以及检查器与监视器。
3.如权利要求1所述的流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述步骤1中的所述SoC软硬件仿真环境的软件环境使用Keil MDK搭建。
4.如权利要求1所述的流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述步骤1中的所述SoC软硬件仿真环境的软件环境的搭建包括以下步骤:
步骤1.1、加入顶层库文件;
步骤1.2、加入验证软件执行过程控制部分,并分类添加验证用例。
5.如权利要求4所述的流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述顶层库文件包括启动文件和模块库。
6.如权利要求1所述的流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述步骤2中的所述编写软件测试用例采用C语言进行编写,采用ARMCC编译器进行编译。
7.如权利要求1所述的流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述步骤2中的所述编写软件测试用例包括以下步骤:
步骤2.1、初始化;
步骤2.2、进行用例的注册;
步骤2.3、进入软件执行过程控制流程;
步骤2.4、等待所有用例测试完毕,仿真结束。
8.如权利要求7所述的流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述初始化包括时钟频率的切换,必要模块时钟的使能和频率的设置以及变量的初始化。
9.如权利要求7所述的流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述用例的注册包括测试函数的用例的确定,以及每个测试函数的用例的预备用例和收尾用例的函数的确定。
10.如权利要求7所述的流程灵活可控的软硬件协同SoC验证方法,其特征在于,所述软件执行过程控制流程包括循环判断是否有注册的用例,如果有注册的用例接着判断此用例是否已经执行过,如果用例没有执行过则记录此用例的序列号,然后执行此用例,执行此用例前,可以有选择地是否执行此用例的预备用例,执行此用例后,可以有选择地是否执行此用例的收尾用例,在用例执行结束后,记录此用例执行结束,同时返回结果,如果用例执行过程中如果碰到比较严重的错误,提前结束此用例,然后进入下一个用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910048073.0A CN109783298A (zh) | 2019-01-18 | 2019-01-18 | 一种流程灵活可控的软硬件协同SoC验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910048073.0A CN109783298A (zh) | 2019-01-18 | 2019-01-18 | 一种流程灵活可控的软硬件协同SoC验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109783298A true CN109783298A (zh) | 2019-05-21 |
Family
ID=66501594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910048073.0A Pending CN109783298A (zh) | 2019-01-18 | 2019-01-18 | 一种流程灵活可控的软硬件协同SoC验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783298A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209719A (zh) * | 2019-12-31 | 2020-05-29 | 西安翔腾微电子科技有限公司 | Ic设计环境的自动化实现方法、装置、设备及存储介质 |
CN112329366A (zh) * | 2020-12-04 | 2021-02-05 | 国微集团(深圳)有限公司 | 一种提高仿真效率的soc***验证方法、装置及*** |
CN113866586A (zh) * | 2020-06-30 | 2021-12-31 | 澜至电子科技(成都)有限公司 | 一种***级芯片的验证平台及验证方法 |
US11520968B2 (en) | 2020-06-30 | 2022-12-06 | Montage Lz Technologies (Chengdu) Co., Ltd. | Verification platform for system on chip and verification method thereof |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539522B1 (en) * | 2000-01-31 | 2003-03-25 | International Business Machines Corporation | Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs |
CN101645811A (zh) * | 2009-09-02 | 2010-02-10 | 中兴通讯股份有限公司 | 一种自动测试嵌入式***的装置及方法 |
CN102662648A (zh) * | 2012-03-05 | 2012-09-12 | 广东天波信息技术股份有限公司 | 一种通讯终端的嵌入式软件开发仿真平台及其应用 |
CN102902834A (zh) * | 2011-07-29 | 2013-01-30 | 炬力集成电路设计有限公司 | 一种soc芯片的验证方法及*** |
US20130326275A1 (en) * | 2012-06-04 | 2013-12-05 | Karthick Gururaj | Hardware platform validation |
CN106599343A (zh) * | 2016-11-01 | 2017-04-26 | 深圳国微技术有限公司 | 一种提高仿真效率的soc***验证方法和装置 |
CN108388514A (zh) * | 2018-02-24 | 2018-08-10 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-01-18 CN CN201910048073.0A patent/CN109783298A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539522B1 (en) * | 2000-01-31 | 2003-03-25 | International Business Machines Corporation | Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs |
CN101645811A (zh) * | 2009-09-02 | 2010-02-10 | 中兴通讯股份有限公司 | 一种自动测试嵌入式***的装置及方法 |
CN102902834A (zh) * | 2011-07-29 | 2013-01-30 | 炬力集成电路设计有限公司 | 一种soc芯片的验证方法及*** |
CN102662648A (zh) * | 2012-03-05 | 2012-09-12 | 广东天波信息技术股份有限公司 | 一种通讯终端的嵌入式软件开发仿真平台及其应用 |
US20130326275A1 (en) * | 2012-06-04 | 2013-12-05 | Karthick Gururaj | Hardware platform validation |
CN106599343A (zh) * | 2016-11-01 | 2017-04-26 | 深圳国微技术有限公司 | 一种提高仿真效率的soc***验证方法和装置 |
CN108388514A (zh) * | 2018-02-24 | 2018-08-10 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
官枫林等: "嵌入式***芯片的软硬件协同仿真环境设计", 《单片机与嵌入式***应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209719A (zh) * | 2019-12-31 | 2020-05-29 | 西安翔腾微电子科技有限公司 | Ic设计环境的自动化实现方法、装置、设备及存储介质 |
CN113866586A (zh) * | 2020-06-30 | 2021-12-31 | 澜至电子科技(成都)有限公司 | 一种***级芯片的验证平台及验证方法 |
US11514225B2 (en) | 2020-06-30 | 2022-11-29 | Montage Lz Technologies (Chengdu) Co., Ltd. | Verification platform for system on chip and verification method thereof |
US11520968B2 (en) | 2020-06-30 | 2022-12-06 | Montage Lz Technologies (Chengdu) Co., Ltd. | Verification platform for system on chip and verification method thereof |
CN113866586B (zh) * | 2020-06-30 | 2024-04-12 | 澜至电子科技(成都)有限公司 | 一种***级芯片的验证平台及验证方法 |
CN112329366A (zh) * | 2020-12-04 | 2021-02-05 | 国微集团(深圳)有限公司 | 一种提高仿真效率的soc***验证方法、装置及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783298A (zh) | 一种流程灵活可控的软硬件协同SoC验证方法 | |
US11281570B2 (en) | Software testing method, system, apparatus, device medium, and computer program product | |
CN110865971B (zh) | Soc芯片的验证***及其方法 | |
US8930912B2 (en) | Method and system for performing software verification | |
US8943377B2 (en) | On-chip detection of types of operations tested by an LBIST | |
CN104063321B (zh) | 一种针对MicroBlaze软核程序的测试验证***及测试验证方法 | |
FR2921170A1 (fr) | Procede de generation automatique de programmes de test d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre | |
US8990622B2 (en) | Post-silicon validation using a partial reference model | |
US20150074653A1 (en) | Executing code on a test instrument in response to an event | |
US20160275000A1 (en) | System and method of automated application screen flow generation for detecting aberration in mobile application | |
CN106528429A (zh) | 一种ui界面测试方法及装置 | |
EP2150897B1 (fr) | Procede de simulation d'un systeme embarque a bord d'un aeronef pour tester un logiciel de fonctionnement et dispositif pour la mise en oeuvre de ce procede | |
CN114969760A (zh) | 漏洞检测方法及装置、计算机可读介质和电子设备 | |
CN116069635A (zh) | Soc***的测试方法、装置、计算机设备及存储介质 | |
CN111400997A (zh) | 一种基于同步执行的处理器核验证方法、***及介质 | |
US7243059B2 (en) | Simulation of hardware based on smart buffer objects | |
CN114430385A (zh) | 一种网络设备的检测方法、装置及电子设备 | |
Chyłek et al. | QEMU-based fault injection framework | |
CN106021109A (zh) | 一种面向程序结构分析自动化框架模型 | |
Lei et al. | Validating direct memory access interfaces with conformance checking | |
CN112783769A (zh) | 一种自定义的自动化软件测试方法 | |
US20210056395A1 (en) | Automatic testing of web pages using an artificial intelligence engine | |
CN107679266A (zh) | 闪存电路的仿真方法及仿真装置 | |
US6715134B2 (en) | Method and apparatus to facilitate generating simulation modules for testing system designs | |
CN112765021A (zh) | 一种引导程序的调试检验方法、装置、设备及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190521 |