《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 视频一区二区欧美日韩在线 | 我想看黄色毛片 | 在线观看成人小视频 | 国产一区二区精品久 | 关婷哪一级毛片高清免费看 | 日本妇人成熟免费观看18 | 久久综合久久精品 | 97青草香蕉依人在线播放 | www.欧美成| 欧美一区二区三区在线观看不卡 | 日本人爱爱视频 | 欧美国产伦久久久久 | 午夜高清视频在线观看 | 欧美另类日韩中文色综合 | 国产成 人 综合 亚洲绿色 | 成人精品视频一区二区在线 | 看一级毛片女人洗澡 | 快播怡红院 | 欧美色网络 | 99成人在线 | 欧美日韩国产一区二区三区 | 夜夜躁狠狠躁日日躁视频 | www在线 | 日本精品一二三区 | 国产精品美女视视频专区 | 国产精品青草久久 | 日本一道本在线视频 | 天天草夜夜骑 | 国产高清天干天天视频 | 一级片黄色一级片 | 白洁的性荡生活全文 | 欧美极度另类videos高清 | 精品国产91久久久久 | 男人的私人影院 | 久久久国产精品网站 | 午夜免费网站 | 国产精品视频福利一区二区 | 亚洲欧美卡通成人制服动漫 | 伊人久久大香网 | 亚洲国产欧美无圣光一区 | 日韩一区二区不卡 |