片上调试和诊断方法、装置及芯片与流程

文档序号:12592306阅读:339来源:国知局
片上调试和诊断方法、装置及芯片与流程

本发明涉及集成电路领域,尤其涉及一种片上调试和诊断方法、装置及芯片。



背景技术:

随着当前集成电路领域内芯片的设计规模越来越大,复杂度和集成度越来越高,但是芯片从设计到市场的时效性也要求越来越严苛,这些因素使得芯片的硅前验证工作难以充分进行。由于芯片的硅前验证工作不充分,从而可能导致流片后的芯片存在故障。针对这些故障,通常借助硅后调试的方法来进行调试和诊断。

传统的硅后调试方法因芯片的不同而略有不同,通常采用使芯片处于功能模式下(即运行正常功能),记录并分析芯片的输入输出情况的方法,通过观察芯片的输出情况以判断芯片功能是否正确。但随着芯片复杂度越来越高,传统的调试方式在很多情况下很难定位问题所在,即芯片的可调试能力低下。

为了提升芯片的可调试能力,研究者们提出了可调试性设计(Design for Debugablity,简称DFD)方法。按照调试方式的不同,可调试性设计可以分为两类:一类是实时追踪的方式(Runtime-Trace型),另一类是基于暂停和中断的方式(Stop/Halt型)。两种方式的区别在于,在观测芯片状态时,Runtime-Trace型可以运行芯片功能;而Stop/Halt型,由于被观测部分的功能逻辑(通常是功能时钟)被屏蔽,则不能同时执行芯片功能。Stop/Halt型调试结构主要包括:触发(Trigger)产生、时钟控制、状态观测、断点设置与单步等。

实时追踪的方式中可观测的部分范围较小,且芯片运行出错时仍继续运行,无法暂停。而常见的Stop/Halt型调试方式,芯片运行出错时,同样仍继续运行,无法自动暂停,且需手工开启调试与诊断功能,同时该方法中芯片的可观测性和可控性也很低。



技术实现要素:

本发明实施例提供一种片上调试和诊断方法、装置及芯片,以解决芯片调试时无法自动暂停且故障诊断效率低下的问题。

本发明实施例一方面提供一种片上调试和诊断方法,包括:

监测中断触发信息,根据所述中断触发信息生成停时钟信号、冻结信号和中断触发标志;

根据所述停时钟信号,关闭功能时钟,根据所述冻结信号,冻结非调试模块端口状态;

并在监测到所述中断触发标志后,记录内部触发器状态和存储器内部状态;

当记录完成后,恢复所述功能时钟;

所述停时钟信号用于停止芯片的功能时钟,所述冻结信号用于冻结所述芯片内部的非调试模块端口状态,所述中断触发标志表示所述芯片接受中断触发。

本发明实施例另一方面提供一种片上调试和诊断装置,包括:

触发分析处理模块,用于监测中断触发信息,根据所述中断触发信息生成停时钟信号、冻结信号和中断触发标志;

暂停模块,用于根据所述停时钟信号,关闭功能时钟,根据所述冻结信号,冻结非调试模块端口状态;

记录模块,用于监测到所述中断触发标志后,记录内部触发器状态和存储器内部状态;

恢复模块,用于当记录完成后,恢复所述功能时钟;

所述停时钟信号用于停止芯片的功能时钟,所述冻结信号用于冻结所述芯片内部的非调试模块端口状态,所述中断触发标志表示所述芯片接受中断触发。

本发明实施例另一方面提供一种芯片,包括:如上所述的片上调试和诊断装置,及芯片主体。

本发明实施例提出的片上调试和诊断方法、装置及芯片在进行实际调试时,通过监测中断触发信息,并根据中断触发信息生成停时钟信号、冻结信号和中断触发标志,使得在芯片运行出错时能够自动关闭功能时钟,暂停处 理器运行;同时自动触发调试和诊断功能,从而能够快速准确的获取芯片的内部状态,有效提高芯片的可调试能力,使得故障诊断更加快速,故障定位更加准确。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种片上调试和诊断方法的流程图;

图2为本发明实施例提供的一种触发分析处理模块的结构示意图;

图3为本发明实施例提供的一种JTAG端口的结构示意图;

图4为本发明实施例提供的一种片上调试和诊断装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例一方面提供一种片上调试和诊断方法,用于调试和诊断芯片。芯片包括片上调试和诊断模块及芯片主体模块,芯片主体模块包括可调试模块和非调试模块。如图1所示,该方法包括:

步骤101、监测中断触发信息,根据中断触发信息生成停时钟信号、冻结信号和中断触发标志。

其中,中断触发信息用于在芯片正常运行的过程中出现错误时,触发中断。即当芯片在正常运行中出现错误时,可通过中断触发信息来触发中断,暂停芯片处理器的运行,方便技术人员针对芯片运行中的错误进行调试和诊断。可选的,中断触发信息可以根据侦听处理器的运行结果和预设信息而产生,具体的,当运行结果和预设信息不一致时获得,即首先根据芯片的设计 功能及输入数据获得正确的芯片运行信息,然后根据正确的芯片运行信息设置相应的预设信息,实时侦听芯片的处理器运行结果,判断处理器运行结果与预设信息是否相一致,若不一致,则生成中断触发信息。可选的,中断触发信息还可以通过对配置总线的配置而产生,技术人员可根据需要在特定位置预设断点,使得芯片运行到预定位置时产生中断触发信息。

片上调试和诊断模块包括触发分析处理模块,触发分析处理模块监测中断触发信息,并根据中断触发信息生成停时钟信号、冻结信号和中断触发标志。示例性的,如图2所示,触发分析处理模块根据中断触发信息生成停时钟信号、冻结信号和中断触发标志。触发分析处理模块包括停时钟计数器、DFD_状态机和触发生成器,当触发分析处理模块监测到中断触发信息,停时钟计数器开始计数,随着停时钟计数器的累计,当累计到预设数值时,DFD_状态机生成相应状态,随着停时钟计数器的持续累计,DFD_状态机进行状态切换,对应不同的状态,触发分析处理模块依次对外发送停时钟信号、冻结信号和中断触发标志。示例性的,当触发分析处理模块监测到中断触发信息,停时钟计数器开始计数,此时DFD_状态机为初始状态,可选的,当停时钟计数器累计到10时,DFD_状态机切换到第一状态,当停时钟计数器继续累计到20时,DFD_状态机切换到第二状态,当停时钟计数器继续累计到30时,DFD_状态机切换到第三状态,在下一时刻,DFD_状态机切换到初始状态,停时钟计数器的值维持不变或置为零值。当第一状态为有效状态时,将停时钟信号置为有效,即相当于对外发送停时钟信号;当第二状态为有效状态时,将冻结信号置为有效,即相当于对外发送冻结信号;当第三状态为有效状态时,将中断触发标志置为有效,即相当于对外发送中断触发标识。

可选的,停时钟计数器可以通过配置总线进行配置,也可以由触发分析处理模块的扫描链配置。在芯片正常运行没有中断触发信息时,停时钟计数器的值保持不变(如零值)。示例性的,停时钟计数器中的参数可人为通过配置总线进行预设,也可在芯片复位时,通过配置总线与其他模块参数统一进行自动配置。可选的,也可在触发分析处理模块监测到中断触发信息后,通过触发分析处理模块的扫描链进行自动配置。

其中,中断触发标志用于表示芯片接受中断触发。

步骤102、根据停时钟信号,关闭功能时钟,根据冻结信号,冻结非调试模块端口状态。

其中,停时钟信号用于停止芯片主体模块的功能时钟,冻结信号用于冻结芯片主体模块内部的非调试模块端口状态。

芯片主体模块接收停时钟信号和冻结信号,将功能时钟停止并终止预取行为。在芯片的正常运行和调试过程中,涉及到时钟控制,根据区域不同可将芯片主体模块区分为不同模块:对于仅拥有单一时钟(功能时钟)或仅有功能时钟和外部低速时钟的模块将其定义为可调试模块或待调试模块,其他部分定义为不可调试模块或非调试模块。对于可调试模块,其功能时钟根据触发分析模块传出的停时钟信号进行时钟开启或者关闭,外部低速部分由外部控制(停止或继续)。对于不可调试模块,其功能时钟也响应触发分析模块传出的停时钟信号,关闭功能时钟,其他时钟部分继续保持原有状态。

步骤103、并在监测到中断触发标志后,记录内部触发器状态和存储器内部状态。

片上调试和诊断模块监测到中断触发标志后,开始记录芯片内部状态。具体的,包括记录内部触发器状态和存储器内部状态。技术人员通过分析记录的待测芯片的内部触发器状态和存储器内部状态可进行错误定位及问题诊断,从而确定问题所在。

可选的,片上调试和诊断模块监测到中断触发标志后,片上调试和诊断模块配置扫描时钟信号,扫描链在扫描时钟信号的控制下开始进行移位操作,扫描链移出内部触发器状态和存储器内部状态并将其记录在寄存器中或其他存储单元内。

可选的,内部触发器状态包括:存储器扫描链触发器状态、非存储器扫描链触发器状态和所有触发器状态。

步骤104、当记录完成后,恢复功能时钟。

可选的,在恢复功能时钟前,先由通过总线配置的时钟控制扫描链移位,将上述记录的扫描链信息从扫描链输入端口依次移入扫描链中。可选的,依据内部触发器在配置和恢复上的不同,可将相应的配置与恢复分为存储器扫描链触发器配置与恢复、非存储器扫描链触发器配置与恢复、所有触发器配置与恢复、以及调试控制链配置。其中,调试控制链是指图2中用于 生成中断触发信息的数据采集模块、预期数据模块和配置总线模块的所有触发器单独形成的扫描链。

本发明实施例提供的片上调试和诊断方法在进行实际调试时,通过监测中断触发信息,并根据中断触发信息生成停时钟信号、冻结信号和中断触发标志,使得在芯片运行出错时能够自动关闭功能时钟,暂停处理器运行;同时自动触发调试和诊断功能,从而能够快速准确的获取芯片的内部状态,有效提高芯片的可调试能力,使得故障诊断更加快速,故障定位更加准确。

为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通过具体的实施例,对本发明的实施例提供的片上调试和诊断方法进行详细说明。

在上述实施例中的步骤101的监测中断触发信息之前,还包括:

监测触发观测信号,根据触发观测信号开启触发观测模式。

其中,触发观测模式是指用于观测中断触发标志的模式。在此模式下,芯片运行正常的功能指令,直到监测到内部产生中断触发信息,然后将触发信息发送至触发分析处理模块,触发分析处理模块对中断触发信息进行分析并实时产生停时钟信号、冻结信号和中断触发标志,通过关闭相应的功能时钟和访问控制,使芯片运行状态处于暂停,然后依据中断触发标志,开始调试和诊断。当不需要进行调试和诊断时,则无需观测中断触发标志,关闭触发观测模式。

可选的,为芯片供电,待芯片复位后,可先将芯片配置为正常功能模式,在运行一段时间后,再切换至触发观测模式,也可直接将芯片配置为触发观测模式。

可选的,本发明实施例提供的片上调试和诊断方法是基于联合测试工作组(Joint Test Action Group,简称JTAG)的。

JTAG是一种国际标准测试协议(IEEE 1149.1),用于芯片内部测试和调试。IEEE1149.1标准规定JTAG端口电路包括一个TAP控制器和5个TAP的访问的端口,分别是测试时钟TCK、测试数据输入TDI、测试数据输出TDO、测试模式选择TMS、测试复位TRSTn。

示例性的,如图3所示,是本发明实施例提供的一种基于JTAG端口的调试结构示意图。其中,SE表示扫描使能信号,CLK表示扫描时钟信号。本 实施例中,首先,为芯片供电,向芯片发送复位信号,通过JTAG的TMS端口将芯片配置为触发观测模式。可选的,也可先通过JTAG的TMS端口将芯片配置为功能模式,在芯片运行一段时间后,再通过JTAG的TMS端口将芯片配置为触发观测模式。

其次,芯片执行功能,产生中断触发信息,触发分析处理模块根据中断触发信息生成停时钟信号、冻结信号和中断触发标志,最终通过JTAG的TDO端口输出中断触发标志。其中,中断触发信息可以通过TDI端口配置。触发分析处理模块的计数器也可通过TDI端口配置。

再次,芯片接收停时钟信号和冻结信号,根据停时钟信号将功能时钟停止并根据冻结信号冻结芯片内部的非调试模块端口状态,通过JTAG的TMS端口将芯片配置为观测和记录模式,观测和记录芯片的内部触发器状态和存储器内部状态。具体的,通过控制JTAG的TCK时钟,控制扫描链进行移位操作,将芯片的内部触发器状态和存储器内部状态通过TDO端口移出进行观测和记录。

再次,通过JTAG的TMS端口将芯片配置为恢复功能时钟模式,通过TCK时钟控制扫描链移位,将上述记录的扫描链信息从扫描链输入端口TDI依次移入扫描链中,以进行状态恢复,并恢复芯片的功能时钟。

最后,通过JTAG再度将芯片配置为功能模式继续运行后续功能,或通过JTAG的TMS端口将芯片配置为触发观测模式继续运行后续功能。此种情况下,芯片无需复位,且再次的中断触发可由上一次配置的时钟间隔来控制,当时钟间隔配置为单位时钟间隔时即可实现单步调试操作。

在上述芯片的调试过程中,通过控制TCK进行存储器扫描链移位,可实现存储器访问配置(包括地址、数据、读写使能等控制信号);通过控制TCK进行存储器扫描链捕获,可实现存储器读写操作;通过控制TCK进行非存储器扫描链移位,可实现非存储器扫描触发器观测,此时观测模块的存储器的所有时钟停止;通过控制TCK进行所有触发器移位,可实现所有触发器观测,此时观测模块的所有触发器及内部可扫描的存储器切换为移位模式,屏蔽存储器写使能;通过控制TCK进行调试控制链触发器移位,可实现调试控制链配置。

可选的,还可通过JTAG将芯片配置为调试控制链配置模式,以对调试 控制链进行配置。

通过利用JTAG的不同模式之间的互斥关系,遵循先配置模式,再切换时钟,从而保证了时钟切换平稳无毛刺。例如,为了防止扫描链移位时钟到功能时钟的切换带来波动,增加恢复功能时钟模式。在时钟切换之前,必须先通过JTAG配置为恢复功能时钟模式,从而使得配置模式的过程中,移位时钟先被关闭。等待配置完成后,再开启功能时钟。同时,使用JTAG进行调试信号的控制与观测具有简洁、灵活、低成本等优势。

本发明实施例另一方面提供一种片上调试和诊断装置,如图4所示,包括:

触发分析处理模块401,用于监测中断触发信息,根据中断触发信息生成停时钟信号、冻结信号和中断触发标志;

暂停模块402,用于根据停时钟信号,关闭功能时钟,根据冻结信号,冻结非调试模块端口状态;

记录模块403,用于监测到中断触发标志后,记录内部触发器状态和存储器内部状态;

恢复模块404,用于当记录完成后,恢复功能时钟;

其中,停时钟信号用于停止芯片的功能时钟,冻结信号用于冻结芯片内部的非调试模块端口状态,中断触发标志表示芯片接受中断触发。

可选的,该片上调试和诊断装置还包括:

配置总线模块,用于配置中断触发信息;

数据采集模块和预期数据模块,用于侦听处理器的运行结果和存储预设信息并根据所述运行结果和预设信息产生中断触发信息。

可选的,还包括:

触发观测监测模块,用于监测触发观测信号,根据触发观测信号开启触发观测模式。

可选的,记录模块还包括:

扫描链模块,用于监测到中断触发标志后,控制扫描时钟信号实现扫描链移位操作,记录扫描链移出的内部触发器状态和存储器内部状态。

其中,内部触发器状态包括:存储器扫描链触发器状态、非存储器扫描链触发器状态和所有触发器状态。

可选的,上述片上调试和诊断装置是基于JTAG的。

本发明实施例另一方面提供一种芯片,包括:如上所述的片上调试和诊断装置,及芯片主体。

本发明实施例提供的片上调试和诊断方法、装置及芯片在进行实际调试时,通过监测中断触发信息,并根据中断触发信息生成停时钟信号、冻结信号和中断触发标志,使得在芯片运行出错时能够自动关闭功能时钟,暂停处理器运行;同时自动触发调试和诊断功能,从而能够快速准确的获取芯片的内部状态,有效提高芯片的可调试能力,使得故障诊断更加快速,故障定位更加准确。同时,通过还可以通过软件灵活地配置调试断点,设置中断触发信息的生成位置,实现程序可控的调试和诊断需求;利用芯片自带扫描链对芯片内部状态进行观测和配置,可以方便地对芯片内部存储器进行捕获和观测,大大提高了芯片的可观测性和可控性;采用基于JTAG的调试和诊断,只需要通过JTAG的端口即可完成整个调试和诊断流程,测试开销小,操作简单方便,易于掌握。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1