CN106528414B - 处理器芯片仿真器 - Google Patents

处理器芯片仿真器 Download PDF

Info

Publication number
CN106528414B
CN106528414B CN201610957030.0A CN201610957030A CN106528414B CN 106528414 B CN106528414 B CN 106528414B CN 201610957030 A CN201610957030 A CN 201610957030A CN 106528414 B CN106528414 B CN 106528414B
Authority
CN
China
Prior art keywords
interface
software
chip
integrated development
development environment
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.)
Active
Application number
CN201610957030.0A
Other languages
English (en)
Other versions
CN106528414A (zh
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 Huahong Integrated Circuit Co Ltd
Original Assignee
Shanghai Huahong Integrated Circuit 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 Huahong Integrated Circuit Co Ltd filed Critical Shanghai Huahong Integrated Circuit Co Ltd
Priority to CN201610957030.0A priority Critical patent/CN106528414B/zh
Publication of CN106528414A publication Critical patent/CN106528414A/zh
Application granted granted Critical
Publication of CN106528414B publication Critical patent/CN106528414B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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所述的处理器芯片仿真器,其特征在于:所述接口软件内存有一组特殊芯片状态参数,用于返回给集成开发环境软件,这组数据在正常芯片状态参数范围内。
CN201610957030.0A 2016-11-03 2016-11-03 处理器芯片仿真器 Active CN106528414B (zh)

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 CN106528414A (zh) 2017-03-22
CN106528414B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032482A (zh) * 2019-04-11 2019-07-19 盛科网络(苏州)有限公司 片上调试装置和方法
CN110162438B (zh) * 2019-05-30 2024-03-26 上海市信息网络有限公司 仿真调试装置和仿真调试方法
CN110109793A (zh) * 2019-05-30 2019-08-09 上海市信息网络有限公司 用于调测设备安检状态的仿真调试装置及仿真调试方法

Citations (6)

* Cited by examiner, † Cited by third party
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 上海华虹集成电路有限责任公司 实时显示调试信息的仿真器
CN102467446A (zh) * 2010-11-11 2012-05-23 上海华虹集成电路有限责任公司 可设置程序指针值的处理器芯片仿真器
CN103678073A (zh) * 2012-09-25 2014-03-26 上海华虹集成电路有限责任公司 仿真系统
CN103677953A (zh) * 2012-09-25 2014-03-26 上海华虹集成电路有限责任公司 可设置程序指针值的仿真器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110321017A1 (en) * 2010-06-29 2011-12-29 International Business Machines Corporation Computer code debugging method and apparatus providing exception breakpoints

Patent Citations (7)

* Cited by examiner, † Cited by third party
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 上海华虹集成电路有限责任公司 实时显示调试信息的仿真器
CN102467446A (zh) * 2010-11-11 2012-05-23 上海华虹集成电路有限责任公司 可设置程序指针值的处理器芯片仿真器
CN103678073A (zh) * 2012-09-25 2014-03-26 上海华虹集成电路有限责任公司 仿真系统
CN103677953A (zh) * 2012-09-25 2014-03-26 上海华虹集成电路有限责任公司 可设置程序指针值的仿真器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"IC Debugging: Simulation vs. Lab validation";Manzil Shah等;《https://www.edu.com/electronics-blogs/day-in-the-life-of-a-chip-designer/4442256/IC-Debugging--Simulation-vs--Lab-validation》;20160621;第1-6页 *

Also Published As

Publication number Publication date
CN106528414A (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
CN105302950B (zh) 一种软、硬件协同的可编程逻辑器件交联仿真测试方法
Magnusson et al. Simics: A full system simulation platform
CN106528414B (zh) 处理器芯片仿真器
CN104866416B (zh) 实现应用程序性能分析的方法和装置
US20140089737A1 (en) Psmi using at-speed scan capture
CN101004707A (zh) 一种嵌入式软件调试装置及其调试实现方法
CN108664380A (zh) 一种带性能显示的执行后软件调试系统及调试方法
CN102467446A (zh) 可设置程序指针值的处理器芯片仿真器
CN101329650B (zh) 智能卡仿真器
CN101950280A (zh) 产生多个串行总线芯片选择的方法
CN100474266C (zh) 一种用于数字信号处理器的调试系统及其调试方法
Mihajlović et al. Dynamically instrumenting the QEMU emulator for Linux process trace generation with the GDB debugger
Li et al. A readback based general debugging framework for soft-core processors
CN109656758A (zh) 用于异构双处理器系统芯片的调试方法及系统
CN208384556U (zh) 仿真器
CN107239614A (zh) 一种外部事件触发断点的芯片仿真方法
US20080300845A1 (en) Monitoring software simulations of hardware systems
Kao et al. Hardware-software approaches to in-circuit emulation for embedded processors
CN105573812A (zh) 一种仿真系统
Tröger et al. Software-implemented fault injection at firmware level
CN108647144A (zh) 仿真器及代码执行异常断点实现方法
CN205594621U (zh) 一种用于微控制器的调试器
CN208384554U (zh) 仿真器
CN204331709U (zh) 兼备外置存储电路和内置存储电路的仿真装置
Ellenberger et al. AIDE-a tool for computer architecture design

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