基于SPI FLASH的FPGA多重配置
通過(guò)FPGA的多重配置可以有效地精簡(jiǎn)控制結構的設計,同時(shí)可以用邏輯資源較少的FPGA器件實(shí)現需要很大資源才能實(shí)現的程序。以Virtex5系列開(kāi)發(fā)板和配置存儲器SPI FLASH為基礎,從硬件電路和軟件設計兩個(gè)方面對多重配置進(jìn)行分析,給出了多重配置實(shí)現的具體步驟,對實(shí)現復雜硬件設計工程有一定的參考價(jià)值。
本文引用地址:http://dyxdggzs.com/article/221428.htm現代硬件設計規模逐漸增大,單個(gè)程序功能越來(lái)越復雜,當把多個(gè)功能復雜的程序集成到一個(gè)FPGA上實(shí)現時(shí),由于各個(gè)程序的數據通路及所占用的資源可能沖突,使得FPGA控制模塊的結構臃腫,影響了整個(gè)系統工作效率。
通過(guò)FPGA的多重配置可以有效地精簡(jiǎn)控制結構的設計,同時(shí)可以用邏輯資源較少的FPGA器件實(shí)現需要很大資源才能實(shí)現的程序。以Virtex5系列開(kāi)發(fā)板和配置存儲器SPI FLASH為基礎,從硬件電路和軟件設計兩個(gè)方面對多重配置進(jìn)行分析,給出了多重配置實(shí)現的具體步驟,對實(shí)現復雜硬件設計工程有一定的參考價(jià)值。
0引言
現代硬件程序設計規模越來(lái)越大,功能越來(lái)越復雜,當多個(gè)應用程序同時(shí)在一個(gè)硬件平臺上實(shí)現時(shí),各個(gè)程序的資源使用和數據通路可能會(huì )沖突,這增加了控制電路設計的復雜程度,給開(kāi)發(fā)人員增加了工作量和開(kāi)發(fā)難度。通過(guò)多重配置,可以將多個(gè)應用程序根據需要分時(shí)加載到FPGA中,不僅精簡(jiǎn)了電路設計,而且使系統更加靈活。FPGA多重配置的特點(diǎn)可以讓特定條件下的用戶(hù)選擇片上資源不多的FPGA去實(shí)現需要很多資源FPGA才能實(shí)現的功能,這大大降低了開(kāi)發(fā)費用,同時(shí)提高了FPGA的利用率。
Xilinx公司Virtex5系列的FPGA具有多重配置的特性,允許用戶(hù)在不掉電重啟的情況下,根據不同時(shí)刻的需求,可以從FLASH中貯存的多個(gè)比特文件選擇加載其中的一個(gè),實(shí)現系統功能的變換。
1總體設計
當FPGA完成上電自動(dòng)加載初始化的比特流后,可以通過(guò)觸發(fā)FPGA內部的多重啟動(dòng)事件使得FPGA從外部配置存儲器(SPI FLASH)指定的地址自動(dòng)下載一個(gè)新的比特流來(lái)重新配置。FPGA的多重配置可以通過(guò)多種方式來(lái)實(shí)現。本文采用的是基于ICAP核的狀態(tài)機編碼方式。通過(guò)調用Xilinx自帶的ICAP核,編寫(xiě)狀態(tài)機按照一定的指令流程對ICAP核進(jìn)行不斷的配置,可以控制FPGA重新配置。這種方式可以在源代碼中加很多注釋?zhuān)尯髞?lái)的開(kāi)發(fā)者很清楚地明白ICAP核指令流順序,以及多重配置地址計算方法,是一種簡(jiǎn)單實(shí)用的實(shí)現方法。
1.1硬件電路
多重配置的硬件主要包括FPGA板卡和貯存配置文件的FLASH芯片。FPGA選用XILINX公司Virtex-5系列中的ML507,該產(chǎn)品針對FPGA多重配置增加了專(zhuān)用的內部加載邏輯。FLASH芯片選用XILINX公司的SPI FLASH芯片M25P32,該芯片存貯空間為32 Mb,存貯文件的數量與文件大小以及所使用的FPGA芯片有關(guān)。實(shí)現多重配置首先要將FPGA和外部配置存儲器連接為從SPI FLASH加載配置文件的模式。配置電路硬件連接框圖如圖1所示。

在FPGA配置模式中,M2,M1,M0為0,0,1,這種配置模式對應邊界掃描加上拉,FPGA在這種模式下所有的I/O只在配置期間有效。在配置完成后,不用的I/O將被浮空[5].M2,M1,M0三個(gè)選擇開(kāi)關(guān)對應于ML507開(kāi)發(fā)板上的SW3開(kāi)關(guān)中的4,5,6位,在FPGA上電之前將上述開(kāi)關(guān)撥為0,0,1狀態(tài)。
1.2軟件設計
從軟件設計的角度可以將FPGA多重配置主要分為兩個(gè)部分。第一部分是用戶(hù)自己開(kāi)發(fā)的程序,這一部分包括用戶(hù)要在FPGA上邊實(shí)現的功能,同時(shí)也包括為重載模塊提供時(shí)鐘信號,以及觸發(fā)信號,本文觸發(fā)信號是通過(guò)用戶(hù)程序編寫(xiě)串口通信協(xié)議棧來(lái)接收PC端傳輸的數字作為觸發(fā)信號。第二部分是FPGA重載配置模塊。FPGA多重配置首先要調用ICAP核,當滿(mǎn)足觸發(fā)條件后,采用狀態(tài)機編碼的方式對ICAP核進(jìn)行賦值配置。FPGA多重配置的軟件結構圖如圖2所示。

fpga相關(guān)文章:fpga是什么
存儲器相關(guān)文章:存儲器原理
評論