《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于Kintex7和SPI Flash實(shí)現(xiàn)FPGA的多重加載
基于Kintex7和SPI Flash實(shí)現(xiàn)FPGA的多重加載
2014年電子技術(shù)應(yīng)用第7期
陳 嵐1,,李紀(jì)云1,,朱人杰2
1.上海應(yīng)用技術(shù)學(xué)院 電氣與電子工程學(xué)院,,上海201418,; 2.中國科學(xué)院上海天文臺,上海2000
摘要: Xilinx 7系列FPGA是Xilinx公司最新推出的一個芯片系列,,Kintex7是該系列芯片中的一種,,擁有大量的可編程資源,。即便如此,,在一些多模式的大型復(fù)雜的系統(tǒng)設(shè)計(jì)中,,芯片的資源還是遠(yuǎn)遠(yuǎn)不能滿足設(shè)計(jì)需求。FPGA的多重加載可以解決可編程資源不足的難題,。FPGA多重加載是將設(shè)計(jì)的多個模式的比特文件存儲到Flash,,用戶可以根據(jù)需要選擇加載不同模式的比特文件。FPGA的多重加載解決了可編程資源不足的問題,,提高了FPGA可編程資源的利用率,。
關(guān)鍵詞: FPGA 重配置 SPIFLASH Xilinx Kintex7
中圖分類號: TN79
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)07-0024-03
中文引用格式:陳嵐,李紀(jì)云,朱人杰.基于Kintex7和SPI Flash實(shí)現(xiàn)FPGA的多重加載[J].電子技術(shù)應(yīng)用,2014,40(07):24-26.
Implementation of FPGA multiboot based on Kintex7 and SPI Flash
Chen Lan1,Li Jiyun1,,Zhu Renjie2
1.School of Electronic Engineer, Shanghai Institute of Technology, Shanghai 201418,,China;2.Shanghai Astronomical Observatory, Chinese Academy of Science,,Shanghai 200010,China
Abstract: 7 series FPGA of Xilinx is the newest series chips, and kintex7 is one of them, which has a great number of programming resources. However, resources could not be satisfied with the demound of the design of a several-mode complicate system. This problem can be solved by FPGA reconfiguration. Several bit files should be stored in the SPI Flash, and user can choose to reconfigure FPGA with the selected bit file on the fly. Reconfiguration of FPGA solves the shortage of programming resources and improves the availability of FPGA programming resources.
Key words : reconfiguration;FPGA,;SPI Flash,;Xilinx

       隨著通信技術(shù)的快速發(fā)展,多模式通信體制在現(xiàn)代通信中廣泛存在,,如時分多址,、空分多址、空分多址,、頻分多址等,。而調(diào)制、解調(diào)技術(shù)又分為FM,、FSK,、BPSK、QPSK等多種調(diào)制及解調(diào)技術(shù),。在一個通信系統(tǒng)中往往采用多種通信模式,,這對硬件設(shè)備資源提出了比較高的要求,特別是對可編程芯片資源的要求,。另外,,多模式系統(tǒng)設(shè)計(jì)的復(fù)雜性也大大提高,同時對系統(tǒng)的維護(hù)和升級提出了挑戰(zhàn),。

        近些年FPGA技術(shù)得到了飛速的發(fā)展,,其作為可編程資源廣泛應(yīng)用在大型復(fù)雜通信系統(tǒng)設(shè)計(jì)中。盡管FPGA在資源集成度方面近些年取得了可觀的成果,,但是在多模式的大型系統(tǒng)設(shè)計(jì)中,,單片F(xiàn)PGA資源遠(yuǎn)遠(yuǎn)不能夠滿足設(shè)計(jì)需求,有時可能需要多個芯片,。然而FPGA價格相對較高,,這大大提高了設(shè)計(jì)成本,而且不易于產(chǎn)品升級和維護(hù),。

        FPGA多重加載技術(shù)[1-2]實(shí)際是對可編程資源的復(fù)用,,用戶可以根據(jù)需求選擇加載不同的比特文件,從而實(shí)現(xiàn)多模式功能,。FPGA多重加載技術(shù)可以解決可編程資源不足的問題,,提高了可編程資源的利用率,同時降低了系統(tǒng)設(shè)計(jì)的復(fù)雜性,,增加了系統(tǒng)設(shè)計(jì)的靈活性,,減小了多模式系統(tǒng)的耦合性,便于系統(tǒng)升級和維護(hù),。

1 硬件設(shè)計(jì)

        Kintex7和SPI Flash物理連接的硬件設(shè)計(jì)如圖1所示,。SPI Flash的容量選擇與設(shè)計(jì)的加載模式的個數(shù)和FPGA芯片的種類有關(guān),,本設(shè)計(jì)實(shí)現(xiàn)4種模式切換,SPI Flash內(nèi)存儲4個比特文件,,SPI Flash的容量是512 Mbit,。

2 控制部分的設(shè)計(jì)

        控制部分的設(shè)計(jì)是基于PowerPC[3]處理器實(shí)現(xiàn)的,用于對整個數(shù)據(jù)采集系統(tǒng)的控制,,這里只對FPGA模式加載控制做簡單說明,。FPGA的加載模式控制信息由上位機(jī)發(fā)送,上位機(jī)的1 G(TCP協(xié)議)網(wǎng)絡(luò)將加載模式控制信息發(fā)送到數(shù)據(jù)采集系統(tǒng)的1 G網(wǎng)絡(luò),;數(shù)據(jù)采集系統(tǒng)控制部分解析TCP數(shù)據(jù)包,提取有效信息,,判斷加載模式,將加載信息通過EPC(外設(shè)控制器)寫到FPGA的寄存器中,,Kintex7會根據(jù)寄存器中的值選擇加載模式,。外設(shè)控制器(EPC)是FPGA與PowerPC之間通信的橋梁,在重加載控制過程中主要負(fù)責(zé)傳遞加載模式信息到FPGA寄存器內(nèi),,另外還需要將加載成功后的模式信息進(jìn)行回讀,,并且通過1 G網(wǎng)絡(luò)送到上位機(jī)界面,判斷是否重加載成功,。嵌入式控制部分的設(shè)計(jì)如圖2所示,。

3 重加載模塊的設(shè)計(jì)

        IRPOG命令序列是實(shí)現(xiàn)FPGA重加載的重要環(huán)節(jié)。IPROG命令的效果與在PROGRAM_B引腳產(chǎn)生一個脈沖的效果類似,,但是IPROG命令不對重配置[4]邏輯進(jìn)行復(fù)位,。Kintex7內(nèi)部ICAPE2模塊能夠執(zhí)行IPROG命令,IPROG命令觸發(fā)FPGA從SPI Flash中重新加載比特文件,,加載地址是Kintex7中WBSTAR寄存器指定的地址,。IPROG命令發(fā)送后,F(xiàn)PGA完成3個動作:發(fā)送同步字節(jié)(AA995566),;向Kintex7的WBSTAR寄存器寫入下一個加載地址(表1地址為00000000),;發(fā)送IPORG命令(0000000F)。表1是通過ICAPE2向重配置模塊發(fā)送IPROG命令的比特流,,Multiboot[5]控制器用一個狀態(tài)機(jī)向ICAPE2發(fā)送表1中的IPROG命令序列,。一般情況下,重配置控制器等待外部的激勵信號,,當(dāng)激勵信號到達(dá)后,,控制器向ICAPE2發(fā)送表1命令序列,在發(fā)送命令序列之前,,控制器先把WRITE端口置為低電平,,在下一個時鐘的上升沿把CE端口置為低電平,接下來發(fā)送表1指令序列,。

        FPGA內(nèi)的重配置邏輯接收到IPROG命令后,,F(xiàn)PGA執(zhí)行復(fù)位操作,,但不對重配置邏輯進(jìn)行復(fù)位,并且將INIT_B和DONE引腳拉低,。FPGA清除了所有的配置存儲后,,INIT_B端口被拉高。最后,,WBSTAR寄存器的值被用來重新配置FPGA。

        IPROG命令序列通過狀態(tài)機(jī)實(shí)現(xiàn),,狀態(tài)機(jī)中最少有8個狀態(tài)才能生成整個IPROG命令序列,,否則,IPROG命令序列不能夠生成,,F(xiàn)PGA不能重新配置,。另外,IPROG命令的發(fā)送由ICAPE2模塊執(zhí)行,,ICAPE2模塊的輸出時序和SelectMAP的輸出時序是一致的,,SelectMAP的輸出數(shù)據(jù)格式是位轉(zhuǎn)換格式,所以IPROG命令序列生成的過程中需要將配置數(shù)據(jù)進(jìn)行位轉(zhuǎn)換,。這里位轉(zhuǎn)換是指字節(jié)內(nèi)位轉(zhuǎn)換,,即最高有效位變?yōu)樽畹陀行唬源藶橐?guī)則進(jìn)行字節(jié)內(nèi)的位互換,。位轉(zhuǎn)換結(jié)果如表2所示,。

4 生成PROM文件

        本設(shè)計(jì)的可編程文件是.mcs文件,生成.mcs文件有兩種方法:(1)用戶ISE中用命令行的格式生成,,在用命令行的方式生成時需要把其他模式的頂層比特文件拷貝到當(dāng)前工作路徑,,用promgen+參數(shù)的方式生成.mcs文件;(2)使用軟件Impact中的PROM File Formatter生成.mcs文件,,PROM File Formatter為用戶提供了可視化的.mcs文件生成環(huán)境,。本設(shè)計(jì)的.mcs文件是由4個比特文件組合而成,每個比特文件代表一種不同的設(shè)計(jì)模式,,其在Flash中存放的首地址和Kintex7中重配置寄存器地址保持一致,。

        本設(shè)計(jì)選用S25FL512S Flash,可以存放4個配置Kintex7的比特文件,。這4個比特文件的首地址與狀態(tài)機(jī)生成的首地址不同,,狀態(tài)機(jī)生成的加載首地址必須進(jìn)行位轉(zhuǎn)換。4個比特文件存放的首地址分別為表2中左側(cè)的4個地址,,位轉(zhuǎn)換后的加載首地址如表3右側(cè)所示,,這是由ICAPE2的輸出時序決定的,ICAPE2的輸出時序和SelectMAP的讀寫時序一致,。另外,,ICAPE2的輸入時鐘范圍是1~100 MHz,,若超出該范圍則不能夠正確執(zhí)行相關(guān)寄存器的配置。

5 測試結(jié)果及分析

        本設(shè)計(jì)使用Chipscope軟件對信號進(jìn)行捕捉,,圖3是FPGA重新加載時對ICAPE2模塊的輸入信號的捕捉結(jié)果,。可以觀察到,,狀態(tài)機(jī)成功生成了IPROM命令,,并將其發(fā)送給ICAPE2模塊。

        本設(shè)計(jì)在硬件平臺上進(jìn)行了多模式啟動的測試,,測試過程及結(jié)果:用戶通過上位機(jī)的控制界面向終端發(fā)送模式切換命令,,上位機(jī)與終端用1 G(TCP協(xié)議)網(wǎng)絡(luò)通信,以PowerPC為處理器搭建的嵌入式控制系統(tǒng)負(fù)責(zé)接收模式切換指令,,終端接收到命令后通過EPC(圖1)接口寫入Kintex7寄存器,,Kintex7的控制邏輯會根據(jù)指令觸發(fā)相應(yīng)的重加載模式,最后通過終端設(shè)備上的LED燈觀測到FPGA正確加載,。

        FPGA是否正確重加載的依據(jù)是:FPGA配置文件的功能都是點(diǎn)亮同一個LED燈,,區(qū)別在于它們點(diǎn)亮LED的頻率不同,通過觀察LED燈的閃爍頻率可以確定FPGA是否正確加載了相應(yīng)模式,。

        本實(shí)驗(yàn)在重加載前后,,LED燈的顯示頻率分別為1 Hz和2 Hz,說明FPGA重加載成功,。對另外兩種模式也進(jìn)行了重加載測試,,LED閃爍頻率分別是4 Hz和8 Hz。本實(shí)驗(yàn)最后觀測到LED燈閃爍情況滿足預(yù)期結(jié)果,。綜上所述,,F(xiàn)PGA可以在不掉電的情況下正確重加載,并且任何兩種模式可以相互切換,,提高了芯片可編程資源的利用率,。

參考文獻(xiàn)

[1] 李鵬,蘭巨龍.用CPLD和Flash實(shí)現(xiàn)FPGA配置[J].電子技術(shù)應(yīng)用,,2006,,32(6):101-102.

[2] 劉釗,杜琪峰,,許知博.基于Xilinx-Spartan6 FPGA的MultiBoot設(shè)計(jì)的實(shí)現(xiàn)[J].電子科技,,2012,25(3):28-31.

[3] 李煒.基于MicroBlaze的FPGA重配置系統(tǒng)設(shè)計(jì)[J].科學(xué)技術(shù)與工程,,2007,,7(23):6190-6192.

[4] 張江偉.基于Virtex-5和FLASH實(shí)現(xiàn)FPGA的多重配置[J].計(jì)算機(jī)與網(wǎng)絡(luò),2012(Z1):3-4.

[5] HUSSEIN J,PATEL R.Multiboot with Virtex-5 FPGAs and platform Flash XL[EB/OL].(2008-11-06)[2014-04-07].http://www.xilinx.com/support/documentation/application_notes/xapp1100.pdf.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。