CN117408197A - 芯片的调试方法、装置、电子设备和存储介质 - Google Patents
芯片的调试方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117408197A CN117408197A CN202311474886.9A CN202311474886A CN117408197A CN 117408197 A CN117408197 A CN 117408197A CN 202311474886 A CN202311474886 A CN 202311474886A CN 117408197 A CN117408197 A CN 117408197A
- Authority
- CN
- China
- Prior art keywords
- debugging
- chip
- information
- debug
- tested
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000013461 design Methods 0.000 claims abstract description 76
- 238000004088 simulation Methods 0.000 claims abstract description 56
- 230000004044 response Effects 0.000 claims description 31
- 238000012360 testing method Methods 0.000 claims description 23
- 230000005284 excitation Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims 1
- 230000003993 interaction Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000009286 beneficial effect Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开实施例公开了一种芯片的调试方法、装置、电子设备和存储介质,其中,方法包括:获取用户的调试信息;将调试信息发送至硬件模拟加速器中的调试控制器;向调试控制器发送调试控制命令,以使调试控制器执行调试控制命令,基于调试信息对硬件模拟加速器中的待测设计芯片进行调试。本公开实施例可以实现用户与待测设计芯片之间的数据交互,可以在不依赖模拟加速器的外部物理调试器和模拟加速器自带的波形查看工具的情况下,实现用户对待测设计芯片的调试,降低用户操作复杂度,提高用户调试的便捷性,从而提高调试效率。
Description
技术领域
本公开涉及仿真技术,尤其是一种芯片的调试方法、装置、电子设备和存储介质。
背景技术
在基于硬件模拟加速器(Emulator)平台对芯片进行仿真调试时,用户对芯片的寄存器传输级(Register Transfer Level,简称:RTL)代码(可以称为待测设计芯片或DUT)的调试,需要借助Emulator外部的物理调试器或者Emulator自带的波形查看工具,调试效率较低。
发明内容
为了解决上述调试效率较低等技术问题,本公开的实施例提供了一种芯片的调试方法、装置、电子设备和存储介质,以提高调试效率。
本公开的第一个方面,提供了一种芯片的调试方法,包括:获取用户的调试信息;将所述调试信息发送至硬件模拟加速器中的调试控制器;向所述调试控制器发送调试控制命令,以使所述调试控制器执行所述调试控制命令,基于所述调试信息对所述硬件模拟加速器中的待测设计芯片进行调试。
本公开的第二个方面,提供了一种芯片的调试方法,包括:接收终端设备发送的调试信息;响应于获取到来自终端设备的调试控制命令,执行所述调试控制命令,基于所述调试信息对待测设计芯片进行调试。
本公开的第三个方面,提供了一种芯片的调试装置,包括:获取模块,用于获取用户的调试信息;第一发送模块,用于将所述调试信息发送至硬件模拟加速器中的调试控制器;第二发送模块,用于向所述调试控制器发送调试控制命令,以使所述调试控制器执行所述调试控制命令,基于所述调试信息对所述硬件模拟加速器中的待测设计芯片进行调试。
本公开的第四个方面,提供了一种芯片的调试装置,包括:接收模块,用于接收终端设备发送的调试信息;控制模块,用于响应于获取到来自终端设备的调试控制命令,执行所述调试控制命令,基于所述调试信息对待测设计芯片进行调试。
本公开的第五个方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本公开上述第一个方面的实施例所述的芯片的调试方法。
本公开的第六个方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开上述第一个方面的实施例所述的芯片的调试方法。
本公开的第七个方面,提供一种电子设备,所述电子设备包括:本公开上述第四个方面的实施例所述的芯片的调试装置。
本公开的第八个方面,提供了一种计算机程序产品,当所述计算机程序产品中的指令被处理器执行时,执行本公开上述第一个方面的实施例提供的芯片的调试方法。
基于本公开上述实施例提供的芯片的调试方法、装置、电子设备和存储介质,通过终端设备侧的软件控制程序与硬件模拟加速器侧的硬件调试控制器配合,可以实现为一个或多个用户提供芯片的在线实时调试功能,用户可以通过终端设备侧的软件控制程序将用户的调试信息和调试控制命令发送至硬件侧的调试控制器,从而通过调试控制器执行调试控制命令,控制对待测设计芯片的调试,既可以通过调试控制器向待测设计芯片写入调试需要的数据,又可以从待测设计芯片读取调试响应结果数据,实现用户与待测设计芯片之间的数据交互,可以在不借助模拟加速器的外部物理调试器和模拟加速器自带的波形查看工具的情况下,实现用户对待测设计芯片的调试,降低用户操作复杂度,提高用户调试的便捷性,从而提高调试效率。
附图说明
图1是本公开提供的芯片的调试方法的一个示例性的应用场景;
图2是本公开一示例性实施例提供的芯片的调试方法的流程示意图;
图3是本公开另一示例性实施例提供的芯片的调试方法的流程示意图;
图4是本公开再一示例性实施例提供的芯片的调试方法的流程示意图;
图5是本公开又一示例性实施例提供的芯片的调试方法的流程示意图;
图6是本公开再一示例性实施例提供的芯片的调试方法的流程示意图;
图7是本公开一示例性实施例提供的芯片的调试装置的结构示意图;
图8是本公开另一示例性实施例提供的芯片的调试装置的结构示意图;
图9是本公开再一示例性实施例提供的芯片的调试装置的结构示意图;
图10是本公开又一示例性实施例提供的芯片的调试装置的结构示意图;
图11是本公开再一示例性实施例提供的芯片的调试装置的结构示意图;
图12是本公开又一示例性实施例提供的芯片的调试装置的结构示意图;
图13是是本公开一示例性实施例提供的芯片的调试系统的结构示意图;
图14是本公开实施例提供的一种电子设备的结构图。
具体实施方式
为了解释本公开,下面将参考附图详细地描述本公开的示例实施例,显然,所描述的实施例仅是本公开的一部分实施例,而不是全部实施例,应理解,本公开不受示例性实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本公开概述
在实现本公开的过程中,发明人发现,在基于硬件模拟加速器(Emulator)平台对芯片进行仿真调试时,用户对芯片的寄存器传输级(Register Transfer Level,简称:RTL)代码(可以称为待测芯片或DUT)的调试,需要借助Emulator外部的物理调试器或者Emulator自带的波形查看工具,调试效率较低。
示例性概述
图1是本公开提供的芯片的调试方法的一个示例性的应用场景。
如图1所示,本公开的芯片的调试方法可以基于终端设备和模拟加速器实现。在终端设备侧配置有执行本公开的芯片的调试方法的软件控制程序(或执行芯片的调试方法的芯片的调试装置),在模拟加速器侧扩展有本公开的芯片的调试方法的硬件调试控制装置(可以包括调试控制器)。在终端设备侧还可以配置有上层用户应用程序,用于用户与软件控制程序之间的交互。当用户需要对待测设计芯片进行调试时,可以通过上层用户应用程序向软件控制程序传输用户的调试信息,软件控制程序获取用户的调试信息,将调试信息发送至硬件模拟加速器(即模拟加速器)中的调试控制器,并向调试控制器发送调试控制命令,以使调试控制器执行调试控制命令,基于调试信息对模拟加速器中的待测设计芯片进行调试。调试过程可以包括向待测设计芯片发送数据以及从待测设计芯片读取调试响应结果数据,例如待测设计芯片响应激励数据后的状态信息,以完成对待测设计芯片的调试。本公开通过终端设备侧的软件控制程序与模拟加速器侧的硬件调试控制器配合,可以实现为一个或多个用户提供芯片的在线实时调试功能,用户可以通过终端设备侧的软件控制程序将用户的调试信息和调试控制命令发送至硬件侧的调试控制器,从而通过调试控制器执行调试控制命令,控制对待测设计芯片的调试,既可以通过调试控制器向待测设计芯片写入调试需要的数据,又可以从待测设计芯片读取调试响应结果数据,实现用户与待测设计芯片之间的控制桥梁,可以在不借助模拟加速器的外部物理调试器和模拟加速器自带的波形查看工具的情况下,实现用户对待测设计芯片的调试,降低用户操作复杂度,提高用户调试的便捷性,从而提高调试效率。且对用户的硬件调试经验要求较低,提高用户体验。此外,本公开的方法还可以支持多用户在线实时的调试,有助于提升资源利用率。
示例性方法
图2是本公开一示例性实施例提供的芯片的调试方法的流程示意图。本实施例可应用在电子设备上,具体比如终端设备、服务器等电子设备上,如图2所示,包括如下步骤:
步骤201,获取用户的调试信息。
其中,调试信息可以包括调试命令、用户设置数据、信号激励等中的至少一种。调试命令可以包括用户进行调试需要被待测设计芯片执行的命令。用户设置数据可以包括用户要设置的待测设计芯片中的寄存器的值、状态机的状态、调试断点信息等,具体不作限定。待测设计芯片是待测芯片的设计代码,例如待测设计芯片可以为待测芯片的RTL(Register Transfer Level,寄存器传输级)代码。
在一些可选的实施例中,用户可以通过上层用户应用程序将调试信息传输至本公开的装置,本公开的装置则可以获取来自上层用户应用程序的用户的调试信息。
在一些可选的实施例中,本公开的装置可以包括上层用户应用程序,从而可以通过上层用户应用程序获取用户的调试信息。
步骤202,将调试信息发送至硬件模拟加速器中的调试控制器。
其中,调试控制器可以是基于硬件模拟加速器内部逻辑实现的控制器,用于与本公开的终端设备侧的软件控制程序所实现的芯片的调试方法配合,实现用户对待测设计芯片的在线实时调试。终端设备作为调试设备,软件控制程序可以是对调试工具的软件部分扩展的控制程序。软件控制程序可以利用调试工具的功能与硬件的调试控制器配合,完成待测设计芯片的调试。
在一些可选的实施例中,可以通过总线将调试信息发送至调试控制器。还可以控制调试控制器将调试信息下载至与调试控制器连接的缓存单元中。
在一些可选的实施例中,对于待测设计芯片的调试,可以一次或多次获取用户的调试信息,对待测设计芯片进行一次或多次的调试。例如用户可以设置不同的调试断点信息,使得调试控制器可以读取待测设计芯片在执行到调试断点信息对应的断点位置处的状态信息,确定待测设计芯片的该断点位置处对应的测试结果。
步骤203,向调试控制器发送调试控制命令,以使调试控制器执行调试控制命令,基于调试信息对硬件模拟加速器中的待测设计芯片进行调试。
其中,调试控制命令是用于控制调试控制器向待测设计芯片发送数据或者从待测设计芯片读取数据的命令。调试控制命令可以包括发送命令和读取命令中的至少一者。
在一些可选的实施例中,向调试控制器发送调试控制命令可以在调试过程中的任意时间执行,在调试过程中可以一次或多次地向调试控制器发送调试控制命令。具体可以根据实际需求设置。例如在向调试控制器发送用户设置数据后,向调试控制器发送指示调试控制器向待测设计芯片发送用户设置数据的发送命令,以使调试控制器将用户设置数据发送至待测设计芯片。在向调试控制器发送待测设计芯片的信号激励后,向调试控制器发送指示调试控制器向待测设计芯片施加激励的发送命令,以向待测设计芯片施加相应的激励。在向调试控制器发送向待测设计芯片施加激励的发送命令后,可以向调试控制器发送指示调试控制器读取待测设计芯片的响应结果(例如待测设计芯片的寄存器、状态机等的状态信息等)的读取命令,以使调试控制器读取待测设计芯片的状态信息。具体的调试控制命令及发送时机、发送次数不作限定,可以根据对待测设计芯片的调试需求设置,以完成对待测设计芯片的调试。
在一些可选的实施例中,向调试控制器发送调试控制命令可以直接通过接口向调试控制器发送调试控制命令实现,也可以通过设置调试控制器的发送单元和接收单元的接口状态实现。例如通过寄存器缓存接口状态,通过将寄存器置为不同状态实现发送命令和读取命令的发送。或者,通过设置发送单元和接收单元的接口信号读写状态,实现发送命令和读取命令的发送。还可以通过其他任意可实施的方式实现向调试控制器发送调试控制命令,本实施例不作限定。
在一些可选的实施例中,调试控制器执行调试控制命令,基于调试信息对硬件模拟加速器中的待测设计芯片进行调试,包括执行发送命令,将调试信息发送至待测设计芯片,执行读取命令从待测设计芯片读取待测设计芯片的相关信息,并反馈给用户,从而实现对待测设计芯片的在线实时调试。
本实施例提供的芯片的调试方法,通过终端设备侧的软件控制程序与模拟加速器侧的硬件调试控制器配合,可以实现为一个或多个用户提供芯片的在线实时调试功能,用户可以通过终端设备侧的软件控制程序将用户的调试信息和调试控制命令发送至硬件侧的调试控制器,从而通过调试控制器执行调试控制命令,控制对待测设计芯片的调试,既可以通过调试控制器向待测设计芯片写入调试需要的数据,又可以从待测设计芯片读取调试响应结果数据,实现用户与待测设计芯片之间的控制桥梁,可以在不借助模拟加速器的外部物理调试器和模拟加速器自带的波形查看工具的情况下,实现用户对待测设计芯片的调试,降低用户操作复杂度,提高用户调试的便捷性,从而提高调试效率。且对用户的硬件调试经验要求较低,提高用户体验。此外,本公开的方法还可以支持多用户在线实时的调试,有助于提升资源利用率。
图3是本公开另一示例性实施例提供的芯片的调试方法的流程示意图。
在一些可选的实施例中,步骤203的向调试控制器发送调试控制命令,包括:
步骤2031,响应于调试信息包括待写入待测设计芯片的调试命令、用户设置数据和信号激励中的至少一者,将调试控制器的发送单元的接口状态置为有效状态,以使调试控制器将调试信息发送至待测设计芯片。
其中,用户设置数据可以包括用户要设置的待测设计芯片中的寄存器的值、状态机的状态、调试断点信息等。其中,寄存器的值例如可以为初始化值或者在调试过程中用户要设置的值。信号激励是指为待测设计芯片施加的激励,使待测芯片响应激励,获得响应结果,以将响应结果与预期结果比对,实现对待测设计芯片的功能测试。比如,对待测设计芯片中的逻辑器件施加激励作为逻辑器件的输入,通过逻辑器件对该输入进行处理,获得逻辑器件的输出,用于测试该逻辑器件的功能。调试控制器的发送单元可以指调试控制器向待测设计芯片发送数据的接口单元。
在一些可选的实施例中,接口单元的接口类型不作限定。例如接口类型可以包括低速总线接口、高速总线接口等。其中,低速总线接口例如可以包括UART(UniversalAsynchronous Receiver-Transmitter,通用异步收发器)接口、IIC(Inter-IntegratedCircuit BUS,集成电路总线)接口、SPI(Serial Peripheral Interface,串行外设接口)等。高速总线接口例如可以包括PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)接口、AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线)接口等。
在一些可选的实施例中,调试控制器可以包括一种或多种类型的接口。例如可以包括多种不同的低速接口、多种不同的高速接口中的至少两种,以满足不同用户的待测设计芯片的不同接口需求。
在一些可选的实施例中,发送单元的接口状态可以通过任意方式设置,例如可以通过寄存器存储接口状态,比如寄存器值为1时表示接口状态为有效状态,寄存器值为0时表示接口状态为无效状态。有效状态表示当前需要通过该接口发送数据,无效状态表示当前不需要通过该接口发送数据。
在一些可选的实施例中,调试控制器可以检测接口状态,以确定是否接收到调试控制命令。
在一些可选的实施例中,调试控制器的发送单元可以与待测设计芯片的对应接口连接,通过待测设计芯片的接口将调试信息发送至待测设计芯片内部。
步骤2032,响应于检测到待测设计芯片执行到预设调试断点位置,将调试控制器的接收单元的接口状态置为有效状态,以使调试控制器读取待测设计芯片的状态信息。
其中,预设调试断点位置可以是用户设置数据中的调试断点信息所对应的断点位置。调试控制器的接收单元可以为用于从待测设计芯片接收或读取数据的接口单元。与上述的发送单元类似,接收单元的接口类型可以包括高速总线接口、低速总线接口等。具体不作赘述。
在一些可选的实施例中,调试控制器的发送单元和接收单元成对存在,以实现调试控制器与待测设计芯片的数据交互。例如,调试控制器可以包括一对或多对接口单元,每对接口单元包括发送单元和接收单元。不同对的接口单元可以为不同的接口类型,以适配不同接口类型的待测设计芯片。用户则可以根据待测设计芯片的接口类型,选择调试控制器中用于与待测设计芯片进行交互的接收单元和发送单元。
在一些可选的实施例中,调试控制器可以包括一种或多种接口类型的接口单元,每种接口类型的接口单元可以包括一对或多对,以满足多个用户的实时在线调试需求,以及不同接口的待测设计芯片的调试需求。
在一些可选的实施例中,待测设计芯片的状态信息可以包括待测设计芯片内部各种寄存器的状态值、状态机、硬件信号状态等,硬件信号状态比如为时钟信号的高、低等。
在一些可选的实施例中,调试控制器的接收单元可以与待测设计芯片的对应接口连接,从而通过待测设计芯片的对应接口从待测设计芯片读取状态信息。
在一些可选的实施例中,对预设调试断点位置的检测可以通过时钟数量、总线信号、控制信号等实现。例如,通过执行的时钟数量与预设调试断点位置对应的预设时钟数量进行对比,确定是否执行到预设调试断点位置。通过总线信号或控制信号的逻辑操作触发将调试控制器的接收单元的接口状态置为有效状态。
在一些可选的实施例中,在检测到待测设计芯片执行到预设断点位置后,也可以获取用户在该预设断点位置对应的调试信息,将调试信息发送至调试控制器,并将调试控制器的发送单元的接口状态置为有效状态,以使调试控制器将调试信息写入待测设计芯片内部。
在一些可选的实施例中,在调试控制器完成向待测设计芯片发送数据后,调试控制器可以将发送单元的接口状态置为无效状态,在调试控制器完成从待测设计芯片读取数据后,调试控制器可以将接收单元的接口状态置为无效状态,以等待下一次的调试控制命令。
本实施例通过设置调试控制器的发送单元、接收单元的接口状态实现调试控制命令的发送,便于调试控制器快速确认接收到调试控制命令以及确认调试控制命令的类型,以与待测设计芯片进行数据交互,有助于用户通过调试控制器方便快捷地对待测设计芯片进行在线实时调试,提升调试效率。
在一些可选的实施例中,本公开实施例的方法还包括:
步骤301,响应于检测到调试控制器读取到待测设计芯片的状态信息,获取调试控制器读取到的待测设计芯片的状态信息。
其中,对于调试器读取到待测设计芯片的状态信息的检测,可以通过检测该装置与调试控制器连接的数据总线接口状态或缓存单元的状态实现。例如,若调试控制器读取到待测设计芯片的状态信息后,调试控制器直接将状态信息发送至与该装置的连接接口,则可以通过检测接口状态确定调试控制器是否读取到待测设计芯片的状态信息。若调试控制器将读取到的待测设计芯片的状态信息存储到缓存单元中,则通过检测缓存单元的状态确定调试控制器是否读取到待测设计芯片的状态信息。具体检测方式不作限定。同理,获取待测设计芯片的状态信息的方式可以包括从接口获取和从缓存单元获取。
步骤302,将待测设计芯片的状态信息反馈给用户。
其中,可以将待测设计芯片的状态信息通过上层用户应用程序反馈给用户,以使用户可以查看待测设计芯片的状态信息。
本实施例通过获取调试控制器读取到的待测设计芯片的状态信息反馈给用户,便于用户查看待测设计芯片的状态信息,不依赖于模拟加速器外部的物理调试器以及模拟加速器自带的波形查看工具,模拟加速器外部的物理调试器价格昂贵、数量有限,限制用户使用数量,并且操作繁琐,调试效率较低。模拟加速器自带的波形查看工具需要用户具有硬件调试经验,操作过程繁琐,调试时间长,在线调试不够便捷,调试效率较低。相对于模拟加速器外部的物理调试器和自带的波形查看工具,本实施例有助于提高用户操作的便捷性。即使没有硬件调试经验的用户也可以方便地对待测设计芯片进行在线调试,提高用户体验。
在一些可选的实施例中,步骤201的获取用户的调试信息,包括:
获取用户应用程序传输的用户的调试信息。
其中,用户应用程序为上层应用程序,用于用户与软件控制程序之间的交互。
在一些可选的实施例中,用户应用程序与实现本公开的方法的软件控制程序可以为不同语言的程序。例如,用户应用程序可以为基于高级语言的程序。高级语言比如可以包括C、C++、python、TCL(Tool Command Language,工具命令语言)等。软件控制程序可以为基于调试工具命令语言和模拟加速器所支持的语言的程序,例如TCL语言和Emulator自带的SDL(Specification and Description Language,规格与描述语言)语言。具体不作限定。用户应用程序与软件控制程序可以通过终端设备实现通信。
在一些可选的实施例中,用户应用程序可以通过应用进程调度方式进行调度,即调试工具在调试过程中调度用户应用程序,实现用户与软件控制程序的交互。或者也可以在调试过程中通过中断输入调试命令的方式实现用户应用程序,以实现用户与软件控制程序的交互。
步骤302的将待测设计芯片的状态信息反馈给用户,包括:
将待测设计芯片的状态信息反馈至用户应用程序,以使用户应用程序将待测设计芯片的状态信息进行输出。
其中,待测设计芯片的状态信息的输出方式可以为任意可实施的方式,例如以文件方式输出,也可以直接显示在终端设备的显示屏上,具体不作限定。
在一些可选的实施例中,终端设备作为调试工具实现用户应用程序与软件控制程序之间交互,调试工具调度用户应用程序,通过执行用户应用程序获取软件控制程序反馈的待测设计芯片的状态信息,将待测设计芯片的状态信息按照预设方式进行输出。预设方式例如可以为基于待测设计芯片的状态信息生成对应的调试报告文件,将调试报告文件输出。或者直接根据待测设计芯片的状态信息及输出结果的生成规则,生成对应的输出内容,显示在显示屏上。
本实施例通过用户应用程序实现用户与软件控制程序之间的交互,使得用户可以通过软件控制程序与调试控制器实现与待测模拟器件的数据交互,以高效便捷地完成用户对待测设计芯片的在线实时调试。
在一些可选的实施例中,步骤301的获取调试控制器读取到的待测设计芯片的状态信息,包括:接收调试控制器发送的待测设计芯片的状态信息。
其中,若调试控制器在读取到待测设计芯片的状态信息后,直接将待测设计芯片的状态信息通过总线发送至与本实施例方法对应的装置的接口上,则可以通过接口接收调试控制器发送的待测设计芯片的状态信息。
在一些可选的实施例中,步骤301的获取调试控制器读取到的待测设计芯片的状态信息,包括:
从存储待测设计芯片的状态信息的缓存单元中获取待测设计芯片的状态信息。
其中,缓存单元与调试控制器连接,调试控制器在读取到待测设计芯片的状态信息后,将待测设计芯片的状态信息写入缓存单元。这种情况下,可以从该缓存单元中获取待测设计芯片的状态信息。例如,装置可以通过一定的访问方式访问缓存单元,从缓存单元中读取待测设计芯片的状态信息。访问方式可以根据实际需求设置,本实施例不作限定。例如,通过总线访问缓存单元。
在一些可选的实施例中,缓存单元可以采用模拟加速器中的存储器实现,例如将模拟加速器中的任意存储器的部分存储区域作为缓存单元。缓存单元也可以是对模拟加速器扩展的存储单元。具体不作限定。
在一些可选的实施例中,还可以设置缓存单元对应的状态寄存器,用于表示缓存单元中是否写入了待测设计芯片的状态信息。则可以通过检测状态寄存器的状态确定调试控制器是否读取到待测设计芯片的状态信息,进而在确定缓存单元中已写入待测设计芯片的状态信息后,从缓存单元中获取待测设计芯片的状态信息。例如,状态寄存器的值为1(有效状态)表示写入了待测设计芯片的状态信息,状态寄存器的值为0(无效状态)表示未写入。状态寄存器的值可以由调试控制器与软件控制程序共同维护,例如,当调试控制器将读取到的待测设计芯片的状态信息写入缓存单元后,将该缓存单元的状态寄存器的值置为有效状态,以便于软件控制程序检测到该状态寄存器的有效状态后读取其中的数据。当软件控制程序读取缓存单元中的待测设计芯片的状态信息后,可以将该状态寄存器的值置为无效状态,等待调试控制器下一次写入数据。
在一些可选的实施例中,也可以在硬件模拟加速器启动之前,预先将调试信息写入缓存单元中,硬件模拟加速器启动时,调试控制器根据软件控制程序的发送命令,将缓存单元中的调试信息发送至待测设计芯片。
在一些可选的实施例中,还可以是调试控制器在调试过程中,将待测设计芯片的状态信息写入缓存单元,当接收到来自软件控制程序的读取命令后,从缓存单元获取待测设计芯片的状态信息发送至软件控制程序。
在本公开实施例的芯片的调试方法中,模拟加速器既可以工作在ICE(In-CircuitEmulation,在线仿真)模式,也可以工作在SA(Simulation Acceleration,仿真加速)模式,不影响本公开方法的实现。其中,ICE模式能将现实测试中的激励以可综合的方式注入到硬件中高速运行的待测设计芯片中,以验证待测设计芯片在硬件中的真实功能和性能。SA模式是将软件仿真和硬件模拟加速器联合起来仿真,是对软件仿真(simulation)的一种硬件加速模式。
本公开实施例的软件控制程序所实现的芯片的调试方法与硬件侧的调试控制器配合,可以实现硬件接口的控制、待测设计芯片的状态监测、断点位置监测,便于用户查看调试过程中待测设计芯片的状态信息,实现用户对待测设计芯片的高效便捷的在线实时调试。从而使得用户可以通过软件灵活对硬件模拟加速器内部的待测设计芯片的逻辑运行状态进行实时在线的监测,并可以进行实时在线调试。软件用户只需要通过命令即可实现待测设计芯片内部信息的观察和状态的监测,而无需通过拉取波形查看内部信息,也无需了解待测设计芯片内部硬件代码组织结构,有效降低了对软件用户的硬件要求,软件调试的灵活性和调试效率指数上升,可以大大缩短软件在硬件模拟加速器上的开发时间和开发周期。
本公开上述各实施例可以单独实施也可以在不冲突的情况下以任意组合方式结合实施,具体可以根据实际需求设置,本公开不做限定。
本公开实施例提供的任一种芯片的调试方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种芯片的调试方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种芯片的调试方法。下文不再赘述。
图4是本公开再一示例性实施例提供的芯片的调试方法的流程示意图。本实施例可应用在硬件模拟加速器上,例如上述的调试控制器,如图4所示,该方法包括如下步骤:
步骤401,接收终端设备发送的调试信息。
其中,终端设备可以为执行前述实施例的方法的装置或者包括上述装置的电子设备(例如调试控制器),下面以调试控制器为例进行说明。调试信息可以参见前述实施例,在此不作赘述。
步骤402,响应于获取到来自终端设备的调试控制命令,执行调试控制命令,基于调试信息对待测设计芯片进行调试。
其中,调试控制器可以通过接口接收终端设备发送的调试控制命令,或者检测调试控制器的发送单元和接收单元的接口状态确定获取到调试控制命令。具体可以参见前述实施例,在此不作赘述。
在一些可选的实施例中,调试控制器执行调试控制命令,基于调试信息对硬件模拟加速器中的待测设计芯片进行调试,包括执行发送命令,将调试信息发送至待测设计芯片,执行读取命令从待测设计芯片读取待测设计芯片的相关信息,并反馈给用户,从而实现对待测设计芯片的在线实时调试。
本实施例提供的芯片的调试方法,通过终端设备侧的软件控制程序与模拟加速器侧的硬件调试控制器配合,可以实现为一个或多个用户提供芯片的在线实时调试功能,用户可以通过终端设备侧的软件控制程序将用户的调试信息和调试控制命令发送至硬件侧的调试控制器,从而通过调试控制器执行调试控制命令,控制对待测设计芯片的调试,既可以通过调试控制器向待测设计芯片写入调试需要的数据,又可以从待测设计芯片读取调试响应结果数据,实现用户与待测设计芯片之间的控制桥梁,可以在不借助模拟加速器的外部物理调试器和模拟加速器自带的波形查看工具的情况下,实现用户对待测设计芯片的调试,降低用户操作复杂度,提高用户调试的便捷性,从而提高调试效率。且对用户的硬件调试经验要求较低,提高用户体验。此外,本公开的方法还可以支持多用户在线实时的调试,有助于提升资源利用率。
图5是本公开又一示例性实施例提供的芯片的调试方法的流程示意图。
在一些可选的实施例中,如图5所示,步骤402的响应于获取到来自终端设备的调试控制命令,执行调试控制命令,基于调试信息对待测设计芯片进行调试,包括:
步骤4021,响应于获取到来自终端设备的调试控制命令,确定调试控制命令的类型。
其中,对于终端设备直接发送的调试控制命令,调试控制命令的类型可以根据预设类型确定规则确定,例如不同的调试控制命令的命令内容不同。对于终端设备通过设置调试控制器的发送单元和接收单元的接口状态发送的调试控制命令,可以通过检测发送单元和接收单元的具体接口状态确定调试控制命令的类型。
步骤4022,响应于调试控制命令的类型为发送命令,将调试信息发送至待测设计芯片,以对待测设计芯片进行调试。
其中,若确定调试控制命令的类型为发送命令,则调试控制器将调试信息发送至待测设计芯片,以基于调试信息对待测设计芯片进行调试。
在一些可选的实施例中,步骤402中的执行调试控制命令,基于调试信息对待测设计芯片进行调试,还包括:
步骤4023,响应于调试控制命令的类型为读取命令,从待测设计芯片读取待测设计芯片的状态信息。
其中,若调试控制命令的类型为读取命令,则调试控制器可以通过接收单元从待测设计芯片读取待测设计芯片的状态信息。
步骤4024,将待测设计芯片的状态信息写入第二缓存单元;或者,将待测设计芯片的状态信息发送至终端设备。
其中,第二缓存单元即为前述实施例中存储待测设计芯片的状态信息的缓存单元。调试控制器在读取到待测设计芯片的状态信息后,可以将待测设计芯片的状态信息写入第二缓存单元,也可以将待测设计芯片的状态信息直接通过总线发送至终端设备,具体不作限定。
图6是本公开再一示例性实施例提供的芯片的调试方法的流程示意图。
在一些可选的实施例中,在步骤401的接收终端设备发送的调试信息之后,还包括:
步骤501,将调试信息写入第一缓存单元。
其中,第一缓存单元与调试控制器连接,用于存储调试信息。调试控制器接收到来自终端设备的调试信息后,将调试信息写入第一缓存单元。
在一些可选的实施例中,第一缓存单元与第二缓存单元可以为同一缓存单元,也可以分别为两个缓存单元,具体不作限定。例如,对于第一缓存单元和第二缓存单元为同一缓存单元,可以在将调试信息写入该缓存单元后,将该缓存单元对应的状态寄存器置为已写入调试信息状态,在调试控制器将调试信息发送至待测设计芯片后,将该状态寄存器置为无效状态,在调试控制器将读取到的待测设计芯片的状态信息写入该缓存单元后,将该缓存单元对应的状态寄存器置为已写入状态信息状态,当终端设备读取完该缓存单元中的待测设计芯片的状态信息后,将该状态寄存器置为无效状态。以此类推,通过一个缓存单元实现调试信息和待测设计芯片的状态信息的缓存,有助于提高缓存单元的资源利用率。
步骤4022的响应于调试控制命令的类型为发送命令,将调试信息发送至待测设计芯片,包括:
步骤40221,响应于调试控制命令的类型为发送命令,从第一缓存单元读取调试信息,将调试信息发送至待测设计芯片。
其中,调试控制器在将调试信息写入第一缓存单元后,检测是否能获取到来自终端设备的调试控制命令,若获取到来自终端设备的调试控制命令,且确定调试控制命令为发送命令,则调试控制器从第一缓存单元读取调试信息,将调试信息发送至待测设计芯片。
在一些可选的实施例中,终端设备可以将待写入待测设计芯片的调试信息与调试控制命令一起发送至调试控制器,调试控制器则可以直接根据调试控制命令将调试信息发送至待测设计芯片,这种情况下可以不对调试信息进行缓存。
在一些可选的实施例中,步骤4021中的确定调试控制命令的类型,包括:
检测发送单元和接收单元的接口状态;响应于发送单元的接口状态为有效状态,确定调试控制命令的类型为发送命令;响应于接收单元的接口状态为有效状态,确定调试控制命令的类型为接收命令。
其中,发送单元的接口状态和接收单元的接口状态可以参见前述实施例,在此不作赘述。
需要说明的是,本公开调试控制器侧的方法与前述终端设备侧的方法为交互的两侧的方法,与前述终端设备侧的方法具有对应的有益技术效果,具体可以参见前述终端设备侧的方法部分的相应有益技术效果,在此不作赘述。
本公开上述各实施例可以单独实施也可以在不冲突的情况下以任意组合方式结合实施,具体可以根据实际需求设置,本公开不做限定。
本公开实施例提供的任一种芯片的调试方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种芯片的调试方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种芯片的调试方法。下文不再赘述。
示例性装置
图7是本公开一示例性实施例提供的芯片的调试装置的结构示意图。该实施例的装置可用于实现本公开相应的方法实施例,如图7所示的装置包括:获取模块81、第一发送模块82和第二发送模块83。
获取模块81,用于获取用户的调试信息。
第一发送模块82,用于将调试信息发送至硬件模拟加速器中的调试控制器。
第二发送模块83,用于向调试控制器发送调试控制命令,以使调试控制器执行调试控制命令,基于调试信息对硬件模拟加速器中的待测设计芯片进行调试。
图8是本公开另一示例性实施例提供的芯片的调试装置的结构示意图。
在一些可选的实施例中,如图8所示,第二发送模块83包括:第一发送单元831和第二发送单元832。
第一发送单元831,用于响应于所述调试信息包括待写入所述待测设计芯片的调试命令、用户设置数据和信号激励中的至少一者,将所述调试控制器的发送单元的接口状态置为有效状态,以使所述调试控制器将所述调试信息发送至所述待测设计芯片。
第二发送单元832,用于响应于检测到所述待测设计芯片执行到预设调试断点位置,将所述调试控制器的接收单元的接口状态置为有效状态,以使所述调试控制器读取所述待测设计芯片的状态信息。
在一些可选的实施例中,本公开实施例的装置还包括:状态获取模块84和状态反馈模块85。
状态获取模块84,用于响应于检测到所述调试控制器读取到所述待测设计芯片的状态信息,获取所述调试控制器读取到的所述待测设计芯片的状态信息。
状态反馈模块85,用于将所述待测设计芯片的状态信息反馈给所述用户。
图9是本公开再一示例性实施例提供的芯片的调试装置的结构示意图。
在一些可选的实施例中,获取模块81包括:
第一获取单元811,用于获取用户应用程序传输的所述用户的调试信息。
状态反馈模块85包括:
反馈单元851,用于将所述待测设计芯片的状态信息反馈至所述用户应用程序,以使所述用户应用程序将所述待测设计芯片的状态信息进行输出。
在一些可选的实施例中,状态获取模块84包括:
第二获取单元841,用于接收所述调试控制器发送的所述待测设计芯片的状态信息;或者,从存储所述待测设计芯片的状态信息的缓存单元中获取所述待测设计芯片的状态信息;其中,所述缓存单元与所述调试控制器连接,所述调试控制器在读取到所述待测设计芯片的状态信息后,将所述待测设计芯片的状态信息写入所述缓存单元。
本装置示例性实施例对应的有益技术效果可以参见上述示例性方法部分的相应有益技术效果,在此不再赘述。
图10是本公开又一示例性实施例提供的芯片的调试装置的结构示意图。该实施例的装置可用于实现本公开相应的方法实施例,如图10所示的装置包括:接收模块91和控制模块92。
接收模块91,用于接收终端设备发送的调试信息。
控制模块92,用于响应于获取到来自终端设备的调试控制命令,执行调试控制命令,基于调试信息对待测设计芯片进行调试。
图11是本公开再一示例性实施例提供的芯片的调试装置的结构示意图。
在一些可选的实施例中,如图11所示,控制模块92包括:第一确定单元921和第三发送单元922。
第一确定单元921,用于响应于获取到来自终端设备的调试控制命令,确定调试控制命令的类型。
第三发送单元922,用于响应于调试控制命令的类型为发送命令,将调试信息发送至待测设计芯片,以对待测设计芯片进行调试。
在一些可选的实施例中,控制模块92还包括:接收单元923,用于响应于调试控制命令的类型为读取命令,从待测设计芯片读取待测设计芯片的状态信息。
在一些可选的实施例中,控制模块92还包括:写入单元924,用于将待测设计芯片的状态信息写入第二缓存单元。
在一些可选的实施例中,控制模块92还包括:第四发送单元925,用于将待测设计芯片的状态信息发送至终端设备。
在一些可选的实施例中,本公开实施例的装置还包括写入模块93,用于将调试信息写入第一缓存单元。第三发送单元922具体用于:响应于调试控制命令的类型为发送命令,从第一缓存单元读取调试信息,将调试信息发送至待测设计芯片。
图12是本公开又一示例性实施例提供的芯片的调试装置的结构示意图。
在一些可选的实施例中,控制模块92包括:发送单元922、接收单元923、发送单元922(即上述的第三发送单元),用于向待测设计芯片发送调试信息。
接收单元923,用于获取待测设计芯片的状态信息。
第一接口寄存器926,与接收单元923连接,用于存储接收单元923的接口状态。
第二接口寄存器927,与发送单元922连接,用于存储发送单元922的接口状态。
在一些可选的实施例中,第一确定单元921具体用于:检测发送单元922和接收单元923的接口状态;响应于发送单元922的接口状态为有效状态,确定调试控制命令的类型为发送命令;响应于接收单元923的接口状态为有效状态,确定调试控制命令的类型为接收命令。
在一些可选的实施例中,本公开的装置还包括:
第一缓存单元94,用于缓存调试信息。
在一些可选的实施例中,本公开的装置还包括:
第二缓存单元95,用于缓存待测设计芯片的状态信息。
本装置示例性实施例对应的有益技术效果可以参见上述示例性方法部分的相应有益技术效果,在此不再赘述。
在一些可选的实施例中,本公开实施例还提供一种芯片的调试系统。如图13所示,是本公开一示例性实施例提供的芯片的调试系统的结构示意图。如图13所示,该芯片的调试系统包括终端设备和模拟加速器。其中,终端设备包括软件侧的芯片的调试装置1。模拟加速器包括模拟加速器硬件侧的芯片的调试装置2,还可以包括待测设计芯片(DUT)或DUT总线接口。DUT总线接口为DUT的接口。芯片的调试装置1中配置有上层用户应用程序和软件控制程序。芯片的调试装置2中包括调试控制器、第一缓存单元和第二缓存单元。其中,上层用户应用程序、软件控制程序、调试控制器、第一缓存单元和第二缓存单元的具体工作原理可以参见前述实施例,在此不作赘述。
示例性电子设备
图14是本公开实施例提供的一种电子设备的结构图,包括至少一个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行一个或多个计算机程序指令,以实现上文中本公开的各个实施例的方法和/或其他期望的功能。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
该输入装置13还可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,其可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图14中仅示出了该电子设备10中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
本公开实施例还可以提供一种电子设备,该电子设备包括上述任一实施例提供的芯片的调试装置。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以提供一种计算机程序产品,包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的方法中的步骤。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如但不限于包括电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为其是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本领域的技术人员可以对本公开进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (17)
1.一种芯片的调试方法,包括:
获取用户的调试信息;
将所述调试信息发送至硬件模拟加速器中的调试控制器;
向所述调试控制器发送调试控制命令,以使所述调试控制器执行所述调试控制命令,基于所述调试信息对所述硬件模拟加速器中的待测设计芯片进行调试。
2.根据权利要求1所述的方法,其中,所述向所述调试控制器发送调试控制命令,包括:
响应于所述调试信息包括待写入所述待测设计芯片的调试命令、用户设置数据和信号激励中的至少一者,将所述调试控制器的发送单元的接口状态置为有效状态,以使所述调试控制器将所述调试信息发送至所述待测设计芯片;
响应于检测到所述待测设计芯片执行到预设调试断点位置,将所述调试控制器的接收单元的接口状态置为有效状态,以使所述调试控制器读取所述待测设计芯片的状态信息。
3.根据权利要求2所述的方法,还包括:
响应于检测到所述调试控制器读取到所述待测设计芯片的状态信息,获取所述调试控制器读取到的所述待测设计芯片的状态信息;
将所述待测设计芯片的状态信息反馈给所述用户。
4.根据权利要求3所述的方法,其中,所述获取用户的调试信息,包括:
获取用户应用程序传输的所述用户的调试信息;
所述将所述待测设计芯片的状态信息反馈给所述用户,包括:
将所述待测设计芯片的状态信息反馈至所述用户应用程序,以使所述用户应用程序将所述待测设计芯片的状态信息进行输出。
5.根据权利要求3所述的方法,其中,所述获取所述调试控制器读取到的所述待测设计芯片的状态信息,包括:
接收所述调试控制器发送的所述待测设计芯片的状态信息;或者,
从存储所述待测设计芯片的状态信息的缓存单元中获取所述待测设计芯片的状态信息;其中,所述缓存单元与所述调试控制器连接,所述调试控制器在读取到所述待测设计芯片的状态信息后,将所述待测设计芯片的状态信息写入所述缓存单元。
6.一种芯片的调试方法,包括:
接收终端设备发送的调试信息;
响应于获取到来自终端设备的调试控制命令,执行所述调试控制命令,基于所述调试信息对待测设计芯片进行调试。
7.根据权利要求6所述的方法,其中,所述执行所述调试控制命令,基于所述调试信息对待测设计芯片进行调试,包括:
确定所述调试控制命令的类型;
响应于所述调试控制命令的类型为发送命令,将所述调试信息发送至所述待测设计芯片,以对所述待测设计芯片进行调试。
8.根据权利要求7所述的方法,其中,在接收终端设备发送的调试信息之后,还包括:
将所述调试信息写入第一缓存单元;
所述响应于所述调试控制命令的类型为发送命令,将所述调试信息发送至所述待测设计芯片,包括:
响应于所述调试控制命令的类型为发送命令,从所述第一缓存单元读取所述调试信息,将所述调试信息发送至所述待测设计芯片。
9.根据权利要求7所述的方法,其中,所述执行所述调试控制命令,基于所述调试信息对待测设计芯片进行调试,还包括:
响应于所述调试控制命令的类型为读取命令,从所述待测设计芯片读取所述待测设计芯片的状态信息;
将所述待测设计芯片的状态信息写入第二缓存单元;或者,
将所述待测设计芯片的状态信息发送至所述终端设备。
10.根据权利要求7-9任一所述的方法,其中,所述确定所述调试控制命令的类型,包括:
检测发送单元和接收单元的接口状态;
响应于所述发送单元的接口状态为有效状态,确定所述调试控制命令的类型为发送命令;
响应于所述接收单元的接口状态为有效状态,确定所述调试控制命令的类型为接收命令。
11.一种芯片的调试装置,包括:
获取模块,用于获取用户的调试信息;
第一发送模块,用于将所述调试信息发送至硬件模拟加速器中的调试控制器;
第二发送模块,用于向所述调试控制器发送调试控制命令,以使所述调试控制器执行所述调试控制命令,基于所述调试信息对所述硬件模拟加速器中的待测设计芯片进行调试。
12.一种芯片的调试装置,包括:
接收模块,用于接收终端设备发送的调试信息;
控制模块,用于响应于获取到来自所述终端设备的调试控制命令,执行所述调试控制命令,基于所述调试信息对待测设计芯片进行调试。
13.根据权利要求12所述的装置,还包括:
第一缓存单元,用于缓存所述调试信息。
14.根据权利要求12所述的装置,还包括:
第二缓存单元,用于缓存待测设计芯片的状态信息。
15.根据权利要求12-14任一所述的装置,所述控制模块包括:
发送单元,用于向待测设计芯片发送调试信息;
接收单元,用于获取待测设计芯片的状态信息;
第一接口寄存器,与所述接收单元连接,用于存储所述接收单元的接口状态;
第二接口寄存器,与所述发送单元连接,用于存储所述发送单元的接口状态。
16.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-5任一所述的芯片的调试方法。
17.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-5任一所述的芯片的调试方法;或者,
所述电子设备包括:
上述权利要求12-15任一所述的芯片的调试装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311474886.9A CN117408197A (zh) | 2023-11-07 | 2023-11-07 | 芯片的调试方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311474886.9A CN117408197A (zh) | 2023-11-07 | 2023-11-07 | 芯片的调试方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117408197A true CN117408197A (zh) | 2024-01-16 |
Family
ID=89494209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311474886.9A Pending CN117408197A (zh) | 2023-11-07 | 2023-11-07 | 芯片的调试方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117408197A (zh) |
-
2023
- 2023-11-07 CN CN202311474886.9A patent/CN117408197A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1153348B1 (en) | On-chip debug system | |
JP3383562B2 (ja) | 半導体試験装置 | |
US7010722B2 (en) | Embedded symmetric multiprocessor system debug | |
US20120245916A1 (en) | Conveying data from a hardware device to a circuit simulation | |
US7596719B2 (en) | Microcontroller information extraction system and method | |
CN113157508A (zh) | 嵌入式系统的测试方法、系统、装置、设备及存储介质 | |
CN117422026B (zh) | 一种基于risc-v架构的处理器验证系统 | |
CN114281624A (zh) | 一种i2c信号完整性的测试方法、系统、装置及设备 | |
CN117408197A (zh) | 芯片的调试方法、装置、电子设备和存储介质 | |
US7231568B2 (en) | System debugging device and system debugging method | |
Chang et al. | A unified GDB-based source-transaction level SW/HW co-debugging | |
US6973607B2 (en) | Method and apparatus for testing electronic components | |
CN114328045A (zh) | 一种bmc的i2c调试方法、系统、装置及计算机可读存储介质 | |
JP2001249823A (ja) | マイクロコンピュータ開発支援装置 | |
JP2006323726A (ja) | モニタプログラムおよびリアルタイムトレースシステム | |
KR20050063023A (ko) | 제이티에이지를 이용한 임베디드 시스템의 디버깅 장치 및방법 | |
RU170434U1 (ru) | Программируемый JTAG - модуль диагностирования | |
CN115658413B (zh) | 一种激励发生器和激励发生方法 | |
JPS6310456B2 (zh) | ||
TWI794997B (zh) | 固態硬碟裝置的除錯方法及裝置以及電腦程式產品 | |
CN112416857B (zh) | 不依赖处理器的fpga外设芯片动态配置方法 | |
CN107203460A (zh) | 用于基本输入输出系统之除错讯息输出方法 | |
JPH09114692A (ja) | インサーキットエミュレータ | |
KR100189977B1 (ko) | 트레이스기능을 구비한 에뮬레이터시스템과 그 트레이스방법 | |
TWI566179B (zh) | 用於基本輸入輸出系統之除錯訊息輸出方法及電腦程序產品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |