CN109783298A - 一种流程灵活可控的软硬件协同SoC验证方法 - Google Patents

一种流程灵活可控的软硬件协同SoC验证方法 Download PDF

Info

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
Application number
CN201910048073.0A
Other languages
English (en)
Inventor
陆小辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI PANCHIP MICROELECTRONICS Co Ltd
Original Assignee
SHANGHAI PANCHIP MICROELECTRONICS Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI PANCHIP MICROELECTRONICS Co Ltd filed Critical SHANGHAI PANCHIP MICROELECTRONICS Co Ltd
Priority to CN201910048073.0A priority Critical patent/CN109783298A/zh
Publication of CN109783298A publication Critical patent/CN109783298A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种流程灵活可控的软硬件协同SoC验证方法,涉及IC仿真验证领域,所述验证方法的软件环境所使用的顶层库可以和开发所使用的保持一致,并且根据验证的特点加入验证过程的控制,具体包括以下步骤:步骤1、搭建SoC软硬件仿真环境;步骤2、编写软件测试用例,并编译成SoC可执行二进制文件;步骤3、运行仿真,SoC执行编译完成的程序;步骤4、仿真结束,处理仿真结果。本发明中SoC仿真环境软件部分搭建非常快捷,且项目之间可重用性非常高,通过加入控制流程,可以将多个用例一起编译仿真,便于用例的分类管理,减少软件编译次数,同时和嵌入式软件开发环境有很高的重合性,和软件人员沟通、联调比较方便。

Description

一种流程灵活可控的软硬件协同SoC验证方法
技术领域
本发明涉及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验证方法,其特征在于,所述软件执行过程控制流程包括循环判断是否有注册的用例,如果有注册的用例接着判断此用例是否已经执行过,如果用例没有执行过则记录此用例的序列号,然后执行此用例,执行此用例前,可以有选择地是否执行此用例的预备用例,执行此用例后,可以有选择地是否执行此用例的收尾用例,在用例执行结束后,记录此用例执行结束,同时返回结果,如果用例执行过程中如果碰到比较严重的错误,提前结束此用例,然后进入下一个用例。
CN201910048073.0A 2019-01-18 2019-01-18 一种流程灵活可控的软硬件协同SoC验证方法 Pending CN109783298A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 平安科技(深圳)有限公司 接口自动化测试方法、装置、设备及计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
官枫林等: "嵌入式系统芯片的软硬件协同仿真环境设计", 《单片机与嵌入式系统应用》 *

Cited By (6)

* Cited by examiner, † Cited by third party
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
US9128150B2 (en) On-chip detection of types of operations tested by an LBIST
CN110502374A (zh) 识别自动测试时设备故障的根本原因的流量捕获调试工具
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
US10156611B2 (en) Executing code on a test instrument in response to an event
US8990622B2 (en) Post-silicon validation using a partial reference model
CN106909498A (zh) 一种Java程序注入故障的方法和系统
CN113157508B (zh) 嵌入式系统的测试方法、系统、装置、设备及存储介质
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) 漏洞检测方法及装置、计算机可读介质和电子设备
Lei et al. Validating direct memory access interfaces with conformance checking
Chyłek et al. QEMU-based fault injection framework
CN112783769A (zh) 一种自定义的自动化软件测试方法
US20210056395A1 (en) Automatic testing of web pages using an artificial intelligence engine
CN114430385A (zh) 一种网络设备的检测方法、装置及电子设备
US6715134B2 (en) Method and apparatus to facilitate generating simulation modules for testing system designs
CN112765021A (zh) 一种引导程序的调试检验方法、装置、设备及存储介质
TW201933156A (zh) 用於增強可現場規劃閘陣列(fpga)驗證的仿真技術之方法及設備
US20230111938A1 (en) Testbenches for electronic systems with automatic insertion of verification features

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