與CPLD不同,,FPGA是基于門陣列方式為用戶提供可編程資源的,,其內(nèi)部邏輯結(jié)構(gòu)的形成是由配置數(shù)據(jù)決定的。這些配置數(shù)據(jù)通過外部控制電路或微處理器加載到FPGA內(nèi)部的SRAM中,,由于SRAM的易失性,,每次上電時,都必須對FPGA進行重新配置,,在不掉電的情況下,,這些邏輯結(jié)構(gòu)將會始終被保持,從而完成用戶編程所要實現(xiàn)的功能,。
FPGA的配置方式分為主動式和被動式,,數(shù)據(jù)寬度有8位并行方式和串行方式兩種。在主動模式下,,F(xiàn)PGA在上電后,,自動將配置數(shù)據(jù)從相應(yīng)的外存儲器讀入到SRAM中,,實現(xiàn)內(nèi)部結(jié)構(gòu)映射;而在被動模式下,,F(xiàn)PGA則作為從屬器件,,由相應(yīng)的控制電路或微處理器提供配置所需的時序,實現(xiàn)配置數(shù)據(jù)的下載,。 1配置引腳
FPGA的配置引腳可分為兩類:專用配置引腳和非專用配置引腳,。專用配置引腳只有在配置時起作用,而非專用配置引腳在配置完成后則可以作為普通的I/O口使用,。
專用的配置引腳有:配置模式腳M2,、M1、M0,;配置時鐘CCLK,;配置邏輯異步復(fù)位PROG,啟動控制DONE及邊界掃描TDI,,TDO,,TMS,TCK,。非專用配置引腳有Din,,D0:D7,CS,,WRITE,,BUSY,INIT,。
在不同的配置模式下,,配置時鐘CCLK可由FPGA內(nèi)部產(chǎn)生,,也可以由外部控制電路提供,。
2 FPGA的配置模式
FPGA共有四種配置模式:從串模式(Slave Serial),主串模式(MasterSerial),,從并模式(Slave Farallel/S e 1 e c tMap)以及邊界掃描模式(Boundary-Scan),。具體的配置模式由模式選擇引腳M2、M1,、M0決定,。表1為不同的配置模式所對應(yīng)的M2、M1,、M0,,配置時鐘的方向以及相應(yīng)的數(shù)據(jù)位寬。
3配置過程
(1)初始化
系統(tǒng)上電后,,如果FPGA滿足以下條件:Bank2 的I/O輸出驅(qū)動電壓Vcc0_2大于lv,;器件內(nèi)部的供電電壓Vccint為2.5v,,器件便會自動進行初始化。在系統(tǒng)上電的情況下,,通過對PROG引腳置低電子,,便可以對FPGA進行重新配置。初始化過程完成后,,DONE信號將會變低,。
(2)清空配置存儲器
在完成初始化過程后,器件會將INIT信號置低電平,,同時開始清空配置存儲器,。在清空完配置存儲器后,INIT信號將會重新被置為高電平,。用戶可以通過將PROG或INIT信號(1NIT為雙向信號)置為低電平,,從而達(dá)到延長清空配置存儲器的時間,以確保存儲器被清空的目的,。
(3)加載配置數(shù)據(jù)
配置存儲器的清空完成后,,器件對配置模式腳M2、N1,、M0進行采樣,,以確定用何種方式來加載配置數(shù)據(jù)。
(4)CRC錯誤檢查
器件在加載配置數(shù)據(jù)的同時,,會根據(jù)一定的算法產(chǎn)生一個CRC值,,這個值將會和配置文件中內(nèi)置的CRC值進行比較,如果兩者不一致,,則說明加載發(fā)生錯誤,,INIT引腳將會被置低電平,加載過程被中斷,。此時若要進行重新配置,,只需將PROG置為低電平即可。
(5)START-UP
START-UP階段是FPGA由配置狀態(tài)過渡到用戶狀態(tài)的過程,。在START-UP完成后,,F(xiàn)PGA便可實現(xiàn)用戶編程的功能。在START-UP階段中,,F(xiàn)PGA會進行一下操作:
①將DONE信號置高電平,,若DONE信號沒有置高,則說明數(shù)據(jù)加載過程失??;
②在配置過程中,器件的所有I/O引腳均為三態(tài),,此時,,全局三態(tài)信號GTS置低電平,,這些I/O腳將會從三態(tài)切換到用戶設(shè)置的狀態(tài);
③全局復(fù)位信號GSR置低電平,,所有觸發(fā)器進入工作狀態(tài),;
④全局寫允許信號GWE置低電平,所有內(nèi)部RAM有效,;
整個過程共有8個時鐘周期C0-C7,。在默認(rèn)的情況下,這些操作都和配置時鐘CCLK同步,,在DONE信號置高電子之前,,GTS,GSR,,GWE都保持高電平,。
4 SelectMap并行配置模式
Virtex系列FPGA是Xilinx公司的一款高密度,大容量的現(xiàn)場可編程門陣列,,其最大容量可達(dá)100萬門,,最高工作頻率可達(dá)200M,支持多達(dá)16種I/O標(biāo)準(zhǔn),,內(nèi)置了4個BLOCKRAM,。這些特性使它在數(shù)字圖像處理,通信等領(lǐng)域得到了廣泛的應(yīng)用,。
SelectMap模式是一種8位并行配置模式,,它是Virtex系列FPGA最快的一種配置模式,其配置時鐘最高可達(dá)66MHZ,,每個配置時鐘周期內(nèi)有8位配置數(shù)據(jù)下載到FPGA內(nèi),。在對配置速度要求較高的一些應(yīng)用場合,一般使用SelectMap模式,。
SelectMap端口是一個8位雙向數(shù)據(jù)端口,,通過它實現(xiàn)對Virtex的配置。利用SelectMap對Virtex進行配置時,,共有8個數(shù)據(jù)信號D0-D7和7個控制/狀態(tài)信號,,分別為:CCLK,,PROG,,DONE,INIT,,CS,,WRITE,BUSY,。
對Virtex進行并行配置,,應(yīng)用最為廣泛的接口電路便是CPLD+并行EPROM,。
由于FPGA管腳內(nèi)部有上拉電阻,,因此,,當(dāng)管腳懸空時,便是高電平,。
CPLD所要實現(xiàn)的功能模塊包括:地 址發(fā)生器,,寫控制寄存器,,三態(tài)緩沖。 其中,,PROG為全局復(fù)位,,DONE為全局 三態(tài)控制,INIT和BUSY用來控制地址 發(fā)生器,;地址發(fā)生器的總線位寬由存儲器的容量決定,,若EPROM的容量為1MByte,則地址總線需要20位,;在配置階段,,CS和WRITE引腳必須置低電平。
對VIRTEX系列的FPGA而言,,其配置時鐘最高可達(dá)66MHZ,,但是,在一般情況下,,配置時鐘是達(dá)不到66MHZ的,,它由PROM的存儲時間(tACC)和FPGA配置數(shù)據(jù)的建立時間(tSMDCC)決定的:晶振頻率:1/(tACC+TSMDCC)。VIRTEX的TSMDCC為2.0ns,,EPROM的存取時間通常為l00ns,,在這種情況下,配置時鐘為9.6MHZ,,要遠(yuǎn)遠(yuǎn)低于66MHZ,,因此,提高配置速度關(guān)鍵是要選用存取速度快的EPROM,。
5串行菊花鏈配置方式
串行菊花鏈配置方式是指將配置數(shù)據(jù)從串行PROM順序下載到主FPGA器件和從FPGA器件中,。配置時鐘CCLK由主FPGA器件提供。
主器件將會被首先配置,,在主器件配置完成前,,其Dout引腳是沒有數(shù)據(jù)輸出的,從器件處于空閑狀態(tài),。在主器件配置完成后,,其Din,Dout便形成直通狀態(tài),配置數(shù)據(jù)通過主器件的Dout進入從器件的Din,,對從器件進行配置,。
由于菊花鏈配置方式要求只能有一個用于下載的位流文件,因此,,需要在軟件開發(fā)環(huán)境中利用PROM文件生成工具將將主器件和從器件的配置位流文件合成為一個文件,。
主器件在配置完成后,并不立即啟動,,進入工作狀態(tài),。只有菊花鏈中所有FPGA的DONE引腳都被置為高電平時,即所有的配置數(shù)據(jù)都下載到相應(yīng)的FPGA中,,各個器件才會啟動,,其各自的全局三態(tài)結(jié)束GTS、全局復(fù)位GSR,、全局寫允許GWE才會置低電平,。因此,雖然主從器件的配置是有先后順序的,,但基本上它們是同時進入工作狀態(tài)的,。 6結(jié)束語
使用并行EPROM對FPGA進行配置時,速度相對較快,,存儲容量較大,;而在一些對空間較為敏感,速度要求不太高的應(yīng)用中,,利用串行方法進行配置,,可以減小電路板的面積,同時可以簡化系統(tǒng)結(jié)構(gòu),。