1. 程式人生 > >Spartan6芯片配置模式詳解(轉)

Spartan6芯片配置模式詳解(轉)

roc gen bit png 寬度 con 讀取配置 3.2 多個

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芯片配置模式詳解(轉)