1) 因為FPGA具有開發(fā)周期短,可更新等優(yōu)點,現(xiàn)在有越來越多的通訊系統(tǒng)采用FPGA作為實際產(chǎn)品方案。已經(jīng)有大量的FPGA應用到通訊系統(tǒng)中,為了降低系統(tǒng)維護的人力成本,需要能夠?qū)崿F(xiàn)FPGA遠程版本更新。本文將以Xilinx Virtex6 為例描述如何實現(xiàn)遠程FPGA版本更新/重啟。
2) FPGA加載主要分為2大類,一類是主動模式(master)另一類是從模式(slave).在主動模式時FPGA會外掛存儲器存儲FPGA bit映像,FPGA會主動提供時鐘訪問外部存儲器。在從模式時,F(xiàn)PGA作為從設(shè)備被掛在控制器CPU上由處理器控制對FPGA編程。上述兩種模式中,因為從模式FPGA由外部CPU控制編程,可以通過遠程更新CPU文件就可以實現(xiàn)對FPGA的版本更新,非常方便。但是當CPU外掛的FPGA較多時會使系統(tǒng)加載時間過長,降低系統(tǒng)啟動速度。這里將利用FPGA 多重啟(multi-boot)功能實現(xiàn)在主動模式下版本更新。
3) 遠程更新流程
當系統(tǒng)需要升級時,中心控制系統(tǒng)需要將新的FPGA比特映像文件直接發(fā)布到遠程子系統(tǒng),由遠程 子系統(tǒng)將比特文件更新到非易失存儲器。然后由FPGA內(nèi)部控制邏輯重新啟動。比特映像文件更新后,下次上電啟動將從新的比特映像文件。
如圖 1. FPGA遠程更新系統(tǒng)
FPGA遠程更新重啟系統(tǒng)
多重啟動 FPGA 介紹
a)多重啟動介紹
VIRTEX6可以支持2套配置文件,第一個版本為安全版本存放在起始位置(spi起始地址為0),第二個版本為最終啟動版本。當FPGA啟動時,加載控制器會從地址0開始讀取加載指令。當讀到WBSTAR和IPROG指令時,控制器就跳轉(zhuǎn)到WBSTAR指定的地址讀取新的加載指令。在第二個配置文件中不再發(fā)IPROG指令,控制其將順序執(zhí)行以直到配置文件結(jié)束。配置順序如圖 2。
FPGA遠程更新重啟系統(tǒng)
b)多重啟動模塊
i) 配置存儲器訪問接口
在FPGA配置過程中,F(xiàn)PGA通過指定的配置管腳訪問外部非易失存儲器,當配置結(jié)束后,部分管腳被釋放可以用作普通邏輯管腳,但部分FPGA配置管腳是配置專用,在用戶應用中是不可見的,需要例化專用模塊STARTUP_VIRTEX6才能允許用戶邏輯訪問這些專用管腳。
FPGA遠程更新重啟系統(tǒng)