引言
可重構(gòu)體系結(jié)構(gòu)已經(jīng)成為FPGA系統(tǒng)開發(fā)的研究熱點,并已有許多令人矚目的研究成果及產(chǎn)品應(yīng)用。FPGA可重構(gòu)的應(yīng)用為用戶提供了方便的系統(tǒng)升級模式,同時也實現(xiàn)了基于相同硬件系統(tǒng)的不同工作模式功能。在當(dāng)今快速發(fā)展的市場環(huán)境條件下,產(chǎn)品是否便于現(xiàn)場升級,是否便于靈活使用無疑是產(chǎn)品能否進(jìn)入市場的關(guān)鍵因素,F(xiàn)PGA的可重構(gòu)設(shè)計顯得尤為重要。
目前,很多可重構(gòu)的設(shè)計方式都采用單片機(jī)、CPLD等器件直接對FPGA器件進(jìn)行編程配置,從而實現(xiàn)系統(tǒng)工作模式的可重構(gòu)。本設(shè)計則通過開發(fā)CPLD先對FPGA的配置芯片EPCS進(jìn)行編程配置,然后再由FPGA從EPCS配置芯片下載配置程序來實現(xiàn)可重構(gòu),并通過用戶界面的簡單操作來完成FPGA的工作方式重構(gòu),這種可重構(gòu)方式結(jié)構(gòu)簡單,配置靈活,用戶操作更加方便。本文首先介紹了FPGA常用的配置方式,然后詳細(xì)闡述了基于對EPCS配置芯片在線編程的可重構(gòu)設(shè)計方案。
1 FPGA的常用配置方式
FPGA器件有三類常用的配置下載方式。其中主動配置方式(AS)是由FPGA器件引導(dǎo)配置操作過程。它控制著外部存儲器和初始化過程,可使用Altera串行配置器件來完成。期間FPGA器件處于主動地位,配置器件處于從屬地位。配置數(shù)據(jù)通過DATA0引腳送入FPGA。配置數(shù)據(jù)被同步在DCLK輸入上,1個時鐘周期傳送1位數(shù)據(jù)。
被動配置方式(PS)則是由外部計算機(jī)或控制器控制配置過程。在PS配置期間,配置數(shù)據(jù)從外部儲存部件通過DATA0引腳送入FPGA。配置數(shù)據(jù)在DCLK上升沿鎖存,1個時鐘周期傳送1位數(shù)據(jù)。
JTAG配置方式中的JTAG接口是一個業(yè)界標(biāo)準(zhǔn),主要用于芯片測試等功能,它使用IEEE Std1149.1聯(lián)合邊界掃描接口引腳,支持JAM STAPL標(biāo)準(zhǔn),可以使用Altera下載電纜或主控器來完成。FPGA在正常工作時,它的配置數(shù)據(jù)存儲在SRAM中,關(guān)電后數(shù)據(jù)會消失,再次加電時必須重新下載配置程序。實驗中通常用計算機(jī)或控制器進(jìn)行調(diào)試,因此,可以使用PS。而在實用系統(tǒng)中,多數(shù)情況下必須由FPGA主動引導(dǎo)配置操作過程,這時,F(xiàn)PGA將主動從外圍專用存儲芯片中獲得配置數(shù)據(jù),而此芯片中的FPGA配置信息則用普通編程器將設(shè)計所得的pof格式文件燒錄進(jìn)去。
在做FPGA實驗板時,通常采用AS+JTAG方式,這樣可以用JTAG方式進(jìn)行調(diào)試,而最后程序已經(jīng)調(diào)試無誤后,再用AS模式把程序燒到配置芯片中,這樣操作有一個明顯的優(yōu)點,就是在AS模式不能下載的時候,可以利用Quartus自帶的工具生成JTAG模式下可以利用的文件來驗證配置芯片是否工作正常。
2 對EPCS在線編程的FPGA可重構(gòu)配置
2.1 FPGA可重構(gòu)簡介
可重構(gòu)體系結(jié)構(gòu)指能夠利用可重用的硬件資源,根據(jù)不同的應(yīng)用要求,靈活改變自身的體系結(jié)構(gòu),以便為每個特定的應(yīng)用需求提供與之相匹配的體系結(jié)構(gòu)??芍貥?gòu)電路的設(shè)計可利用FPGA的可重配置特性。所謂可重配置,就是基于SRAM的FPGA在掉電后配置數(shù)據(jù)會自動丟失,再次上電后必須重新配置FPGA,F(xiàn)PGA才能正常工作。這樣可以利用有限的硬件資源完成多種邏輯功能,這就是采用基于SRAM工藝的FPGA的可重構(gòu)系統(tǒng)的可重構(gòu)電路設(shè)計原理。
設(shè)計時,可以通過開發(fā)單片機(jī)或CPLD器件來控制FPGA配置不同的邏輯功能以實現(xiàn)重構(gòu)系統(tǒng)。FPGA有一個專用的配置引腳nCONFIG,在FPGA正常工作過程中,如果此引腳上加一個低電平脈沖,那么,當(dāng)FPGA檢測到其上升沿后,F(xiàn)PAG將自動清除其內(nèi)部的配置存儲器,并進(jìn)行重新配置,這樣,F(xiàn)PGA才能工作。利用這一特性,設(shè)計時便可通過用戶界面操作在FPGA的nCONFIG引腳上加一個低電平脈沖,隨后發(fā)送數(shù)據(jù),從而完成對FPGA的重新配置。
本設(shè)計是通過DSP處理器來接收PC主機(jī)的FPGA配置數(shù)據(jù)流,并開發(fā)CPLD器件以實現(xiàn)控制邏輯,最終把所需的FPGA配置數(shù)據(jù)流存儲到支持AS配置模式的EPCS配置芯片中,并實現(xiàn)FPGA配置數(shù)據(jù)流的更新,從而達(dá)到FPGA的重新配置,實現(xiàn)整個系統(tǒng)的可重構(gòu)。其可重構(gòu)電路由DSP與CPLD串行通訊電路、CPLD讀寫EPCS配置芯片電路和EPCS配置FPGA電路組成。
2.2 EPCS配置器件
FPGA的串行配置芯片主要包括EPCS1,EPCS4,EPCS16,EPCS64,EPCS128等。它們的主要區(qū)別是容量不同,分別為1 M,4 M,16 M,64 M,128 M Bits的容量,可配置的FPGA器件也有所不同,用戶可根據(jù)不同需求來選擇。EPCS配置芯片的擦除或編程次數(shù)可以達(dá)到十萬次左右,一般情況下足以滿足用戶需求。EPCS器件電平的選擇包括3.3 V、2.5 V、1.8 V、1.5 V,主要可參考對應(yīng)的FPGA所用I/O bank的VCCIO引腳電平的選擇。
EPCS芯片的內(nèi)部結(jié)構(gòu)框圖如圖1所示,EPCS配置器件與所配置的FPGA器件的連接引腳有時鐘輸入管腳DCLK??蔀榇袛?shù)據(jù)的傳送提供時鐘,一般由FPGA發(fā)送;其次是串行數(shù)據(jù)輸出管腳DATA,用于向FPGA傳送配置數(shù)據(jù);第三是主動串行數(shù)據(jù)輸入管腳ASDI,負(fù)責(zé)接收來自FPGA的不同字符串以實現(xiàn)對EPCS的讀寫控制;另外,還有片選信號nCS。
上位機(jī)通過下載線用Quartus軟件工具對EPCS配置芯片進(jìn)行配置程序的燒寫操作,其配置文件必須為pof文件格式。在所設(shè)計的系統(tǒng)文件編譯完成后,Quartus軟件就可以生成燒寫所需的pof格式文件。
2.3 可重構(gòu)系統(tǒng)設(shè)計
本設(shè)計主要是通過DSP的串口向CPLD器件發(fā)送控制命令以及要進(jìn)行配置的數(shù)據(jù)包,CPLD解析命令后再執(zhí)行相應(yīng)的操作,以完成EPCS配置芯片所需的下載時序及配置數(shù)據(jù)。當(dāng)EPCS配置芯片的數(shù)據(jù)下載完成后,再進(jìn)行FPGA從配置芯片下載新的系統(tǒng)配置程序過程。一般情況下,在系統(tǒng)上電后,F(xiàn)PGA都要馬上從EPCS配置芯片中下載配置文件。在對EPCS配置芯片進(jìn)行控制時,首先要讓FPGA釋放對EPCS配置芯片的控制,而且,在對EPCS配置芯片寫數(shù)據(jù)的操作完成后,又要將控制權(quán)交與FPGA,以便FPGA能夠下載最后一次完成的配置程序。本系統(tǒng)的可重構(gòu)原理圖如圖2所示。
FPGA可重構(gòu)系統(tǒng)中,DSP通過一個串口與CPLD進(jìn)行通信,串口由數(shù)據(jù)信號線BDX、幀信號線BFSX以及時鐘信號線BCLKX組成,所有的控制命令和程序數(shù)據(jù)都是通過這三條信號來傳送的。FPGA器件的CONF_DONE信號線、nSTATUS信號線和nCONFIG信號線均需要用大小為10kΩ的電阻上拉,而nCE信號線則需用10kΩ的下拉電阻。CPLD器件通過nCONFIG信號線和nCE信號線對EPCS配置芯片的控制權(quán)進(jìn)行控制或釋放。當(dāng)系統(tǒng)上電后,CPLD器件首先對EPCS配置芯片表現(xiàn)為釋放狀態(tài),而FPGA則執(zhí)行EPCS配置芯片的數(shù)據(jù)讀取操作,即FPGA的配置過程是:FPGA通過nCSO管腳置EPCS配置芯片的nCS信號線為低電平,并通過ASDO管腳向EPCS發(fā)送控制命令和地址,然后在DCLK的上升沿,由配置芯片通過DATA0信號線將配置程序和數(shù)據(jù)發(fā)送到FPGA,在程序發(fā)送完畢以后,CONF_DONE由低電平變?yōu)楦唠娖?,隨后進(jìn)行FPGA初始化并進(jìn)入工作狀態(tài)。
當(dāng)需要進(jìn)行系統(tǒng)重構(gòu)時,可由上位機(jī)向DSP器件發(fā)送控制命令以進(jìn)行系統(tǒng)的重構(gòu)操作。系統(tǒng)重構(gòu)的流程圖如圖3所示,整個過程包括以下幾個步驟:
(1)上位機(jī)發(fā)送重構(gòu)命令后,由DSP通過串口向CPLD器件發(fā)送控制選通命令字符串,命令經(jīng)CPLD器件解析后將nCONFIG信號線置為低電平,并將nCE信號線置為高電平,從而取得對EPCS配置器件的nCS、DCLK、ASDI、DATA管腳的掌控權(quán)。此時,F(xiàn)PGA可釋放對EPCS的掌控權(quán),但不讀取EPCS的配置程序數(shù)據(jù)。
(2)主機(jī)通過儀器接口向DSP器件發(fā)送所需要的重構(gòu)數(shù)據(jù),并存儲在DSP器件的數(shù)據(jù)存儲區(qū)內(nèi)。經(jīng)實驗分析,Quartus軟件生成的pof格式文件數(shù)據(jù)并不能直接寫入EPCS配置芯片,而是需要進(jìn)行一定方式的格式轉(zhuǎn)換,然后才能重新組合成需要下載到EPCS配置芯片的數(shù)據(jù)流。所以,需要在DSP內(nèi)做一步數(shù)據(jù)轉(zhuǎn)換的操作。
(3)在對EPCS配置芯片進(jìn)行數(shù)據(jù)寫入以前,先要將其內(nèi)部的原有數(shù)據(jù)擦除掉。所以,這一步的任務(wù)是向EPCS配置芯片發(fā)送控制命令,并打開寫使能,隨后發(fā)送擦除命令,將EPCS原有數(shù)據(jù)擦除。要注意的是,擦除時間必須大于3 s,否則不能完成擦除操作。
(4)為了確認(rèn)擦除操作是否已操作成功,可以執(zhí)行一次讀狀態(tài)控制命令。讀狀態(tài)命令也需要先打開寫使能,再發(fā)送讀狀態(tài)命令。如果擦除過程正在進(jìn)行,則DATA信號線上會返回0000 0001的數(shù)據(jù),擦除操作完成后,DATA信號線上將返回0000 0000的數(shù)據(jù),此時便可以進(jìn)行下一步的工作。
(5)當(dāng)確認(rèn)擦除操作完成后,就可以進(jìn)行EPCS配置芯片的數(shù)據(jù)寫入操作了。數(shù)據(jù)的寫入需要按幀依次寫入到對應(yīng)的存儲地址,數(shù)據(jù)存儲的首地址為0000 0000。
(6)所需的配置數(shù)據(jù)流發(fā)送完畢后,可發(fā)送控制命令以使CPLD器件釋放對EPCS配置芯片的控制權(quán),即置nCS、DCLK、ASDI、DATA信號線為高阻狀態(tài),并將nCONFIG信號線由低電平置為高電平,nCE信號線置為由高電平置為低電平。一旦FPGA器件接手EPCS配置芯片的控制權(quán),在檢測到nCONFIG信號線的上升沿后,F(xiàn)PGA將下載EPCS配置芯片內(nèi)的數(shù)據(jù)進(jìn)行重新配置,此過程與系統(tǒng)上電時的配置過程相同。經(jīng)過上述一系列的操作,便可實現(xiàn)一次FP-GA的重構(gòu)過程。
2.4 系統(tǒng)設(shè)計特點
本文所述的FPGA可重構(gòu)設(shè)計方案可以在系統(tǒng)不關(guān)電的情況下進(jìn)行重構(gòu)過程,這樣就不會影響系統(tǒng)其它部分電路正在進(jìn)行的工作,極大地方便了用戶的實際應(yīng)用。當(dāng)一次用戶所需的配置完成后,系統(tǒng)下次上電后就會自動執(zhí)行最后一次所重構(gòu)的工作模式,不必每次上電進(jìn)行重構(gòu)工作。
3 可重構(gòu)設(shè)計的驗證
圖4所示是按照本系統(tǒng)設(shè)計的步驟要求,在數(shù)字化儀平臺上對可重構(gòu)系統(tǒng)進(jìn)行全面測試的部分重構(gòu)波形變化圖,以此完成對主控邏輯功能的FPGA器件EP1C6Q24017的功能重構(gòu)實驗驗證。
圖4中所有波形圖的上面位置顯示的均為時鐘信號波形,其中圖4 (a)所示是打開EPCS配置芯片寫使能時,發(fā)送控制字的時序圖,圖中下面位置的波形為ASDO數(shù)據(jù)線上的信號,指示寫使能控制字為“06”;圖4(b)所示是讀寫使能的狀態(tài)時序圖,圖中下面位置的波形為DATA0數(shù)據(jù)線上讀取的信號,指示狀態(tài)寄存器為“02”;圖4(c)所示是對EPCS配置芯片進(jìn)行擦除操作的時序圖,圖中下面位置的波形為ASDO數(shù)據(jù)線上的信號,指示擦除控制字為“C7”;圖4(d)所示是讀擦除操作的狀態(tài)時序圖,圖中下面位置的波形為DATA0數(shù)據(jù)線上讀取的信號,指示狀態(tài)寄存器為“03”;圖4(e)所示是對EPCS配置芯片進(jìn)行寫數(shù)據(jù)操作的時序圖,圖中下面位置的波形為ASDO數(shù)據(jù)線上的信號,指示寫數(shù)據(jù)命令為“02”;圖4(f)所示是向EPCS配置芯片傳輸數(shù)據(jù)過程的部分波形圖,圖中下面位置為ASDO數(shù)據(jù)線上的數(shù)據(jù)信號。
在滿足上述時序要求的條件下,當(dāng)EPCS配置芯片的數(shù)據(jù)寫入完成后,F(xiàn)PGA即可進(jìn)入配置文件所設(shè)計的工作模式,設(shè)計實驗結(jié)果完全符合預(yù)期的重構(gòu)目標(biāo)。經(jīng)過反復(fù)測試,該重構(gòu)方式功能正常,能穩(wěn)定地完成系統(tǒng)所設(shè)計的不同重構(gòu)工作。
4 結(jié)束語
利用文本的方法對基于EPCS在線編程的FP-GA進(jìn)行可重構(gòu)設(shè)計,其硬件電路比較簡單,成本低,同時不需要增加太多的硬件資源(比如大容量的存儲器件等),而且配置過程靈活方便,用戶只需要一個相應(yīng)的配置文件數(shù)據(jù)包,即可完成系統(tǒng)重構(gòu)功能。故此,這種FPGA的可重構(gòu)設(shè)計具備廣泛的應(yīng)用前景。
-
FPGA
+關(guān)注
關(guān)注
1643文章
21925瀏覽量
612415 -
芯片
+關(guān)注
關(guān)注
459文章
51961瀏覽量
434022 -
cpld
+關(guān)注
關(guān)注
32文章
1257瀏覽量
170729
發(fā)布評論請先 登錄
FPGA配置啟動詳解——配置文件詳解
談?wù)凙ltera FPGA的配置
NIOS II 軟核中EPCS配置芯片的存儲操作
有什么FPGA可重構(gòu)方法可以對EPCS在線編程?
如何擦除Altera FPGA的配置器件EPCS中的內(nèi)容
采用VC++程序的FPGA重配置設(shè)計方案

FPGA中配置文件的區(qū)別
EPCS flash系列芯片手冊之串行配置設(shè)備

評論