CN111934931A - 基于xvc协议的服务器及fpga固件更新调试方法 - Google Patents

基于xvc协议的服务器及fpga固件更新调试方法 Download PDF

Info

Publication number
CN111934931A
CN111934931A CN202010794534.1A CN202010794534A CN111934931A CN 111934931 A CN111934931 A CN 111934931A CN 202010794534 A CN202010794534 A CN 202010794534A CN 111934931 A CN111934931 A CN 111934931A
Authority
CN
China
Prior art keywords
fpga
xvc
protocol
tcp
module
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
Application number
CN202010794534.1A
Other languages
English (en)
Inventor
蔡严克
张�杰
胡俊
孙芸华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of High Energy Physics of CAS
Original Assignee
Institute of High Energy Physics of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of High Energy Physics of CAS filed Critical Institute of High Energy Physics of CAS
Priority to CN202010794534.1A priority Critical patent/CN111934931A/zh
Publication of CN111934931A publication Critical patent/CN111934931A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于XVC协议的服务器及FPGA固件更新调试方法。所述基于XVC协议的服务器包括:第一FPGA和第一闪存芯片;第一闪存芯片用于存储配置第一FPGA的数据;第一FPGA包括TCP/IP模块、状态机模块、缓存模块和JTAG模拟模块;TCP/IP模块用于接收上位机通过TCP/IP网络发送的基于XVC协议的数据包;状态机模块用于根据XVC协议对数据包进行解析;JTAG模拟模块用于模拟JTAG接口以实现对远程FPGA固件的在线更新与调试。本发明能实现对远程FPGA固件的在线更新与调试。

Description

基于XVC协议的服务器及FPGA固件更新调试方法
技术领域
本发明涉及计算机硬件领域,特别是涉及一种基于XVC协议的服务器及FPGA固件更新调试方法。
背景技术
在现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)固件更新和调试的场景中,通常采用传统的基于USB-JTAG(Universal serial bus-joint testaction group)电缆的方式。由于USB-JTAG电缆的长度和JTAG接口信号完整性和时序的限制,特别是现有的FPGA常常放置在密闭的容器中而没有预留JTAG配置接口场景,该方式不能用于对FPGA的远程固件更新与调试。目前,远程更新的方法通常是采用CPU等设备直接将固件烧写进flash,待被配置FPGA系统重新上电后,自动将固件烧写进FPGA,这种方法往往只能烧写固件,而不能在线对固件进行调试。
发明内容
基于此,有必要提供一种基于XVC协议的服务器及FPGA固件更新调试方法,以实现对远程FPGA固件的在线更新与调试。
为实现上述目的,本发明提供了如下方案:
一种基于XVC协议的服务器,包括:第一FPGA和第一闪存芯片;所述第一FPGA用于接收上位机通过TCP/IP网络发送的数据包,并对所述数据包进行解析、模拟JTAG接口以及将所述数据包以JTAG时序下载到至少一个待调试FPGA组件中;所述数据包的格式为基于XVC协议的数据包;所述第一闪存芯片用于存储配置第一FPGA的数据;所述待测试FPGA组件包括第二FPGA和与所述第二FPGA连接的第二闪存芯片;所述第二FPGA为待调试的FPGA器件;所述第二闪存芯片用于存储配置第二FPGA的数据;
所述第一FPGA包括TCP/IP模块、状态机模块、缓存模块和JTAG模拟模块;所述TCP/IP模块用于接收上位机通过TCP/IP网络发送的数据包;所述状态机模块用于根据XVC协议对所述数据包进行解析;所述缓存模块用于缓存所述数据包;所述JTAG模拟模块用于模拟JTAG接口,并将所述数据包以JTAG时序下载到至少一个待调试FPGA组件中。
可选的,所述第一FPGA采用verilog硬件描述语言编写而成。
可选的,所述基于XVC协议的服务器还包括物理层芯片;所述第一FPGA通过所述物理层芯片与所述上位机连接;所述物理层芯片用于实现以太网络的数据传送。
可选的,所述基于XVC协议的服务器还包括RJ45接口;所述上位机通过所述RJ45接口与所述物理层芯片连接。
可选的,所述物理层芯片为支持SFP光口的物理层芯片;所述RJ45接口为SFP光口。
可选的,所述物理层芯片为支持SFP电口的物理层芯片;所述RJ45接口为SFP电口。
本发明还提供了一种FPGA固件更新调试方法,所述FPGA固件更新调试方法采用上述所述的基于XVC协议的服务器实现,所述方法包括:
上位机采用ISE软件或者Vivado软件生成基于TCP/IP协议的XVC虚拟电缆服务;
开启所述基于TCP/IP协议的XVC虚拟电缆服务,并输入基于XVC协议的服务器的IP和TCP/IP协议的端口信息后,将用户在所述上位机生成的.bit文件或.mcs文件通过所述基于XVC协议的服务器下载到至少一个待测试FPGA组件中,以实现对待测试FPGA组件中的第二FPGA的固件的更新;
开启所述基于TCP/IP协议的XVC虚拟电缆服务,并输入基于XVC协议的服务器的IP和TCP/IP协议的端口信息后,将用户在所述上位机生成的.bit文件和.ltx文件通过所述基于XVC协议的服务器下载到至少一个待测试FPGA组件中,待测试FPGA组件中的第二FPGA对接收到的数据进行响应,并将响应结果传输至所述上位机,所述上位机中的ISE软件或者Vivado软件对所述响应结果进行处理,以实现对第二FPGA的固件的调试。
与现有技术相比,本发明的有益效果是:
本发明提出了一种基于XVC协议的服务器及FPGA固件更新调试方法。所述基于XVC协议的服务器包括:第一FPGA和第一闪存芯片;第一FPGA包括TCP/IP模块、状态机模块、缓存模块和JTAG模拟模块;TCP/IP模块用于接收上位机通过TCP/IP网络发送的基于XVC协议的数据包;状态机模块用于根据XVC协议对数据包进行解析;缓存模块用于缓存数据包;JTAG模拟模块用于模拟JTAG接口以实现对远程FPGA固件的在线更新与调试。本发明能实现对远程FPGA固件的在线更新与调试,并且相比于现有的基于单片机或者FPGA内嵌单片机的方式,更新调试速度快、性能好、不需要特殊的使用条件。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于XVC协议的服务器的结构示意图;
图2为本发明实施例提供的FPGA固件更新调试系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
Xilinx公司给出了XVC(Xilinx visial cable)协议,该协议基于传输控制协议/网际(TCP/IP)协议。Xilinx公司的EDA工具ISE软件或Vivado软件,基于该协议将固件按照一定格式打包为TCP/IP协议数据包,通过本地网络甚至internet网络发送至其他远端设备,实现远程的配置数据的收发。因此,若要利用XVC协议,需要在远端设备中设计一款可以用来接收TCP/IP协议数据包、解析XVC消息指令、模拟JTAG接口时序的服务器。
本实施例提出了一种可用于远程FPGA固件更新与调试的基于XVC协议的服务器(XVC-JTAG服务器),该服务器基于xilinx公司的FPGA及其EDA工具ISE软件或Vivado软件实现。
该服务器完全使用verilog语言完成。利用了TCP/IP的特点,可以在本地网络甚至通过internet网络实现,保证了数据传输的可靠性。该服务器完全使用verilog硬件描述语言实现,相比于嵌入式处理器等方法,固件更新与调试更加快速。剩余的逻辑资源也可以用来实现其他所需的FPGA逻辑功能,兼容性比较高。由于使用基本的FPGA寄存器、查找表、FIFO等资源,并且使用的资源也较少,因此对大部分的FPGA器件均适用。
利用Xilinx公司的EDA软件Vivado时,设置服务器端的IP地址和TCP端口后,进行连接。软件自动发送相关的指令并扫描器件。扫描到第二FPGA器件后,也可以选择添加板上固定的flash器件。这里首先对FPGA进行.bit文件的下载。实验发现对一片第二FPGA的下载更新时,通过调整tck频率,11MB的.bit文件下载最快仅需要8秒。这已经比使用实际的JTAG电缆不相上下。对flash的配置,由于配置flash时TCP/IP报文的发送方式以及从JTAG到flash的延时限制,速度会稍慢,31MB的mcs文件需要约13分钟,但这已满足日常的工作需要。ISE和Vivado的在线调试功能也可以正常使用。下面对基于XVC协议的服务器进行详细的介绍。
图1为本发明实施例提供的基于XVC协议的服务器的结构示意图。
参见图1,本实施例的基于XVC协议的服务器,包括:第一FPGA和第一闪存芯片。所述第一FPGA用于接收上位机通过TCP/IP网络发送的数据包,并对所述数据包进行解析、模拟JTAG(Joint Test Action Group,联合测试行动组)接口以及将所述数据包以JTAG时序下载到至少一个待调试FPGA组件中。所述数据包的格式为基于XVC协议的数据包。所述第一闪存芯片用于存储配置第一FPGA的数据,在第一FPGA上实现各种硬件逻辑模块,当系统上电后,实现自动配置。所述待测试FPGA组件包括第二FPGA和与所述第二FPGA连接的第二闪存芯片。所述第二FPGA为待调试的FPGA器件;所述第二闪存芯片用于存储配置第二FPGA的数据。
所述第一FPGA是verilog硬件描述语言编写出的硬件逻辑模块的实际载体。在第一FPGA中实现的硬件逻辑模块包括TCP/IP模块、状态机模块、缓存模块和JTAG模拟模块;所述TCP/IP模块用于接收上位机通过TCP/IP网络发送的数据包;所述状态机模块用于根据XVC协议对所述数据包进行解析;所述缓存模块用于缓存数据包;所述JTAG模拟模块用于模拟JTAG接口,并将所述数据包以JTAG时序下载到至少一个待调试FPGA组件中。TCP/IP模块、状态机模块、缓存模块和JTAG模拟模块这些模块全部使用verilog硬件描述语言,并使用FPGA基本的逻辑资源完成,例如使用寄存器、查找表、FIFO等完成。
作为一种可选的实施方式,所述基于XVC协议的服务器还包括物理层(PhysicalLayer Interface Devices,PHY)芯片和RJ45接口。所述第一FPGA通过所述物理层芯片与所述上位机连接;所述物理层芯片用于实现以太网络的数据传送。所述上位机通过所述RJ45接口与所述物理层芯片连接。
其中物理层芯片和RJ45接口的替代性比较强。所述物理层芯片可以为支持小型化可插拔(Small Form-factor Pluggable,SFP)光口的物理层芯片;所述RJ45接口可以为SFP光口。所述物理层芯片还可以为支持SFP电口的物理层芯片;所述RJ45接口还可以为SFP电口。所述物理层芯片还可以为在第一FPGA的内部实现。总之,物理层芯片和RJ45接口的实现方式比较灵活,只要能够实现以太网络的PHY层功能即可。
本实施例中的XVC-JTAG服务器在第一FPGA上使用了一款名为SICTP的xilinx库和FIFO,以实现TCP/IP模块。XVC-JTAG服务器通过该功能与上位机建立网络链接。TCP/IP模块接收来自上位机发送的数据包,并将其发送至第一FPGA中的其他模块,TCP/IP模块还接收第一FPGA中的其他模块发送的数据,发送给上位机。第一FPGA使用SICTP的xilinx库时,绑定IP地址与端口。
XVC-JTAG服务器在设计过程中,由于上位机中xiling公司的ISE软件或者vivado软件通过TCP/IP网络发送的数据包的格式是基于XVC协议的。在XVC-JTAG服务器中,由于SITCP接收并发送至用户逻辑的数据是去掉网络数据帧中的前导码、定界符、IP等字段的原始数据,该原始数据仍然符合XVC协议定义的格式,因此需要后续的模块对XVC协议进行解析。XVC协议包含三个基本的消息指令:
(1)消息指令“getinfo:”,用于获取XVC服务器的版本。
(2)消息指令“settck:”,用于配置服务器tck周期。
(3)消息指令“shift:”,用于将JTAG向量移入和移出器件。
状态机模块负责多项工作。主要包括:(1)识别XVC协议指令。状态机模块根据接收数据的前两个字节判断是数据消息指令中的哪个指令,并跳转到相关状态。(2)当判断为“getinfo:”指令或者“settck:”指令时,状态机模块跳转到相关状态后,应向上位机发送一定长度的字符串,上位机根据接收的数据确定应该提供的功能。(3)当判断为“shift:”指令时,状态机模块跳转到相关状态。状态机模块控制缓存模块存储后续的数据,存储一定长度的数据后,跳转到相关状态,控制JTAG模拟模块向第二FPGA发送数据,并接收第二FPGA的数据。同时,状态机模块根据JTAG模拟模块的工作状态反馈,确定是否再次接收数据并判断指令。
由于XVC协议中规定,TDI向量数据紧跟在TMS向量数据后面,因此需要缓存模块负责缓存从SITCP发送的数据。所述缓存模块主要包含异步双端口RAM,以实现两个时钟域的数据读取。所述缓存模块直接用verilog实例化原语即可。
JTAG模拟模块从缓存模块中按字节读取TMS、TDI向量数据,并对此作并串转换,控制IO模拟JTAG接口中的tck、tms、tdi接口,从而实现对JTAG时序的模拟,并发送给第二FPGA,同时JTAG模拟模块模拟JTAG接口中的tdo接口,采样该接口上的数据,发送给TCP/IP模块。
第一FPGA中的各个模块均使用verilog语言实现。具体模块设计如下。TCP/IP模块使用SITCPxilinx库完成。表1中的代码实现了对SITCPxilinx库的调用。表1中:第2~3行设置SICTP库所需的IP地址和PHY地址;第10行与FIFO的计数器连接,间接确定TCP/IP协议中定义的滑动窗口值;第11~12行为TCP/IP数据信号和数据有效信号;第13~15行为发送数据和发送使能信号;第17~25行为GMII接口信号,与PHY芯片连接。第26-27行为PHY芯片管理接口。
表1
Figure BDA0002625063980000061
Figure BDA0002625063980000071
状态机模块负责服务器工作状态跳转和当前工作状态的工作内容。表2中的代码即为状态机模块,以三段式完成。共定义了状态机模块的8个状态。cmd2状态为判断指令状态,info_cmd和return_info_data为与“getinfo:”指令相关状态,settck_cmd和return_settck_data为与“settck:”指令相关状态。shift_data、shift_cmd、return_shift_data为与“shift:”指令相关状态。
第1~7行代码负责当前状态与次态的转换。在第9~82行,状态机模块根据标志位条件进行状态的跳转。第84~313行代码规定了状态机模块在上述8个状态时,应该完成的工作内容。
更具体来讲,第11~32行为在cmd2状态时,根据接收数据的前2个字节判断是哪条指令,并将下一状态跳转到与该指令相关的状态:info_cmd、settck_cmd、shift_cmd。第33~39行为在info_cmd状态时,根据标志位判断读指令是否完成,决定是否进入下一状态:return_info_cmd;第40~46行为在return_info_cmd状态时,根据标志位判断指令是否完成,决定是否进入下一状态。其他5个状态逻辑与上述类似,只是判断的标志位不同。
代码第86~122行为状态机模块在cmd2状态时,应该完成的工作。其包括对标志位的复位,以及读取XVC协议消息指令的最初两个字节。第123~171行为info_cmd状态和return_info_cmd状态完成读取“getinfo:”指令,组装并向客户端主机发送服务器版本信息。第172~203行为settck_cmd状态和return_settck_cmd状态,主要完成“settck:”指令的读取,组装并向客户端主机发送服务器JTAG tck设置信息。第204~279行为读取“shift:”指令的剩余字节,以及XVC协议规定的JTAG向量的字节数等相关信息,在shift_sata状态读取JTAG向量,并将向量数据存入第一FPGA上实例化的异步双端口RAM中。在第280~311行,return_shift_data状态需要控制JTAG模拟模块从异步双端口RAM中读取JTAG向量数据。JTAG模拟模块在后续介绍;同时在该状态将JTAG模拟模块从FPGA接收的数据发送至客户端主机。上述完成了XVC三个消息指令的指令解析、数据处理、消息回复工作,每完成一个消息指令的工作,结合上述第1~7行和第9~82行的verilog代码,状态机模块重新跳转到cmd2状态,进行指令的识别判断工作。
以上构成了状态机模块。
表2
Figure BDA0002625063980000081
Figure BDA0002625063980000091
Figure BDA0002625063980000101
Figure BDA0002625063980000111
Figure BDA0002625063980000121
Figure BDA0002625063980000131
Figure BDA0002625063980000141
Figure BDA0002625063980000151
Figure BDA0002625063980000161
Figure BDA0002625063980000171
Figure BDA0002625063980000181
Figure BDA0002625063980000191
表3中的代码表示JTAG模拟模块根据状态机模块的指示开始工作,并在结束工作后通知状态机模块。JTAG模拟模块的主要工作为模拟实际JTAG接口:TDI、TDS、TDO、TCK,根据状态机shift指令的相关状态解析的向量信息,从第一FPGA实例化的异步双端口RAM中读取一定字节数的JTAG向量:TDS向量和TDI向量,将该向量作并串转换,按照JTAG时序发送至第二FPGA。接收来自第二FPGA的TDO端口数据,并将该数据存放在第一FPGA实例化的异步双端口RAM中。
表3中第2~10行初始化JTAG模拟模块中的标志位。第12~68行为JTAG模拟模块同时从异步双端口RAM中读取TMS向量和TDI向量,读取的字节数由状态机模块解析出来的信息决定。由于以字节为单位进行读取,一个字节包含8bit数据,因此为方便并串转换以及使TCK接口时序符合JTAG规定,对同一地址的数据重复读取16次。第70~86行将读取的TMS和TDI向量在FPGA接口(在FPGA芯片外与JTAG TMS、TDI接口连接)上按顺序一位一位的发出,并控制后续的子模块采样另一接口TDO(在FPGA芯片外与TDO接口连接)上的数据,以及在另一接口(在FPGA芯片外与TCK接口连接)上发出一定频率的脉冲信号作为TCK时钟信号。
表3中第90~155行按照状态机模块解析的信息和上述JTAG模拟模块的指示采样一定数量字节的数据,将数据组装为以字节为单位,写入异步双端口RAM中;另外在FPGAIO接口上以一定频率发送脉冲,模拟JTAG TCK接口。第156行当采样的数据满足状态机模块解析的XVC信息规定时,通知状态机模块可以将TDO向量从异步双端口RAM中读出并由SITCP发往客户端主机。
以上构成了JTAG模拟模块。
表3
Figure BDA0002625063980000201
Figure BDA0002625063980000211
Figure BDA0002625063980000221
Figure BDA0002625063980000231
Figure BDA0002625063980000241
Figure BDA0002625063980000251
本实施例中的基于XVC协议的服务器,实现TCP/IP协议栈的模块可由其他库实现,不一定使用SITCP库,只要能够实现TCP/IP数据收发即可。远端设备中可以将配置用FPGA外围的PHY芯片取消,改为在FPGA内部实现PHY功能,或者使用其他MII接口的PHY模块,在FPGA实现GMII接口的转换,实现与SITCP或其他TCP/IP协议栈模块的连接。各模块也可使用VHDL硬件描述语言完成代码的编辑。
本发明还提供了一种FPGA固件更新调试方法,所述FPGA固件更新调试方法采用上述实施例所述的基于XVC协议的服务器(XVC-JTAG服务器)实现,XVC-JTAG服务器在FPGA更新与调试系统中的位置如图2所示。
结合图2,所述FPGA固件更新调试方法包括:
XVC-JTAG服务器与第二FPGA(待调试的FPGA器件)上电后,上位机通过网线或光纤与XVC-JTAG服务器建立TCP/IP网络连接。上位机采用ISE软件或者Vivado软件生成基于TCP/IP协议的XVC虚拟电缆服务。
开启所述基于TCP/IP协议的XVC虚拟电缆服务,并输入基于XVC协议的服务器的IP和TCP/IP协议的端口信息后,即可选择将用户在所述上位机生成的.bit文件或.mcs文件通过所述基于XVC协议的服务器下载到至少一个待测试FPGA组件(第二FPGA或与之相连的第二闪存芯片)中,以实现对待测试FPGA组件中的第二FPGA的固件的更新。
另外ISE或Vivado中的在线调试功能也可启用XVC服务。开启所述基于TCP/IP协议的XVC虚拟电缆服务,并输入基于XVC协议的服务器的IP和TCP/IP协议的端口信息后,将用户在所述上位机生成的.bit文件和.ltx等文件通过所述基于XVC协议的服务器下载到至少一个待测试FPGA组件中,待测试FPGA组件中的第二FPGA对接收到的数据进行响应,并将响应结果传输至所述上位机,所述上位机中的ISE软件或者Vivado软件对所述响应结果进行处理,以实现对第二FPGA的固件的调试。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种基于XVC协议的服务器,其特征在于,包括:第一FPGA和第一闪存芯片;所述第一FPGA用于接收上位机通过TCP/IP网络发送的数据包,并对所述数据包进行解析、模拟JTAG接口以及将所述数据包以JTAG时序下载到至少一个待调试FPGA组件中;所述数据包的格式为基于XVC协议的数据包;所述第一闪存芯片用于存储配置第一FPGA的数据;所述待测试FPGA组件包括第二FPGA和与所述第二FPGA连接的第二闪存芯片;所述第二FPGA为待调试的FPGA器件;所述第二闪存芯片用于存储配置第二FPGA的数据;
所述第一FPGA包括TCP/IP模块、状态机模块、缓存模块和JTAG模拟模块;所述TCP/IP模块用于接收上位机通过TCP/IP网络发送的数据包;所述状态机模块用于根据XVC协议对所述数据包进行解析;所述缓存模块用于缓存所述数据包;所述JTAG模拟模块用于模拟JTAG接口,并将所述数据包以JTAG时序下载到至少一个待调试FPGA组件中。
2.根据权利要求1所述的一种基于XVC协议的服务器,其特征在于,所述第一FPGA采用verilog硬件描述语言编写而成。
3.根据权利要求1所述的一种基于XVC协议的服务器,其特征在于,还包括物理层芯片;所述第一FPGA通过所述物理层芯片与所述上位机连接;所述物理层芯片用于实现以太网络的数据传送。
4.根据权利要求3所述的一种基于XVC协议的服务器,其特征在于,还包括RJ45接口;所述上位机通过所述RJ45接口与所述物理层芯片连接。
5.根据权利要求4所述的一种基于XVC协议的服务器,其特征在于,所述物理层芯片为支持SFP光口的物理层芯片;所述RJ45接口为SFP光口。
6.根据权利要求4所述的一种基于XVC协议的服务器,其特征在于,所述物理层芯片为支持SFP电口的物理层芯片;所述RJ45接口为SFP电口。
7.一种FPGA固件更新调试方法,其特征在于,所述FPGA固件更新调试方法采用上述权利要求1-6中任意一项所述的基于XVC协议的服务器实现,所述方法,包括:
上位机采用ISE软件或者Vivado软件生成基于TCP/IP协议的XVC虚拟电缆服务;
开启所述基于TCP/IP协议的XVC虚拟电缆服务,并输入基于XVC协议的服务器的IP和TCP/IP协议的端口信息后,将用户在所述上位机生成的.bit文件或.mcs文件通过所述基于XVC协议的服务器下载到至少一个待测试FPGA组件中,以实现对待测试FPGA组件中的第二FPGA的固件的更新;
开启所述基于TCP/IP协议的XVC虚拟电缆服务,并输入基于XVC协议的服务器的IP和TCP/IP协议的端口信息后,将用户在所述上位机生成的.bit文件和.ltx文件通过所述基于XVC协议的服务器下载到至少一个待测试FPGA组件中,待测试FPGA组件中的第二FPGA对接收到的数据进行响应,并将响应结果传输至所述上位机,所述上位机中的ISE软件或者Vivado软件对所述响应结果进行处理,以实现对第二FPGA的固件的调试。
CN202010794534.1A 2020-08-10 2020-08-10 基于xvc协议的服务器及fpga固件更新调试方法 Pending CN111934931A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010794534.1A CN111934931A (zh) 2020-08-10 2020-08-10 基于xvc协议的服务器及fpga固件更新调试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010794534.1A CN111934931A (zh) 2020-08-10 2020-08-10 基于xvc协议的服务器及fpga固件更新调试方法

Publications (1)

Publication Number Publication Date
CN111934931A true CN111934931A (zh) 2020-11-13

Family

ID=73306539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010794534.1A Pending CN111934931A (zh) 2020-08-10 2020-08-10 基于xvc协议的服务器及fpga固件更新调试方法

Country Status (1)

Country Link
CN (1) CN111934931A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112600937A (zh) * 2020-12-29 2021-04-02 北京神州飞航科技有限责任公司 一种fpga逻辑远程下载方法
CN114039610A (zh) * 2021-11-01 2022-02-11 国芯科技(广州)有限公司 一种基于fpga的无线通信系统的开发装置
CN114879986A (zh) * 2022-07-13 2022-08-09 紫光同芯微电子有限公司 用于程序包下载解析的方法及装置、终端设备及存储介质
TWI774391B (zh) * 2021-04-16 2022-08-11 瑞昱半導體股份有限公司 實時配置韌體數據的方法與除錯裝置
CN118349264A (zh) * 2024-06-17 2024-07-16 南京派格测控科技有限公司 Fpga板卡固件更新方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122304A (zh) * 2017-05-03 2017-09-01 成都定为电子技术有限公司 一种jtag远程调试方法
CN110442488A (zh) * 2019-07-02 2019-11-12 中国航空工业集团公司雷华电子技术研究所 一种基于Zynq平台通过以太网远程调试FPGA的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122304A (zh) * 2017-05-03 2017-09-01 成都定为电子技术有限公司 一种jtag远程调试方法
CN110442488A (zh) * 2019-07-02 2019-11-12 中国航空工业集团公司雷华电子技术研究所 一种基于Zynq平台通过以太网远程调试FPGA的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J.J. TEOH 等: "Development of readout system for FE-I4 pixel module using SiTCP", 《NUCLEAR INSTRUMENTS AND METHODS IN PHYSICS RESEARCH A》 *
薛乾 等: "基于XVC网络协议的多FPGA远程更新与调试", 《核技术》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112600937A (zh) * 2020-12-29 2021-04-02 北京神州飞航科技有限责任公司 一种fpga逻辑远程下载方法
TWI774391B (zh) * 2021-04-16 2022-08-11 瑞昱半導體股份有限公司 實時配置韌體數據的方法與除錯裝置
US11585850B2 (en) 2021-04-16 2023-02-21 Realtek Semiconductor Corp. Method for real-time firmware configuration and debugging apparatus
CN114039610A (zh) * 2021-11-01 2022-02-11 国芯科技(广州)有限公司 一种基于fpga的无线通信系统的开发装置
CN114879986A (zh) * 2022-07-13 2022-08-09 紫光同芯微电子有限公司 用于程序包下载解析的方法及装置、终端设备及存储介质
CN114879986B (zh) * 2022-07-13 2022-09-16 紫光同芯微电子有限公司 用于程序包下载解析的方法及装置、终端设备及存储介质
CN118349264A (zh) * 2024-06-17 2024-07-16 南京派格测控科技有限公司 Fpga板卡固件更新方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN111934931A (zh) 基于xvc协议的服务器及fpga固件更新调试方法
US7100091B2 (en) Method and system for testing networks
US10015072B2 (en) Consolidation of network test automation tools
JP3706145B2 (ja) Unix開放型システム間相互接続層のテスト
US5600579A (en) Hardware simulation and design verification system and method
US6243832B1 (en) Network access server testing system and methodology
EP1189070B1 (en) JTAG testing arrangement
CN104237699B (zh) 一种usb接口通信测试系统及方法
US20070064694A1 (en) System and method for connecting a logic circuit simulation to a network
US20040064764A1 (en) Using a network connectivity to remotely control an IEEE 1149.1 test access port of target hardware
CN104991862B (zh) 基于jtag虚拟技术的fpga远程在线调测方法
Khalilzad et al. FPGA implementation of real-time Ethernet communication using RMII interface
CN109714145A (zh) 一种多通道数据对齐的方法及装置
US20140013152A1 (en) System for injecting protocol specific errors during the certification of components in a storage area network
CN116610590A (zh) 基于zynq平台实现多片fpga远程调试方法及系统
US7478303B2 (en) System and method for testing nodes in a network
US7016800B1 (en) Centralized console API testing architecture
CN104683178B (zh) 一种相同ip地址多dut的测试方法及系统
US20040143781A1 (en) System and method for non-intrusive loopback testing
CN214703812U (zh) 测试设备和测试系统
CN114443401A (zh) 一种fpga的调试方法及装置
US8949105B2 (en) Hardware interface board for connecting an emulator to a network
CN117370257B (zh) 串口转总线的装置、现场可编程门阵列及其调试方法
Poutiainen Protocol Inspection Toolkit Design for Serial Communication Protocols
Dinda The minet tcp/ip stack

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201113