【導讀】當把多個功能復雜的程序集成到一個FPGA 上實現時,由于各個程序的數據通路及所占用的資源可能沖突,使得FPGA 控制模塊的結構臃腫,影響了整個系統工作效率。通過FPGA 的多重配置可以有效地精簡控制結構的設計,同時可以用邏輯資源較少的FPGA 器件實現需要很大資源才能實現的程序。
現代硬件設計規模逐漸增大,單個程序功能越來越復雜,當把多個功能復雜的程序集成到一個FPGA 上實現時,由于各個程序的數據通路及所占用的資源可能沖突,使得FPGA 控制模塊的結構臃腫,影響了整個系統工作效率。通過FPGA 的多重配置可以有效地精簡控制結構的設計,同時可以用邏輯資源較少的FPGA 器件實現需要很大資源才能實現的程序。以Virtex5系列開發板和配置存儲器SPIFLASH為基礎,從硬件電路和軟件設計兩個方面對多重配置進行分 析,給出了多重配置實現的具體步驟,對實現復雜硬件設計工程有一定的參考價值。
當FPGA 完成上電自動加載初始化的比特流后,可以通過觸發FPGA 內部的多重啟動事件使得FPGA 從外部配置存儲器(SPI FLASH)指定的地址自動下載一個新的比特流來重新配置。FPGA 的多重配置可以通過多種方式來實現。
電路原理:多 重配置的硬件主要包括FPGA 板卡和貯存配置文件的FLASH芯片。FPGA 選用XILINX公司Virtex-5系列中的ML507,該產品針對FPGA 多重配置增加了專用的內部加載邏輯。FLASH芯片選用XILINX公司的SPI FLASH芯片M25P32,該芯片存貯空間為32 Mb,存貯文件的數量與文件大小以及所使用的FPGA 芯片有關。實現多重配置首先要將FPGA 和外部配置存儲器連接為從SPI FLASH加載配置文件的模式。
配置電路硬件連接框圖如圖1所示。在FPGA 配置模式中,M2,M1,M0為0,0,1,這種配置模式對應邊界掃描加上拉,FPGA 在這種模式下所有的I/O 只在配置期間有效。在配置完成后,不用的I/O 將被浮空M2,M1,M0 三個選擇開關對應于ML507 開發板上的SW3開關中的4,5,6位,在FPGA 上電之前將上述開關撥為0,0,1狀態。