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

一种基于网络的多片FPGA调试系统和方法

文献发布时间:2024-01-17 01:26:37


一种基于网络的多片FPGA调试系统和方法

技术领域

本发明属于远程智能测控技术领域,具体涉及一种基于网络的多片FPGA调试系统和方法。

背景技术

现场可编程门阵列FPGA(Field-ProgrammableGateArray),因资源丰富,使用灵活,数据处理及运算速度快而被普遍使用。XILINX(赛灵思)是全球领先的可编程逻辑完整解决方案的供应商,该公司的FPGA在国内嵌入式信号处理领域应用广泛。对FPGA进行在线实时分析与调试是检验硬件设计逻辑正确性的重要手段。当前,对FPGA的调试通常采用的方式为安装有编译软件的PC机通过一根USB转JTAG接口的线缆与FPGA板连接进行。

但此调试方式存在以下几个问题:JTAG线缆长度受限,远程调试受阻;调试方式只能点对点,不支持多对多,效率低下;产品出现问题,仅能奔赴现场解决,导致升级维护成本高;对于实验室教学与个人学习情境,远程操作功能的缺失,导致带来调试操作困难、实验室建设成本颇高和学习意愿大幅下降等弊端。

目前,已公开的FPGA远程调试系统与方法专利如(申请号:201910587789.8)一种基于Zynq平台通过以太网远程调试FPGA的方法,该技术存在的问题是只能实现多对一的调试与分析,多对多批量调试与分析不支持,且该方式有平台限制;如(申请号:201710252578.X)一种FPGA远程调试系统及远程调试方法,该技术存在的问题是目标FPGA板要通过JTAG线缆与目标计算机主机连接,但JTAG线缆长度有限且要连接PC电脑,对于特殊的工作场景(如野外或狭小的空间等)非常不适用,同时该技术只支持点对点不支持对多对多批量调试与分析。

发明内容

针对现有技术存在的问题,本发明提出了一种基于网络的多片FPGA系统调试与批量升级方法,通过组建互联网模式或局域网模式可以对连接在网络交换机上的带网口的FPGA目标板进行批量化的远程调试与分析。

本发明的技术方案为:

一种基于网络的多片FPGA调试系统,包括

PC端、服务器软件、网络交换机、多个带有网口的FPGA板;

所述PC客户端包括有调试软件和远程更新软件,用于用户交互、显示信息、发送更新数据包、接收调试回应包和FPGA板连接成功及更新成功反馈回的心跳信息;

所述网络交换机用于接收来自PC端发送来的更新数据包并转发至各个带有网口的FPGA板,接收通过FPGA板各网口发送来的数据包并转发给PC端进行解析;所述网络交换机和带有网口的FPGA板按照UDP协议规则进行数据交互;

所述带有网口的FPGA板通过网口接收网络交换机转发过来的更新数据包并在内部进行接口转换和协议转换,并将所述更新数据包烧录进FPGA芯片;

所述PC端与网络交换机通过网络或光纤通信,网络交换与多FPGA板通过网络或光纤通信。

进一步的,还包括服务器软件,所述服务器软件运行于远程服务器上,所述远程服务器分别与PC端和网络交换机通信连接;

或者,所述服务器软件运行于PC端。

进一步的,所述调试软件采用TCP/IP协议与服务器软件建立连接;所述调试软件与服务器软件建立连接所需的IP地址与端口号通过执行调试软件自带的hw_server.bat文件获取。

进一步的,所述调试软件远程更新软件包括心跳信息显示模块、更新文件选择模块、通信接口模块一和立即更新模块;

所述心跳信息显示模块用于显示FPGA板连接成功返回的系统参数信息及更新反馈回的状态信息;

所述更新文件选择模块以图形化按钮形式展示,通过点击该按钮选择对应的更新文件、填入网络交换机分配的网口参数和目标FPGA板的系统编号,所有信息最终组成待烧录的更新数据包;

所述通信接口模块一按照TCP/IP协议与服务器软件建立通讯连接,传输选择的更新文件,解析返回的系统参数信息及更新成功反馈回的状态信息;

所述立即更新模块以图形化按钮形式展示,通过该按钮将更新文件传输给通信接口模块一。

进一步的,所述服务器软件采用多线程技术,包括通信接口模块二、通信接口模块三和通信接口模块四;

所述通信接口模块二按照TCP/IP协议与调试软件建立双向连接传输返回的调试数据信息和接收调试软件的连接请求;

所述通信接口模块三按照TCP/IP协议与远程更新软件建立双向连接,传输返回的系统参数信息及更新成功反馈的状态信息,解析通信接口模块一传输来的更新文件;所述通信接口模块三与通信接口模块二之间进行信息交互,将hw_server.bat获取的端口号与所连接的FPGA板编号以及网络交换机分配的网口参数一一对应;

所述通信接口模块四按照UDP协议与网络交换机建立双向连接,将通信接口模块三解析的更新文件按照UDP协议传送给网络交换机,对网络交换机传输返回的系统参数信息及更新成功反馈的状态信息进行UDP协议解析。

进一步的,所述心跳信息含FPGA板返回的应答信息和更新数据包下载成功的状态信息;

所述的应答信息包含FPGA板是否连接成功、FPGA板型号、FPGA板系统编号及网络交换机分配的网口号;所述状态信息包括更新数据包写入成功后返回的信息。

进一步的,所述FPGA板包括程序更新处理模块、调试数据处理模块1、调试数据处理模块2、心跳处理模块;

所述FPGA板在内部进行接口转换包括:

所述程序更新处理模块的接口转换:RJ45或光纤接口转换为AXI接口,AXI接口转换为SPI接口;

所述调试数据处理模块1的接口转换:RJ45或光纤接口转换为AXI接口,AXI接口转换为BSCAN接口;

所述调试数据处理模块2的接口转换:RJ45或光纤接口转换为AXI接口,AXI接口转换为JTAG接口;

所述心跳处理模块的接口转换:RJ45或光纤接口转换为AXI接口,AXI接口转换为IIC接口。

进一步的,所述FPGA板包括程序更新处理模块、调试数据处理模块1、调试数据处理模块2、心跳处理模块;

所述FPGA板在内部进行协议转换包括:

程序更新处理模块的协议转换指UDP协议转换为AXI协议,AXI协议转换为SPI协议;

所述调试数据处理模块1的协议转换指UDP协议转换为AXI协议,AXI协议转换为HUB协议;

所述调试数据处理模块2的协议转换指UDP协议转换为AXI协议,AXI协议转换为JTAG协议;

所述心跳处理模块的协议转换指UDP协议转换为AXI协议,AXI协议转换为IIC协议。

基于同一技术构思,本发明还提供一种采用上述FPGA远程调试系统的FPGA远程调试的方法,包括如下步骤:

启动PC端中的远程更新软件;

启动服务器软件,开启网络交换机;

远程更新软件、服务器软件、网络交换机和带有网口的FPGA板之间依次建立通讯链路;

用户通过远程更新软件的心跳信息显示模块确认所连接上的带网口的FPGA板;

根据各FPGA板更新需求,在远程更新软件的更新文件选择模块中选择FPGA板对应的更新数据文件;

根据所需更新FPGA板的数量开启同等数量的调试软件;

根据调试软件启动的数量,执行同等数量的调试软件自带的配置文件hw_server.bat以获取与服务器软件连接所需的IP地址与端口号;

在调试软件中输入与服务器软件连接所需的IP地址与端口号以建立通讯连接;

点击远程更新软件中的立即更新模块将更新数据包烧入到带网口的目标FPGA板卡中,更新成功反馈回的状态信息显示在远程更新软件的心跳信息显示中

进一步的,所述更新数据包包括编译好的更新文件、网络交换机分配的网口参数、目标板的系统编号和更新模块端口号。

本发明的有益效果为:

本发明将传统的目标FPGA板系统现场调试方法网络化,使得调试人员可通过互联网远程对目标FPGA板级系统进行调试维护,提高了开发与调试效率,降低了维护成本。

本发明采用网线或光纤进行程序的烧写与调试,打破了JTAG线缆长度限制且要连接PC电脑,特殊的工作场景(如野外或狭小的空间等)只需要有网络,连接上网络交换机就能适用,简单且维护成本低。

本发明在支持点对点调试与分析的同时也支持对多对多批量调试与分析。

xilinx的开发软件是基于XVC的,用的是TCP协议,若在FPGA中跑TCP协议,要么要求FPGA带ARM,要么以纯verilog实现,这样就会对目标FPGA有很高的要求;而本发明在PC端接收数据然后转为UDP协议下发,UDP消耗的资源很少,因此只要求FPGA板卡带网口,对资源的要求降低了。

附图说明

图1为本发明提供的FPGA远程调试系统的组成结构框图(互联网模式)。

图2为本发明提供的FPGA远程调试系统的组成结构框图(局域网模式)。

图3为本发明提供的FPGA远程调试系统的结构框图(互联网模式)。

图4为本发明提供的FPGA远程调试系统的结构框图(局域网模式)。

具体实施方式

附图中的互联网模式与局域网模式主要区别在服务器软件运行的主机不同,其它无任何区别。因此,下面结合附图1、3中的互联网模式,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围

实施例1

本发明提供一种基于网络的多片FPGA调试系统,参见图1,包括PC端、远程服务器、网络交换机、多个带有网口(物理网口)的FPGA板;

PC端为本地客户端,包括有调试软件和远程更新软件,用于用户交互、显示信息、发送更新数据包、接收调试回应包和目标板卡连接成功及更新成功反馈回的心跳信息;

远程服务器运行有服务器软件,远程服务器用于接收网络交换机传递来的数据信息并解析回传给本地PC端,接收来自本地PC端的更新数据包并发送给网络交换机;

网络交换机用于接收来自服务器软件发送来的更新数据包并转发至各个带有网口的FPGA板,接收FPGA板发送来的数据包并转发给远程服务器进行解析;网络交换机和带有网口的FPGA板按照UDP协议规则进行数据交互;

带有网口的FPGA板通过网口接收网络交换机转发过来的更新数据包并在内部进行接口转换和协议转换,并将更新数据包烧录进FPGA芯片;

图1为FPGA远程调试系统的组成结构框图,本地PC端、远程服务器与网络交换机三者之间通过网络通信协议实现对带有网口的FPGA目标板卡进行远程操作与调试;

PC端与远程服务器通过互联网通信,远程服务器与网络交换机通过网络或光纤通信,网络交换机与多个FPGA板通过网络或光纤通信。

调试软件主要指Vivado,ISE等开发编译软件,用于将程序编译为bin格式的烧录文件和显示返回的调试数据;

调试软件能根据连接成功目标FPGA板的数量运行同等数量此软件,采用TCP/IP协议与服务器软件建立连接;

调试软件与服务器软件建立连接所需的IP地址与端口号通过执行调试软件自带的hw_server.bat文件来获取;

更新数据包包含所选编译好的更新文件、网络交换机分配的网口参数、目标板的系统编号和更新模块端口号,用于更新进对应的带网口的目标FPGA板中;更新模块端口号指针对不同功能网口给分配的端口号,用于给本身通信应用、程序更新、调试数据处理和心跳数据处理功能指定专属通信通道;

参见图3,远程更新软件包括心跳信息显示模块、更新文件选择模块、通信接口模块一和立即更新模块;

其中心跳信息显示模块用于显示FPGA板卡连接成功返回的系统参数信息及更新成功反馈回的状态信息;

更新文件选择模块以图形化按钮形式展示,通过点击该按钮选择对应的更新文件、填入网络交换机分配的网口参数、目标FPGA板的系统编号和更新模块端口,该信息最终组成待烧录的更新数据包;

通信接口模块一按照TCP/IP协议与服务器软件建立通讯连接来传输选择的更新文件与解析返回的系统参数信息及更新成功反馈回的状态信息;

立即更新模块以图形化按钮形式展示,当根据返回的心跳信息选择好准备的更新文件以后,点击该按钮将更新文件传输给通信接口模块一;

服务器软件采用多线程技术,既可以运行在远程服务器上,也可以运行在本地PC客户端上,包括通信接口模块二、通信接口模块三和通信接口模块四;

其中:通信接口模块二按照TCP/IP协议与调试软件建立双向连接传输返回的调试数据信息和接收调试软件的连接请求;

通信接口模块三按照TCP/IP协议与远程更新软件建立双向连接传输返回的系统参数信息及更新成功反馈的状态信息和解析通信接口模块一传递来的更新文件;

通信接口模块三与通信接口模块二之间进行信息交互,将hw_server.bat获取的端口号与所连接上带网口的FPGA板编号以及网络交换机分配的网口参数一一对应;

通信接口模块四按照UDP协议与网络交换机建立双向连接对通信接口模块三解析的更新文件按照UDP协议传送给网络交换机和对网络交换机传输返回的系统参数信息及更新成功反馈的状态信息进行UDP协议解析;

远程服务器用于通过安装服务器软件来为本地PC客户端和网络交换机建立连接通路,该服务器为联通沃云服务器,组成互联网模式。

在另外的实施例中,服务器软件位于本地PC端,则组成局域网模式,如图2、4所示。

网络交换机作为通信桥梁,通过千兆网络或光纤与服务器软件和带有网口的FPGA目标板卡按照UDP协议规则进行数据交互;网络通信协议作为进行数据交互的一种规则,本地PC客户端与远程服务器采用TCP/IP协议,远程服务器与网络交换机之间、网络交换机与带网口的FPGA目标板卡之间采用UDP协议;

心跳信息主要包含目标板与整个系统连接成完整通信链路返回的应答信息和更新数据包下载成功的状态信息;其中:应答信息主要指目标FPGA板是否连接成功、目标FPGA板型号、目标FPGA板系统编号及网络交换机分配的网口号;状态信息主要指更新数据包写入成功后返回的信息,例如“为xx编号机更新成功”。

带有网口的FPGA目标板卡中的网口为RJ45接口或者SFP+光接口;FPGA目标板卡为XILINX(赛灵思)品牌,其芯片型号可以为常规FPGA型号或者ZYNQ和ZYNQMPSOC等型号,其自身已带有如系统编号、各转换模块分配的端口号和板型等信息,参见图3-4;所述的各转换模块指的是FPGA板卡内所含有的接口转换或协议转换。

FPGA板包括程序更新处理模块、调试数据处理模块1、调试数据处理模块2、心跳处理模块;

接口转换包含程序更新处理模块的接口转换、调试数据处理模块1的接口转换、调试数据处理模块2的接口转换和心跳处理模块的接口转换;程序更新处理模块的接口转换指RJ45或光纤接口转换为AXI接口,AXI接口转换为SPI接口;所述调试数据处理模块1的接口转换指RJ45或光纤接口转换为AXI接口,AXI接口转换为BSCAN接口;所述调试数据处理模块2的接口转换指RJ45或光纤接口转换为AXI接口,AXI接口转换为JTAG接口;所述心跳处理模块的接口转换指RJ45或光纤接口转换为AXI接口,AXI接口转换为IIC接口;

协议转换包含程序更新处理模块的协议转换、调试数据处理模块1的协议转换、调试数据处理模块2的协议转换和心跳处理模块的协议转换;所述程序更新处理模块的协议转换指UDP协议转换为AXI协议,AXI协议转换为SPI协议;所述调试数据处理模块1的协议转换指UDP协议转换为AXI协议,AXI协议转换为HUB协议;所述调试数据处理模块2的协议转换指UDP协议转换为AXI协议,AXI协议转换为JTAG协议;所述心跳处理模块的协议转换指UDP协议转换为AXI协议,AXI协议转换为IIC协议。

实施例2

一种FPGA远程调试的方法,该方法采用实施例1中的基于网络的多片FPGA调试系统,包括如下步骤:

S1、启动PC端中的远程更新软件;

S2、启动服务器软件,开启网络交换机;

S3、将远程更新软件、服务器软件、网络交换机和带有网口的FPGA板建立通讯链路;

S4、用户通过远程更新软件的心跳信息显示模块确认所连接上的带网口的FPGA目标板;

S5、根据各FPGA板更新需求,在远程更新软件的更新文件选择模块中选择FPGA板对应的更新数据文件;例如,有的FPGA板需要更新采样率,有的FPGA板需要更新整个系统功能,还有的FPGA板可能只需要更新单独的呼吸灯功能等。

S6、根据所需更新FPGA板的数量开启同等数量的调试软件;

S7、根据调试软件启动的数量,执行同等数量的调试软件自带的配置文件hw_server.bat来获取与服务器软件连接所需的IP地址与端口号;

S8、在调试软件中输入与服务器软件连接所需的IP地址与端口号来建立通讯连接;

S9、点击远程更新软件中的立即更新模块将更新数据包烧入到带网口的目标FPGA板卡中,更新成功反馈回的状态信息显示在远程更新软件的心跳信息显示中模块,同时各带网口的FPGA板的调试回应包由经网络交换机,以图形的形式显示在对应的Vivado窗口上。

步骤S9所述的更新数据包主要包括:通过点击更新文件选择模块按钮所选编译好的更新文件、填入的网络交换机分配的网口参数、目标板的系统编号和更新模块端口号;

步骤S9所述调试回应包以图形的形式显示在对应的Vivado窗口上指的是通过服务器软件中通信接口模块三与通信接口模块二之间的信息交互,hw_server.bat获取的端口号与所连接上FPGA板编号和网络交换机分配的网口参数已建成对应关系,各带网口的FPGA板返回的调试数据显示在相应的Vivado或ISE上。

本发明的工作原理是:带有网口的FPGA板与本地PC端、远程服务器和网络交换机组成的互联网模式或者局域网模式建立通讯链路,本地PC客户端的远程更新软件显示所连接有网口的FPGA板的相关信息(目标FPGA板是否连接成功、目标FPGA板型号、目标FPGA板系统编号及网络交换机分配的网口号),根据显示信息开启等数量的hw_server.bat将获取端口号和IP地址填入调试软件(Vivado或ISE等)中与服务器软件建立通讯连接,接着服务器软件将hw_server.bat获取的端口号与目标FPGA板系统编号建立一一对应关系,用户根据目标FPGA板的更新需求在远程更新软件的更新文件选择模块中选择各板对应的更新数据文件、网络交换机分配的网口参数、目标板的系统编号和更新模块端口号,将此数据整合为一个更新数据包,通过点击立即更新按钮将此数据包由经TCP/IP协议传输给服务器软件,服务器软件经过内部数据协议转换通过网络/光纤以UDP协议形式发送给网络交换机,网络交换机通过网络/光纤以UDP协议根据网口参数将更新数据包烧录进带网口的FPGA目标板,目标FPGA板最终通过网口顺着网络交换机和服务器软件通讯链路将调试回应包根据前面hw_server.bat获取的端口号与目标FPGA板系统编号建立的对应关系,以图形的形式显示在相应的Vivado或ISE窗口上。

尽管这里参照发明的多个解释性实施例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开权利要求的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变型和改进外,对于本领域技术人员来说,其他的用途也将是明显的。

技术分类

06120116214548