《電子技術應用》
您所在的位置:首頁 > 可编程逻辑 > 设计应用 > 基于Kintex7和SPI Flash实现FPGA的多重加载
基于Kintex7和SPI Flash实现FPGA的多重加载
2014年电子技术应用第7期
陈 岚1,李纪云1,朱人杰2
1.上海应用技术学院 电气与电子工程学院,上海201418; 2.中国科学院上海天文台,上海2000
摘要: Xilinx 7系列FPGA是Xilinx公司最新推出的一个芯片系列,Kintex7是该系列芯片中的一种,拥有大量的可编程资源。即便如此,在一些多模式的大型复杂的系统设计中,芯片的资源还是远远不能满足设计需求。FPGA的多重加载可以解决可编程资源不足的难题。FPGA多重加载是将设计的多个模式的比特文件存储到Flash,用户可以根据需要选择加载不同模式的比特文件。FPGA的多重加载解决了可编程资源不足的问题,提高了FPGA可编程资源的利用率。
中圖分類號: TN79
文獻標識碼: A
文章編號: 0258-7998(2014)07-0024-03
中文引用格式:陳嵐,李紀云,朱人杰.基于Kintex7和SPI Flash實現FPGA的多重加載[J].電子技術應用,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

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

        近些年FPGA技術得到了飛速的發展,其作為可編程資源廣泛應用在大型復雜通信系統設計中。盡管FPGA在資源集成度方面近些年取得了可觀的成果,但是在多模式的大型系統設計中,單片FPGA資源遠遠不能夠滿足設計需求,有時可能需要多個芯片。然而FPGA價格相對較高,這大大提高了設計成本,而且不易于產品升級和維護。

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

1 硬件設計

        Kintex7和SPI Flash物理連接的硬件設計如圖1所示。SPI Flash的容量選擇與設計的加載模式的個數和FPGA芯片的種類有關,本設計實現4種模式切換,SPI Flash內存儲4個比特文件,SPI Flash的容量是512 Mbit。

2 控制部分的設計

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

3 重加載模塊的設計

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

        FPGA內的重配置邏輯接收到IPROG命令后,FPGA執行復位操作,但不對重配置邏輯進行復位,并且將INIT_B和DONE引腳拉低。FPGA清除了所有的配置存儲后,INIT_B端口被拉高。最后,WBSTAR寄存器的值被用來重新配置FPGA。

        IPROG命令序列通過狀態機實現,狀態機中最少有8個狀態才能生成整個IPROG命令序列,否則,IPROG命令序列不能夠生成,FPGA不能重新配置。另外,IPROG命令的發送由ICAPE2模塊執行,ICAPE2模塊的輸出時序和SelectMAP的輸出時序是一致的,SelectMAP的輸出數據格式是位轉換格式,所以IPROG命令序列生成的過程中需要將配置數據進行位轉換。這里位轉換是指字節內位轉換,即最高有效位變為最低有效位,以此為規則進行字節內的位互換。位轉換結果如表2所示。

4 生成PROM文件

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

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

5 測試結果及分析

        本設計使用Chipscope軟件對信號進行捕捉,圖3是FPGA重新加載時對ICAPE2模塊的輸入信號的捕捉結果??梢杂^察到,狀態機成功生成了IPROM命令,并將其發送給ICAPE2模塊。

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

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

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

參考文獻

[1] 李鵬,蘭巨龍.用CPLD和Flash實現FPGA配置[J].電子技術應用,2006,32(6):101-102.

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

[3] 李煒.基于MicroBlaze的FPGA重配置系統設計[J].科學技術與工程,2007,7(23):6190-6192.

[4] 張江偉.基于Virtex-5和FLASH實現FPGA的多重配置[J].計算機與網絡,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.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产精品视频26uuu| 国产福利一区二区三区在线观看| 久久天天躁狠狠躁夜夜躁2014| 欧美视频在线播放一区| 国产精品视频xxxx| 日韩在线激情视频| 91精品国产91久久久久青草| 国产精品一区二区免费看| 美女精品久久久| 日本精品一区二区三区在线 | 午夜精品久久久久久久久久久久久| 精品麻豆av| 欧美激情亚洲综合一区| 日韩成人av电影在线| 亚洲a区在线视频| 亚洲精品中文字幕乱码三区不卡| 国产精品第3页| 日韩福利视频| 欧美中日韩一区二区三区| 亚洲91精品在线亚洲91精品在线| 91精品视频在线看| 亚洲最大av在线| 亚洲国产精品www| 日韩视频在线观看国产| 亚洲精品一区二区毛豆| 日本国产中文字幕| 97精品伊人久久久大香线蕉| 国产精品av电影| 99视频网站| 亚洲一区二区三区av无码| 亚洲制服欧美久久| 亚洲v国产v| 欧洲日本亚洲国产区| 欧美亚洲另类激情另类| 欧美xxxx综合视频| 久久国产精品高清| 日韩中文字幕不卡视频| 日韩在线免费视频V| 欧美在线亚洲在线| 久久99精品久久久水蜜桃| 精品视频一区在线|