CN110096404A - 一种基于裸机代码的自动化SoC验证方法及装置 - Google Patents
一种基于裸机代码的自动化SoC验证方法及装置 Download PDFInfo
- Publication number
- CN110096404A CN110096404A CN201910372125.XA CN201910372125A CN110096404A CN 110096404 A CN110096404 A CN 110096404A CN 201910372125 A CN201910372125 A CN 201910372125A CN 110096404 A CN110096404 A CN 110096404A
- Authority
- CN
- China
- Prior art keywords
- soc
- ubuntu
- machine
- automation
- emulator
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明揭示了一种基于裸机代码的自动化SoC验证方法及装置,所述方法包括搭建基于裸机代码的自动化验证环境,在所述自动化验证环境内,自动化运行SoC验证过程。本发明搭建完环境,只需执行Python脚本就可以自动化完成SoC各个模块的验证,减少其他因素对验证结果的影响,减少重复验证的工作量,可用于回归验证,减少大量人工时间。
Description
技术领域
本发明涉及一种SoC验证技术,尤其是涉及一种基于裸机代码的自动化SoC验证方法及装置。
背景技术
随着SoC(System on Chip,系统级芯片)集成度越来越高,验证已经变得日益重要,验证的好坏将影响芯片投片的成功率,SoC的验证工作贯穿整个设计流程,当前验证工作已经占整个设计工作70%左右,因此一个好的验证方法可以有效提高验证效率,缩短开发周期,在SoC中有着重要的意义。
仿真和软件验证是SoC设计中重要组成部分,仿真主要是IP(Internet Protocol,互联网协议)核-IP核间互连验证、系统总线协调性验证和标准规范兼容性验证等;软件验证主要用于各个模块的功能性验证和系统级验证,SoC的模块和功能不断增加,使得软件验证工作量也越来越大,在软件方面的投资已经远超于硬件投资。这会带来以下两个问题,一是由于软件验证慢而延误了产品上市的时间,二是产品出现问题后多是由于软件方面的原因。
因此在软件验证过程中,需要设计开发一种通用、自动化、便捷和可控可观测的验证方法,来提高SoC设计中的软件验证的效率。
现有的软件验证方法主要依赖于uboot(系统引导文件),在uboot中实现各个模块的复位和初始化,在uboot命令行中手动输入相关命令,例:在uboot命令行中输入“mmcinfo”命令,软件会复位和初始化eMMC(Embedd Multi Media Card),我们再依靠格式化输出的打印,人工去判断整个过程是否存在问题。
但是上述现有软件验证方法还是存在以下缺点:1、对模块的特性和功能覆盖率比较小,很难满足SoC验证的要求。2、很多模块之间互相会有影响,出现问题之后,不容易定位。3、假设uboot启动失败,很多模块验证将无法进行,对uboot整体代码过于依赖。4、验证过程中,需要人工不停地输入命令,简单重复动作太多,也容易操作失误。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种基于裸机代码的自动化SoC验证方法及装置。
为实现上述目的,本发明提出如下技术方案:一种基于裸机代码的自动化SoC验证方法,包括:
S1,搭建基于裸机代码的自动化验证环境;
S2,在所述自动化验证环境内,自动化运行SoC验证过程。
优选地,所述自动化验证环境包括Ubuntu PC机、SoC目标板和仿真器,其中,所述仿真器的一端连接所述Ubuntu PC机,另一端连接所述SoC目标板,所述SoC目标板与UbuntuPC机连接。
优选地,所述仿真器使用USB线连接Ubuntu PC机,使用JTAG端口连接SoC目标板,所述SoC目标板的串口接Ubuntu PC机。
优选地,所述仿真器为劳特巴赫仿真器。
优选地,所述S2包括:
S21,在Ubuntu PC机上执行Python脚本,自动化编译SoC全部或单独某个模块,每个模块生成一个可执行文件;
S22,所述仿真器自动执行仿真器脚本,并将所述可执行文件下载到SoC目标板中并运行,在运行过程中,执行模块中的验证用例;
S23,所述SoC目标板将模块验证结果传回Ubuntu PC机;
S24,所述Ubuntu PC机得到所述模块验证结果后自动生成验证报告。
优选地,S21中,所述Python脚本根据所带参数,自动化编译SoC全部模块或者编译单独某个模块。
优选地,S21中,所述Python脚本选择所带的参数,自动化编译全部模块或者单独某个模块。
优选地,S22中,所述SoC目标板执行另一个模块的验证用例的时候,所述仿真器脚本重新下载可执行文件到SoC目标板。
本发明还揭示了另外一种技术方案:一种基于裸机代码的自动化SoC验证装置,包括:Ubuntu PC机、SoC目标板和仿真器,所述仿真器的一端连接所述Ubuntu PC机,另一端连接所述SoC目标板,所述SoC目标板与Ubuntu PC机连接,其中,
所述Ubuntu PC机配置用于执行Python脚本,根据所带参数自动化编译SoC全部或单独某个模块,每个模块生成一个可执行文件;
所述仿真器配置用于自动执行仿真器脚本,并将所述可执行文件下载到SoC目标板中并运行,在运行过程中,执行模块中的验证用例;
所述SoC目标板配置用于将模块验证结果传回Ubuntu PC机;
所述Ubuntu PC机还配置用于接收到所述模块验证结果后自动生成验证报告。
优选地,所述仿真器使用USB线连接Ubuntu PC机,使用JTAG端口连接SoC目标板,所述SoC目标板的串口接Ubuntu PC机。
本发明的有益效果是:
1、本发明搭建完环境,只需执行Python脚本就可以自动化完成SoC各个模块的验证,减少其他因素对验证结果的影响,减少重复验证的工作量,可用于回归验证,减少大量人工时间。
2、本发明可以单独编译所需验证的模块,验证用例增减方便,验证形式灵活。
3、本发明的全部操作由软件完成,增加软件的信任度,不存在人工操作过程中的错误。
4、验证结果具有一致性和可重复性,不受其他模块干扰。
附图说明
图1是本发明装置的结构示意图;
图2是本发明方法的流程示意图;
图3是本发明验证方法的具体流程示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
bare-metal是指一套不包含系统的裸机代码,整套代码是从uboot(系统引导文件)中抽取出来的,它们很多相似之处,bare-metal也有自己的一套汇编语句、堆栈初始化、驱动程序和配置文件等,跟uboot代码相比,bare-metal比较精简,可以把更多的模块单独拿出来,验证环境比较干净,不会受其他模块驱动程序影响。同时,它具有一定可移植性和复用性,bare-metal中的驱动程序可以从uboot代码中进行移植。将在uboot命令行中需要手动执行的命令全部移植到bare-metal中,将多个命令组合起来作为一个验证用例,并在bare-metal代码中去分析运行完验证用例的结果。bare-metal代码包含了多个不同模块,不同模块又包含了多个不同验证用例。
本发明所揭示的一种基于裸机代码的自动化SoC验证方法及装置,在bare-metal(裸机代码)代码的基础之上,用Python(是一种计算机程序设计语言)脚本实现一套自动化验证代码,可以实现自动化的编译;实现自动化连接劳特巴赫仿真器,运行仿真器脚本;及实现自动化发送验证命令和生成验证报告。
结合图1和图2所示,本发明所揭示的一种基于裸机代码的自动化SoC验证方法,包括:
S1,搭建基于裸机代码的自动化验证环境。
具体地,如图1所示,整个bare-metal的自动化验证方法的环境搭建包含3部分:Ubuntu PC机、SoC目标板和仿真器,其中,仿真器实施时可以为劳特巴赫仿真器,劳特巴赫仿真器的一端使用数据线(如USB线)连接Ubuntu PC机,另一端使用JTAG端口连接SoC目标板,SoC目标板的串口再接到Ubuntu PC机上。这样,整个SoC的自动化验证环境搭建完成。。这里的Ubuntu PC机即为安装Ubuntu操作系统的个人电脑。
S2,在上述自动化验证环境内,自动化运行SoC验证过程。
具体地,结合图3所示,S2包括:
S21,在Ubuntu PC机上执行Python脚本,自动化编译SoC全部或单独某个模块,每个模块生成一个可执行文件。
具体地,在Ubuntu PC机上只需要执行Python脚本,Python脚本可以根据所带的参数,自动化编译SoC全部模块或者编译单独某个模块,每个模块都会生成一个可执行文件,便于在验证过程中所要验证的模块不会受其他模块影响,也可以选择所带的参数编译SoC全部模块或者单独某个模块。
S22,仿真器自动执行仿真器脚本,并将所述可执行文件下载到SoC目标板中并运行,在运行过程中,执行模块中的验证用例。
具体地,Python脚本会利用USB线自动连接劳特巴赫仿真器,劳特巴赫仿真器会自动执行仿真器脚本,并通过JTAG端口连接上SoC目标板,并将Python脚本编译生成的上述模块可执行文件下载到SoC目标板中,并运行,运行过程中,会执行SoC模块中的验证用例。
运行SoC另一模块的验证用例的时候,仿真器脚本会重新下载可执行文件到SoC目标板。
S23,SoC目标板将模块验证结果传回Ubuntu PC机。
具体地,SoC目标板会通过串口将模块验证结果传回Ubuntu PC机,
S24,Ubuntu PC机得到所述模块验证结果后自动生成验证报告。
与上述一种基于裸机代码的自动化SoC验证方法对应的,本发明所揭示的一种基于裸机代码的自动化SoC验证装置,包括:Ubuntu PC机、SoC目标板和仿真器,所述仿真器的一端使用USB线连接Ubuntu PC机,另一端使用JTAG端口连接SoC目标板,SoC目标板的串口与Ubuntu PC机连接,其中,
Ubuntu PC机上执行Python脚本,根据所带参数自动化编译SoC全部或单独某个模块,每个模块生成一个可执行文件;
仿真器自动执行仿真器脚本,并将可执行文件下载到SoC目标板中并运行,在运行过程中,执行模块中的验证用例;
SoC目标板将模块验证结果传回Ubuntu PC机;
Ubuntu PC机接收到所述模块验证结果后自动生成验证报告。
Ubuntu PC机、SoC目标板和仿真器的原理可参照上述方法中的描述,这里不再赘述。
本发明搭建完验证环境后,只需执行Python脚本就可以自动化完成模块的验证,减少重复验证的工作量,可用于回归验证。可以单独编译所需验证的模块,验证用例增减方便,验证形式灵活。全部操作由软件完成,增加软件的信任度,不存在人工操作过程中的错误。验证结果具有一致性和可重复性,不受其他模块干扰。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (10)
1.一种基于裸机代码的自动化SoC验证方法,其特征在于,包括:
S1,搭建基于裸机代码的自动化验证环境;
S2,在所述自动化验证环境内,自动化运行SoC验证过程。
2.根据权利要求1所述的一种基于裸机代码的自动化SoC验证方法,其特征在于,所述自动化验证环境包括Ubuntu PC机、SoC目标板和仿真器,其中,所述仿真器的一端连接所述Ubuntu PC机,另一端连接所述SoC目标板,所述SoC目标板与Ubuntu PC机连接。
3.根据权利要求2所述的一种基于裸机代码的自动化SoC验证方法,其特征在于,所述仿真器使用USB线连接Ubuntu PC机,使用JTAG端口连接SoC目标板,所述SoC目标板的串口接Ubuntu PC机。
4.根据权利要求2所述的一种基于裸机代码的自动化SoC验证方法,其特征在于,所述仿真器为劳特巴赫仿真器。
5.根据权利要求3所述的一种基于裸机代码的自动化SoC验证方法,其特征在于,所述S2包括:
S21,在Ubuntu PC机上执行Python脚本,自动化编译SoC全部或单独某个模块,每个模块生成一个可执行文件;
S22,所述仿真器自动执行仿真器脚本,并将所述可执行文件下载到SoC目标板中并运行,在运行过程中,执行模块中的验证用例;
S23,所述SoC目标板将模块验证结果传回Ubuntu PC机;
S24,所述Ubuntu PC机得到所述模块验证结果后自动生成验证报告。
6.根据权利要求5所述的一种基于裸机代码的自动化SoC验证方法,其特征在于,S21中,所述Python脚本根据所带参数,自动化编译SoC全部模块或者编译单独某个模块。
7.根据权利要求5所述的一种基于裸机代码的自动化SoC验证方法,其特征在于,S21中,所述Python脚本选择所带的参数,自动化编译全部模块或者单独某个模块。
8.根据权利要求5所述的一种基于裸机代码的自动化SoC验证方法,其特征在于,S22中,所述SoC目标板执行另一个模块的验证用例的时候,所述仿真器脚本重新下载可执行文件到SoC目标板。
9.一种基于裸机代码的自动化SoC验证装置,其特征在于,包括:Ubuntu PC机、SoC目标板和仿真器,所述仿真器的一端连接所述Ubuntu PC机,另一端连接所述SoC目标板,所述SoC目标板与Ubuntu PC机连接,其中,
所述Ubuntu PC机上执行Python脚本,根据所带参数自动化编译SoC全部或单独某个模块,每个模块生成一个可执行文件;
所述仿真器自动执行仿真器脚本,并将所述可执行文件下载到SoC目标板中并运行,在运行过程中,执行模块中的验证用例;
所述SoC目标板将模块验证结果传回Ubuntu PC机;
所述Ubuntu PC机接收到所述模块验证结果后自动生成验证报告。
10.根据权利要求9所述的一种基于裸机代码的自动化SoC验证装置,其特征在于,所述仿真器使用USB线连接Ubuntu PC机,使用JTAG端口连接SoC目标板,所述SoC目标板的串口接Ubuntu PC机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910372125.XA CN110096404A (zh) | 2019-05-06 | 2019-05-06 | 一种基于裸机代码的自动化SoC验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910372125.XA CN110096404A (zh) | 2019-05-06 | 2019-05-06 | 一种基于裸机代码的自动化SoC验证方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110096404A true CN110096404A (zh) | 2019-08-06 |
Family
ID=67446948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910372125.XA Pending CN110096404A (zh) | 2019-05-06 | 2019-05-06 | 一种基于裸机代码的自动化SoC验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110096404A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324496A (zh) * | 2020-02-20 | 2020-06-23 | 山东汇贸电子口岸有限公司 | 对裸机进行检测的方法及装置 |
CN113657068A (zh) * | 2020-05-12 | 2021-11-16 | 北京东土科技股份有限公司 | Soc仿真验证及soc的仿真验证设备验证环境搭建方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577274A (zh) * | 2003-07-01 | 2005-02-09 | 华为技术有限公司 | 自动化仿真方法及系统 |
CN102402628A (zh) * | 2010-09-07 | 2012-04-04 | 无锡中星微电子有限公司 | 一种生成SoC验证平台的方法及系统 |
CN106599343A (zh) * | 2016-11-01 | 2017-04-26 | 深圳国微技术有限公司 | 一种提高仿真效率的soc系统验证方法和装置 |
-
2019
- 2019-05-06 CN CN201910372125.XA patent/CN110096404A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577274A (zh) * | 2003-07-01 | 2005-02-09 | 华为技术有限公司 | 自动化仿真方法及系统 |
CN102402628A (zh) * | 2010-09-07 | 2012-04-04 | 无锡中星微电子有限公司 | 一种生成SoC验证平台的方法及系统 |
CN106599343A (zh) * | 2016-11-01 | 2017-04-26 | 深圳国微技术有限公司 | 一种提高仿真效率的soc系统验证方法和装置 |
Non-Patent Citations (1)
Title |
---|
张跃玲 等: "FPGA的验证平台及有效的SoC验证方法", 《单片机与嵌入式系统应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324496A (zh) * | 2020-02-20 | 2020-06-23 | 山东汇贸电子口岸有限公司 | 对裸机进行检测的方法及装置 |
CN111324496B (zh) * | 2020-02-20 | 2023-05-26 | 山东汇贸电子口岸有限公司 | 对裸机进行检测的方法及装置 |
CN113657068A (zh) * | 2020-05-12 | 2021-11-16 | 北京东土科技股份有限公司 | Soc仿真验证及soc的仿真验证设备验证环境搭建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102604010B1 (ko) | 온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비 | |
CN107463473B (zh) | 基于uvm和fpga的芯片软硬件仿真环境 | |
CN110865971B (zh) | Soc芯片的验证系统及其方法 | |
US8127187B2 (en) | Method and apparatus of ATE IC scan test using FPGA-based system | |
CN107783873B (zh) | 一种烧录器自动化测试平台的实现方法 | |
CN104268310B (zh) | 使用专用图形界面调用uvm验证环境的方法 | |
RU2010114709A (ru) | Способ автоматического генерирования сценария для проверки правильности функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для применения способа | |
CN110096404A (zh) | 一种基于裸机代码的自动化SoC验证方法及装置 | |
CN107329889B (zh) | 一种c编译器自动化测试的方法 | |
CN104461854B (zh) | 一种舰船装备软件通用仿真测试平台 | |
CN106598652B (zh) | FPGA环境下快速启动Linux内核的系统和启动方法 | |
CN115684896B (zh) | 芯片可测性设计测试方法、测试平台及其生成方法及装置 | |
CN115563019A (zh) | 一种uvm与c联合验证方法和系统 | |
CN103885885A (zh) | 一种使用WiFi对嵌入式软件进行仿真调试的方法 | |
CN103713977B (zh) | 一种微处理器ip核比较验证的实现方法 | |
CN110688269A (zh) | 采用axi总线接口的rtl代码自动化验证装置及方法 | |
CN103186459A (zh) | 基于脚本的java图形用户界面自动测试方法 | |
CN104459515A (zh) | 一种主板生产测试方法 | |
CN109739760B (zh) | 一种代码调测测试方法及装置、存储介质 | |
CN113220514B (zh) | 固态硬盘测试方法、装置、可读存储介质及电子设备 | |
CN111628910B (zh) | 蜂窝通信终端协议栈ttcn软件测试系统 | |
CN101751492A (zh) | 一种微控制器和该微控制器的仿真系统 | |
CN104899122A (zh) | 一种移动终端测试系统及方法 | |
Pegatoquet et al. | Virtual reality for 2.5 G wireless communication modem software development | |
EP2685381B1 (en) | Coordinated testing |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Applicant after: Suzhou Shengke Communication Co.,Ltd. Address before: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Applicant before: CENTEC NETWORKS (SUZHOU) Co.,Ltd. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190806 |