基于SPI FLASH的FPGA多重配置
重載模塊首先要調用ICAP核。ICAP原語在Xilinx的編譯軟件ISE中調用,調用路徑為Edit→LanguageTemplates,VHDL/Verilog→Device Primitive Instantia-tion→Virtex5FPGA→Config/BSCAN Components→In-ternal Config Access Por(t ICAP_VIRTEX5)。
本文引用地址:http://2s4d.com/article/221428.htmICAP_VIRTEX5調用接口如下:
ICAP核支持X8,X16,X32三種數(shù)據帶寬模式。在整個FPGA重配置的過程中并沒有用到ICAP核的輸出,因此在重載模塊的狀態(tài)機控制程序中不關注BUSY,O信號的值,可以不對它們賦值。用戶程序在使用接口時只需對CE,CLK,I,WRITE4個信號不斷賦值來發(fā)送命令。
在調用了ICAP核接口之后,通過Verilog編碼的方式實現(xiàn)狀態(tài)機。通過狀態(tài)機發(fā)送IPROG指令給ICAP核,ICAP核在接收到這些指令后會根據指定的地址自動加載配置文件。
IPROG指令的作用是對FPGA芯片進行復位操作,該復位操作對FPGA內部的應用程序進行復位,復位過程中除專用配置管腳和JTAG管腳,其他輸入/輸出管腳均為高阻態(tài)。完成復位操作后,將默認的加載地址用熱啟動地址寄存器(Warm Boot Start Address,WB-STAR)中的新地址替換。
在發(fā)送IPROG指令之前,需要對ICAP核進行預配置。重載控制模塊在收到觸發(fā)信號后,第一個時鐘周期將ICAP核的WRITE信號和CE信號置高,第二個周期將WRITE信號置底,CE信號置高,第三個周期將WRITE信號置底,CE信號也置底。接著在下面的8個時鐘周期里,將指令隊列中的控制命令逐個發(fā)出。狀態(tài)機指令流程如圖3所示。
在狀態(tài)機發(fā)送IPROG指令的過程中,為了保證ICAP核接收到正確的指令,每一個發(fā)送出去的命令和數(shù)據必須遵循SelectMAP數(shù)據順序。SelectMAP數(shù)據順序是將每個指令都按字節(jié)劃分,劃分后每個字節(jié)的數(shù)據都按比特位翻轉。如果為“X32”模式,則劃分為4個字節(jié),每個字節(jié)進行位翻轉。圖4以“X16”為例說明Se-lectMAP數(shù)據順序。
fpga相關文章:fpga是什么
存儲器相關文章:存儲器原理
評論