配置電路
FPGA配置方式靈活多樣,,根據(jù)芯片是否能夠自己主動加載配置數(shù)據(jù)分為主模式、從模式以及JTAG模式,。典型的主模式都是加載片外非易失( 斷電不丟數(shù)據(jù)) 性存儲器中的配置比特流,,配置所需的時鐘信號( 稱為CCLK) 由FPGA內部產生,且FPGA控制整個配置過程,。從模式需要外部的主智能終端( 如處理器,、微控制器或者DSP等) 將數(shù)據(jù)下載到FPGA中,其最大的優(yōu)點就是FPGA 的配置數(shù)據(jù)可以放在系統(tǒng)的任何存儲部位,,包括:Flash,、硬盤、網(wǎng)絡,,甚至在其余處理器的運行代碼中,。JTAG 模式為調試模式,可將PC 中的比特文件流下載到FPGA中,,斷電即丟失,。此外,目前賽靈思還有基于Internet 的,、成熟的可重構邏輯技術System ACE解決方案,。
(1) 主模式
在主模式下,,F(xiàn)PGA上電后,,自動將配置數(shù)據(jù)從相應的外存儲器讀入到SRAM中,實現(xiàn)內部結構映射,;主模式根據(jù)比特流的位寬又可以分為:串行模式( 單比特流) 和并行模式( 字節(jié)寬度比特流) 兩大類,。如:主串行模式,、主SPI Flash 串行模式、內部主SPI Flash串行模式,、主BPI 并行模式以及主并行模式,,如圖5-19所示。
?。?) 從模式
在從模式下,,F(xiàn)PGA 作為從屬器件,由相應的控制電路或微處理器提供配置所需的時序,,實現(xiàn)配置數(shù)據(jù)的下載,。從模式也根據(jù)比特流的位寬不同分為串、并模式兩類,,具體包括:從串行模式,、JTAG模式和從并行模式三大類,其概要說明如圖5-20所示,。
?。?)JTAG模式
在JTAG模式中,PC和FPGA通信的時鐘為JTAG接口的TCLK,,數(shù)據(jù)直接從TDI進入FPGA,,完成相應功能的配置。
圖5-19 常用主模式下載方式示意圖
圖5-20 常用的從模式下載方式示意圖
目前,,主流的FPGA芯片都支持各類常用的主,、從配置模式以及JTAG,以減少配置電路失配性對整體系統(tǒng)的影響,。在主配置模式中,,F(xiàn)PGA自己產生時鐘,并從外部存儲器中加載配置數(shù)據(jù),,其位寬可以為單比特或者字節(jié),;在從模式中,外部的處理器通過同步串行接口,,按照比特或字節(jié)寬度將配置數(shù)據(jù)送入FPGA芯片,。此外,多片F(xiàn)PGA可以通過JTAG菊花鏈的形式共享同一塊外部存儲器,,同樣一片/ 多片F(xiàn)PGA也可以從多片外部存儲器中讀取配置數(shù)據(jù)以及用戶自定義數(shù)據(jù),。
Xilinx FPGA的常用配置模式有5 類:主串模式、從串模式,、Select MAP模式,、Desktop配置和直接SPI配置,。在從串配置中,,F(xiàn)PGA接收來自于外部PROM或其它器件的配置比特數(shù)據(jù),,在FPGA產生的時鐘CCLK的作用下完成配置,多個FPGA可以形成菊花鏈,,從同一配置源中獲取數(shù)據(jù),。Select MAP模式中配置數(shù)據(jù)是并行的,是速度最快的配置模式,。SPI配置主要在具有SPI接口的FLASH電路中使用,。下面以Spartan-3E系列芯片為例,給出各種模式的配置電路,。
5.5.2 主串模式——最常用的FPGA配置模式
1.配置單片F(xiàn)PGA
在主串模式下,,由FPGA的CCLK管腳給PROM提供工作時鐘,相應的PROM在CCLK的上升沿將數(shù)據(jù)從D0管腳送到FPGA的DIN管腳,。無論PROM芯片類型( 即使其支持并行配置),,都只利用其串行配置功能。Spartan3E系列FPGA的單片主串配置電路如圖5-21所示,。主串模式是賽靈思公司各種配置方式中最簡單,,也最常用的方式,基本所有的可編程芯片都支持主串模式,。
圖5-21 Spartan-3E主串模式配置電路
2.配置電路的關鍵點
主串配置電路最關鍵的3點就是JTAG鏈的完整性,、電源電壓的設置以及CCLK信號的考慮。只要這3步任何一個環(huán)節(jié)出現(xiàn)問題,,都不能正確配置PROM芯片,。
(1)JTAG鏈的完整性
FPGA和PROM芯片都有自身的JTAG接口電路,,所謂的JTAG鏈完整性指的是將JTAG連接器,、FPGA、PROM的TMS,、TCK連在一起,,保證從JTAG連接器TDI到其TDO之間,形成JTAG連接器的“TDI →(TDI~TDO) → (TDI~TDO) → JTAG連接器TDO”的閉合回路,,其中(TDI~TDO) 為FPGA或者PROM芯片自身的一對輸入,、輸出管腳。圖5-12中配置電路的JTAG鏈從連接器的TDI到FPGA的TDI,,再從FPGA的TDO到PROM的TDI,,最后從PROM的TDO到連接器的TDO,形成了完整的JTAG鏈,,F(xiàn)PGA芯片被稱為鏈首芯片,。也可以根據(jù)需要調換FPGA和PROM的位置,使PROM成為鏈首芯片,。
?。?) 電源適配性
如圖5-22所示,,由于FPGA和PROM要完成數(shù)據(jù)通信,二者的接口電平必須一致,,即FPGA相應分組的管腳電壓Vcco_2必須和PROM Vcco的輸入電壓大小一致,,且理想值為2.5V,這是由于FPGA的PROG_B和DONE管腳由2.5V的Vccaux供電,。此外,,由于JTAG連接器的電壓也由2.5V的Vccaux提供,因此PROM的VCCJ也必須為2.5V,。因此,,如果接口電壓和參考電壓不同,在配置階段需要將相應分組的管腳電壓和參考電壓設置為一致,;在配置完成后,,再將其切換到用戶所需的工作電壓。當然,,F(xiàn)PGA和PROM也可以自適應3.3V的I/O電平以及JTAG電平,,但需要進行一定的改動,即添加幾個外部限流電阻,,如圖5-22所示,。在主串模式下,XCFxxS系列PROM的核電壓必須為3.3V,,XCFxxP系列PROM的核電壓必須為1.8V,。
圖5-22 3.3V的JTAG配置電路示意圖
圖5-22中的RSER、RPAR這兩個電阻要特別注意,。首先,,RSER= 68Ω將流入每個輸入的電流限制到9.5mA ;其次,N= 3三個輸入的二極管導通,,
RPAR = VCCAUX min/ NIIN = 2.375V/(3*9.5mA)
=83 Ω或82 Ω ( 與標準值誤差小于5%的電阻 )
?。?)CCLK的信號完整性
CCLK信號是JTAG配置數(shù)據(jù)傳輸?shù)臅r鐘信號,其信號完整性非常關鍵,。FPGA 配置電路剛開始以最低時鐘工作,,如果沒有特別指定,將逐漸提高頻率,。CCLK信號是由FPGA內部產生的,,對于不同的芯片和電平,其最大值如表F-1所示,。
表5-1 不同PROM芯片的最大配置時鐘頻率
3.配置多片F(xiàn)PGA
多片F(xiàn)PGA的配置電路和單片的類似,,但是多片F(xiàn)PGA之間有主(Master)、從(Slave) 之分,,且需要選擇不同的配置模式,。兩片Spartan 3E系列FPGA的典型配置電路如圖5-23所示,,兩片F(xiàn)PGA存在主、從地位之分,。
圖5-23 主從模式下兩片F(xiàn)PGA的配置電路
5.5.3 SPI串行Flash配置模式
1.SPI串行配置介紹
串行Flash的特點是占用管腳比較少,作為系統(tǒng)的數(shù)據(jù)存貯非常合適,,一般都是采用串行外設接口(SPI 總線接口),。Flash 存貯器與EEPROM根本不同的特征就是EEPROM可以按字節(jié)進行數(shù)據(jù)的改寫,而Flash只能先擦除一個區(qū)間,,然后改寫其內容,。一般情況下,這個擦除區(qū)間叫做扇區(qū)(Sector),,也有部分廠家引入了頁面(Page) 的概念,。選擇Flash產品時,最小擦除區(qū)間是比較重要的指標,。在寫入Flash時,,如果寫入的數(shù)據(jù)不能正好是一個最小擦除區(qū)間的尺寸,就需要把整個區(qū)間的數(shù)據(jù)全部保存另外一個存貯空間,,擦除這個空間,,然后才能重新對這個區(qū)間改寫。大多數(shù)Flash工藝更容易實現(xiàn)較大的擦除區(qū)間,,因此較小擦除區(qū)間的Flash 其價格一般會稍貴一些,。此外,SPI是標準的4線同步串行雙向總線,,提供控制器和外設之間的串行通信數(shù)據(jù)鏈路,,廣泛應用于嵌入式設備中。
賽靈思公司的新款FPGA都支持SPI接口,。SPI總線通過4根信號線來完成主,、從之間的通信,典型的SPI系統(tǒng)中常包含一個主設備以及至少一個從設備,,在FPGA應用場合中,,F(xiàn)PGA芯片為主設備,SPI 串行FLASH為從設備,。4個SPI接口信號的名稱和功能如表5-2所示,。
表5-2 SPI接口信號列表
一個主芯片和一個從芯片的通信接口如圖5-24所示。FPGA通過SCLK控制雙方通信的時序,,在SS_n為低時,,F(xiàn)PGA通過MOSI 信號線將數(shù)據(jù)傳送到FLASH,在同一個時鐘周期中,,F(xiàn)LASH通過SOMI將數(shù)據(jù)傳輸?shù)紽PGA芯片,。無論主,、從設備,數(shù)據(jù)都是在時鐘電平跳轉時輸出,,并在下一個相反的電平跳轉沿,,送入另外一個芯片。
圖5-24 SPI接口連接示意圖
其中SCLK信號支持不同的速率,,一般常采用20MHz,。通過SPI 接口中的CPOL和CPHA這兩個比特定義了4種通信時序。其中,,CPOL信號定義了SCLK的空閑狀態(tài),,當CPOL為低時,SCLK的低電平為空閑狀態(tài),,否則其空閑狀態(tài)為高電平,;CPHA定義了數(shù)據(jù)有效的上升沿位置,當其為低時,,數(shù)據(jù)在第1 個電平跳轉沿有效,,否則數(shù)據(jù)在第2個電平跳轉沿有效。其相應的時序邏輯如圖5-25所示,。
圖5-27 CPHA為低時SPI的總線時序示意圖
圖5-28 CPHA為高時SPI的總線時序示意圖
可以通過增加片選信號SS_n的位寬來支持多個從設備,,SS_n的位寬等于從設備的個數(shù)。對于某時刻被選中的從設備和主設備而言,,其讀寫時序邏輯和圖5-29一樣,。
圖5-29 多個從芯片的連接電路圖
SPI串行FLASH作為一種新興的高性能非易失性存儲器,其有效讀寫次數(shù)高達百萬次,,不僅引腳數(shù)量少,、封裝小、容量大,,可以節(jié)約電路板空間,,還能夠降低功耗和噪聲。從功能上看,,可以用于代碼存儲以及大容量的數(shù)據(jù)和語音存儲,,對于以讀為主,僅有少量擦寫和寫入時間的應用來說,,支持分區(qū)( 多頁) 擦除和頁寫入的串行存儲是最佳方案,。
2.SPI串行FLASH配置電路
SPI串行配置模式常用于已采用了SPI串行FLASH PROM的系統(tǒng),在上電時將配置數(shù)據(jù)加載到FPGA中,,這一過程只需向SPI串行發(fā)送一個4字節(jié)的指令,,其后串行FLASH中的數(shù)據(jù)就像PROM配置方式一樣連續(xù)加載到FPGA中。一旦配置完成,SPI中的額外存儲空間還能用于其它應用目的,。
1)SPI 配置電路
雖然SPI接口是標準的4線接口,,但不同的SPI FLASH PROM芯片采用了不同的指令協(xié)議。FPGA芯片通過變量選擇信號VS[2:0] 來定義FPGA和SPI FLASH的通信方式,、FPGA的讀指令以及在有效接收數(shù)據(jù)前插入的冗余比特數(shù),。常用SPI FLASH與FPGA的有效操作配置如表5-3所示,其余的VS[2:0] 配置留有它用,。
表5-3 賽靈思芯片所支持的SPI FLASH存儲器以及配置列表
從整體上看來,,控制SPI串行閃存比較容易,只需要使用簡單的指令就能完成讀取,、擦除、編程,、寫使能/禁止以及其它功能,。所有的指令都是通過4 個SPI 引腳串行移位輸入的。
圖5-30 支持快讀寫的串行FLASH配置電路示意圖
不同型號的FPGA芯片具有數(shù)目不同的從設備片選信號,,因此所掛的串行芯片數(shù)目也就不一樣,。例如:Spartan-3E系列FPGA芯片只有1位SPI從設備片選信號,因此只能外掛一片SPI串行FLASH芯片,。在SPI串行FLASH配置模式下,,M[2:0]=3'b001。FPGA 上電后,,通過外部SPI 串行FLASH PROM完成配置,,配置時鐘信號由FPGA芯片提供時鐘信號,支持兩類業(yè)界常用的FLASH,。
圖5-30給出了Spartan3E系列FPGA支持0X0B快速讀寫指令的STMicro 25系列PROM的典型配置電路,。其中的Flash芯片需要Flash編程器來加載配置數(shù)據(jù);單片的FPGA芯片構成了完整的JTAG鏈,,僅用來測試芯片狀態(tài),,以及支持JTAG在線調試模式,與SPI配置模式?jīng)]有關系,。
從中可以看出,,SPI Flash容量大,適合于大規(guī)模設計場合,。但由于SPI配置需要專門的Flash編程器,,且操作起來比較麻煩,不適合在產品研發(fā)階段調試FPGA芯片,,因此一般還會添加JTAG鏈專門用于在線調試,。
圖5-31 Atmel SPI串行FLASH配置電路示意圖
圖5-31給出了Spartan3E系列FPGA支持SPI協(xié)議的Atmel公司“C”、“D”系列串行Flash芯片的典型配置電路。這兩個系列的FLASH芯片可以工作在很低溫度,,具有短的時鐘建立時間,。同樣,單片的FPGA芯片構成了完整的JTAG鏈,,僅用來測試芯片狀態(tài),,以及支持JTAG在線調試模式,與SPI 配置模式?jīng)]有關系,。
表5-3給出了SPI配置接口的連線說明,,每個SPI Flash PROM采用的名字略有不同,SPI Flash PROM的寫保護信號和保持控制信號在FPGA配置階段是不用的,。其中HOLD管腳在配置階段必須為高,,為了編程Flash存儲器,寫保護信號必須為高,。
5.5.4 從串配置模式
在串行模式下,,需要微處理器或微控制器等外部主機通過同步串行接口將配置數(shù)據(jù)串行寫入FPGA芯片,其模式選擇信號M[2:0]=3'b111,。典型的Spartan 3E系列FPGA單片配置電路如圖5.5.11所示,。DIN輸入管腳的串行配置數(shù)據(jù)需要在外部時鐘CCLK 信號前有足夠的建立時間。其中單片F(xiàn)PGA 芯片構成了完整的JTAG鏈,,僅用來測試芯片狀態(tài),,以及支持JTAG 在線調試模式,與從串配置模式?jīng)]有關系,。外部主機通過下拉PROG_B啟動配置并檢測INIT_B 電平,,當INIT_B 為高時,表明FPGA 做好準備,,開始接收數(shù)據(jù),。此時,主機開始提供數(shù)據(jù)和時鐘信號直到FPGA 配置完畢且DONE 管腳為高,,或者INIT_B 變低表明發(fā)生配置錯誤才停止,。整個過程需要比配置文件大小更多的時鐘周期,這是由于部分時鐘用于時序建立,,特別當FPGA 被配置為等待DCM鎖存其時鐘輸入,。
圖5-32 FPGA從串配置電路示意圖
此外,從串配置模式也可配置多片F(xiàn)PGA芯片,,典型的兩片Spartan 3E系列FPGA的從串配置電路如圖5-33所示,。所有芯片的CCLK信號都有主控設備提供,靠近主控設備的FPGA要充當橋梁的作用,,將配置數(shù)據(jù)轉發(fā)到第二個FPGA芯片,??梢钥吹讲捎脧拇渲玫暮锰幹饕谟诠?jié)省電路板面積,并使得系統(tǒng)具備更大的靈活性,。
圖5-33 多片F(xiàn)PGA從串模式配置電路
5.5.5 JTAG配置模式
1.JTAG配置電路
賽靈思公司的FPGA芯片具有IEEE 1149.1/1532協(xié)議所規(guī)定的JTAG接口,,只要FPGA上電,不論模式選擇管腳M[2:0] 的電平,,都可用采用該配置模式,。但是將模式配置管腳設置為JTAG模式,即M[2:0]=3'b101時,,F(xiàn)PGA芯片上電后或者PROG_B管腳有低脈沖出現(xiàn)后,,只能通過JTAG模式配置。JTAG模式不需要額外的掉電非易失存儲器,,因此通過其配置的比特文件在FPGA斷電后即丟失,,每次上電后都需要重新配置。由于JTAG模式已更改,,配置效率高,,是項目研發(fā)階段必不可少的配置模式。典型的Spartan 3E系列芯片的JTAG配置電路如圖5-34所示,。
圖5-34 JTAG模式配置電路示意圖
5.5.6 System ACE配置方案
隨著FPGA成為系統(tǒng)級解決方案的核心,,大型,、復雜設備常需要多片大規(guī)模的FPGA,。如果使用PROM進行配置,需要很大的PCB面積和高昂的成本,,因此很多情況下都利用微處理由從模式配置FPGA芯片,,但該配置方案容易出現(xiàn)總線競爭且延長了系統(tǒng)啟動時間。為了解決大規(guī)模FPGA的配置問題,,賽靈思公司推出了系統(tǒng)級的System ACE(Advanced ConfiguraTIon Environment) 解決方案,。
System ACE可在一個系統(tǒng)內,甚至在多個板上,,對賽靈思的所有FPGA進行配置,,使用Flash存儲卡或微硬盤保存配置數(shù)據(jù),通過System ACE控制器把數(shù)據(jù)配置到FPGA中,。目前,,System ACE有System ACE
CF(Compact Flash)、System ACE SC(Soft Controller) 以及System ACE MPM(MuTI-Package Module) 三種,。讀者需要注意的是:System ACE SC/MPM 是和System ACE CF 獨立的解決方案,。典型的ACE 接口以及系統(tǒng)組成如圖5-35 所示。
圖5-35 典型的ACE接口以及系統(tǒng)組成示意圖
1.System ACE CF解決方案
System ACE CF的核心是System ACE CF存儲設備和System ACE控制器芯片,。System ACE CF存儲設備包括賽靈思的ACE Flash卡或其它廠家的Compact Flash卡以及IBM的微硬盤,。Compact Flash卡的容量為32MB~4GB,微硬盤的容量為2GB~6GB,至少可配置數(shù)百片F(xiàn)PGA芯片,。
System ACE CF控制器提供了存儲單元和FPGA器件之間的接口,,PC和存儲器的標準JTAG接口??刂破餍酒J的配置模式也是通過邊界掃描的方式將數(shù)據(jù)配置到FPGA 鏈中,,同樣可由邊界掃描鏈的測試和編程接口來輔助進行系統(tǒng)原形的調試,其主要特點有:
- 支持賽靈思所有FPGA芯片的配置,;
- 以最小的PC板空間實現(xiàn)多達8Gb的配置 ;
- 包括高達152Mbps的配置速率,;
- 利用帶有嵌入式處理器核的FPGA進行系統(tǒng)調節(jié);
- 管理多個比特流( 全部或部分),,并按需要對其進行激活,;
- 包含處理器核初始化;
- 軟件存儲加密,;
- 可移動存儲器件,;
- 降低了定制配置系統(tǒng)的成本,支持大多數(shù) CompactFlash卡,,包括Microdrive單元,;包含內置式微處理器接口,可以直接調整FPGA配置,;釋放設計資源,。
圖5-36 System ACE CF配置電路示意圖
Compact Flash接口是ACE控制器的關鍵接口,可連接Compact Flash卡,、標準的Compact Flash模塊以及IBM微硬盤,。Compact Flash可以進行拆卸,因此對存儲內容進行修改和升級以及更換容量都非常方便,。Compact Flash接口由Compact Flash控制器和Compact Flash仲裁器兩部分組成,。由System ACE CF配置FPGA的接口電路如圖5-36所示。
2.System ACE SC解決方案
System ACE SC為用戶提供了自主性,,用戶可以自由地選擇每一部分的元件,,可將其置于電路板的任何位置,且所有的功能在一個獨立的FPGA中完成,,并不需要整合其他組件,。System ACE SC有4個主要接口:邊界掃描JTAG接口、系統(tǒng)控制接口,、Flash存儲器接口以及FPGA 接口,,如圖5-37所示。
圖5-37 System ACE SC接口示意圖
其中JTAG接口主要提供邊界掃描測試和對具有JTAG接口的Flash存儲器通信,;Flash接口主要和外邊的Flash芯片通信,,讀取存儲器內的內容以及對存儲器進行編程,;系統(tǒng)控制接口主要提供輸入時鐘、配置控制信號和配置狀態(tài)信號等,;FPGA 接口主要用于配置FPGA,,可通過從串、從并以及Selec tMAP等配置模式,。
System ACE SC和System ACE CF的主要區(qū)別在于,,System ACE SC的控制器是一個軟核邏輯,而不是芯片,,需要和設計一起下載到FPFA中,。其余區(qū)別如表5-4所列。
表5-4 System ACE CF和System ACE SC的區(qū)別
典型的System ACE SC 配置電路如圖5-38 所示,。
圖5-38 System ACE SC配置電路示意圖
3.System ACE MPM解決方案
System ACE MPM是一個整合的組件解決方案,,包括FPGA和PROM組成的配置控制組件和一個Flash存儲組件,并封裝為一個模塊,,通過盡可能少的組件來實現(xiàn)配置電路,。賽靈思公司有16M、32M 以及64M位低密度的System ACE MPM,。System ACE MPM 有4 個主要接口,,和System ACE SC 的接口一樣,其特征和功能也與System ACE SC 一樣,。二者的區(qū)別在于:System ACE MPM 封裝了整個配置模塊,,而System ACE SC 允許用戶自行配置,其接口電路如圖5-39 所示,。
圖5-39 System ACE MPM接口電路示意圖
System ACE MPM是賽靈思公司第一個支持位流壓縮的配置方案,,支持多種配置模式,,同時可多達8個FPGA鏈的從串配置模式和多達4個FPGA的Select MAP配置模式,,最大配置速率為152Mbps,同時又可最大限度地減小電路板空間和連線,。典型的System ACE MPM 配置電路如圖5-40所示,。總之,,System ACE技術簡化了大型FPGA 系統(tǒng)的配置方案,,令開發(fā)人員將精力主要集中在系統(tǒng)性能的提高和開發(fā)時間的縮短。
圖5-40 System ACE MPM配置電路示意圖
更多信息可以來這里獲取==>>電子技術應用-AET<<