一種多片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日
【發明者】申辰, 黃镠, 張晗 申請人:中國船舶重工集團公司第七二四研究所