*Serial Configuration Mode
串行配置模式分為:Master Serial 和 Slave Serial (如下圖)兩類; 兩者的區別在與CCLK的輸入輸出方向;主動模式下為輸出方向,從模式下為輸入方向;
Slave Serial模式最典型應用於串行菊花鏈或者用外部控制器和CPLD配置單個FPGA。Master Serial模式中,CCLK作為輸出;
在Slave Serial 和 Master Serial 模式的時序圖如下。Master DIN輸入的第一個BIT0 代表第一個BYTE的最高位。
*SelectMAP configuration Mode
SelectMap配置接口提供了8/16/32bit位寬的雙向數據總線到7系列FPGA的配置邏輯中,可以用來配置和回讀。回讀只能用與Slave SelectMap模式中。總線位寬是自動檢測的。
SelectMap模式中支持多種配置方法:
1.單器件Slave SelectMap:(如下圖) 外部控制器/CPLD提供時鍾和數據,通過Slave SelectMap接口配置FPGA。 Master SelectMap與Slave SelectMap相比,后者是首選模式。
2.多器件菊花鏈SelectMap總線:多個FPGA串行配置來自一個flash或者處理器的不同的鏡像;
3.多器件協同SelectMap:多個FPGA並行配置來自一個flash或處理器的相同鏡像。當使用平行flash時,建議使用BPI配置模式。
reference : UG626
reference: XAPP583
SelectMap支持連續數據寫入(如下圖)和非連續數據寫入;非連續數據寫入分為:CSI_B選擇控制和CCLK中斷控制。
*SelectMAP ABORT
在SelectMAP配置和回讀中,當CCLK采樣下,RDWR_B改變同時CSI_B斷言,將會出現中斷。在一個配置中斷中,通過四拍CCLK將內部狀態輸出到D[4:7]管腳上,其他D管腳保持拉高狀態。在中斷完成后,用戶可以重新同步配置邏輯,繼續配置。
配置中斷序列:
1.配置順序正常開始。
2.選擇器件,將RDWR_B引腳拉高,同步到CCLK(CSI_B置為低電平)。
3.如果RDWR_B保持設置為讀控制(邏輯高電平),FPGA會將狀態字驅動到數據引腳上。
4. ABORT持續四個時鍾周期,並更新狀態。
回讀中斷序列:
1.回讀序列正常開始。
2.當器件被選中時,將RDWR_B引腳拉低至CCLK同步(CSI_B置為低電平)。
3.當CSI_B被置為無效時,ABORT結束。
注:回讀期間的ABORT后面沒有狀態字,因為RDWR_B信號被設置為寫控制(D 引腳是輸入)。
中斷狀態字:
在配置中斷下,器件驅動狀態字到D[4:7]引腳;其他引腳保持為高。
在最后一個周期之后,可以重新加載同步字以建立數據對齊。
ABORT后有兩種方法可以恢復配置或回讀:
•ABORT完成后,設備可以重新同步。
•可以通過任意時間將PROGRAM_B置為低電平來復位器件。
要重新同步設備,必須取消置位CSI_B然后再重新置位。 通過發送ABORT發生時正在進行的最后一個配置或回讀數據包,可以恢復配置或回讀。 或者,可以從頭重新開始配置或回讀。
*Master SPI Configuration Mode
主SPI配置模式允許使用低引腳數,工業標准SPI閃存器件進行比特流存儲。 FPGA支持直接連接SPI閃存器件的事實上標准的四引腳接口,用於讀取存儲的比特流。
7系列FPGA主SPI配置模式 ,可以從支持x2和x4快速輸出讀操作的SPI器件讀取, 這些輸出模式比標准的1位SPI接口成比例地快。 此外,負邊沿時鍾模式可用於更好地利用整個時鍾周期並允許更高的配置速度。 還支持超過128 Mb的SPI閃存密度,需要32位尋址。
SPI x1/x2 連接是相同的,因為x2模式使用D00_MOSI引腳作為雙用途數據輸入/輸出引腳。
DOUT應連接到下游FPGA的DIN,以實現菊花鏈SPI x1配置模式。 x2或x4 SPI模式不支持菊花鏈。
對於從閃存到FPGA的數據路徑,應考慮串聯電阻,以最大限度地減少過沖。 可以通過仿真確定適當的電阻值。
*Master BPI Configuration Interface
7系列FPGA主BPI配置模式 ,支持使用行業標准並行NOR(BPI)閃存器件進行比特流存儲。 FPGA支持直接連接BPI閃存的地址,數據和控制信號,以提取存儲的比特流。
主BPI配置模式有兩種BPI閃存讀取模式:異步和同步。 與其他直接配置模式相比,使用BPI flash同步讀取模式可以實現更快的配置時間。 此外,多達29個地址線可以訪問更寬密度范圍的並行NOR閃存。
默認情況下,7系列FPGA使用BPI閃存的異步模式讀取比特流數據 . FPGA從給定的起始地址驅動地址總線,BPI閃存發送回比特流數據。 默認起始地址為地址0.可以在MultiBoot重新配置過程中顯式設置起始地址。 在異步讀取模式下,支持總線寬度x8和x16 自動檢測 。
在主BPI配置模式下,7系列FPGA默認使用BPI閃存異步讀取模式來讀取比特流數據。上電后,當FPGA的INIT_B輸出變為高電平時,模式引腳M [2:0]被采樣。此時必須將模式引腳定義為有效邏輯電平(主BPI配置模式M [2:0] = 010)。在整個FPGA配置中,PUDC_B引腳必須保持恆定的邏輯電平。
確定主BPI配置模式后,FPGA驅動閃存控制信號(FWE_B高,FOE_B低和FCS_B低)。盡管CCLK輸出未連接到用於BPI閃存異步讀取模式的BPI閃存器件,但FPGA在CCLK的上升沿之后輸出地址,並且數據仍在CCLK的下一個上升沿采樣。與BPI相關的時序參數使用CCLK引腳作為參考。在主BPI模式下,地址從0開始並遞增1,直到DONE引腳置為有效。如果地址達到最大值(29'h1FFFFFFF)且未完成配置(DONE未置位),則狀態寄存器中會出現錯誤標志,並開始進行回退重配置。 7系列FPGA BPI模式還支持異步頁面模式讀取,以允許增加CCLK頻率。
1.INIT_B在FPGA內部初始化過程結束時釋放。 外部電阻將INIT_B拉高。 在INIT_B的上升沿,FPGA對其M [2:0]引腳進行采樣以確定配置模式。
2.在從M [2:0]引腳確定主BPI配置模式后,FPGA驅動FWE_B高電平,FOE_B低電平和FCS_B低電平。
3.對於主模式,FPGA在INIT_B的上升沿之后保持TICCK延遲再驅動CCLK。
4. FPGA通過其A [n:00]引腳驅動初始地址(A00),並保持初始地址至少10個CCLK周期。 對於上電配置,初始地址為0x00000000。 對於MultiBoot觸發的配置,地址可以不同。
reference: XAPP587
*JTAG Interface
通過四引腳JTAG接口,可以使用Xilinx工具和Xilinx電纜直接從處理器或CPLD客戶特定設計或使用第三方邊界掃描工具配置7系列FPGA。 JTAG特定模式設置為(M [2:0] = 101)。 Xilinx工具使用JTAG接口,包括ISE Design Suite中的ISE和ChipScope™Pro工具,以及Vivado Design Suite工具。盡管JTAG命令優先於模式設置,但建議使用M [2:0]選項來啟用JTAG模式和操作,而不會與其他配置模式發生沖突。