從設置、加載、啟動(dòng)看Xilinx FPGA配置流程
盡管FPGA的配置模式各不相同,但整個(gè)配置過(guò)程中FPGA的工作流程是一致的,分為三個(gè)部分:設置、加載、啟動(dòng)。
本文引用地址:http://dyxdggzs.com/article/201808/389992.htm
復位結束配置開(kāi)始
有多種方式使FPGA的配置進(jìn)入這一過(guò)程。在上電時(shí),電壓達到FPGA要求之前,FPGA的上電復位模塊將使FPGA保持在復位狀態(tài);外部控制PROG_B引腳出現一個(gè)低脈沖也可以使FPGA保持在復位狀態(tài)。
清除配置存儲內容
這一步稱(chēng)為初始化,當FPGA復位結束,配置存儲器的內容會(huì )被自動(dòng)清除。在這個(gè)步驟中,除配置專(zhuān)用接口外,FPGA I/O均被置于高阻態(tài)。在整個(gè)初始化過(guò)程中,INIT_B引腳被置低并在初始化結束后恢復高電平。如果INIT_B信號在外部被拉低,FPGA將一直停留在初始化狀態(tài)。注意PROG_B信號的脈寬不能太窄。
采樣控制信號
初始化結束后,INIT_B信號回到高電平。FPGA開(kāi)始采集模式選擇引腳M[1:0]和變量選擇引腳VS。如果為主動(dòng)模式,FPGA很快就會(huì )給出有效的CCLK。VS信號只在主動(dòng)BPI及其SPI模式中生效。此時(shí),FPGA開(kāi)始在配置時(shí)鐘的上升沿對配置數據進(jìn)行采樣。
同步化
每一個(gè)FPGA配置數據流都有一個(gè)同步頭,它是一段特殊的同步字。同步字主要用于幫助FPGA確定正確的數據位置。同步字之前的配置數據都會(huì )被FPGA忽略,也就是FPGA僅僅在同步化之后才正式開(kāi)始接收配置數據。一般而言,同步字都是由0/1數目相同的二進(jìn)制數組成的,如Spartan3為AA995566。
ID檢查
FPGA同步化后,會(huì )自動(dòng)檢測配置流中的器件ID和目標器件ID是否一致。這一步確保了FPGA不會(huì )被錯誤的配置流誤配置。
32位的ID中包含了28位的特征值和4位掩碼。特征值包括廠(chǎng)商信息,器件族,器件規模等。當器件ID檢查遇到問(wèn)題時(shí),FPGA會(huì )將內部寄存器的第一位ID_Err置高,軟件也會(huì )顯示錯誤信息。
載入配置內容
在ID檢查順利通過(guò)后,FPGA開(kāi)始加載配置數據。
CRC校驗
在加載數據過(guò)程中,FPGA會(huì )對每一幀數據進(jìn)行CRC校驗。如果失敗,FPGA會(huì )將INIT_B信號拉低并終止配置過(guò)程。
啟動(dòng)序列
FPGA配置數據加載完后,FPGA進(jìn)入啟動(dòng)序列。啟動(dòng)序列事件的默認順序為先釋放DONE引腳,然后激活I(lǐng)/O,最后啟動(dòng)寫(xiě)使能。實(shí)際使用中,可以通過(guò)BitGen參數對啟動(dòng)順序進(jìn)行設置來(lái)滿(mǎn)足不同的需求。

評論