中國空空導(dǎo)彈研究院 樊宏倫
FPGA(現(xiàn)場可編程門陣列)由于其資源豐富、設(shè)計(jì)周期短和風(fēng)險(xiǎn)小、使用靈活等優(yōu)點(diǎn),已廣泛應(yīng)用于信號(hào)處理和控制領(lǐng)域。FPGA大多采用SRAM工藝,掉電后內(nèi)部配置數(shù)據(jù)丟失,再次上電后需要重新對其進(jìn)行配置,因此在FPGA外部多采用非易失性存儲(chǔ)器(稱為FPGA的配置PROM或配置Flash)來存儲(chǔ)配置數(shù)據(jù)以方便每次加電后對其進(jìn)行自動(dòng)配置。
在復(fù)雜系統(tǒng)設(shè)計(jì)中,如果系統(tǒng)所有功能都在一個(gè)bit文件來實(shí)現(xiàn)的話,器件資源可能不夠用或裕量不足,F(xiàn)PGA會(huì)出現(xiàn)時(shí)序問題。我們可以將系統(tǒng)功能中相對獨(dú)立的部分提取出來用另外的bit文件實(shí)現(xiàn)以解決上述問題,這就涉及到FPGA的多bit文件切換加載功能。
本文以Xilinx Virtex5 XC5VLX110T FPGA及其配置Flash XCF128X為例,介紹了一種FPGA多bit文件加載方法并進(jìn)行了VHDL實(shí)現(xiàn),試驗(yàn)證明該方法能可靠實(shí)現(xiàn)兩個(gè)bit文件的切換加載, 為后續(xù)需要進(jìn)行獨(dú)立功能切換的應(yīng)用提供了設(shè)計(jì)依據(jù)。
XCF128X是一款專門為Vitrex5系列FPGA配置設(shè)計(jì)的Flash,其采用低功耗CMOS NOR-Flash工藝,容量為128Mb。XC5VLX110T FPGA采用XCF128X作為配置Flash的電路如圖1所示。本文以主SelectMap模式為例介紹FPGA的多bit文件切換加載功能,其它配置模式與此類似,不再贅述。在主SelectMap配置模式下地址總線23位、數(shù)據(jù)總線16位,配置時(shí)鐘由FPGA的CCLK管腳提供,CCLK時(shí)鐘頻率可在ISE開發(fā)環(huán)境的配置選項(xiàng)中的“配置速率”(-g Con figRate)中進(jìn)行設(shè)置。
圖1 FPGA主SelectMap配置電路
需要注意:Flash的地址最高位A22連接到FPGA的RS1管腳上,并接1k上拉電阻;Flash的地址次高位A21連接到FPGA的RS0管腳上,并接1k下拉電阻。
XC5VLX110 FPGA的上電配置過程如下:
1)上電,F(xiàn)PGA清除內(nèi)部配置存儲(chǔ)器,將INIT_B管腳驅(qū)動(dòng)為低電平(對應(yīng)Flash的管腳為低進(jìn)行復(fù)位);在復(fù)位時(shí)Flash將其RDY_WAIT管腳驅(qū)動(dòng)為低電平(對應(yīng)FPGA PROGRAM_B管腳為低);
2)FPGA和Flash分別釋放各自的INIT_B管腳和RDY_WAIT管腳,外部上拉電阻將INIT_B和RDY_WAIT(PROGRAM_B)分別拉為高電平;
3)在INIT_B上升沿采樣M2:M0管腳,確定其配置模式為主SelectMap配置模式;
4)Flash初始讀地址由地址總線A[22:0]上的上下拉電阻確定為0x400000(即加載的bit文件首地址為Flash地址0x400000),F(xiàn)lash將初始讀地址鎖存到內(nèi)部地址計(jì)數(shù)器,輸出數(shù)據(jù)總線DQ[15:0]上的16位配置數(shù)據(jù);
5)配置數(shù)據(jù)在CCLK時(shí)鐘下被同步送到FPGA中,然后Flash增加其內(nèi)部地址計(jì)數(shù)器,并輸出數(shù)據(jù)總線DQ[15:0]上下一個(gè)16位置配置數(shù)據(jù)到FPGA,依次類推;
6)配置成功后,F(xiàn)PGA將Done信號(hào)驅(qū)動(dòng)為高電平。
本文將兩個(gè)實(shí)現(xiàn)不同功能的bit文件(bit1和bit2)分別存放在Flash地址0x000000和0x400000起始的地址空間內(nèi),XC5VLX110T FPGA的純配置文件大小為31118848b(占用的字節(jié)地址空間為0x1DAD60),兩個(gè)bit文件在Flash中存放的示意圖如圖2所示,需要注意的是生成的bit文件含有部分冗余頭(bit生成時(shí)間,bit文件名等信息),因此占用的地址空間比純配置文件要大,冗余頭在生成mcs文件的過程中會(huì)被移除。
設(shè)置好地址后通過Xilinx iMPACT工具軟件生成.mcs文件,然后使用JTAG下載器將mcs文件燒寫到XCF128X Flash中,在燒寫的時(shí)候需要注意,RS[1:0]需要選擇地址22:21,如圖3所示。
圖2 bit文件地址空間占用示意圖
圖3 Flash燒寫時(shí)RS選擇示意圖
上電后,F(xiàn)PGA先從Flash地址0x400000將bit2文件加載,在bit2中可通過原語ICAP_VIRTEX5實(shí)現(xiàn)bit1文件的加載。VHDL的具體實(shí)現(xiàn)如下所示。
本文以Xilinx Virtex5 XC5VLX110T FPGA及其配置Flash XCF128X為例,介紹了一種FPGA多bit文件加載方法并進(jìn)行了VHDL實(shí)現(xiàn),試驗(yàn)證明該方法能可靠實(shí)現(xiàn)兩個(gè)bit文件的切換加載,為后續(xù)需要進(jìn)行獨(dú)立功能切換的應(yīng)用提供了設(shè)計(jì)依據(jù)。