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