一种调试芯片的方法及装置与流程

文档序号:16994009发布日期:2019-03-02 01:12阅读:286来源:国知局
一种调试芯片的方法及装置与流程

本发明涉及硬件系统调试技术领域,特别涉及一种调试芯片的方法及装置。



背景技术:

随着芯片技术的迅速发展,大型芯片功能复杂,集成的功能模块也越来越多。因此,在大规模的集成电路开发过程中,需要在芯片工作的情况下,采取必要的调试方法对内部信号进行功能调试,以检查功能是否正确。

通常采用在芯片端口上直接定义调试端口,用外部逻辑分析仪进行调试。采用逻辑分析仪费用较高,给芯片的调试带来局限性。



技术实现要素:

有鉴于此,本发明实施例提供了一种调试芯片的方法及装置,用于解决芯片内部模块在线功能调试和检测的问题。

本发明的一个方面提供一种调试芯片的方法,包括:接收jtag控制器发送的第一控制指令,第一控制指令包括接口选择信息;根据接口选择信息选择与总线连接的芯片的多个测试接口中的第一测试接口传输芯片的测试结果信号;接收总线传输的测试结果信号;发送测试结果信号至jtag控制器,以供调试使用。

本发明一实施例中,该方法还包括发送测试结果信号至存储器,以存储测试结果信号;从存储器读取测试结果信号,其中,发送测试结果信号至jtag控制器,包括:将从存储器读取的测试结果信号发送至jtag控制器。

本发明一实施例中,第一控制指令包括触发条件,其中发送测试结果信号至存储器包括:根据触发条件,发送测试结果信号至存储器。

本发明一实施例中,根据触发条件,发送目标结果信号至存储器,包括:在总线累积传输的测试结果信号的大小达到预设位宽时,将累积传输的测试结果信号发送至存储器。

本发明一实施例中,从jtag控制器接收读取指令,其中,从存储器读取测试结果信号包括:在接收jtag控制器发送的读取指令时,从存储器读取测试结果信号,其中jtag是在接收到测试结果信号已经存储在存储器中的回复时发送所述读取指令的。

本发明一实施例中,第一控制指令还包括分组选择信息,多个测试接口被分为多组测试接口;其中根据接口选择信息选择与总线连接的芯片的多个测试接口中的第一测试接口传输芯片的测试结果信号,包括:根据分组选择信息,从多组测试接口中选择一组测试接口;根据接口选择信息从多组测试接口中选择第一测试接口传输测试结果信号。

本发明一实施例中,多组测试接口根据芯片中分别与多组测试接口连接的多个模块的相关性进行分组。

本发明的另一个方面提供一种调试芯片的装置,包括:接收单元,用于接收jtag控制器发送的第一控制指令,第一控制指令包括接口选择信息;

选取单元,用于根据接口选择信息选择与总线连接的芯片的多个测试接口中的第一测试接口传输芯片的测试结果信号;

接收单元,还用于接收总线传输的测试结果信号;

发送单元,还用于发送测试结果信号至jtag控制器,以供调试使用。

本发明的另一个方面提供一种调试芯片的装置,包括:控制器、总线和jtag控制器,其中,总线与控制器以及芯片的多个测试接口相连接,用于传输芯片的测试结果信号;控制器与总线以及jtag控制器相连接,用于与jtag控制器进行通讯,以及控制总线传输芯片的测试结果信号;jtag控制器与控制器相连接,用于实现pc端和控制器之间的通信。

本发明的另一个方面提供一种调试芯片的装置,包括处理器和存储器,其中:

所述存储器用于存储如上所述的任一项的调试芯片的方法的程序。

所述处理器用于执行所述程序。

本发明实施例提供的调试芯片的方法,通过接收jtag控制器发送的第一控制指令中包含的接口选择信息,选择与总线连接的芯片的多个测试接口中的第一测试接口传输的测试结果信号,测试结果信号通过总线传输并最终发送给jtaf控制器,以供调试使用。本发明的调试芯片的方法,利用总线连接芯片与控制器,并通过控制器最终将测试结果信号发送给jtag控制器,使得对芯片内部模块的功能的在线调试过程中,避免了对芯片定义过多的调试接口,使对芯片内部模块的功能的在线调试和检测更为便捷。

附图说明

图1为本发明实施例的一种调试芯片的方法的流程图。

图2所示为本发明另一实施例提供的一种调试芯片的方法的流程图。

图3所示为本发明另一实施例提供的一种调试芯片的方法的流程图。

图4所示为本发明一实施例提供的一种调试芯片的方法的总线分级示意图。

图5为本发明实施例的一种调试芯片的装置结构图。

图6为本发明实施例的一种调试芯片的装置结构图。

图7为本发明实施例的一种调试芯片的计算机装置的框图。

具体实施方式

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

附图中的步骤编号仅用于作为该步骤的附图标记,不表示执行顺序。

图1为本发明实施例的一种调试芯片的方法的流程图。该方法可以由控制器,例如,调试(debug)控制器,执行。该控制器可以集成在芯片上,也可以独立设置。如图1所示,该方法包括如下内容:

步骤110:接收jtag控制器发送的第一控制指令,第一控制指令包括接口选择信息。

控制器接收pc通过jtag控制器发送的第一控制指令,第一控制指令包括接口选择信息。待测试芯片可以通过多个测试接口与总线相连接,不同的测试接口可以是对应不同项目的测试数据,也就是测试结果信号。

步骤120:根据接口选择信息选择与总线连接的芯片的多个测试接口中的第一测试接口传输芯片的测试结果信号。

为了得到测试所需的测试结果信号,控制器控制总线在多个测试接口中选择待测芯片相应的第一测试接口,以便将第一测试接口的测试结果信号传输给控制器。

步骤130:接收总线传输的测试结果信号。

控制器控制总线响应第一控制指令,将第一测试接口的测试结果信号通过总线传输给控制器。

步骤140:发送测试结果信号至jtag控制器,以供调试使用。

控制器将测试结果信号发送给jtag控制器,并最终通过jtag控制器发送给pc,以等待pc发送进一步的指令,对芯片进行调试。

本发明实施例提供的调试芯片的方法通过利用jtag控制器进行芯片内部模块在线功能调试和检测,避免了对芯片定义冗余的调试接口,使对芯片内部模块的功能的在线调试和检测更为便捷。

图2所示为本发明另一实施例提供的一种调试芯片的方法的流程图.在本实施例中,步骤210-230和图1所示实施例中的步骤110-130基本相同,不再重复描述。如图2所示,本实施例在图1所示实施例的基础上,进一步包括下述步骤240和250。

步骤240:发送所述测试结果信号至存储器,以存储所述测试结果信号。

具体地,待测芯片运行时,内部模块的测试数据可以是动态的,或者测试数据与测试端口的读取速度不匹配,此时对于测试结果不便于实时观看,这是可以将该模块对应的测试结果信号通过总线传输到存储器,例如,可以通过静态随机存储器(sram,staticrandom-accessmemory)进行存储,也可以通过动态随机存取存储器(dram,dynamicrandomaccessmemory)进行存储。以便于外部pc通过jtag控制器需要读取的时候,存储器可以将测试结果信号发送给控制器以满足测试需要。

步骤250:从所述存储器读取所述测试结果信号。

外部pc通过jtag控制器需要读取测试结果信号时,控制器从存储器读取测试结果信号,并发送给jtag控制器。

步骤260:发送所述测试结果信号至所述jtag控制器,以供调试使用。

本发明实施例提供的调试芯片的方法可以将测试结果信号通过总线传输保存在存储器中,可以更好地满足对复杂芯片内部模块的工作数据的获取与存储,给芯片的在线功能调试带来了便利。

在本发明一实施例中,第一控制指令包括触发条件,其中发送测试结果信号至存储器包括:根据触发条件,发送测试结果信号至存储器。

触发条件,可以是根据对芯片的测试需求、与芯片内部模块的触发条件相对应来自定义,如上升沿触发、下降沿触发、高电平触发或低电平触发等,也可以定义是同时满足两个条件触发。测试控制系统接收pc通过jtag控制器发送的第一控制指令中还包括触发条件,并根据触发条件将满足条件对应的测试结果信号通过总线传输,保存至存储器。

本发明一实施例中,根据触发条件,发送目标结果信号至存储器,包括:在总线累积传输的测试结果信号的大小达到预设位宽时,将累积传输的测试结果信号发送至存储器。

为了便于测试结果的传输以及存储,测试结果信号可以是组合成固定的位宽,例如3位、4位或者自主定义的位宽。也就是说,测试结果信号在总线传输时,一次传输的数据的位数是固定的。测试控制系统接收pc通过jtag控制器发送的第一控制指令中还可以包括预设位宽的信息,当在总线累积传输的测试结果信号达到此预设位宽时,控制器将累积传输的测试结果信号保存至存储器。测试结果信号以固定位宽组合,可以便于观测数据存放,也可以进一步的提高测试效率。

图3所示为本发明另一实施例提供的一种调试芯片的方法的流程图.在本实施例中,步骤310-350和图2所示实施例中的步骤210-250基本相同,不再重复描述。如图3所示,本实施例在图2所示实施例的基础上,进一步包括下述步骤360和370。

步骤360:发送所述测试结果信号已经存储在所述存储器至jtag控制器。

控制器将测试结果信号发送至存储器,存储器保存完成后,控制器向jtag控制器发送测试结果信号保存完成的信息。pc端收到测试结果信号保存完成的信号之后,通过jtag控制器发送读取存储器内测试结果信号的指令,在这里存储器可以是sram或者dram,本实施例对此不作限定。

步骤370:接收所述jtag控制器发送的读取指令。

控制器接收pc通过jtag控制器发送的读取指令,读取存储器内的测试结果信号。

步骤380:发送所述测试结果信号至所述jtag控制器,以供调试使用。

本发明一实施例中,第一控制指令还包括分组选择信息,多个测试接口被分为多组测试接口;其中根据接口选择信息选择与总线连接的芯片的多个测试接口中的第一测试接口传输芯片的测试结果信号,包括:根据分组选择信息,从多组测试接口中选择一组测试接口;根据接口选择信息从多组测试接口中选择第一测试接口传输测试结果信号。

具体而言,测试控制系统接收pc通过jtag控制器发送的第一控制指令还包括分组选择信息,多个测试接口可以被分为多组测试接口,即总线是可以自定义为分级总线结构。

图4所示为本发明一实施例提供的一种调试芯片的方法的总线分级示意图。

如图4所示,总线可以是分为两级或者多级,本实施例中,总线分为两级。因为芯片的模块采用分级机制,相应地总线也可以进行分级,测试结果信号相应进行分组。例如,当测试接口数量为16时,可以每两个接口分为一组,共分为8组。根据第一控制指令从8组测试接口中选择一组测试接口,如图4所示,可以是选择待测数据(dut,designundertest)中的dut0与dut1所在的组。再根据接口选择信息从这一组内的两个接口的中选择第一测试接口传输测试结果信号,即选择dut0或dut1进行传输。可以理解的是,对于更加复杂的芯片,模块内部也可以分级,这样可以观测到模块内部更多信号数据。

本发明一实施例中,多组测试接口根据芯片中分别与多组测试接口连接的多个模块的相关性进行分组。

芯片中的多个模块可以是分级集成的,测试接口也可以根据芯片中的多个模块的相关性进行分组,其中,模块的相关性可以是物理位置上的相关性也可以是逻辑功能上的相关性。测试接口的分组可以依靠总线分级来实现。多组测试接口根据芯片中分别与多组测试接口连接的多个模块的相关性进行分组,可以便于后端进行布局与布线,也可以是测试结果信号的传输更加有效率。

图5为本发明实施例的一种调试芯片的装置结构图,如图5所示该装置包括:

接收单元510,用于接收jtag控制器发送的第一控制指令,所述第一控制指令包括接口选择信息。

选取单元520,用于根据所述接口选择信息选择与总线连接的芯片的多个测试接口中的第一测试接口传输所述芯片的测试结果信号。

接收单元530,还用于接收所述总线传输的所述测试结果信号。

发送单元540,用于发送所述测试结果信号至所述jtag控制器,以供调试使用。

本发明实施例提供的一种调试芯片的装置,通过接收jtag控制器发送的第一控制指令中包含的接口选择信息,选择与总线连接的芯片的多个测试接口中的第一测试接口传输的测试结果信号,测试结果信号通过总线传输并最终发送给jtaf控制器,以供调试使用。本发明的调试芯片的装置,利用总线连接芯片与控制器,并通过控制器最终将测试结果信号发送给jtag控制器,使得对芯片内部模块的功能的在线调试过程中,避免了对芯片定义过多的调试接口,使对芯片内部模块的功能的在线调试和检测更为便捷。

本发明一实施例中,发送单元还用于发送测试结果信号至存储器,以存储测试结果信号,其中,发送测试结果信号至jtag控制器,包括:将从存储器读取的测试结果信号发送至jtag控制器。。

本发明一实施例中,该装置还包括读取单元,用于从存储器读取测试结果信号。

本发明一实施例中,发送单元还用于,根据触发条件,发送测试结果信号至存储器。

本发明一实施例中,发送单元还用于,根据触发条件,发送目标结果信号至存储器,包括:在总线累积传输的测试结果信号的大小达到预设位宽时,将累积传输的测试结果信号发送至存储器。

本发明一实施例中,读取单元还用于从jtag控制器接收读取指令,其中,从存储器读取测试结果信号包括:在接收jtag控制器发送的读取指令时,从存储器读取测试结果信号,其中jtag是在接收到测试结果信号已经存储在存储器中的回复时发送所述读取指令的。

本发明一实施例中,选取单元还用于,第一控制指令还包括分组选择信息,多个测试接口被分为多组测试接口;其中根据接口选择信息选择与总线连接的芯片的多个测试接口中的第一测试接口传输芯片的测试结果信号,包括:根据分组选择信息,从多组测试接口中选择一组测试接口;根据接口选择信息从多组测试接口中选择第一测试接口传输测试结果信号。

本发明一实施例中,多组测试接口根据芯片中分别与多组测试接口连接的多个模块的相关性进行分组。

图6为本发明实施例的一种调试芯片的装置结构图。

如图6所示,调试芯片的装置,包括:调试控制器(debugcontroller)、调试总线(debugbus)、jtag控制器和存储器(sram)。其中,总线与控制器以及芯片的多个测试接口相连接,用于传输芯片的多个测试结果信号(dut0,dut1……dutn);控制器与总线以及jtag控制器相连接,用于与jtag控制器进行通讯,以及控制总线传输芯片的测试结果信号;jtag控制器与控制器相连接,用于实现pc端和控制器之间的通信;存储器sram与控制器相连接,用于存储测试结果信号,并在控制器接收pc通过jtag控制器发送的读取指令时,将所存储的测试结果信号发送给控制器。可以理解的是,存储器可以是静态随机存储器sram,也可以是通过动态随机存取存储器dram,本发明实施例对此不作限定。

图7为本发明实施例的一种调试芯片的装置的框图。

参照图7,装置700包括处理组件710,其进一步包括一个或多个处理器,以及由存储器720所代表的存储器资源,用于存储可由处理组件710的执行的指令,例如应用程序。存储器720中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件710被配置为执行指令,以执行上述调试芯片的方法。

装置700还可以包括一个电源组件被配置为执行装置700的电源管理,一个有线或无线网络接口被配置为将装置700连接到网络,和一个输入输出(i/o)接口。装置700可以操作基于存储在存储器720的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

一种非临时性计算机可读存储介质,当存储介质中的指令由上述装置700的处理器执行时,使得上述装置700能够执行一种调试芯片的方法,包括:接收jtag控制器发送的第一控制指令,第一控制指令包括接口选择信息;根据接口选择信息选择与总线连接的芯片的多个测试接口中的第一测试接口传输芯片的测试结果信号;接收总线传输的测试结果信号;发送测试结果信号至jtag控制器,以供调试使用。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再做过多描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序校验码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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