WO2020207040A1 - 片上调试装置和方法 - Google Patents

片上调试装置和方法 Download PDF

Info

Publication number
WO2020207040A1
WO2020207040A1 PCT/CN2019/122393 CN2019122393W WO2020207040A1 WO 2020207040 A1 WO2020207040 A1 WO 2020207040A1 CN 2019122393 W CN2019122393 W CN 2019122393W WO 2020207040 A1 WO2020207040 A1 WO 2020207040A1
Authority
WO
WIPO (PCT)
Prior art keywords
chip
debugging
internal
trigger condition
memory
Prior art date
Application number
PCT/CN2019/122393
Other languages
English (en)
French (fr)
Inventor
贾复山
姜瑞
张继存
Original Assignee
盛科网络(苏州)有限公司
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 盛科网络(苏州)有限公司 filed Critical 盛科网络(苏州)有限公司
Priority to US17/594,034 priority Critical patent/US20220252665A1/en
Publication of WO2020207040A1 publication Critical patent/WO2020207040A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3187Built-in tests
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318597JTAG or boundary scan test of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents

Definitions

  • the improvement of this scheme is that the capacity of the signal to be observed and the internal memory can be selected; the initial state of the signal to be observed can be recorded in a snapshot mode; the signal to be observed can be tracked; the above information can be output and subsequent analysis can be used to realize the chip Record as much internal state as possible.
  • the technical implementation in Patent Document 4 proposes an on-chip debugging system with a wide range of applications.
  • the improvement achieved by this technology is that the external debugger can select the signal to be observed; the internal control logic can feed back chip state information according to the command of the external debugger.
  • the trigger condition of the adjustment and debugging includes an error in the operating state of the chip; the adjustment and debugging includes: immediately or after waiting for a preset time to stop sampling the operating state information of the chip, and writing the operating state information of the chip into the internal debugging memory At the time, the current sampled status information is marked as the last status information with the preset identifier.
  • the preset situation includes the occurrence of an error in the operation of the chip; the modification of the chip operation mode includes: suspending the operation of the chip function module to maintain the state at the time of the error, and outputting the suspension of the operation of the corresponding function module through the internal bus interface control signal.
  • Fig. 5 is a flowchart of an on-chip debugging method in an embodiment of the present invention.
  • the debug mode control module is responsible for controlling various working modes during on-chip debugging. It receives the configuration information of control devices such as the external debugger or the internal CPU of the chip, and determines how the debugging function operates based on this information.
  • the second is to set the debugging trigger condition.
  • debugging trigger conditions including the trigger condition to control the start sampling signal, the trigger condition to end the sampling signal, and the trigger condition to adjust the debugging work mode after the chip's running state is faulty. Because the debugging process does not necessarily sample the signal from the beginning of the chip operation, you can set the start trigger condition to control the sampling start time. If the sampling starts when the signal A inside the signal chip changes, then the change of the A signal can be used as the trigger condition. Furthermore, in combination with the time generator of the on-chip debugging module, it is also possible to specify how long after the A signal changes to start sampling the chip running state information, which better improves the flexibility of debugging. The end trigger condition can also be handled similarly.
  • the debug monitoring module samples and records the specified signals in the chip to be debugged according to the requirements of the debug mode control module to mark the running state of the chip.
  • the module records these status information, it will only record the status of the selected signal to be sampled when it changes, and record the time information when the change occurs.
  • signal changes in digital integrated circuits are triggered based on the corresponding clock signal, usually these signals do not change every clock cycle, so when the signal is sampled, it is based on its clock and when the signal changes. Only recording the corresponding signal state can greatly reduce the amount of information about the signal state that needs to be stored, and facilitate subsequent storage or output processing. For example, when the signals A, B and C are sampled, the time when they change is T1, T2 and T3 respectively.
  • the on-chip debugging function can be activated at any time.
  • Step S102 start the debugging function.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种片上调试装置和方法,其中,所述片上调试装置包括:对外接口模块,用于向外部调试器输出芯片调试状态信息,以及接受外部调试器的控制指令;调试模式控制模块,用于根据所述外部调试器或内部CPU的调试配置设置指定芯片内部信号的待采样类型,以及设置调试触发条件;调试监视模块,用于采样并记录所述指定类型的芯片内部信号,进而标识芯片运行状态;调试信息处理模块,用于将所述芯片运行状态,存储到内部调试存储器,并通过所述对外接口模块发送到所述外部调试器,或者通过内部总线发送给内部CPU。通过所述装置和方法,可以实现相对简单,占用资源更少,且功能更加强大的芯片片上调试功能。

Description

片上调试装置和方法 技术领域
本发明涉及芯片调试技术,特别是涉及一种片上调试装置和方法。
背景技术
随着工艺的不断提高,现在的集成电路芯片设计变得越来越复杂。每个芯片的面积不断增大,其中集成的逻辑越来越多,功能也越来越复杂,从而对芯片验证提出了更高的要求。芯片在设计过程中的前期验证,包括仿真验证和原型验证已经很难完全保证芯片的正确性了,另外芯片在使用过程中有各种各样的配置和工作模式,稍有不慎就可能产生不可预知的后果。所以,在真实芯片上的调试变得越来越重要。片上调试的效率也因此极大地影响了芯片的稳定和市场的推广。因为芯片是已经固化了的硬件电路逻辑,所以在设计芯片时是否提供了足够的可观测性和可调试性的设计就成为决定片上调试效率的最重要因素。
现有的片上调试方法主要分为以下几种:一是基于片上边界扫描测试标准(Joint Test Action Group,JTAG)接口进行调试;二是增加专用的调试逻辑和调试接口,将芯片运行状态记录并提供给调试器进行访问;三是增加调试用输入和输出接口,并在片上集成调试监测模块的纯调试方法。
(1)现有调试方法一
一般的芯片设计时都会设计JTAG接口,可以用来在芯片生产后进行边界扫描测试。在这个JTAG接口上增加一些辅助逻辑就可以实现片上调试功能。其结构基本如图1所示。现有的CPU设计架构中基本都包含了以上技术方案的片上调试功能模块。在芯片测试和使用过程中如果出现问题,可以连接专用的CPU外部调试器对其进行调试。因为CPU的功能已相对确定,且使用非常广泛,所以通过JTAG接口对CPU的片上调试已经有相对比较完善的解决方案,如可以对CPU进行实时监测,断点调试,单步调试等。
参考专利文献1的片上调试和诊断方法、装置及芯片(申请号CN106324476A)和专利文献2的实现多核处理器EJTAG可调试装置及***(公开号CN101710300B),其中所述的调试方法都是基于JTAG接口的调试解决方案。
以上技术在CPU调试中已经比较成熟,但该技术也比较局限于CPU这种功能通用的芯片,且对于不同的CPU需要连接不同的外部调试器。对于专用芯片的片上调试,以上技术比较难于实现,而且当前也没有可用的外部调试器来解析JTAG接口的输入/输出信息。
现有调试方法二
其主要工作方式是增加专用调试逻辑和外部接口,监测和记录芯片运行状态,并输出到外部的调试器。外部调试器根据所设计的外部接口可以连接PC,示波器,逻辑分析仪等设备。该技术方案原理性结构如图2所示。
参考专利文献3的一种使用快照的可调试性设计追踪方法及装置(申请号CN107066707A)和专利文献4的一种片上调试***的探头装置(申请号CN104536859A)都是基于该技术的解决方案。其中专利文献3中的技术实现是调试模块监测并记录芯片运行状态,记录到内部的快照缓存或追踪缓存中,再通过调试接口输出到外部调试器。此方案的改进之处在于,可以选择待观测信号和内部存储器的容量;可以用快照方式记录待观测信号的初始状态;可以追踪待观测信号;可以输出以上信息并通过后续的分析来实现对于芯片内部状态尽可能多的记录。专利文献4中的技术实现则是提出了一个应用性比较广泛的片上调试***。该技术实现的改进之处是外部调试器可以选择待观测信号;内部控制逻辑可以根据外部调试器的命令反馈芯片状态信息。
以上技术实现的功能都是外部调试器可以灵活选择芯片内部待观测信号,并根据需要返回芯片内部状态。以上技术方案可以用于观测数据较少和难测时间较短的处理。虽然专利文献3中的技术方案里包含了触发控制功能,但它只能在满足触发条件后才开始追踪数据,而一般芯片在运行过程中发生错误并需要调试时,所能设置的触发条件都是错误发生之后的时刻,所以这种情况下追踪的数据也只能是错误发生之后的数据,而调试真正需要的数据应该是发生错误之前的数据。特别是在芯片长期运行的过程中发生错误时,如果按专利文献3的调试方法,很难分析出发生错误的原因。专利文献3中技术方案也提供了对外输出追踪数据的功能,但因为这个技术方案中所追踪的数据是在触发条件满足开始后无条件追踪的,所以没有特别区分对调试有效的信息,采样的数据量较大,对输出接口的性能要求较高,不利于该技术的具体硬件设计。
(3)现有调试方法三
如图3所示,整个调试功能模块包括调试输入模块、调试输出模块,以及片上调试控制模块。它们都与外部调试器连接,可以由外部调试器生成测试向量来测试或调试芯片。同时片上的调试控制模块用来监控芯片运行。参考专利文献5(申请号CN107193705A,一种芯片调试方法及装置)就是其中的一个具体实现。在该技术方案中片上调试控制模块主要用于备用调试,在待调试芯片挂死(不再正常运行)时,可以启用调试备用模块来控制调试过程。
以上技术三方案大多用于芯片测试,也就是用外部输入测试向量,检查待调试芯片输出来判断芯片的功能是否正常。而在芯片正常运行过程中,外部接口输入的只能是正常运行所需要的数据,而不是测试向量,从而调试控制模块也就无法判断当前芯片功能是否正常。另外参考文献5中的具体实现也只是提供了芯片挂死后的调试控制方法。芯片在正常运行中发生错误时,需要的是在线设计,该方案是无能为力的,起不到任何辅助调试的作用。
发明内容
本发明实施例所要解决的技术问题是如何实现相对简单,占用资源更少,且功能更加强大的芯片片上调试功能。
为了解决上述的技术问题,本发明实施例提供的技术方案如下:
一种片上调试装置,包括:对外接口模块,用于向外部调试器输出芯片调试状态信息,以及接受外部调试器的控制指令;调试模式控制模块,用于根据所述外部调试器或内部CPU的调试配置设置指定芯片内部信号的待采样类型,以及设置调试触发条件;调试监视模块,用于采样并记录所述指定类型的芯片内部信号,进而标识芯片运行状态;调试信息处理模块,用于将所述芯片运行状态,存储到内部调试存储器,并通过所述对外接口模块发送到所述外部调试器,或者通过内部总线发送给内部CPU。
较优的,所述内部调试存储器包括快速存储器和慢速存储器;所述调试信息处理模块通过所述快速存储器进行突发数据存储,以及通过所述慢速存储器进行普通和大数据量的存储。
较优的,所述调试触发条件包括:开始采样的触发条件;结束采样的触发条件;调整调试的触发条件;停止存储采样信号到所述内部调试存储器的触发条件。
较优的,所述调整调试的触发条件包括芯片运行状态出错;所述调整调试包括:立即或等待预设时间后停止采样芯片运行状态信息,以及将芯片运 行状态信息写入所述内部调试存储器时,用预设标识标记当前采样的状态信息为最后一个状态信息。
较优的,所述调试监视模块在所述指定类型的芯片内部信号发生状态变化时,记录变化后的状态以及发生变化时的时间信息。
本发明还提供了一种片上调试方法,包括:根据外部调试器或待调试芯片配置,确定采样类型以及调试触发条件;启动调试功能,并采样以及记录所述指定类型的芯片内部信号,进而标识芯片运行状态;监测调试过程中的各触发条件,并于触发条件满足后,执行对应的调整调试。
较优的,上述的片上调试方法还包括:根据外部调试器或内部CPU的调试配置,于芯片运行过程中发生预设情形时,修改芯片运行模式。
较优的,所述预设情形包括芯片运行中发生错误;所述修改芯片运行模式包括:暂停芯片功能模块的运行,以保持出错时的状态,并通过内部总线接口输出暂停相应功能模块运行的控制信号。
较优的,所述触发条件包括芯片运行状态出错;所述调整调试包括:立即或等待预设时间后停止采样芯片运行状态信息,以及将芯片运行状态信息写入所述内部调试存储器时,用预设标识标记当前采样的状态信息为最后一个状态信息。
较优的,所述触发条件包括指定类型的芯片内部信号发生状态变化;所述执行对应的调整调试包括记录所述指定类型的芯片内部信号变化后的状态以及发生变化时的时间信息。
本发明通过在集成电路设计时增加内嵌的一个片上调试装置及相应的对外接口模块,在调试功能模块中实现了调试信息的采集,整理和存储,而在对外接口模块中实现了调试信息的输出,外部调试器控制命令输入的功能。相对其他技术,本发明中的技术方案实现相对简单,占用资源更少,功能更加强大,既可以在不影响芯片正常运行的情况下记录待观测信号状态和调试芯片运行,也可以在满足某些指定条件的情况下暂停芯片内部逻辑处理,再对芯片进行状态检查和调试诊断。本发明给芯片的调试工作提供了较大的灵活性,方便工程师更快速地发现和解决芯片存在的问题。
附图说明
图1是现有技术一中片上调试***的结构示意图;
图2是现有技术二中片上调试***的结构示意图;
图3是现有技术三中片上调试***的结构示意图;
图4是本发明实施例中片上调试装置的结构示意图;
图5是本发明实施例中片上调试方法的流程图。
具体实施方式
现有的片上调试方法普遍存在如局限性大,错误原因分析困难,采样数据不够灵活以及无法判断芯片功能是否正常等问题。针对现有技术中存在的问题,本发明实施例提供了一种片上调试装置,可以在不影响芯片正常运行的情况下记录待观测信号状态和调试芯片运行,也可以在满足某些指定条件的情况下暂停芯片内部逻辑处理,再对芯片进行状态检查和调试诊断。
实施例1
本发明的技术方案总体结构如图4所示。在待调试芯片中增加一个片上调试控制模块。该模块中主要包括几大部分:对外接口模块、调试模式控制模块、调试信息处理模块、调试监视模块、时间发生器,以及两个调试存储器,一个相对较小的快速存储器一个相对较大的慢速存储器。对外接口模块,用于向外部调试器输出芯片调试状态信息,以及接受外部调试器的控制指令。其中,调试模式控制模块用于根据所述外部调试器或内部CPU的调试配置设置指定芯片内部信号的待采样类型,以及设置调试触发条件;调试监视模块用于采样并记录所述指定类型的芯片内部信号,进而标识芯片运行状态;调试信息处理模块用于将所述芯片运行状态,存储到内部调试存储器,并通过所述对外接口模块发送到所述外部调试器,或者通过内部总线发送给内部CPU。
对外接口模块负责进行片上调试时与外部调试器的连接,包括接收外部调试器的控制命令,输出芯片调试状态信息,在待调试芯片上的CPU挂死时,可以通过调试模式控制模块接管待调试芯片的内部总线。
对外接口模块与外部调试器的接口可以采用通用的接口协议,如I2C、SPI、PCI/PCIe等。具体的接口协议可以根据待调试芯片的需求来选择:如果需要高性能的调试接口,可以采用PCIe等高性能接口协议,但这类接口一般会增加较多的芯片设计成本;如果要低成本的解决方案,可以用SPI/I2C等简单的接口协议,而且此类接口的信号可以与芯片的普通管脚本复用,在开启 调试功能时,用作调试管脚,其他时间则可以用作普通管脚使用。因为以上接口协议都是通用的接口协议,所以设计难度比较小,外部调试器比较容易实现。
当待调试芯片内部的CPU等控制单元挂死时,外部调试器可以通过对外接口模块和调试模式控制模块接管芯片的内部总线,以实现直接通过外部调试器控制整个待调试芯片的功能。
对外接口模块还可以连接外部的存储器,将片上调试模块采样的芯片运行状态信息存储到外部的存储器中。一般外部存储器可以做得比较大,在需要存储较多数据的情况下,这种连接方式提供了极大的灵活性。
调试模式控制模块负责控制片上调试时的各种不同工作模式。它接收外部调试器或芯片内部CPU等控制器件的配置信息,并根据这些信息决定调试功能如何运行。
调试模式控制模块的主要功能有以下几种。一是可以根据配置选择采样哪些芯片内部信号,以标志芯片的运行状态。因为存储采样后的结果需要占用调试存储器资源,采样的信号越多,占用的资源也就越多。在该存储器大小相对固定的情况,采样的信号越少,那么可记录的芯片运行状态时间就越长。如待调试芯片上所有可以采样的标志芯片运行状态的信号是A,B,C和D,但某次调试时,并不需要同时采样所有这些信号。这时,就可以通过本模块修改调试配置信息,仅选择其中的与本次调试相关的部分信号进行采样(如仅采样A和B信号)。
二是可以设置调试触发条件。调试触发条件可以有很多种,包括控制开始采样信号的触发条件,结束采样信号的触发条件,芯片运行状态出错后调整调试工作模式的触发条件等。因为调试的过程并不一定是从芯片开始运行就采样信号,所以可以设置开始的触发条件来控制采样开始时间。如信号芯片内部的信号A发生变化时才开始采样,那就可以将A信号的变化作为触发条件。进一步的,结合片上调试模块的时间发生器,还可以指定在A信号发生变化开始多长时间后再开始采样芯片运行状态信息,更好地提高了调试的灵活性。结束的触发条件也可以有类似的处理。而芯片调试时,可能在满足某个条件后需要调整芯片运行模式以方便调试,如芯片调试中可能需要忽略某些内部错误,这时,就可以设置触发条件,一旦该错误发生,则可以通过调试模式控制模块强行将该错误修复,以允许芯片继续正常运行。另外,在存储采样到数据时,也可以通过触发条件设置何时停止存储新的调试记录信息 到存储器。启动调试功能后,可以同时开始采样和存储芯片内部运行状态信息,如触发条件B满足时需要停止存储新的信息,如此操作,则保证存储器内部存储的信息为触发条件B发生之前的状态。如果结合调试控制器内的时钟发生器,当触发条件B发生时,再采样和存储指定时间的芯片运行状态信息,则可以实现条件B发生前后时间段内芯片的运行状态信息都被存储的功能。
调试监视模块根据调试模式控制模块的要求采样并记录待调试芯片中的指定信号,以标志芯片的运行状态。该模块在记录这些状态信息时,仅在选中的需要采样的信号发生变化时才会对其状态进行记录,并记录发生变化时的时间信息。虽然数字集成电路中的信号变化是基于相应的时钟信号来触发的,但通常这些信号并不会在每个时钟周期都发生变化,所以采样该信号时,基于其时钟并在该信号发生变化时才记录相应的信号状态,则可以大大减少需要存储的信号状态的信息量,可以方便后续的存储或输出的处理。如采样信号A,B和C时,他们发生变化的时间分别T1,T2和T3,那只需要记录以上三个时刻信号的状态以及信号发生变化的时间即可,而不需要把T1到T3所有时间内以上信号在每个时钟周期的状态都记录下来。在分析以上信号时,结合记录中的时间信息,就可以恢复出它们发生变化的时序关系。而不需要时时刻刻地记录这三个信号的状态。
另外,以上的时间信号也仅要求是相对时间信息,不需要非常精确,甚至用一个普通的基于芯片内部时钟信号实现的计数器就可以表示。所以,以上时钟发生器的实现也比较简单。本模块采样到的信息会被送到调试信息处理模块,根据需要存储到内部调试存储器,通过对外接口输出给外部调试器或者通过内部总线输出给芯片内部的CPU等控制器件。
调试信息处理模块接收监视模块采样到的状态信息,对其进行整理、存储和输出。待调试芯片的状态信息变化是不均匀的,在短时间内可能会突发产生大量数据,而绝大部分时间则仅会产生较少的数据量。信息处理模块在存储这些采样到的状态信息时,为了保证数据的完整性,就必须兼顾到以上两种情况。突发的数据需要快速的存储,但其总体的数据量较小。因为快速存储器一般会比普通的慢速存储器占用更多的芯片面积,所以,本发明中的调试存储器分为两块,一块是容量较小的快速存储器,用于解决突发数据的存储问题。另一块是容量较大的慢速存储器,对于普通的存储功能。以上的设计达到了存储性能和容量的平衡。在接收到突发大数据量存储请求时,先 将其写入快速存储器,而在平时没有突发数据存储的情况时,则可以整理所有数据,并按其采样时间的先后,写入容量较大的慢速存储器。另外,根据外部调试器的配置,调试信息处理模块还可以将接收到的状态信息按事先定义的格式通过对外接口模块和内部总线接口输出到外部调试器或芯片内部的CPU等控制器件进行分析。只要对外接口模块和内部总线接口可以提供足够的数据传输性能,片上调试所采样的状态信息就可以完整地输出。在这种情况下可以减小芯片调试存储器的大小,甚至可以不需要内部调试存储器,以进一步降低芯片的成本。实际上,本发明中采样状态信息时仅在信号发生变化时才采样,已经最大程度的减少了采样的状态信息量,所以,对于以上两个接口的数据传输性能的要求已经是比较低了。
上述的片上调试模块中的时钟发生器和调试存储器主要是配合以上功能模块的处理,采用普通的芯片设计就可以满足调试要求,设计复杂度比较低。
实施例2
本发明实施例还公开了一种片上调试方法。如图5所示,所述片上调试方法包括以下步骤:
步骤S101,根据外部调试器或待调试芯片配置,确定采样类型以及调试触发条件。
外部调试器或待调试芯片的片上CPU配置片上调试功能模块的工作模式:指定需要采样的芯片内部信号,设置片上调试模块内部快速和慢速存储器的大小,设置片上调试功能开始的条件,设置片上调试功能结束的条件,设置调试状态信息存储到内部存储器的格式,设置调试状态信息需要输出时的格式,设置触发条件满足后调试模块和待调试芯片后续的工作模式。需要采样的芯片内部信号主要是一些标志芯片运行的关键寄存器,根据***的具体设计,将这些信号输出到片上调试模块。而在具体调试时可行选择采样所有这些信号或者仅采样其中部分信号。采样的信号越多,越容易调试芯片问题,但需要的存储器容量也会越大,如果要输出这些采样的数据时,所需要的对外接口的性能也越高。片上调试功能可以在任意时间开始,也可以设置其启动的触发条件,这根据需要来决定。对于确定且容易复现的问题,可以设置启动时间,以减少状态信息采样的数据量,方便分析问题。而对于不容易复现的问题,又或者需要监控芯片长时间运行状态的情况,则可以随时启动片上调试功能。芯片发生问题时,可以主动停止片上调试模块采样芯片状 态信息,也可以设置触发条件决定在发生问题后多长时间内停止采样。因为发生问题后采样的状态信息也有可能帮助分析问题的原因。
步骤S102,启动调试功能。
如果设置了启动触发条件,则片上调试模块需要等待该条件满足后开始采样待调试芯片上的状态信息。如果没设置以上条件,则缺省认为马上启动采样信息的功能。
步骤S103,采样以及记录所述指定类型的芯片内部信号,进而标识芯片运行状态。
片上调试模块采样指定的芯片状态信号,在其发生变化时记录该信号的状态,同时记录当前的时间信息,后将其写入存储器。片上调试模块控制这些状态信息写入快速存储器还是慢速存储器。如果所采样的状态信息量较少,慢速存储器可以满足存储性能要求,则直接将其写入慢速存储器,否则,先将其暂存在快速存储器,再在适当的时机将其搬移到慢速存储器。这个过程即保证了突发的采样数据的完整性,又保证了长时间大数据量存储的要求。如果需要输出这些采样的状态信息到外部调试器或芯片内部的CPU等控制器件,则片上调试器按事先定义的数据格式,整理这些状态信息通过对外接口模块或者芯片内部总线将其发送出去。
步骤S104,监测调试过程中的各触发条件,并于触发条件满足后,执行对应的调整调试。
这个过程是在启动调试功能马上就开始的。在采样芯片状态信息的同时监测触发条件是否满足。如果监测到某个触发条件已满足,则根据模式控制的配置决定相应的后续处理,可以产生中断等消息给外部调试器或内部的CPU模块,暂停采样,修改某些芯片运行状态等。如对于检测到芯片运行错误时,可以立即或等待一定时间后停止采样芯片运行状态信息。
同时,在将芯片运行状态信息写入存储器时,用一个特定的数据标记一下当前是采样的最后一个状态信息。因为片上的调试存储器大小是固定的,所以可能出现被写满的情况。这时一般会继续写入新的状态信息,并循环覆盖前期的数据。从而会导致调试的主控器件(如外部调试器或芯片内部的CPU等控制器件)无法判断其中数据的起始和结束的位置。通过在停止写入存储器前最后一次写操作时,将一个特定的数据写入该调试存储器,可以标记当前是最后一条信息,从而调试主控器件就可以判断出其中存储的状态信息的起始和结束位置。
步骤S105,修改芯片运行模式。
如果调试芯片时,需要在满足某些条件时改变芯片的运行状态,则可以根据需要设置这些触发条件,并在条件满足时通过内部总线接口修改芯片的运行模式。如在芯片运行过程中发生错误时,可能需要暂停芯片某些功能模块的运行,让其保持出错时的状态,以方便调试。这时,就可以设置相应的触发条件,并在其满足后,片上调试模块通过内部总线接口输出暂停相应功能模块运行的控制信号。因为数字集成电路芯片运行都是基于内部时钟触发的,所以可以通过简单地关闭相应模块的时钟输入的方式暂停该模块的运行。不过这个时候需要保证调试主控器件仍能通过内部总线访问该模块内部的状态寄存器。
如果需要修改芯片运行模式,则如上示例,配置相应的芯片运行状态控制信号,否则持续进行调试测试,直到调试结束,收到暂停状态信息收集的指令,等待重新启动调试功能。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (10)

  1. 一种片上调试装置,其特征在于,包括:
    对外接口模块,用于向外部调试器输出芯片调试状态信息,以及接受外部调试器的控制指令;
    调试模式控制模块,用于根据所述外部调试器或内部CPU的调试配置设置指定芯片内部信号的待采样类型,以及设置调试触发条件;
    调试监视模块,用于采样并记录所述指定类型的芯片内部信号,进而标识芯片运行状态;
    调试信息处理模块,用于将所述芯片运行状态,存储到内部调试存储器,并通过所述对外接口模块发送到所述外部调试器,或者通过内部总线发送给内部CPU。
  2. 如权利要求1所述的片上调试装置,其特征在于,
    所述内部调试存储器包括快速存储器和慢速存储器;
    所述调试信息处理模块通过所述快速存储器进行突发数据存储,以及通过所述慢速存储器进行普通和大数据量的存储。
  3. 如权利要求1所述的片上调试装置,其特征在于,所述调试触发条件包括:开始采样的触发条件;结束采样的触发条件;调整调试的触发条件;停止存储采样信号到所述内部调试存储器的触发条件。
  4. 如权利要求3所述的片上调试装置,其特征在于,
    所述调整调试的触发条件包括芯片运行状态出错;
    所述调整调试包括:立即或等待预设时间后停止采样芯片运行状态信息,以及将芯片运行状态信息写入所述内部调试存储器时,用预设标识标记当前采样的状态信息为最后一个状态信息。
  5. 如权利要求1所述的片上调试装置,其特征在于,所述调试监视模块在所述指定类型的芯片内部信号发生状态变化时,记录变化后的状态以及发生变化时的时间信息。
  6. 一种片上调试方法,其特征在于,包括:
    根据外部调试器或待调试芯片配置,确定采样类型以及调试触发条件;
    启动调试功能,并采样以及记录所述指定类型的芯片内部信号,进而标识芯片运行状态;
    监测调试过程中的各触发条件,并于触发条件满足后,执行对应的调整调试。
  7. 如权利要求6所述的片上调试方法,其特征在于,还包括:根据外部调试器或内部CPU的调试配置,于芯片运行过程中发生预设情形时,修改芯片运行模式。
  8. 如权利要求7所述的片上调试方法,其特征在于,
    所述预设情形包括芯片运行中发生错误;
    所述修改芯片运行模式包括:暂停芯片功能模块的运行,以保持出错时的状态,并通过内部总线接口输出暂停相应功能模块运行的控制信号。
  9. 如权利要求6所述的片上调试方法,其特征在于,所述触发条件包括芯片运行状态出错;
    所述调整调试包括:立即或等待预设时间后停止采样芯片运行状态信息,以及将芯片运行状态信息写入所述内部调试存储器时,用预设标识标记当前采样的状态信息为最后一个状态信息。
  10. 如权利要求6所述的片上调试方法,其特征在于,
    所述触发条件包括指定类型的芯片内部信号发生状态变化;
    所述执行对应的调整调试包括记录所述指定类型的芯片内部信号变化后的状态以及发生变化时的时间信息。
PCT/CN2019/122393 2019-04-11 2019-12-02 片上调试装置和方法 WO2020207040A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/594,034 US20220252665A1 (en) 2019-04-11 2019-12-02 On-chip Debugging Device and Method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910288054.5A CN110032482A (zh) 2019-04-11 2019-04-11 片上调试装置和方法
CN201910288054.5 2019-04-11

Publications (1)

Publication Number Publication Date
WO2020207040A1 true WO2020207040A1 (zh) 2020-10-15

Family

ID=67238039

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/122393 WO2020207040A1 (zh) 2019-04-11 2019-12-02 片上调试装置和方法

Country Status (3)

Country Link
US (1) US20220252665A1 (zh)
CN (1) CN110032482A (zh)
WO (1) WO2020207040A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732586A (zh) * 2021-01-20 2021-04-30 山东云海国创云计算装备产业创新中心有限公司 一种芯片调试方法、***、设备及计算机可读存储介质
CN116955048A (zh) * 2023-06-16 2023-10-27 上海水木蓝鲸半导体技术有限公司 芯片校准和调试信息管理的方法、装置及计算机存储介质

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032482A (zh) * 2019-04-11 2019-07-19 盛科网络(苏州)有限公司 片上调试装置和方法
CN111124977A (zh) * 2019-10-15 2020-05-08 芯创智(北京)微电子有限公司 一种pcie设备的调试装置和方法
CN110988662B (zh) * 2019-12-09 2022-08-02 上海国微思尔芯技术股份有限公司 一种基于fpga原型验证开发板的信号调试***及方法
CN111597137B (zh) * 2020-04-07 2024-01-12 广州安凯微电子股份有限公司 一种基于spi协议的动态调试方法、装置及***
CN111722968A (zh) * 2020-06-24 2020-09-29 山东云海国创云计算装备产业创新中心有限公司 一种硬件调试方法、装置、***及可读存储介质
CN112255534B (zh) * 2020-10-14 2023-03-24 天津津航计算技术研究所 一种基于fpga的ip核模块调试***
CN112685278A (zh) * 2021-01-05 2021-04-20 上海擎昆信息科技有限公司 一种芯片驱动追踪调试方法和装置
CN112634801B (zh) * 2021-01-08 2022-06-10 北京集睿致远科技有限公司 一种片内逻辑分析仪及芯片调试方法
CN114416452A (zh) * 2022-01-20 2022-04-29 无锡众星微***技术有限公司 片上***诊断方法和装置
CN115037364B (zh) * 2022-06-08 2023-08-15 上海百功半导体有限公司 一种光通信芯片的调试***及方法
CN115220978B (zh) * 2022-09-19 2023-02-03 瀚博半导体(上海)有限公司 包括在线调试模式的芯片启动方法和装置、芯片和设备
CN116991642B (zh) * 2023-06-26 2024-06-11 南京奕斯伟计算技术有限公司 芯片调测方法、芯片、***及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008093312A1 (en) * 2007-01-30 2008-08-07 University Of Limerick On-chip testing
CN101458725A (zh) * 2007-12-14 2009-06-17 上海海尔集成电路有限公司 微控制器芯片及其调试方法
CN106681877A (zh) * 2015-11-11 2017-05-17 扬智科技股份有限公司 芯片调试***及方法与***芯片
CN107992390A (zh) * 2017-11-15 2018-05-04 中国电子科技集团公司第三十二研究所 一种基于片上总线的芯片调试方法
CN110032482A (zh) * 2019-04-11 2019-07-19 盛科网络(苏州)有限公司 片上调试装置和方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397354B1 (en) * 1999-03-26 2002-05-28 Hewlett-Packard Company Method and apparatus for providing external access to signals that are internal to an integrated circuit chip package
US6662313B1 (en) * 2000-04-29 2003-12-09 Hewlett-Packard Development Company, L.P. System and method for multiple cycle capture of chip state
US7197680B2 (en) * 2003-04-17 2007-03-27 Arm Limited Communication interface for diagnostic circuits of an integrated circuit
GB0509738D0 (en) * 2005-05-12 2005-06-22 Cambridge Consultants Processor and interface
US7831862B2 (en) * 2007-01-30 2010-11-09 Freescale Semiconductor, Inc. Selective timer control during single-step instruction execution
CN101751327B (zh) * 2008-12-04 2012-04-18 北京中电华大电子设计有限责任公司 嵌入式处理器的跟踪调试方法
US8327198B2 (en) * 2009-08-14 2012-12-04 Intel Corporation On-die logic analyzer for semiconductor die
US8635497B2 (en) * 2011-06-28 2014-01-21 Freescale Semiconductor, Inc. Data processing system having a sequence processing unit and method of operation
US20130031419A1 (en) * 2011-07-28 2013-01-31 International Business Machines Corporation Collecting Debug Data in a Secure Chip Implementation
CN103246584B (zh) * 2012-02-14 2017-02-22 苏州澜起微电子科技有限公司 片上***芯片结构及保存调试信息的方法
KR20130101927A (ko) * 2012-03-06 2013-09-16 한국전자통신연구원 디버깅 기능을 가지는 멀티코어 SoC
JP6220863B2 (ja) * 2012-05-07 2017-10-25 マイクロチップ テクノロジー インコーポレイテッドMicrochip Technology Incorporated リセット条件トレース能力を伴うプロセッサデバイス
US8943377B2 (en) * 2012-08-15 2015-01-27 International Business Machines Corporation On-chip detection of types of operations tested by an LBIST
TWI472912B (zh) * 2012-09-11 2015-02-11 Univ Nat Cheng Kung 以電路內部事件作為觸發條件之除錯控制系統及其方法
US9448872B2 (en) * 2014-02-12 2016-09-20 Apple Inc. Hardware state data logger for silicon debug
US9348961B2 (en) * 2014-03-27 2016-05-24 Wipro Limited Logic analyzer circuit for programmable logic device
CN104536838A (zh) * 2014-12-18 2015-04-22 中国电子科技集团公司第三十八研究所 一种具有异步监视功能的远程调试方法及***
CN107710166B (zh) * 2015-06-06 2021-06-18 小利兰·斯坦福大学理事会 利用符号快速错误检测的硅后验证和调试
CN106324476B (zh) * 2015-06-30 2019-09-24 龙芯中科技术有限公司 片上调试和诊断方法、装置及芯片
US10161999B1 (en) * 2016-04-05 2018-12-25 Xilinx, Inc. Configurable system and method for debugging a circuit
US10037259B2 (en) * 2016-04-26 2018-07-31 International Business Machines Corporation Adaptive debug tracing for microprocessors
CN106294056B (zh) * 2016-08-10 2019-04-02 北京网迅科技有限公司杭州分公司 芯片调试方法和装置
CN106528414B (zh) * 2016-11-03 2018-12-11 上海华虹集成电路有限责任公司 处理器芯片仿真器
US20180164371A1 (en) * 2016-12-12 2018-06-14 Qualcomm Incorporated Apparatus and method for providing debug information via power rail in power state where debug interface is disabled
US10962593B2 (en) * 2018-04-03 2021-03-30 Samsung Electronics Co., Ltd. System on chip and operating method thereof
US11249872B1 (en) * 2020-06-26 2022-02-15 Xilinx, Inc. Governor circuit for system-on-chip

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008093312A1 (en) * 2007-01-30 2008-08-07 University Of Limerick On-chip testing
CN101458725A (zh) * 2007-12-14 2009-06-17 上海海尔集成电路有限公司 微控制器芯片及其调试方法
CN106681877A (zh) * 2015-11-11 2017-05-17 扬智科技股份有限公司 芯片调试***及方法与***芯片
CN107992390A (zh) * 2017-11-15 2018-05-04 中国电子科技集团公司第三十二研究所 一种基于片上总线的芯片调试方法
CN110032482A (zh) * 2019-04-11 2019-07-19 盛科网络(苏州)有限公司 片上调试装置和方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732586A (zh) * 2021-01-20 2021-04-30 山东云海国创云计算装备产业创新中心有限公司 一种芯片调试方法、***、设备及计算机可读存储介质
CN112732586B (zh) * 2021-01-20 2024-06-07 山东云海国创云计算装备产业创新中心有限公司 一种芯片调试方法、***、设备及计算机可读存储介质
CN116955048A (zh) * 2023-06-16 2023-10-27 上海水木蓝鲸半导体技术有限公司 芯片校准和调试信息管理的方法、装置及计算机存储介质
CN116955048B (zh) * 2023-06-16 2024-03-22 上海水木蓝鲸半导体技术有限公司 芯片校准和调试信息管理的方法、装置及计算机存储介质

Also Published As

Publication number Publication date
CN110032482A (zh) 2019-07-19
US20220252665A1 (en) 2022-08-11

Similar Documents

Publication Publication Date Title
WO2020207040A1 (zh) 片上调试装置和方法
US6598178B1 (en) Peripheral breakpoint signaler
US6567932B2 (en) System and method for communicating with an integrated circuit
US6601189B1 (en) System and method for communicating with an integrated circuit
US6591369B1 (en) System and method for communicating with an integrated circuit
US6530047B1 (en) System and method for communicating with an integrated circuit
US6779145B1 (en) System and method for communicating with an integrated circuit
US7636870B2 (en) Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
CN102360329B (zh) 总线监控与调试控制装置及进行总线监控与总线调试的方法
US6665816B1 (en) Data shift register
TWI544410B (zh) 利用執行單步驟以進行編碼診斷
US9678150B2 (en) Methods and circuits for debugging circuit designs
TWI270769B (en) Trace, debug method and system for a processor
US9405315B2 (en) Delayed execution of program code on multiple processors
US20070011517A1 (en) Debug system for data tracking
CN109254883B (zh) 一种片上存储器的调试装置及方法
US20060161818A1 (en) On-chip hardware debug support units utilizing multiple asynchronous clocks
JP2014049131A (ja) ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法
EP0869434A2 (en) Method for outputting trace information of a microprocessor
CN100403275C (zh) 应用于固件程序除错的微处理器与方法
US20210124810A1 (en) Method of debugging hardware and firmware of data storage
US7251751B2 (en) Diagnostic mechanisms within multi processing systems
CN100371907C (zh) 用于处理器的追踪调试方法及***
CN111008133A (zh) 粗粒度数据流架构执行阵列的调试方法及装置
CN108681500B (zh) 具有事务记录能力的***和事务记录方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19924110

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19924110

Country of ref document: EP

Kind code of ref document: A1