Spartan6芯片配置模式詳解(轉)
1. 配置概述
Spartan6系列FPGA通過把應用程序數據導入芯片內部存儲器完成芯片的配置。Spart-6 FPGA可以自己從外部非易失性存儲器導入編程數據,或者通過外界的微處理器、DSP等對其進行編程。對以上任何一種情況,都有串行配置和並行配置之分,串行配置可以減少芯片對引腳的要求,並行配置對8bit/16bit Flash或者微處理器來說更合適。
因為Xilinx的FPGA器件的配置數據存儲在CMOS 配置鎖存器內(CCL),因此Spartan6 FPGA器件上電後必須重新配置。Spartan6器件有多種配置模式,包括:
JTAG配置模式
. Master Serial/SPI配置模式(X1,X2,X4)
. Slave Serial配置模式
. Master SelectMAP/BPI配置模式(X8,X16)
. Slave SelectMAP配置模式(X8,X16)
Spartan6系列FPGA的配置模式由引腳M[0:1]的狀態決定(詳細介紹見Spartan6系列之器件引腳功能詳述),在主配置模式中,CCLK默認來自與內部的振蕩器,也可以來自外部的GCLK0/USERCCLK.,the BitGen -g ConfigRate選項可以設置內部時鐘的振蕩頻率,默認頻率為2MHZ;無論M[0:1]狀態如何,JTAG配置始終可用。
對一個FPGA系統來說,可以有多種配置模式,但往往只有一種配置模式最適合自己的目標系統,應該要進行慎重的選擇。當然,FPGA可以重新裝載多個鏡像文件,因此可以為1片FPGA提供多個配置文件,典型的應用為:當FPGA上電時,裝載一個自檢的鏡像文件,完成自檢後重新裝載最終的應用程序鏡像文件。這種方法可大大提高FPGA的使用效率。
因為FPGA的外部存儲器可以存儲多個鏡像文件,因此可以通過FPGA正在使用(已裝載的鏡像)更新外部存儲器內容,實現遠程鏡像更新升級。
1.1. 主模式配置(master mode)
由FPGA自身將外部存儲器的配置數據裝載進內部的模式稱為主模式配置;主配置模式的各種連接方式如下圖1所示,左側為串行配置連接方式,右側為並行配置連接方式。
圖 1 主配置模式連接方式匯總
1.2. 從模式配置(slave mode)
由外部器件(主要指處理器)對FPGA進行配置的模式成為從模式;從配置模式的各種連接方式如下圖1所示,左側為串行配置連接方式,右側為並行配置連接方式。
圖 2 從配置模式連接方式匯總
2. 具體配置模式詳解
Spartan-6系列FPGA的配置模式由模式控制引腳決定,具體情況如表1所示。
表格 1 Spartan-6 FPGA配置模式
2.1. JTAG配置模式
在任何情況下,只要FPGA上電,就可以使用JTAG模式。
2.2. Serial配置模式
在serial配置模式中,FPGA在每個CCLK周期載入1bit配置數據。
圖 3 Serial Configuration時序圖
2.2.1. Master Serial配置模式
在配置完成之前,done信號為0,將在整個配置過程中片選platform Flash;program_B是在配置FPGA之前對FPGA進行異步復位;由時序圖可以看出,若沒有CRC錯誤,FPGA的INIT_B是作為輸出始終將platform Flash的OE置高。
圖 4 Master Serial Mode 配置電路圖
2.2.2. Slave Serial配置模式
對FPGA的異步復位(PROGRAM_B)既可以由外部器件如按鈕產生,也可以由CPLD或microprocessor產生;數據及時鐘信號均由CPLD等產生;
圖 5 Slave Serial 配置模式
2.3. SelectMAP配置模式
SelectMAP配置接口提供了8/16bit雙向數據接口,即可用於對FPGA的配置,也可用於對FPGA配置數據的回讀。在SelectMAP模式中有多種配置思路,例舉如下:
. 單FPGA的master SelectMAP配置
. 單FPGA的slave SelectMAP配置
. 多個FPGA呈菊花鏈連接形式以SelectMAP總線配置不同image
. 多個FPGA呈並列一組形式以SelectMAP總線配置同一個image
表格 2 SelectMap接口中需特別說明的接口信號
圖 6 SelectMap配置接口
SelectMap配置模式有多種時序,因控制信號的不同而不同,主要有三種:連續的SelectMap配置模式數據載入時序、非連續數據總線可控的SelectMap配置模式數據載入時序、非連續時鐘可控的SelectMap配置模式數據載入時序。數據總線寬帶可以是8/16bit寬,數據寬度取決於配置啟動階段對數據總線采樣的結果,在啟動階段,數據總線會輸出特殊的標誌數據。
圖 7 連續的SelectMap配置模式數據載入時序
圖 8 非連續數據總線可控的SelectMap配置模式數據載入時序
圖 9 非連續時鐘可控的SelectMap配置模式數據載入時序
2.3.1. 單FPGA的Master SelectMap配置模式
在主模式下,CSI_B和EDWR_B接地,使能了SelectMap的數據線並使數據線的方向為輸入;因為是單FPGA,所以不需要用到CSO_B,浮置即可。
圖 10 單FPGA的主SelectMap配置模式
2.3.2. 單FPGA的Slave SelectMap配置模式
當使用CPLD/Microprocessor來配置FPGA時,即可使用master SelectMap模式也可使用slave SelectMap模式,但優先使用Slave SelectMap配置模式。當CPLD/Microprocessor的SELECT等於0時,將使能FPGA的SelectMap配置模式數據總線;當CPLD/Microprocessor的READ/WRITE為0時,FPGA的SelectMap配置模式數據總線方向為輸入,這時可以將配置數據輸入到FPGA內部。
圖 11 單FPGA的從SelectMap配置模式
2.4. SPI配置模式
SPI配置模式只能工作於主模式,SPI接口允許FPGA把標準的工業SPI Flash作為配置數據存儲介質。需要註意的是,在FPGA呈菊花鏈連接模式中,FPGA的SPI模式配置只能選擇SPIX1方式,不能選擇SPIX2或SPIX4模式。要使能FPGA的SPIX4的配置模式,需要在ise的BitGen選項裏增加“-g: spi_buswidth:4”。
圖 12 Spartan-6 FPGA SPI配置接口
圖 13 Spartan-6 FPGA SPI配置接口電路圖
不同數據線傳輸模式根據SPI總線每次傳輸的命令區分,Single_Read的命令操作碼:0x03或0xE8;Dual_Read的命令操作碼:0x3B;Quad_Read的命令操作碼:0x6B。
圖 14 SPI總線Single_Read時序
圖 15 SPI總線Dual_Read時序
圖 16 SPI總線Quad_Read時序
2.5. BPI配置接口
BPI:Byte-Wide Peripheral Interface,字節寬度外設接口。FPGA可以從一個工業標準的並行NOR Flash讀取配置數據。Spartan-6 FPGA最高支持1Gb的NOR Flash,也就是說地址線最高可達26根,但是並不是每種Spartan-6 FPGA都支持BPI配置或者26位的地址線的,具體情況例舉如下:
. MCB-M1(Bank1的存儲器控制模塊)可以用作BPI配置接口,但是,用戶只能選擇將MCB_M1用作存儲器控制接口或者BPI之一,不能同時作為兩種接口使用。
. 6SLX4 、6SLX25/T FPGA不支持BPI配置接口。
. TQG144 和 CPG196封裝的FPGA不支持BPI配置接口。
. CSG225封裝中BPI配置地址線A22、A23不可用。
圖 17 BPI配置接口
表格 3 BPI配置中特殊引腳說明
圖 18 BPI配置總線電路連接圖
圖 19 BPI配置總線時序圖
Spartan6芯片配置模式詳解(轉)