一种芯片、芯片调试方法及装置、设备、介质与流程

文档序号:17989414发布日期:2019-06-22 00:39阅读:201来源:国知局
一种芯片、芯片调试方法及装置、设备、介质与流程

本申请涉及芯片技术领域,尤其涉及一种芯片、芯片调试方法及装置、设备、介质。



背景技术:

芯片,又可以称为集成电路,在其出现的半个多世纪以来,有利地推动了信息产业的发展,在大多数电子设备中起到了核心作用。

芯片内往往集成了海量的逻辑门、触发器、多任务器和其他电路,这些电路的小尺寸使得与板级集成相比,有更高速度,更低功耗,并降低了制造成本。芯片制作技术是一门复杂而高深的技术,芯片内部结构的复杂性同样也给芯片调试带来麻烦,从芯片外部观测芯片内部信号很不方便,调试难度大。

在现有技术中,依赖于联合测试工作组(jointtestactiongroup,jtag)接口调试芯片,jtag的基本原理是在器件内部定义一个测试访问口(testaccessport,tap),通过专用的jtag测试工具对器件内部进行测试。

但是,jtag接口的使用需要依赖于中央处理器(centralprocessingunit,cpu)的参与,加重了cpu的负担。



技术实现要素:

本申请实施例提供一种芯片、芯片调试方法及装置、设备、介质,用以解决现有技术中的如下技术问题:现有的芯片调试方案依赖于jtag接口,jtag接口的使用需要依赖于cpu,加重了cpu的负担。

本申请实施例采用下述技术方案:

一种芯片调试方法,所述芯片的内部设置有调试模块,所述调试模块分别连接所述芯片的内部的总线,以及设置于所述芯片的外部的调试接口,所述方法包括:

通过所述调试接口,向所述调试模块发送调试命令;

由所述调试模块根据所述调试模块的寄存器和所述调试命令,与所述总线进行相应的数据交互操作,并将通过所述交互操作得到的调试结果数据保存于所述寄存器中;

通过所述调试接口,从所述寄存器中读取所述调试结果数据至所述芯片的外部。

可选地,所述调试接口包含时钟通道和数据通道;

所述通过所述调试接口,向所述调试模块发送调试命令,包括:

利用所述调试接口包含的时钟通道和数据通道,通过访问所述寄存器,向所述调试模块发送调试命令。

可选地,所述调试命令指示了针对所述芯片的内部的以下至少一种操作:数据读操作、数据写操作。

可选地,所述调试命令指示了所述数据交互操作针对的地址信息,所述地址信息包括所述总线上的指定地址、所述调试模块的指定寄存器的地址。

可选地,所述由所述调试模块根据所述调试模块的寄存器和所述调试命令,与所述总线进行相应的交互操作,包括:

由所述调试模块根据所述总线上的指定地址,以及所述调试模块的指定寄存器的地址,执行:

将从所述调试命令中获取的待写入的数据保存于所述指定寄存器中,再从所述指定寄存器中将该数据向所述总线上的指定地址写入,将写入成功与否的结果作为至少部分所述调试结果数据;和/或,

从所述总线上的指定地址读出待读出的数据,将所读出的数据与读出成功与否的结果,作为至少部分所述调试结果数据。

可选地,所述寄存器还用于保存所述数据交互操作的控制信号和状态信号。

可选地,所述调试命令用于调试所述芯片的以下至少一种功能:启动、复位、配置。

一种芯片调试装置,所述芯片的内部设置有调试模块,所述调试模块分别连接所述芯片的内部的总线,以及设置于所述芯片的外部的调试接口,所述装置包括:

发送模块,通过所述调试接口,向所述调试模块发送调试命令;

交互模块,由所述调试模块根据所述调试模块的寄存器和所述调试命令,与所述总线进行相应的数据交互操作,并将通过所述交互操作得到的调试结果数据保存于所述寄存器中;

读取模块,通过所述调试接口,从所述寄存器中读取所述调试结果数据至所述芯片的外部。

可选地,所述调试接口包含时钟通道和数据通道;

所述发送模块通过所述调试接口,向所述调试模块发送调试命令,包括:

所述发送模块利用所述调试接口包含的时钟通道和数据通道,通过访问所述寄存器,向所述调试模块发送调试命令。

可选地,所述调试命令指示了针对所述芯片的内部的以下至少一种操作:数据读操作、数据写操作。

可选地,所述调试命令指示了所述数据交互操作针对的地址信息,所述地址信息包括所述总线上的指定地址、所述调试模块的指定寄存器的地址。

可选地,所述交互模块由所述调试模块根据所述调试模块的寄存器和所述调试命令,与所述总线进行相应的交互操作,包括:

所述交互模块由所述调试模块根据所述总线上的指定地址,以及所述调试模块的指定寄存器的地址,执行:

将从所述调试命令中获取的待写入的数据保存于所述指定寄存器中,再从所述指定寄存器中将该数据向所述总线上的指定地址写入,将写入成功与否的结果作为至少部分所述调试结果数据;和/或,

从所述总线上的指定地址读出待读出的数据,将所读出的数据与读出成功与否的结果,作为至少部分所述调试结果数据。

可选地,所述寄存器还用于保存所述数据交互操作的控制信号和状态信号。

可选地,所述调试命令用于调试所述芯片的以下至少一种功能:启动、复位、配置。

一种芯片,所述芯片的内部设置有调试模块,所述芯片的外部设置有调试接口;所述调试模块分别连接所述芯片的内部的总线,以及所述调试接口;

所述芯片能够按照上述的芯片调试方法进行调试。

一种芯片调试设备,所述芯片的内部设置有调试模块,所述调试模块分别连接所述芯片的内部的总线,以及设置于所述芯片的外部的调试接口,所述设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

通过所述调试接口,向所述调试模块发送调试命令;

由所述调试模块根据所述调试模块的寄存器和所述调试命令,与所述总线进行相应的数据交互操作,并将通过所述交互操作得到的调试结果数据保存于所述寄存器中;

通过所述调试接口,从所述寄存器中读取所述调试结果数据至所述芯片的外部。

一种芯片调试非易失性计算机存储介质,存储有计算机可执行指令,所述芯片的内部设置有调试模块,所述调试模块分别连接所述芯片的内部的总线,以及设置于所述芯片的外部的调试接口,所述计算机可执行指令设置为:

通过所述调试接口,向所述调试模块发送调试命令;

由所述调试模块根据所述调试模块的寄存器和所述调试命令,与所述总线进行相应的数据交互操作,并将通过所述交互操作得到的调试结果数据保存于所述寄存器中;

通过所述调试接口,从所述寄存器中读取所述调试结果数据至所述芯片的外部。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:能够便利地调试芯片而无需依赖于jtag接口,有助于减轻cpu的负担。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请的一些实施例提供的一种芯片的结构示意图;

图2为本申请的一些实施例提供的一种芯片调试方法的流程示意图;

图3为本申请的一些实施例提供的对应于图2的一种芯片调试装置的结构示意图;

图4为本申请的一些实施例提供的对应于图2的一种芯片调试设备的结构示意图。

具体实施方式

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

目前,除了利用jtag接口测试芯片的方案以外,还有将芯片的指定内部信号直接从芯片引脚引出进行测试的方案,但是,后一种方案只能测试所引出的信号,难以全面覆盖芯片内部的信号。而本申请的方案能至少部分解决这些现有技术所存在的问题。这里不限定芯片的类型,本申请的方案适用于多种类型的芯片,比如,专用集成电路、现场可编程门阵列、复杂可编程逻辑器件等。

下面对本申请的方案进行详细说明。

本申请提出了一种芯片,相比于现有的芯片做了结构上的改进,以便于芯片测试,该改进相对于现有的芯片结构而言,可以是相对独立的,耦合性较低,能够以较小的成本在芯片上实现,且不会妨碍其他已有的功能逻辑正常运行。

图1为本申请的一些实施例提供的一种芯片的结构示意图。在图1中,主要为芯片增加了调试模块和调试接口,调试模块设置于芯片的内部,调试接口设置于芯片的外部,调试模块分别连接芯片的内部的总线,以及调试接口,总线还连接芯片内其他的功能逻辑及对应的寄存器或者内存。调试模块自身也有寄存器,还有诸如控制器、转换器等其他单元。

基于图1中的结构,调试人员能够从芯片的外部,通过调试设备连接调试接口,通过调试接口访问调试模块,进而由调试模块通过总线访问总线上的地址(指向对应的功能逻辑及其寄存器或者内存),从而可以对芯片内部与总线相连接的多个功能逻辑进行调试,这种调试方式依赖于总线以及新增的结构,而无需依赖于jtag接口,而且结构简单,能够以较为简单的接口协议支持上述的这些访问操作。上述的功能逻辑可以用于实现一些通用功能的逻辑,比如,启动、复位、配置等通用功能;也可以用于实现芯片对应的专用功能,比如,数模转换功能、语音放大功能等。

在本申请的一些实施例中,调试接口在硬件方面可以包括芯片的一个或者多个引脚,如此,对芯片封装后的外观影响较小。比如,调试接口可以包括两个引脚,一个作为时钟通道用于传输时钟信号,另一个作为数据通道用于传输业务数据,以防止时钟信号受到干扰。当然,也可以通过调试引脚与功能引脚复用等方式,来帮助减少引脚数量。

调试接口在软件方面可以包括接口协议,比如,单线模式访问协议、多线模式访问协议等。

在本申请的一些实施例中,调试模块可以包含多个寄存器,这些寄存器可以用于暂存芯片的内部与外部之间的交互数据,以便于调试模块进行处理。暂存交互数据的原因在于:总线上的数据传输速率往往是高速的,而调试模块与调试接口之间的数据传输速率可能难以与之适配,另外,总线的接口协议与调试接口所使用的协议也未必相同;从而,可能需要暂存数据并由调试模块进行转换适配。

基于图1中的芯片,本申请的一些实施例还提供了一种芯片调试方法的流程示意图,如图2所示,其中,芯片的内部设置有调试模块,调试模块分别连接芯片的内部的总线,以及设置于芯片的外部的调试接口。在该流程中,从设备角度而言,执行主体可以是芯片本身,以及连接调试接口的调试设备,调试设备比如包括芯片读写器、波形发生器等。从程序角度而言,执行主体相应地可以是搭载于这些芯片和调试设备上的程序,比如,接口协议、测试脚本等。

图2中的流程可以包括以下步骤:

s202:通过设置于芯片外部的调试接口,向设置于所述芯片的内部的调试模块发送调试命令,所述调试模块分别连接所述调试接口,以及所述芯片的内部的总线。

在本申请的一些实施例中,在对芯片进行调试时,需要向芯片的内部写入数据(即进行数据写操作),或者从芯片的内部读取数据(即进行数据读操作)。芯片调试所针对的功能逻辑可以有对应的调试命令,调试命令的数据格式和具体内容可以是多样的,一般可以取决于该功能逻辑和所采用的接口协议等。

在本申请的一些实施例中,对功能逻辑的调试可以是通过针对芯片的数据读操作和/或数据写操作,并对这些操作的结果数据进行记录和验证实现的。

基于此,调试命令可以指示当前所要进行的数据读操作和/或数据写操作,并且可以提供更加详细的数据,以便调试模块据此准确操作,比如,所要写入的数据具体是哪些数据,所要读出的数据具体位于总线上的哪个地址等。当然,为了满足安全性、鲁棒性和数据完整性等更多的实际需求,还可以在调试命令中携带更多的数据,比如,加解密密钥、数字签名、数字证书、重试策略、数据校验位等。

s204:由所述调试模块根据所述调试模块的寄存器和所述调试命令,与所述总线进行相应的数据交互操作,并将通过所述交互操作得到的调试结果数据保存于所述寄存器中。

在本申请的一些实施例中,前面已经提到了调试模块的寄存器,调试模块的至少部分寄存器可以用于保存数据交互操作针对的地址。比如,具体用于暂存总线的指定地址,以便通过数据交互操作,向该指定地址写入数据或者从该指定地址读出数据。当然,该至少部分寄存器自身的地址与总线的指定地址之间也可以具有预设的映射关系,如此,有助于简化接口协议,加快访问速度。

在本申请的一些实施例中,调试结果数据比如包括数据读写成功与否的标识、所读出的数据、表示数据读写过程中的状态数据等。调试结果数据可以暂存于调试模块的寄存器中。

s206:通过所述调试接口,从所述寄存器中读取所述调试结果数据至所述芯片的外部。

在本申请的一些实施例中,调试结果数据读取至芯片的外部后,位于芯片的外部的调试设备还可以对调试结果数据进一步地统计和验证,得到形式符合期望的调试结果。

通过图2的方法,能够便利地调试芯片而无需依赖于jtag接口,有助于减轻cpu的负担;不仅如此,也不用将待调试的功能模块的信号分别地直接接到芯片的外部,而是统一地通过总线与芯片的外部进行交互,从而有助于以较小的成本更全面地调试芯片。

基于图2的方法,本申请的一些实施例还提供了该方法的一些具体实施方案,以及扩展方案,下面进行说明。

在本申请的一些实施例中,对于调试接口,可以将时钟信号与业务数据信号相分离,以更准确地控制时钟,降低干扰。

在这种情况下,调试接口可以包含时钟通道,以及一个或者多个数据通道,对于步骤s202,通过调试接口,向调试模块发送调试命令,可以包括:利用调试接口包含的时钟通道和数据通道,通过访问寄存器,向调试模块发送调试命令。

需要说明的是,调试接口所采用的时钟,与芯片的内部的总线所采用的时钟可能不一致,若不一致,可以由调试模块对这两个时钟进行适配,以避免由于时钟不一致引起的逻辑错乱。

在本申请的一些实施例中,调试命令可以指示数据交互操作针对的地址信息,以便精确地访问芯片的内部,地址信息包括总线上的指定地址、调试模块的指定寄存器的地址等。比如,若当前要针对芯片的内部执行数据读操作,则该指定地址可以指向所要读取的数据在芯片的内部存储的位置,该指定寄存器的地址可以指向所要读取的数据从总线读出后暂存的调试模块的寄存器。

基于上一段的思路,对于步骤s204,由调试模块根据调试模块的寄存器和调试命令,与总线进行相应的交互操作,比如可以包括:

由调试模块根据总线上的指定地址,以及调试模块的指定寄存器的地址,执行:将从调试命令中获取的待写入的数据保存于指定寄存器中,再从指定寄存器中将该数据向总线上的指定地址写入,将写入成功与否的结果作为至少部分调试结果数据;和/或,从总线上的指定地址读出待读出的数据,将所读出的数据与读出成功与否的结果,作为至少部分调试结果数据。如此,芯片的外部能够得到比较直观的调试结果数据,而且有助于简化接口协议。

在本申请的一些实施例中,调试模块的寄存器还可以用于保存数据交互操作的控制信号和状态信号。基于控制信号和状态信号,可以使数据交互操作按照计划执行,还可以将状态信号反馈至芯片的外部,以便调试人员掌握调试过程的实时情况,以及在发生异常时定位问题。控制信号比如包括:数据读操作标识、数据写操作标识、数据位宽、接口协议等。状态信号比如包括:数据传输进度标识、错误码、重试标识等。

根据上面的说明,本申请的一些实施例列举了一种实际应用场景下,上述交互操作所涉及的具体数据,以及调试模块的一个或者多个寄存器所包含的具体数据。

在该实际应用场景下,将交互操作所涉及的具体数据分为:从外部通过调试接口发送给芯片的数据(可以包含在调试命令中)、外部通过调试接口从芯片获得的数据。外部通过调试接口发送给芯片的数据比如可以包括:读写标识,用于指示是数据读操作还是数据写操作;寄存器地址,用于指示所要访问的调试模块的寄存器;所要写入的数据,用于暂存至该寄存器;写数据校验位,用于校验所写入的数据的完整性。外部通过调试接口从芯片获得的数据比如可以包括:数据写操作成功与否的标识;数据读操作完成与否的标识;从芯片中读出的数据;写数据校验位,用于校验所读出的数据的完整性。

进一步地,调试模块的寄存器比如包括多个寄存器,分别用于保存以下数据,以便于调试模块管理:总线上的指定地址,用于数据交互操作时对总线进行访问;待进一步地向总线上的指定地址写入的数据;总线数据读写操作的控制信号;从总线上的指定地址读出的数据;总线接口的状态信息;等等。

基于同样的思路,本申请的一些实施例还提供了上述方法对应的装置、设备和非易失性计算机存储介质。

图3为本申请的一些实施例提供的对应于图2的一种芯片调试装置的结构示意图,所述芯片的内部设置有调试模块,所述调试模块分别连接所述芯片的内部的总线,以及设置于所述芯片的外部的调试接口,所述装置包括:

发送模块301,通过所述调试接口,向所述调试模块发送调试命令;

交互模块302,由调试模块根据调试模块的寄存器和所述调试命令,与所述总线进行相应的数据交互操作,并将通过所述交互操作得到的调试结果数据保存于所述寄存器中;

读取模块303,通过所述调试接口,从所述寄存器中读取所述调试结果数据至所述芯片的外部。

可选地,所述调试接口包含时钟通道和数据通道;

所述发送模块301通过所述调试接口,向所述调试模块发送调试命令,包括:

所述发送模块301利用所述调试接口包含的时钟通道和数据通道,通过访问所述寄存器,向所述调试模块发送调试命令。

可选地,所述调试命令指示了针对所述芯片的内部的以下至少一种操作:数据读操作、数据写操作。

可选地,所述调试命令指示了所述数据交互操作针对的地址信息,所述地址信息包括所述总线上的指定地址、所述调试模块的指定寄存器的地址。

可选地,所述交互模块302由调试模块根据调试模块的寄存器和所述调试命令,与所述总线进行相应的交互操作,包括:

所述交互模块302由所述调试模块根据所述总线上的指定地址,以及所述调试模块的指定寄存器的地址,执行:

将从所述调试命令中获取的待写入的数据保存于所述指定寄存器中,再从所述指定寄存器中将该数据向所述总线上的指定地址写入,将写入成功与否的结果作为至少部分所述调试结果数据;和/或,

从所述总线上的指定地址读出待读出的数据,将所读出的数据与读出成功与否的结果,作为至少部分所述调试结果数据。

可选地,所述寄存器还用于保存所述数据交互操作的控制信号和状态信号。

可选地,所述调试命令用于调试所述芯片的以下至少一种功能:启动、复位、配置。

图4为本申请的一些实施例提供的对应于图2的一种芯片调试设备的结构示意图,所述芯片的内部设置有调试模块,所述调试模块分别连接所述芯片的内部的总线,以及设置于所述芯片的外部的调试接口,所述设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

通过所述调试接口,向所述调试模块发送调试命令;

由所述调试模块根据所述调试模块的寄存器和所述调试命令,与所述总线进行相应的数据交互操作,并将通过所述交互操作得到的调试结果数据保存于所述寄存器中;

通过所述调试接口,从所述寄存器中读取所述调试结果数据至所述芯片的外部。

本申请的一些实施例提供的对应于图1的一种芯片调试非易失性计算机存储介质,存储有计算机可执行指令,所述芯片的内部设置有调试模块,所述调试模块分别连接所述芯片的内部的总线,以及设置于所述芯片的外部的调试接口,所述计算机可执行指令设置为:

通过所述调试接口,向所述调试模块发送调试命令;

由所述调试模块根据所述调试模块的寄存器和所述调试命令,与所述总线进行相应的数据交互操作,并将通过所述交互操作得到的调试结果数据保存于所述寄存器中;

通过所述调试接口,从所述寄存器中读取所述调试结果数据至所述芯片的外部。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请实施例提供的装置、设备和介质与方法是一一对应的,因此,装置、设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和介质的有益技术效果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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