CN105354075A - 一种软硬件协同仿真的同步方法 - Google Patents
一种软硬件协同仿真的同步方法 Download PDFInfo
- Publication number
- CN105354075A CN105354075A CN201510685351.5A CN201510685351A CN105354075A CN 105354075 A CN105354075 A CN 105354075A CN 201510685351 A CN201510685351 A CN 201510685351A CN 105354075 A CN105354075 A CN 105354075A
- Authority
- CN
- China
- Prior art keywords
- event
- address
- trigger
- cpu
- verified
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种软硬件协同仿真的同步方法,通过待验CPU向虚拟地址写特定的数据,由验证平台中的总线功能模块收到相关信息,再由解码模块解析数据的特定事件。每一个事件用一个方法学的回调callback与之对应。芯片验证人员在开发测试用例时,只需先在CPU执行代码的某处加入触发CPU向Dummy?Address写数据的代码,再在方法学中继承相对应事件的callback就可以完成同步。本发明能够实时监测到待验证CPU的代码执行状态,通过同步来做出实时检查,适用于构造复杂的测试用例,并结合验证方法学的回调,减轻验证人员的编程负担。
Description
技术领域
本发明涉及芯片验证领域,特别是涉及一种待验证CPU上执行的软件代码与芯片验证平台的软硬件协同仿真的同步方法。
背景技术
在当前的系统级验证中,往往需要在CPU中执行软件代码来验证系统的功能及可靠性等。例如CPU执行一段特定的代码,完成对芯片某个功能配置,当验证人员需要检查CPU所设定的配置是否生效,就需要在验证平台中写特定的代码去检查。由于当前的验证方法及平台无法直接知道CPU代码执行情况,进而验证人员就无法及时获知及做出检查。当前通用的做法是在CPU上执行软件代码,通过仿真器记录波形的方式来完成检查,这种做法的缺点是需要人工检查记录下来的波形,无法做到自动化,记录波形耗费时间长,更无法做到大量的测试。另一种流行的方案是,在一个测试用例中,CPU只进行一项操作,验证人员根据经验等待一个特定的时候后去检查,这种做法的缺点也很明显:一个测试用例只能完成做小化的简单检查,由于等待时间的不确定性,无法做出复杂的连续性测试用例。
发明内容
针对以上缺陷,本发明目的在于如何实现在验证CPU代码执行过程中需要检查时及时通知验证平台做出相应的检查,验证平台可实时的响应并完成检查。
为了实现上述目的,本发明提供了一种软硬件协同仿真的同步方法,待验证CPU与验证平台通过总线相连接,其特征在于在待验证CPU中预留一触发事件地址空间,所述触发事件地址空间为一段或多段不与待验证CPU内部寄存器和存储器的实际地址重合的虚拟地址;将所述触发事件地址空间按总线宽度分为多个事件触发地址,不同的事件触发地址预先定义映射不同的触发事件;在待验证CPU内部执行代码执行过程中在需要检查的位置中增加事件触发代码;验证平台上设有总线功能模块、解码模块和验证平台回调;当待验证CPU内部执行代码执行到事件触发代码时,向需要触发的检查事项对应的事件触发地址写入数据;总线功能模块接收事件触发地址的数据并将事件触发地址和接收到的数据传递给解码模块,解码模块解析出需要检查事项对应的事件所对应的回调函数,验证平台回调执行回调函数触发的检查。
所述的软硬件协同仿真的同步方法,其特征在于同一个事件触发地址预先可定义映射一个触发事件或多个触发事件。
所述的软硬件协同仿真的同步方法,其特征在于所述验证平台上还设有检查测试用例库,所述回调函数触发的检查通过系统调用测试用例库中的测试用例实现。
本发明能够实时监测到待验证CPU的代码执行状态,通过同步来做出实时检查,适用于构造复杂的测试用例,并结合验证方法学的回调,减轻验证人员的编程负担。
附图说明
图1是软硬件协同仿真的同步方法的系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是软硬件协同仿真的同步方法的系统框图,待验证CPU与验证平台通过总线相连接,其特征在于在待验证CPU中预留一触发事件地址空间,所述触发事件地址空间为一段或多段不与待验证CPU内部寄存器和存储器的实际地址重合的虚拟地址DummyAddress;将所述触发事件地址空间按总线宽度分为多个事件触发地址,不同的事件触发地址预先定义映射不同的触发事件;在待验证CPU内部执行代码执行过程中在需要检查的位置中增加事件触发检查;验证平台上设有总线功能模块BFM、解码模块Decoder、验证平台回调和测试用例;当待验证CPU内部执行代码执行到事件触发检查时,向需要触发的检查事项对应的事件触发地址写入数据;总线功能模块接收事件触发地址的数据并将事件触发地址和接收到的数据传递给解码模块,解码模块解析出需要检查事项对应的事件所对应的回调函数,验证平台回调触发对应的回调函数,并调用测试用例完成待验证CPU触发的检查。
以ARM为待验证CPU的SOC为例,阐述本方法的步骤:
在ARM内定义0xa000_0000为虚拟起始地址,0xa000_fffc为结束地址,这一连续的地址空间共有2048个字。这段地址空间不与芯片内部的真实寄存器和存储等实际地址重合。将0xa000_0000定义为事件0,0xa000_0004定义为事件1,以此类推,0xa000_fffc为事件2047。
在验证平台的总线功能模块BFM中,在地址空间0xa000_0000ˉ0xa000_fffc的接口处,使用硬件语言开发出符合ARMAMAB总线协议的接收模块与CPU连接,用于接收ARM发送的命令。
自仿真开始总线功能模块一直在等待CPU的命令,例如当CPU内的执行代码执行到需要触发事件0,需向0xa000_0000地址写了数据为0x0000_0000。BFM将接收到的地址(0xa000_0000)与数据(0x0000_0000)传到下一级模块—解码模块。
解码模块在接收到来自上一级总线功能模块的数据后进行解码,例如收到0xa000_0000与0x0000_0000的数据后,解码出CPU触发了事件0。例如收到0xa000_0004与0x0000_0001后,解码出CPU触发事件1,以此类推。
验证平台中定义了与虚拟地址的数目一样的回调(callback)数目,此例为2048个。
在解码模块解码出CPU触发的事件0,此时解码模块将启动验证平台回调中的callback0,以此类推。
经过一系列的操作,达到了CPU操作验证平台的目的,也就是完成了软件(CPU)到硬件(验证平台)的同步。
在测试用例中继承callbackN并写入硬件检查代码,完成对CPU事件N的响应。
此外,DummyAddress可以预留了一个可扩展的地址,该地址不同于DummyAddress内的其他地址,此地址为“一个地址对应多个事件,既是一个地址对应多个callback”。解码模块在接到该地址的“地址+数据”时,通过“数据”来解析CPU想触发的事件。相应的,需要多定义一些callback与之对应。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (3)
1.一种软硬件协同仿真的同步方法,待验证CPU与验证平台通过总线相连接,其特征在于在待验证CPU中预留一触发事件地址空间,所述触发事件地址空间为一段或多段不与待验证CPU内部寄存器和存储器的实际地址重合的虚拟地址;将所述触发事件地址空间按总线宽度分为多个事件触发地址,不同的事件触发地址预先定义映射不同的触发事件;在待验证CPU内部执行代码执行过程中在需要检查的位置中增加事件触发检查;验证平台上设有总线功能模块、解码模块和验证平台回调;当待验证CPU内部执行代码执行到事件触发检查时,向需要触发的检查事项对应的事件触发地址写入数据;总线功能模块接收事件触发地址的数据并将事件触发地址和接收到的数据传递给解码模块,解码模块解析出需要检查事项对应的事件所对应的回调函数,验证平台回调执行回调函数触发的检查。
2.根据权利要求1所述的软硬件协同仿真的同步方法,其特征在于同一个事件触发地址预先可定义映射一个触发事件或多个触发事件。
3.根据权利要求2所述的软硬件协同仿真的同步方法,其特征在于所述验证平台上还设有检查测试用例库,所述回调函数触发的检查通过系统调用测试用例库中的测试用例实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510685351.5A CN105354075B (zh) | 2015-10-20 | 2015-10-20 | 一种软硬件协同仿真的同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510685351.5A CN105354075B (zh) | 2015-10-20 | 2015-10-20 | 一种软硬件协同仿真的同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105354075A true CN105354075A (zh) | 2016-02-24 |
CN105354075B CN105354075B (zh) | 2018-10-26 |
Family
ID=55330049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510685351.5A Active CN105354075B (zh) | 2015-10-20 | 2015-10-20 | 一种软硬件协同仿真的同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354075B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991213A (zh) * | 2017-03-09 | 2017-07-28 | 记忆科技(深圳)有限公司 | 一种实现SoC验证的交互机制的方法 |
CN107395452A (zh) * | 2017-06-22 | 2017-11-24 | 重庆大学 | 一种利用软硬件协同技术提高WebServer的HTTPS应用性能的方法 |
CN110196791A (zh) * | 2019-04-30 | 2019-09-03 | 北京中电华大电子设计有限责任公司 | 一种芯片软硬件协同仿真验证的双向同步方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088150A1 (en) * | 1998-03-31 | 2004-05-06 | Synopsys, Inc. | System and method for hardware and software co-verification |
US20050165597A1 (en) * | 2004-01-27 | 2005-07-28 | Arm Limited | Apparatus and method for performing hardware and software co-verification testing |
CN101763265A (zh) * | 2010-01-19 | 2010-06-30 | 湖南大学 | 一种过程级软硬件协同设计自动化开发方法 |
JP2012027952A (ja) * | 2011-11-07 | 2012-02-09 | Fujitsu Semiconductor Ltd | シミュレーション装置 |
CN102521444A (zh) * | 2011-12-08 | 2012-06-27 | 青岛海信信芯科技有限公司 | 软硬件协同仿真/验证方法及装置 |
-
2015
- 2015-10-20 CN CN201510685351.5A patent/CN105354075B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088150A1 (en) * | 1998-03-31 | 2004-05-06 | Synopsys, Inc. | System and method for hardware and software co-verification |
US20050165597A1 (en) * | 2004-01-27 | 2005-07-28 | Arm Limited | Apparatus and method for performing hardware and software co-verification testing |
CN101763265A (zh) * | 2010-01-19 | 2010-06-30 | 湖南大学 | 一种过程级软硬件协同设计自动化开发方法 |
JP2012027952A (ja) * | 2011-11-07 | 2012-02-09 | Fujitsu Semiconductor Ltd | シミュレーション装置 |
CN102521444A (zh) * | 2011-12-08 | 2012-06-27 | 青岛海信信芯科技有限公司 | 软硬件协同仿真/验证方法及装置 |
Non-Patent Citations (1)
Title |
---|
王培东 等: "一种融合FPGA和ISS技术的软硬件协同验证方法", 《计算机工程与应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991213A (zh) * | 2017-03-09 | 2017-07-28 | 记忆科技(深圳)有限公司 | 一种实现SoC验证的交互机制的方法 |
CN107395452A (zh) * | 2017-06-22 | 2017-11-24 | 重庆大学 | 一种利用软硬件协同技术提高WebServer的HTTPS应用性能的方法 |
CN110196791A (zh) * | 2019-04-30 | 2019-09-03 | 北京中电华大电子设计有限责任公司 | 一种芯片软硬件协同仿真验证的双向同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105354075B (zh) | 2018-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698797B2 (en) | Mobile application program testing method, server, terminal, and storage medium | |
WO2016095554A1 (zh) | 应用程序的测试方法、设备及系统 | |
US20160026555A1 (en) | Automated mobile application verification | |
CN107562637B (zh) | 一种用于软件测试的方法、设备、系统及存储介质 | |
US20190251219A1 (en) | Correlating verification scenario coverage with hardware coverage events | |
CN107577622B (zh) | 后端接口模拟方法、设备及存储介质 | |
US20160321159A1 (en) | Integrating a Protocol Analysis Device with Features of a Software Development Program | |
CN103049371A (zh) | Android应用程序测试方法和测试装置 | |
CN107404418B (zh) | 互联网产品测试方法、装置、设备及存储介质 | |
CN109873735B (zh) | H5页面的性能测试方法、装置和计算机设备 | |
CN113835945B (zh) | 芯片的测试方法、装置、设备及系统 | |
US8402446B2 (en) | Associating probes with test cases | |
CN109558313B (zh) | 构建异常测试场景的方法及装置 | |
CN112416775B (zh) | 基于人工智能的软件自动化测试方法、装置及电子设备 | |
CN110597704B (zh) | 应用程序的压力测试方法、装置、服务器和介质 | |
CN103123605A (zh) | 一种Android平台自动化集成测试方法和装置 | |
JP2017117442A (ja) | コンパイラー型情報を利用するプロセッサトレースログにおけるデータフロー分析のための方法及び装置 | |
CN105354075A (zh) | 一种软硬件协同仿真的同步方法 | |
CN109710523B (zh) | 视觉稿的测试用例生成方法及装置、存储介质、电子设备 | |
US11475191B2 (en) | Generating and adding additional control information to logic under test to facilitate debugging and comprehension of a simulation | |
CN110737900B (zh) | 网页功能测试方法及装置、服务器和计算机可读存储介质 | |
US20140143745A1 (en) | Techniques for segmenting of hardware trace and verification of individual trace segments | |
CN113535580B (zh) | 一种cts测试方法、装置及测试设备 | |
CN114546823B (zh) | 用于重现逻辑系统设计的调试场景的方法及相关设备 | |
CN112463574A (zh) | 软件测试方法、装置、系统、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |