掌桥专利:专业的专利平台
掌桥专利
首页

基于可编程逻辑器件的并发调试方法及系统

文献发布时间:2023-06-19 13:26:15


基于可编程逻辑器件的并发调试方法及系统

技术领域

本发明涉及电子技术领域,尤其涉及一种基于可编程逻辑器件的并发调试方法及系统。

背景技术

目前,现场可编程逻辑门阵列(Field Programmable Gate Array,简称FPGA)在线逻辑分析仪抓取调试信号时,均是利用上位机通过联合测试工作组(Joint TestActionGroup,简称JTAG)接口和FPGA内部的调试核通信,通过判断FPGA返回的值是否触发条件来判断是否进行数据抓取,当采样深度满足后会将采集的数据发送到界面,从而形成波形图,以便使用者查看芯片状态。

然而,受限于JTAG有线电缆(CABLE)的物理通道只有一个,现有软件都设计为单一调试核信号抓取,这种设计使得整个调试工作处于串行状态,若要进行新的调试必须等待之前的信号触发完成。如果当前使用的调试核信号难以触发时,整个芯片调试工作将会花费很长时间,不便于使用。

因此,亟需一种高效的FPGA调试方法。

发明内容

本发明提供一种基于可编程逻辑器件的并发调试方法及系统,其主要目的在于减少调试时间,有效提高调试效率。

第一方面,本发明实施例提供一种基于可编程逻辑器件的并发调试方法,包括:

对于当前请求,若所述当前请求占用有线电缆,且所述当前请求处于监控状态,则其它请求处于等待阶段;

若所述当前请求对应的监控信号满足预设匹配条件,则向目标可编程逻辑器件发送预设采集指令,以使得所述目标可编程逻辑器件进行信号采集并发送采集数据;

若所述当前请求接收的采集数据不满足预设深度条件,则所述当前请求进入监控状态,并将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求;

若所述采集数据满足所述预设深度条件,则结束所述当前请求,将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求,重复上述步骤,直到所有未结束的请求均处于监控状态;

依次使得所有未结束的请求占用所述有线电缆,并向所述目标可编程逻辑器件发送预设采集指令,直到所有请求结束,并根据每一请求的所有采集数据,对所述目标可编程逻辑器件进行调试。

优选地,所有请求的个数不大于所述目标可编程逻辑器件的内核个数。

优选地,所述预设匹配条件包括预设匹配单元、预设触发条件和预设存储条件。

优选地,所述目标可编程逻辑器件为一个或多个。

优选地,所述并根据每一请求的所有采集数据,对所述目标可编程逻辑器件进行调试,包括:

根据每一请求的所有采集数据,绘制调试波形;

根据所述调试波形,对目标可编程逻辑器件进行调试。

优选地,所述预设深度条件为数量大小。

第二方面,本发明实施例提供一种基于可编程逻辑器件的并发调试方法,包括:

接收预设采集指令;

根据所述预设采集指令,进行信号采集并发送采集数据,以使得若当前请求接收的采集数据不满足预设深度条件,则所述当前请求进入监控状态,并将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求;

若所述采集数据满足所述预设深度条件,则结束所述当前请求,将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求,重复上述步骤,直到所有未结束的请求均处于监控状态;

依次使得所有未结束的请求占用所述有线电缆,并向所述目标可编程逻辑器件发送预设采集指令,直到所有请求结束,并根据每一请求的所有采集数据,对所述目标可编程逻辑器件进行调试。

第三方面,本发明实施例提供一种基于可编程逻辑器件的并发调试系统,包括:

监控模块,用于对于当前请求,若所述当前请求占用有线电缆,且所述当前请求处于监控状态,则其它请求处于等待阶段;

采集模块,用于若所述当前请求对应的监控信号满足预设匹配条件,则向目标可编程逻辑器件发送预设采集指令,以使得所述目标可编程逻辑器件进行一次信号采集并发送采集数据;

第一判断模块,用于若所述当前请求接收的采集数据不满足预设深度条件,则所述当前请求进入监控状态,并将所述有线电缆的使用权释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求;

第二判断模块,用于若所述采集数据满足所述预设深度条件,则结束所述当前请求,将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求,重复上述步骤,直到所有未结束的请求均处于监控状态;

调试模块,用于依次使得所有未结束的请求占用所述有线电缆,并向所述目标可编程逻辑器件发送预设采集指令,直到所有请求结束,并根据每一请求的所有采集数据,对所述目标可编程逻辑器件进行调试。

第四方面,本发明实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于可编程逻辑器件的并发调试方法的步骤。

第五方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于可编程逻辑器件的并发调试方法的步骤。

本发明提出的一种基于可编程逻辑器件的并发调试方法及系统,在只有一根有线电缆的情况下,通过交替执行多个请求,在一个请求等待触发条件的过程中,其它请求可以开始进行准备工作,通过交替执行,有效利用了时间片段,从而避免了请求空等的情况,节约了时间;另外,对于一个请求而言,通常需要采集多轮数据才会满足预设深度阈值,对每个未结束的请求依次进行数据采集,将采集数据满足预设深度阈值的请求关闭,从而缩短了整个循环的时间,提高了调试效率。

附图说明

图1为本发明实施例提供的一种基于可编程逻辑器件的并发调试方法的应用场景图;

图2为本发明实施例提供的一种基于可编程逻辑器件的并发调试方法的流程图;

图3为本发明又一实施例提供的一种基于FPGA在线逻辑仪的并发调整方法的流程框图;

图4为本发明另一实施例提供的一种基于可编程逻辑器件的并发调试方法的流程图;

图5为本发明实施例提供的一种基于可编程逻辑器件的并发调试系统的结构示意图;

图6为本发明实施例提供的一种计算机设备的结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为本发明实施例提供的一种基于可编程逻辑器件的并发调试方法的应用场景图,如图1所示,该应用场景包括三端:客户端、服务端和目标可编程逻辑器件。客户端可以是在线逻辑分析仪软件,服务端可以是Linux操作系统或者其它软件,目标可编程逻辑器件一般包括多个调试核。客户端通过网络与服务端进行交互,客户端和服务端可以位于同一个硬件设备中,也可以分别位于不同的硬件设备中,客户端和服务端之间可以进行通信,服务端和目标可编程逻辑器件之间通过一根有线电缆进行通信。

用户首先在客户端上进行器件和目标FPGA调试核的选择,针对调试核设置触发条件,触发条件包含数个触发端口,触发端口中由用户设置数个通道以组成触发单元,从而实现预设匹配条件。然后将匹配单元、触发条件、存储条件以器件序号和调试核序号创建索引进行封装,同时创建传输套接字,然后发送给服务端。

服务端将匹配单元、触发条件、存储条件配置进目标可编程逻辑器件相应的寄存器中,并执行该基于可编程逻辑器件的并发调试方法,以对目标可编程逻辑器件进行调试。

需要说明的是,客户端和服务端可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。

图2为本发明实施例提供的一种基于可编程逻辑器件的并发调试方法的流程图,如图2所示,该方法包括:

本发明实施例的执行主体为服务端。用户首先在客户端的在线逻辑分析仪客户端选择器件和调试核,并针对调试核设置触发条件,将使用者在客户端界面设置的匹配单元、触发条件、存储条件包装成请求发送给服务端。

触发条件是一个或多个触发单元组成的布尔表达式或者顺序触发序列,用来指导调试核数据的采集。触发条件可以是多个触发单元的与或非逻辑组合。顺序触发序列是按照配置的顺序所有条件依次满足后,才使能触发。

本发明实施例中,目标可编程逻辑器件可以是目标FPGA芯片,也可以是目标CPLD芯片,本发明实施例中以目标FPGA芯片为例进行说明。

S210,对于当前请求,若所述当前请求占用有线电缆,且所述当前请求处于监控状态,则其它请求处于等待阶段;

服务端接受客户端发送的所有请求,每个请求内都包括了该请求的触发条件,由于服务端和目标FPGA芯片之间只有一条有线线缆,所以每次只能有一个请求进行执行。

如果当前正在执行的为当前请求,如果当前请求占用了该有线电缆,并且服务端采集目标FPGA芯片的监控信号,如果该监控信号与满足预设匹配条件,该预设匹配条件是包含在当前请求中的,服务端接收了客户端发送过来的请求后,对每个请求进行解析,即可得到预设匹配条件以及预设深度条件。

在当前请求进行信号采集准备的过程中,如果此时服务端接收到了其它请求,则将其它请求设置在等待阶段,也就是信号采集之前的阶段。

S220,若所述当前请求对应的监控信号满足预设匹配条件,则向目标可编程逻辑器件发送预设采集指令,以使得所述目标可编程逻辑器件进行信号采集并发送采集数据;

如果当前请求对应的监控信号满足预设匹配条件,则服务端向目标FPGA芯片发送预设采集指令,目标FPGA芯片接收到该预设采集指令时,进行数据的采集,并将采集数据返回给服务端,这一过程称为信号采集阶段。

如果当前请求对应的监控信号不满足预设匹配条件,则当前请求继续处于监控状态,进入监控状态后服务端会根据时钟频率进行监控信号采样,等待服务端继续采集监控信号,直到采集的监控信号满足预设匹配条件。

本发明实施例中,在只有一根有线电缆的情况下,通过交替执行多个请求,在一个请求等待触发条件的过程中,其它请求可以开始进行准备工作,通过交替执行,有效利用了时间片段,从而避免了请求空等的情况,节约了时间。

S230,若所述当前请求对应的采集数据不满足预设深度条件,则所述当前请求进入监控状态,并将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求;

如果当前请求中,服务端接收的采集数据不满足预设深度条件,说明此轮采集的数据不满足要求,让当前请求重新回到监控状态,并且将有线电缆的所有权释放给下一请求,下一请求拥有该有线电缆的所有权后,从等待状态进入监控状态,进行信号采集准备工作。

需要说明的是,预设深度条件为用户设置的深度阈值,可以理解为数据量大小。

还需要说明的是,下一请求是指其它请求中优先级最高的请求,每个请求的优先级可以是根据请求时间顺序预先设置的,也可以是根据一定规则预先设置的,本发明实施例在此不做具体的限定。

另外,本发明实施例中,处于等待阶段的其它请求优先级较高,进行数据采集后的当前请求优先级较低。

本发明实施例中,对于一个请求而言,通常需要采集多轮数据才会满足预设深度阈值,对每个未结束的请求依次进行数据采集,将采集的数据满足预设深度阈值的请求关闭,从而缩短了整个循环的时间,提高了调试效率。

S240,若所述采集数据满足所述预设深度条件,则结束所述当前请求,将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求,重复上述步骤,直到所有未结束的请求均处于监控状态;

具体地,如果采集数据满足预设深度条件,则当前请求任务结束,将有线电缆的占有权释放给下一请求,下一请求占有该有线电缆后,从准备阶段进入到监控阶段,并将下一请求重新作为当前请求,重复步骤S210至步骤S240,直到所有未结束的请求都处于监控状态。

S250,依次使得所有未结束的请求占用所述有线电缆,并向所述目标可编程逻辑器件发送预设采集指令,直到所有请求结束,并根据每一请求的所有采集数据,对所述目标可编程逻辑器件进行调试。

按照优先级顺序,依次对未结束的请求进行信号采集工作,所谓进行信号采集工作是做占用该有线电缆,并向目标FPGA芯片发送预设采集指令,采集到数据后返回给服务端,服务端判断采集数据是否满足预设深度条件,如果满足,则请求结束,如果不满足,则进行下一个请求,按照上述同样的方法重新进行信号采集,依次循环,直到所有请求都结束。

然后根据采集到的所有数据,服务端将所采集到的数据发送给客户端,以使得客户端用户根据采集数据绘制波形图,并对目标FPGA芯片进行调试。

本发明提出的一种基于可编程逻辑器件的并发调试方法,在只有一根有线电缆的情况下,通过交替执行多个请求,在一个请求等待触发条件的过程中,其它请求可以开始进行准备工作,通过交替执行,有效利用了时间片段,从而避免了请求空等的情况,节约了时间;另外,对于一个请求而言,通常需要采集多轮数据才会满足预设深度阈值,对每个未结束的请求依次进行数据采集,将采集的数据满足预设深度阈值的请求关闭,从而缩短了整个循环的时间,提高了调试效率。

在上述实施例的基础上,优选地,所述预设匹配条件包括预设匹配单元、预设触发条件和预设存储条件。

在上述实施例的基础上,优选地,所述目标可编程逻辑器件为一个或多个。

对于同一台计算机而言,当使用一个有线线缆连接时,目标FPGA芯片为一个;当使用多条有线线缆连接时,目标FPGA芯片为多个,可支持多芯片并发调试。

图3为本发明又一实施例提供的一种基于FPGA在线逻辑仪的并发调整方法的流程框图,如图3所示,本发明实施例中,客户端向服务端发送2个请求,分别为请求一和请求二,两个请求先后发送给服务端,请求一将会先执行信号抓取前的准备工作,此时请求二将在服务端进入等待状态。

当请求一开始抓取信号时,请求一所在线程会进入低优先级状态,此时请求二将会抢过Cable使用权(即有线电缆使用权),开始执行信号抓取前的准备工作。

直至请求二进入到信号抓取流程中,请求一和请求二将拥有同等的有线电缆使用权限。两个请求将依次执行信号抓取。当其中一个请求满足要求,它将保有有线电缆使用权,直到将采集数据返回给客户端,才会释放有线电缆使用权。

图4为本发明另一实施例提供的一种基于可编程逻辑器件的并发调试方法的流程图,如图4所示,该方法包括:

S410,接收预设采集指令;

S420,根据所述预设采集指令,进行信号采集并发送采集数据,以使得若当前请求接收的采集数据不满足预设深度条件,则所述当前请求进入监控状态,并将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求;

S430,若所述采集数据满足所述预设深度条件,则结束所述当前请求,将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求,重复上述步骤,直到所有未结束的请求均处于监控状态;

S440,依次使得所有未结束的请求占用所述有线电缆,并向所述目标可编程逻辑器件发送预设采集指令,直到所有请求结束,并根据每一请求的所有采集数据,对所述目标可编程逻辑器件进行调试。

本发明实施例的执行主体为目标FPGA芯片,目标FPGA芯片接收到预设采集指令后,会根据预设采集指令,进行数据的采集,并将采集数据返回给服务端,服务端根据上述实施例中提供的基于可编程逻辑器件的并发调试方法,对该目标FPGA芯片进行后续调试判断,其执行过程与上述实施例相同,本发明实施例在此不再赘述。

图5为本发明实施例提供的一种基于可编程逻辑器件的并发调试系统的结构示意图,如图5所示,该系统包括监控模块510、采集模块520、第一判断模块530、第二判断模块540和调试模块550,其中:

监控模块510用于对于当前请求,若所述当前请求占用有线电缆,且所述当前请求处于监控状态,则其它请求处于等待阶段;

采集模块520用于若所述当前请求对应的监控信号满足预设匹配条件,则向目标可编程逻辑器件发送预设采集指令,以使得所述目标可编程逻辑器件进行一次信号采集并发送采集数据;

第一判断模块530用于若所述当前请求接收的采集数据不满足预设深度条件,则所述当前请求进入监控状态,并将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求;

第二判断模块540用于若所述采集数据满足所述预设深度条件,则将结束所述当前请求,将所述有线电缆释放给下一请求,以使得所述下一请求进入监控状态,并将所述下一请求重新作为所述当前请求,重复上述步骤,直到所有未结束的请求均处于监控状态;

调试模块550用于依次使得所有未结束的请求占用所述有线电缆,并向所述目标可编程逻辑器件发送预设采集指令,直到所有请求结束,并根据每一请求的所有采集数据,对所述目标可编程逻辑器件进行调试。

本实施例为与上述服务端执行方法实施例相对应的系统实施例,与上述方法实施过程相同,详情请参考上述方法实施例,本系统实施例在此不再一一赘述。

图6为本发明实施例提供的一种计算机设备的结构示意图,如图6所示,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括计算机存储介质、内存储器。该计算机存储介质存储有操作系统、计算机程序和数据库。该内存储器为计算机存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行基于可编程逻辑器件的并发调试方法过程中生成或获取的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于可编程逻辑器件的并发调试方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的基于可编程逻辑器件的并发调试方法的步骤。或者,处理器执行计算机程序时实现基于可编程逻辑器件的并发调试系统这一实施例中的各模块/单元的功能,为避免重复,这里不再赘述。

在一实施例中,提供一计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中基于可编程逻辑器件的并发调试方法的步骤。或者,该计算机程序被处理器执行时实现上述基于可编程逻辑器件的并发调试系统这一实施例中的各模块/单元的功能。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

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

技术分类

06120113677932