一种多片fpga程序网络化快速批加载方法

文档序号:6636297阅读:374来源:国知局
一种多片fpga程序网络化快速批加载方法
【专利摘要】本发明涉及一种多片FPGA程序网络化快速批加载方法,包括:首先,控制计算机通过广播呼叫信号,从而获取网络内各ARM的IP地址及MAC地址。然后,控制计算机将多个FPGA加载程序(.bin文件)根据协议广播给网络内的所有ARM节点。网络内的各ARM节点在收到每个数据包后即发送确认包,并将接收到的数据存储在板载ROM的对应地址内。当控制计算机接收到网络内所有ARM节点的确认包后再发送下一个数据包。最后,当网络内各ARM节点接收完所有数据后,再根据本节点所在槽位将ROM对应地址上的数据(即本槽位FPGA加载程序),写入Flash,Flash将会自动将程序加载至FPGA。这样即可实现快速批量的对多个FPGA加载程序进行打包网络加载。
【专利说明】—种多片FPGA程序网络化快速批加载方法

【技术领域】
[0001]本发明涉及一种多片FPGA程序网络化快速批加载方法。尤其涉及多个FPGA板卡多个程序版本的同时批量网络加载方法。

【背景技术】
[0002]随着科技的不断发展,为了降低硬件的设计成本,缩短设计周期,系统设计逐渐趋于模块化。设计者通过在统一的硬件平台上(如FPGA板卡)加载不同的加载程序实现不同的处理功能。
[0003]传统的JTAG烧写方式耗时巨大,大大增加了设计周期。同时现有的网络加载方式虽然可以减少烧写时间,但是未考虑多版本及多个FPGA板卡的批量加载功能,往往只能一个一个的进行烧写,只能适应较简单的系统。在大规模相控阵体制雷达中,需大量采用相同型号的FPGA板卡,因此就需要一种可以支持多板卡、多版本的同时批量网络加载方法。


【发明内容】

[0004]本发明的目的在于提供一种多片FPGA程序网络化快速批加载方法。
[0005]实现本发明目的的技术解决方案为:控制计算机通过网络同时对多片FPGA板卡同时进行程序加载;控制计算机先将FPGA加载程序bin文件,按照每个程序所对应的槽位号,即需加载该程序的板卡的位置号进行分块打包,再根据既定的协议广播发送给网络内的所有FPGA板卡上的ARM节点;网络内的各ARM节点在收到每个数据包后即向控制计算机回复确认包,并将接收到的数据存储在本FPGA板卡上ROM的对应地址内;当控制计算机接收到网络内所有ARM节点回复的确认包后再继续发送下一个数据包;一旦网络内各ARM节点接收完所有数据后,ARM会根据板卡对应的槽位号读取ROM上相应的FPGA程序,将其写入Flash, Flash将会自动将程序加载至FPGA。当板卡的槽位发生改变时,ARM会自动根据新槽位号从ROM中读取相应的FPGA程序,写入Flash,Flash再自动将程序加载至FPGA。

【专利附图】

【附图说明】
[0006]图1本发明控制计算机与FPGA板卡连接图。
[0007]图2控制计算机程序工作流程图。
[0008]图3 ARM工作流程图。

【具体实施方式】
[0009]控制计算机与各待加载板卡之间的连接关系如图1所示。本发明所支持的FPGA板卡上需配有相应的ARM芯片以作为板卡的网络处理接口,同时也应配有一个可以支持多版本程序大小的铁电存储器(简称ROM)。控制计算机通过网络与各板卡上的ARM芯片相连,通过制定控制计算机与ARM芯片之间的网络协议完成多板卡、多版本批量网络加载功能。
[0010]控制计算机通过网线连接各FPGA板卡,控制计算机首先将所有程序根据其对应的槽位号排序后进行打包。之后会发出广播询问包,呼叫个FPGA模块。各FPGA模块的ARM芯片在收到呼叫后,会回应呼叫,并且将本地IP地址和MAC地址发送给控制计算机。控制计算机再根据网络协议将所有数据封装成一个完整的数据包。
[0011]封装完成之后,控制程序通过广播形式向各板卡发送数据。控制程序会将完整的程序包分段成若干网络分段数据包,在发送完每个网络分段数据包后,都将等待若干时间,等待各板卡上的ARM芯片发送确认包。如果控制计算机在等待时间内,未能收到某些地址回复的确认包,计算机就会将该地址从发送的目标地址中删除,并在后台进行记录,提示用户该节点程序未能成功加载,并且在下一次发送网络分段数据包之后将不再等待该地址回复的确认包。控制计算机在收到所有节点的确认包后,会继续分段发送打包数据。在所有数据发送完毕之后,控制计算机将广播发送结束包。控制计算机的工作流程图如图2所示。
[0012]板卡上ARM芯片的工作流程图如图3所示。板卡通电之后,ARM芯片将判断收到的网络包是否为广播询问包,如果是广播询问包,即将本地的IP地址与MAC地址打包为应答包回复给控制计算机。否则即为控制计算机发送的网络分段数据包,ARM芯片在收到网络分段数据包后将会立即给控制计算机回复确认包,表示已收到分段网络数据包,并将接收到的数据存入板载ROM内。控制计算机在发送数据包完成之后会发送结束包,ARM芯片收到该结束包之后,会从硬件读取本节点槽位号,并根据该槽位号将ROM上对应的数据,即本槽位的程序发送给FLASH,并且将本次的槽位号存储至ROM。如系统加电时从硬件读取的本节点槽位号与ROM中上次存储的槽位号相同,则ARM不会作出响应,如果不同,ARM则会根据本节点槽位号将ROM上对应的数据,即本槽位的程序发送给FLASH,并将本次槽位号储存至ROM。最终FLASH将自动把程序加载至FPGA上。
【权利要求】
1.一种多片FPGA程序网络化快速批加载方法,其特征在于:控制计算机通过网络同时对多片FPGA板卡同时进行程序加载;控制计算机先将FPGA加载程序bin文件,按照每个程序所对应的槽位号,即需加载该程序的板卡的位置号进行分块打包,再根据既定的协议广播发送给网络内的所有FPGA板卡上的ARM节点;网络内的各ARM节点在收到每个数据包后即向控制计算机回复确认包,并将接收到的数据存储在本FPGA板卡上ROM的对应地址内;当控制计算机接收到网络内所有ARM节点回复的确认包后再继续发送下一个数据包;一旦网络内各ARM节点接收完所有数据后,ARM会根据板卡对应的槽位号读取ROM上相应的FPGA程序,将其写入Flash,Flash将会自动将程序加载至FPGA ;当板卡的槽位发生改变时,ARM会自动根据新槽位号从ROM中读取相应的FPGA程序,写入Flash,Flash再自动将程序加载至FPGA。
【文档编号】G06F15/76GK104360886SQ201410705542
【公开日】2015年2月18日 申请日期:2014年11月27日 优先权日:2014年11月27日
【发明者】申辰, 黄镠, 张晗 申请人:中国船舶重工集团公司第七二四研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1