CN106528414A - 处理器芯片仿真器 - Google Patents
处理器芯片仿真器 Download PDFInfo
- Publication number
- CN106528414A CN106528414A CN201610957030.0A CN201610957030A CN106528414A CN 106528414 A CN106528414 A CN 106528414A CN 201610957030 A CN201610957030 A CN 201610957030A CN 106528414 A CN106528414 A CN 106528414A
- Authority
- CN
- China
- Prior art keywords
- software
- chip
- interface
- monitoring module
- power consumption
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3652—Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
- G06F15/7832—Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种处理器芯片仿真器,包括:仿真芯片,监控模块以及安装在用户电脑上的集成开发环境软件和接口软件;仿真芯片内有处理器状态寄存器和PC记录寄存器;监控模块通过访问接口与仿真芯片连接,通过调试接口与用户电脑相连接,实现与接口软件进行信息传送,接口软件通过通信接口通过与集成开发环境软件进行信息传送;如果接口软件发现仿真芯片处于低功耗模式,则只通过监控模块读取PC记录寄存器的内容,然后把仿真芯片处于低功耗模式的信息、PC记录寄存器的内容返回给集成开发环境软件,集成开发环境软件上显示当前仿真芯片处于低功耗状态。本发明能够方便用户程序的开发和调试,提高用户程序的开发效率。
Description
技术领域
本发明涉及仿真器领域,特别是涉及一种处理器芯片仿真器。
背景技术
处理器芯片内有用户开发的用户程序,在用户程序的编写和调试中,所使用的工具一般是仿真器。仿真器内使用包含产品处理器芯片各项功能的仿真芯片,用于模拟产品处理器芯片的工作行为,仿真芯片与仿真器其它部件(存放用户程序的程序存储器、存放数据的数据存储器,以及用户电脑上的集成开发环境等)配合实现用户程序的仿真运行和各项调试功能。
很多处理器芯片都设计有低功耗模式,可以执行用户程序配置语句后控制处理器进入低功耗模式,为了达到低功耗的要求,当处理器芯片处于低功耗模式时是不能执行程序语句的,只有通过芯片设计的唤醒方式(例如接口电平触发、通信接口触发的中断等)才能退出低功耗模式继续执行用户程序。同样的,处理器芯片仿真器为了保证功能上的一致性,也保留了低功耗模式,全速执行用户程序时,执行了低功耗配置程序语句后也会进入低功耗模式,此时无法执行任何程序语句,包括用户程序和仿真器导出芯片状态所需执行的监控程序语句。用户通过集成开发环境停止全速执行用户程序或者单步执行一条用户程序语句后,集成开发环境都会自动下发一连串获取当前芯片状态的指令给仿真器,包括存储器(如果集成开发环境上打开了存储器窗口)、通用和特殊寄存器、程序执行指针(PC指针)等,仿真器内仿真芯片就会执行对应的监控程序,读取出这些数据返回给集成开发环境,显示在集成开发环境的界面上。如此,当仿真器全速执行用户程序进入了低功耗模式后,用户通过集成开发环境下发了停止全速执行用户程序的指令,或者用户通过集成开发环境单步执行了配置处理器芯片进入低功耗模式的用户程序语句后,由于仿真芯片进入了低功耗模式无法执行导出芯片状态的监控程序语句,而不能返回芯片状态数据给集成开发环境,或者返回的数据异常(例如,不在正常范围内),导致集成开发环境由于无法获取到仿真器返回的响应数据或数据异常,而在停止全速运行后或单步执行用户程序语句后无响应、崩溃、重启或者显示出异常的芯片状态参数,给用户调试用户程序造成麻烦,影响开发效率。现有有些仿真器的做法是在仿真器的仿真芯片内不实现低功耗模式,以避免上述问题的出现,但这样也造成了仿真器与实际芯片的功能性差异,不利于基于仿真器的用户程序开发、调试和测试。
发明内容
本发明要解决的技术问题是提供一种处理器芯片仿真器,能够方便用户程序的开发和调试,提高用户程序的开发调试效率。
为解决上述技术问题,本发明的处理器芯片仿真器,包括:仿真芯片,监控模块以及安装在用户电脑上的集成开发环境软件和接口软件;所述仿真芯片内有处理器状态寄存器和PC(Program Counter程序指针)记录寄存器;所述监控模块通过访问接口与仿真芯片连接,通过调试接口与用户电脑相连接,实现与接口软件进行信息传送,接口软件通过通信接口通过与集成开发环境软件进行信息传送;
当仿真器全速执行用户程序进入低功耗模式后,用户通过集成开发环境软件下发停止全速执行用户程序的指令,或者用户通过集成开发环境软件单步执行配置处理器芯片进入低功耗模式的用户程序语句后,所述接口软件接收到集成开发环境软件下发获取芯片状态指令,首先通过监控模块查询处理器状态寄存器的内容,如果发现仿真芯片不处于低功耗模式,则继续通过监控模块获取仿真芯片的各种芯片状态数据,然后把数据返回给集成开发环境软件;如果接口软件发现仿真芯片处于低功耗模式,则只通过监控模块读取PC记录寄存器的内容,然后把仿真芯片处于低功耗模式的信息、PC记录寄存器的内容,以及接口软件内存的一组特殊芯片状态数据返回给集成开发环境软件,集成开发环境软件上显示当前仿真芯片处于低功耗状态,进入低功耗模式的用户程序语句的PC值,以及一组虚拟的特殊芯片状态参数。
用户可以在集成开发环境软件上看到此时仿真芯片处于低功耗模式。
采用本发明所实现的仿真器能够真实模拟产品芯片的低功耗工作模式,同时,仿真器上全速执行用户程序进入了低功耗模式后,用户通过集成开发环境下发停止全速执行用户程序的指令,或者用户通过集成开发环境单步执行了配置处理器芯片进入低功耗模式的用户程序语句后,集成开发环境不会出现无响应、崩溃、重启或者显示出异常的芯片状态参数的情况,并在界面上提示用户仿真器当前处于低功耗模式。方便了用户程序的开发和调试,有助于提高用户程序开发调试效率。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明:
图1是所述处理器芯片仿真器的结构示意图。
具体实施方式
如图1所示,所述处理器芯片仿真器,包括:仿真芯片2,监控模块3以及安装在用户电脑上的集成开发环境软件5和接口软件4。所述仿真芯片2内有处理器状态寄存器6和PC记录寄存器7。所述监控模块3通过访问接口8与仿真芯片2连接,通过调试接口9与用户电脑相连接实现与所述接口软件4进行信息传送,所述接口软件4通过通信接口通道10与集成开发环境软件5进行信息传送。
所述仿真芯片2能模拟产品芯片所有功能,包括进入和退出低功耗状态的功能;同时增加属于调试逻辑部分的处理器状态寄存器6和PC记录寄存器7,是仿真芯片2内有而产品芯片内没有的。所述处理器状态寄存器6实时记录仿真芯片2内处理器的状态,包括正常运行、低功耗、停止、复位等状态。所述PC记录寄存器7实时记录仿真芯片2内处理器的程序指针值(PC值)。无论仿真芯片2处于何种状态,监控模块3都可以通过所述访问接口8读取处理器状态寄存器6和PC记录寄存器7的内容。所述监控模块3能通过访问接口8控制仿真芯片2执行监控程序,导出各种芯片状态数据,返还给监控模块3。所述集成开发环境软件5通过通信接口通道10下发调试指令给接口软件4,并获取接口软件4返回的响应数据显示在集成开发环境软件5的界面上。所述接口软件4通过调试接口通道9下发调试指令给监控模块3,并获取监控模块3返回的响应数据。所述接口软件4能通过调试接口9向监控模块3下发查询指令,控制监控模块3读取处理器状态寄存器6和PC记录寄存器7的内容。所述接口软件4内存有一组特殊芯片状态参数,可用于返回给集成开发环境软件5,这组数据在正常芯片状态参数范围内。
这样,所述处理器芯片仿真器1全速执行用户程序时,能够真实模拟产品芯片的低功耗工作模式。当仿真器1上全速执行用户程序进入了低功耗模式后,用户通过集成开发环境软件5下发停止全速执行用户程序的指令,或者用户通过集成开发环境软件5单步执行了配置处理器芯片进入低功耗模式的用户程序语句后,所述接口软件4接收到集成开发环境软件5下发获取芯片状态指令,首先通过监控模块3查询处理器状态寄存器6的内容,如果发现仿真芯片2不处于低功耗模式,则继续通过监控模块3获取仿真芯片2的各种芯片状态数据,然后把数据返回给集成开发环境软件5;如果接口软件4发现仿真芯片2处于低功耗模式,则只通过监控模块3读取PC记录寄存器7的内容,然后把仿真芯片2处于低功耗模式的信息、PC记录寄存器7的内容,以及接口软件4内存的一组特殊芯片状态参数返回给集成开发环境软件5,集成开发环境软件5上显示当前仿真芯片2处于低功耗状态,进入低功耗模式的用户程序语句的PC值,以及一组虚拟的特殊状态参数。用户可以在集成开发环境软件5上看到此时仿真芯片2处于低功耗模式。由于进入低功耗模式后,PC值不会再变化,从PC记录寄存器7读取到显示在集成开发环境软件5上的PC值就是进入低功耗模式的用户程序语句位置。无论集成开发环境软件5上开了多少及何种存储器界面,下发的获取这些芯片状态数据的指令都会有接口软件4返回的虚拟特殊芯片状态参数,不会因为没有数据返回或返回值异常出现集成开发环境软件5无响应、崩溃、重启或者显示出异常的芯片状态参数的情况。
除了上述实现方法外,所述接口软件4的所述功能也可以放到监控模块3中实现。
所述特殊芯片状态参数并无特殊要求,只需要在芯片允许的数据范围内,自定义一组特殊参数,约定表示处于低功耗状态,例如返回所有寄存器值为AA,所有存储器值也为AA,用户在集成开发环境界面上看到所有寄存器、存储器内容都显示AA,就知道是在低功耗模式了。正常芯片状态里,这种特殊芯片状态参数基本不可能出现。
以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
Claims (9)
1.一种处理器芯片仿真器,其特征在于,包括:仿真芯片,监控模块以及安装在用户电脑上的集成开发环境软件和接口软件;所述仿真芯片内有处理器状态寄存器和PC记录寄存器;所述监控模块通过访问接口与仿真芯片连接,通过调试接口与用户电脑相连接,实现与接口软件进行信息传送,接口软件通过通信接口通过与集成开发环境软件进行信息传送;
当仿真器全速执行用户程序进入低功耗模式后,用户通过集成开发环境软件下发停止全速执行用户程序的指令,或者用户通过集成开发环境软件单步执行配置处理器芯片进入低功耗模式的用户程序语句后,所述接口软件接收到集成开发环境软件下发获取芯片状态指令,首先通过监控模块查询处理器状态寄存器的内容,如果发现仿真芯片不处于低功耗模式,则继续通过监控模块获取仿真芯片的各种芯片状态数据,然后把数据返回给集成开发环境软件;如果接口软件发现仿真芯片处于低功耗模式,则只通过监控模块读取PC记录寄存器的内容,然后把仿真芯片处于低功耗模式的信息、PC记录寄存器的内容,以及接口软件内存的一组特殊芯片状态数据返回给集成开发环境软件,集成开发环境软件上显示当前仿真芯片处于低功耗状态,进入低功耗模式的用户程序语句的PC值,以及一组虚拟的特殊芯片状态参数。
2.如权利要求1所述的处理器芯片仿真器,其特征在于:用户在集成开发环境软件上能看到仿真芯片处于低功耗模式。
3.如权利要求1所述的处理器芯片仿真器,其特征在于:所述仿真芯片能模拟产品芯片所有功能,包括进入和退出低功耗状态的功能。
4.如权利要求1所述的处理器芯片仿真器,其特征在于:所述处理器状态寄存器实时记录仿真芯片内处理器的状态,包括正常运行、低功耗、停止、复位等状态;所述PC记录寄存器实时记录仿真芯片内处理器的程序指针值。
5.如权利要求1所述的处理器芯片仿真器,其特征在于:无论仿真芯片处于何种状态,监控模块都能通过所述访问接口读取处理器状态寄存器和PC记录寄存器的内容;所述监控模块能通过访问接口控制仿真芯片执行监控程序,导出各种芯片状态数据,返还给监控模块。
6.如权利要求1所述的处理器芯片仿真器,其特征在于:所述集成开发环境软件通过通信接口通道下发调试指令给接口软件,并获取接口软件返回的响应数据显示在集成开发环境软件的界面上。
7.如权利要求1所述的处理器芯片仿真器,其特征在于:所述接口软件通过调试接口下发调试指令给监控模块,并获取监控模块返回的响应数据。
8.如权利要求1所述的处理器芯片仿真器,其特征在于:所述接口软件能通过调试接口向监控模块下发查询指令,控制监控模块读取处理器状态寄存器和PC记录寄存器的内容。
9.如权利要求1所述的处理器芯片仿真器,其特征在于:所述接口软件内存有一组特殊芯片状态参数,用于返回给集成开发环境软件,这组数据在正常芯片状态参数范围内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610957030.0A CN106528414B (zh) | 2016-11-03 | 2016-11-03 | 处理器芯片仿真器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610957030.0A CN106528414B (zh) | 2016-11-03 | 2016-11-03 | 处理器芯片仿真器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528414A true CN106528414A (zh) | 2017-03-22 |
CN106528414B CN106528414B (zh) | 2018-12-11 |
Family
ID=58326935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610957030.0A Active CN106528414B (zh) | 2016-11-03 | 2016-11-03 | 处理器芯片仿真器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528414B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032482A (zh) * | 2019-04-11 | 2019-07-19 | 盛科网络(苏州)有限公司 | 片上调试装置和方法 |
CN110109793A (zh) * | 2019-05-30 | 2019-08-09 | 上海市信息网络有限公司 | 用于调测设备安检状态的仿真调试装置及仿真调试方法 |
CN110162438A (zh) * | 2019-05-30 | 2019-08-23 | 上海市信息网络有限公司 | 仿真调试装置和仿真调试方法 |
CN117251314A (zh) * | 2022-06-09 | 2023-12-19 | 象帝先计算技术(重庆)有限公司 | 仿真调试系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968759A (zh) * | 2009-07-27 | 2011-02-09 | 上海华虹集成电路有限责任公司 | 具有断点功能的处理器芯片仿真器 |
KR20110040559A (ko) * | 2009-10-14 | 2011-04-20 | 현대모비스 주식회사 | Avn 시스템 및 그의 디버깅 데이터 전송 방법 |
CN102110045A (zh) * | 2009-12-24 | 2011-06-29 | 上海华虹集成电路有限责任公司 | 实时显示调试信息的仿真器 |
US20110321017A1 (en) * | 2010-06-29 | 2011-12-29 | International Business Machines Corporation | Computer code debugging method and apparatus providing exception breakpoints |
CN102467446A (zh) * | 2010-11-11 | 2012-05-23 | 上海华虹集成电路有限责任公司 | 可设置程序指针值的处理器芯片仿真器 |
CN103677953A (zh) * | 2012-09-25 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 可设置程序指针值的仿真器 |
CN103678073A (zh) * | 2012-09-25 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 仿真系统 |
-
2016
- 2016-11-03 CN CN201610957030.0A patent/CN106528414B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968759A (zh) * | 2009-07-27 | 2011-02-09 | 上海华虹集成电路有限责任公司 | 具有断点功能的处理器芯片仿真器 |
KR20110040559A (ko) * | 2009-10-14 | 2011-04-20 | 현대모비스 주식회사 | Avn 시스템 및 그의 디버깅 데이터 전송 방법 |
CN102110045A (zh) * | 2009-12-24 | 2011-06-29 | 上海华虹集成电路有限责任公司 | 实时显示调试信息的仿真器 |
CN102110045B (zh) * | 2009-12-24 | 2014-02-19 | 上海华虹集成电路有限责任公司 | 实时显示调试信息的仿真器 |
US20110321017A1 (en) * | 2010-06-29 | 2011-12-29 | International Business Machines Corporation | Computer code debugging method and apparatus providing exception breakpoints |
CN102467446A (zh) * | 2010-11-11 | 2012-05-23 | 上海华虹集成电路有限责任公司 | 可设置程序指针值的处理器芯片仿真器 |
CN103677953A (zh) * | 2012-09-25 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 可设置程序指针值的仿真器 |
CN103678073A (zh) * | 2012-09-25 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 仿真系统 |
Non-Patent Citations (1)
Title |
---|
MANZIL SHAH等: ""IC Debugging: Simulation vs. Lab validation"", 《HTTPS://WWW.EDU.COM/ELECTRONICS-BLOGS/DAY-IN-THE-LIFE-OF-A-CHIP-DESIGNER/4442256/IC-DEBUGGING--SIMULATION-VS--LAB-VALIDATION》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032482A (zh) * | 2019-04-11 | 2019-07-19 | 盛科网络(苏州)有限公司 | 片上调试装置和方法 |
CN110109793A (zh) * | 2019-05-30 | 2019-08-09 | 上海市信息网络有限公司 | 用于调测设备安检状态的仿真调试装置及仿真调试方法 |
CN110162438A (zh) * | 2019-05-30 | 2019-08-23 | 上海市信息网络有限公司 | 仿真调试装置和仿真调试方法 |
CN110162438B (zh) * | 2019-05-30 | 2024-03-26 | 上海市信息网络有限公司 | 仿真调试装置和仿真调试方法 |
CN117251314A (zh) * | 2022-06-09 | 2023-12-19 | 象帝先计算技术(重庆)有限公司 | 仿真调试系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106528414B (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102760098B (zh) | 面向bit软件测试的处理器故障注入方法及其模拟器 | |
US7653899B1 (en) | Post-execution software debugger with performance display | |
US9342437B2 (en) | Backward post-execution software debugger | |
CN108664380B (zh) | 一种带性能显示的执行后软件调试系统及调试方法 | |
CN106528414A (zh) | 处理器芯片仿真器 | |
US20120317550A1 (en) | Forward post-execution software debugger | |
EP3369015B1 (en) | Methods and circuits for debugging circuit designs | |
US7409602B2 (en) | Methodology for debugging RTL simulations of processor based system on chip | |
El Shobaki et al. | A hardware and software monitor for high-level system-on-chip verification | |
CN102467446A (zh) | 可设置程序指针值的处理器芯片仿真器 | |
CN100511179C (zh) | 带特殊功能寄存器断点的增强型微处理器片上动态跟踪方法 | |
CN104050069B (zh) | 一种基于Mars评判Verilog实现MIPS处理器正确性的自动化测试方法 | |
CN105824750B (zh) | 一种在NorFlash程序空间调试的软断点模拟方法 | |
CN105095079B (zh) | 一种热点模块指令跟踪的方法及设备 | |
CN101950280A (zh) | 产生多个串行总线芯片选择的方法 | |
CN111008133B (zh) | 粗粒度数据流架构执行阵列的调试方法及装置 | |
CN101329650B (zh) | 智能卡仿真器 | |
Mihajlović et al. | Dynamically instrumenting the QEMU emulator for Linux process trace generation with the GDB debugger | |
CN207302034U (zh) | 处理器芯片仿真器 | |
CN106484584A (zh) | 处理器芯片仿真器 | |
CN208384556U (zh) | 仿真器 | |
CN105573812A (zh) | 一种仿真系统 | |
CN208384554U (zh) | 仿真器 | |
CN114492261B (zh) | 一种芯片仿真系统 | |
CN108647144A (zh) | 仿真器及代码执行异常断点实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |