星載環(huán)境FPGA軟件在軌重加載的一種方法
摘要:FPGA在空間系統(tǒng)中已經(jīng)廣泛應(yīng)用,為了滿足系統(tǒng)可靠性和可擴展性的要求,實現(xiàn)FPGA軟件的在軌重加載迫在眉睫。根據(jù)FPGA的加載配置原理,以Xilinx公司的Virtex-Ⅱ系列FPGA為實例,介紹了FPGA在軌重加載的硬件電路設(shè)計以及軟件設(shè)計。經(jīng)過實驗室測試驗證,該設(shè)計方法合理可行,滿足星載環(huán)境下FPGA軟件在軌編程及重加載的設(shè)計需求。
關(guān)鍵詞:FPGA;在軌重加載;在軌編程;星載環(huán)境
0 引言
FPGA已經(jīng)廣泛應(yīng)用于星載信號處理系統(tǒng)中,然而其在空間環(huán)境中的可靠性設(shè)計是一個難題。一方面,F(xiàn)PGA軟件可能受到外部空間環(huán)境影響而產(chǎn)生各種問題,特別是單粒子效應(yīng)造成的FPGA程序出錯,其導(dǎo)致的后果是嚴(yán)重的甚至是災(zāi)難性的;另一方面,當(dāng)FPGA軟件本身存在設(shè)計缺陷或者由于衛(wèi)星系統(tǒng)改變應(yīng)用需求時,若能實現(xiàn)星載環(huán)境下FPGA軟件的遠(yuǎn)程更新升級,其軟件系統(tǒng)的生命周期便可以得到延長,同時產(chǎn)生的經(jīng)濟效益也是不可估量的。
為此,本文介紹一種星載環(huán)境下FPGA軟件在軌重加載的方法,通過星上系統(tǒng)的1553B接口接收FPGA配置數(shù)據(jù)文件,在DSP和CPLD的控制下,靈活地實現(xiàn)FPGA程序的在軌編程及重加載。
1 FPGA加載原理
基于SRAM工藝的FPGA由于在掉電后配置數(shù)據(jù)丟失,因此需要在上電后對其進行加載,而配置數(shù)據(jù)被保存在外部的非易失存儲器中。
Xilinx公司的Virtex-Ⅱ系列FPGA通過芯片配置管腳MODE PIN(M0,M1,M2),可以實現(xiàn)5種配置模式,詳見表1。
上述5種模式中,JTAG邊界掃描模式具有最高的優(yōu)先級,其加載方式是通過專用JTAG口對FPGA進行訪問。SelectMAP模式實際上就是并行模式,其加載時的數(shù)據(jù)訪問位寬為8 b,加載過程與串行模式相同。主模式和從模式的區(qū)別在于時鐘是由FPGA自身提供,亦或是外部提供,當(dāng)FPGA主動輸出時鐘時即為主模式,反之即為從模式。
FPGA的配置過程如圖1所示,主要由3個階段8個步驟組成。FPGA在Slave SelectMAP模式下配置過程中使用的信號包括:PROG_B,INIT_ B,CCLK,CS_B,RDWR_B,DATA[0:7],BUSY,DONE,其時序關(guān)系如圖2所示。
根據(jù)圖1和圖2,Slave SelelctMAP模式下,F(xiàn)PGA加載過程描述如下:
第1階段:啟動和初始化,分為3個步驟:
FPGA上電正常后,通過PROG_B引腳低脈沖進行FPGA異步復(fù)位,使得FPGA內(nèi)部邏輯清零;PROG_B拉高后,停止外部復(fù)位,INIT_B引腳會在自動產(chǎn)生一個由低到高的跳變,指示FPGA內(nèi)部初始化完成,可以進行數(shù)據(jù)下載;FPGA檢測其專用的配置模式管腳M0~M2的電平,從而確定加載模式。
第2階段:比特流加載,分為4個步驟。INIT_B信號變高后,不需要額外的等待時間,Virtex器件就可以立即開始數(shù)據(jù)的配置。比特流數(shù)據(jù)在外部CCLK信號上升沿按字節(jié)方式置入。其中的Synchronization(同步)、Device ID Check(檢測器件ID號和配置數(shù)據(jù)中的ID號是否匹配)、Load Configuration Data(下載數(shù)據(jù)流)和CRCCheck(CRC校驗)對用戶是完全透明的,同步字、配置數(shù)據(jù)中ID號和CRC校驗和都是在生成配置數(shù)據(jù)文件時和配置數(shù)據(jù)一起打包,嵌入在配置數(shù)據(jù)文件當(dāng)中。
第3階段:Startup啟動。在成功校驗CRC碼位后,F(xiàn)PGA進入Startup狀態(tài)。它是由8相狀態(tài)機實現(xiàn)的,中間包括等待DCM鎖相、DCI匹配等幾個狀態(tài),最后FPGA釋放外部DONE引腳,對外輸出高阻態(tài),由外部上拉高,指示FPGA加載成功。
評論