《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > Cyclone IV系列FPGA的配置方式及其工程應(yīng)用
Cyclone IV系列FPGA的配置方式及其工程應(yīng)用
來源:微型機(jī)與應(yīng)用2013年第19期
趙 勇1,孟李林2,李小龍1
(1.西安郵電大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710061; 2.西安郵電大學(xué) 電子工程學(xué)院,陜西 西
摘要: 為了高效正確配置Altera Cyclone IV系列FPGA,詳細(xì)研究了該系列FPGA配置的引腳、方式、原理圖、過程、時(shí)序和數(shù)據(jù)格式等,并比較了各配置方式。同時(shí),通過一個(gè)實(shí)際工程應(yīng)用表明該系列FPGA配置方式的靈活多樣性。
Abstract:
Key words :

摘  要: 為了高效正確配置Altera Cyclone IV系列FPGA,詳細(xì)研究了該系列FPGA配置的引腳、方式、原理圖、過程、時(shí)序和數(shù)據(jù)格式等,并比較了各配置方式。同時(shí),通過一個(gè)實(shí)際工程應(yīng)用表明該系列FPGA配置方式的靈活多樣性。
關(guān)鍵詞: FPGA;Cyclone IV;配置方式;JTAG;主動(dòng)串行主動(dòng)并行;被動(dòng)串行;快速被動(dòng)并行

 現(xiàn)場(chǎng)可編程門陣列FPGA(Field Programmable Gate Array)因其具有基于查找表技術(shù)、密度高、內(nèi)部可用于時(shí)序邏輯的觸發(fā)器比較多、采用靜態(tài)隨機(jī)訪問存儲(chǔ)器SRAM(Static Random Access Memory)架構(gòu)等優(yōu)良特點(diǎn)而被廣泛應(yīng)用在當(dāng)今復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì)中。FPGA能否啟動(dòng)取決于它內(nèi)部有無配置數(shù)據(jù),而其配置數(shù)據(jù)被載入其中是通過編程技術(shù)以某種配置方式實(shí)現(xiàn)的。
 編程技術(shù)有反熔絲、SRAM和Flash[1]3種形式。其中,反熔絲編程技術(shù)因其不能實(shí)現(xiàn)重配置的局限性而在當(dāng)今編程技術(shù)中逐漸被淘汰。SRAM編程技術(shù)因其配置速度快、重配置能力強(qiáng)等優(yōu)點(diǎn)而成為迄今為止在線調(diào)試最常用的配置技術(shù),但是,由于SRAM的易失性,一旦FPGA芯片掉電,其內(nèi)部的配置信息就立即全部丟失,所以為了使FPGA能啟動(dòng),就必須在FPGA每次上電時(shí)對(duì)其重新配置[2]。Flash編程技術(shù)可以長(zhǎng)期存儲(chǔ)配置數(shù)據(jù),所以即使FPGA掉電,它也可以在FPGA下次加電時(shí)根據(jù)用戶已經(jīng)設(shè)計(jì)好的邏輯配置FPGA。一旦FPGA配置失敗,它就無法啟動(dòng),在這種情況下驗(yàn)證FPGA內(nèi)部邏輯正確與否也就根本不可能實(shí)現(xiàn)。因此,研究并掌握FPGA的配置方式及其工程應(yīng)用是很有必要的。
1 Cyclone IV器件的配置方式
 Altera Cyclone IV系列器件都有聯(lián)合測(cè)試行動(dòng)組JTAG(Joint Test Action Group)配置方式;除此之外,從FPGA配置時(shí)所處的主從位置上劃分有主動(dòng)配置方式和被動(dòng)配置方式;從FPGA配置時(shí)每個(gè)配置時(shí)鐘周期所傳輸?shù)呐渲脭?shù)據(jù)位寬上又劃分有串行配置方式(1 bit)和并行配置方式(8/16 bit)。綜上所述,Altera Cyclone IV系列FPGA單獨(dú)的配置方式經(jīng)排列組合后有主動(dòng)串行AS(Active Serial)、主動(dòng)并行AP(Active Parallel)、被動(dòng)串行PS(Passive Serial)、快速被動(dòng)并行FPP(Fast Passive Parallel)和JTAG這5種配置方式。
 Altera Cyclone IV系列器件的配置方式眾多,用戶可根據(jù)需要自行選擇一種或多種配置方式,但是每次配置FPGA時(shí)只能使用一種配置方式,不可同時(shí)使用多種配置方式。其中,JTAG配置方式是配置優(yōu)先級(jí)最高、最常用、最簡(jiǎn)單的一種配置方式,而且它的選擇也與配置方式選擇引腳MSEL所設(shè)置的電平值無關(guān),其他的配置方式都必須通過設(shè)置MSEL的電平值來確定。
1.1 復(fù)用配置引腳
 除JTAG配置方式外,其他幾種配置方式都復(fù)用以下配置引腳。
 (1)配置方式選擇引腳——MSEL。MSEL的數(shù)據(jù)位寬取決于FPGA,不同型號(hào)的FPGA其MSEL的數(shù)據(jù)位寬也會(huì)有所不同,且不能被懸空。在設(shè)置MSEL信號(hào)的高低電平時(shí)還需注意器件所支持的配置電壓標(biāo)準(zhǔn)(3.3 V/3.0 V/2.5 V/1.8 V/1.5 V)和上電復(fù)位延遲時(shí)間(快速/標(biāo)準(zhǔn)兩種)[3]。例如,Cyclone IV GX50這種芯片,在AS配置方式下其MSEL[3:0]的電平值就可在3.3 V的配置電壓標(biāo)準(zhǔn)和標(biāo)準(zhǔn)上電復(fù)位延遲時(shí)間下設(shè)為1001,而在3.3 V的配置電壓標(biāo)準(zhǔn)和快速上電復(fù)位延遲時(shí)間下設(shè)為1101。
 (2)配置使能引腳——nCE。其為FPGA的配置使能引腳,低電平有效。若只有一片F(xiàn)PGA,則該引腳必須始終為低電平[3]。
?。?)級(jí)聯(lián)時(shí)配置專用引腳——nCEO。它是多片F(xiàn)PGA級(jí)聯(lián)時(shí)的專用輸出引腳,F(xiàn)PGA配置完成后使其輸出低電平,從而驅(qū)動(dòng)下一級(jí)FPGA的nCE引腳。
 (4)配置控制引腳——nCONFIG。其為控制配置過程的輸入引腳,其從高電平到低電平的轉(zhuǎn)換將復(fù)位FPGA;而從低電平到高電平的轉(zhuǎn)換將啟動(dòng)芯片配置。
 (5)配置狀態(tài)引腳——nSTATUS。其為雙向開漏引腳,其上電時(shí)為低電平,當(dāng)控制引腳由低變高時(shí),其變?yōu)楦唠娖綇亩M(jìn)入配置階段。在配置過程中一旦其由高電平轉(zhuǎn)換到低電平就表示配置出錯(cuò),此時(shí)需要重新配置FPGA。
 (6)配置完成狀態(tài)引腳——CONF_DONE。其為雙向開漏引腳,配置完成狀態(tài)輸出引腳,高電平有效。在配置前和配置期間,F(xiàn)PGA將其驅(qū)動(dòng)為低電平。當(dāng)所有配置數(shù)據(jù)被無誤接收且初始化周期開始后,F(xiàn)PGA將其置為三態(tài),因?yàn)槠湫盘?hào)線上有上拉電阻存在,所以其又被上拉為高電平,此時(shí)表示配置成功。
?。?)配置時(shí)鐘引腳——DCLK。對(duì)于被動(dòng)配置方式,F(xiàn)PGA采用外部源提供的時(shí)鐘輸入和時(shí)鐘數(shù)據(jù);對(duì)于主動(dòng)配置方式,F(xiàn)PGA為配置接口提供時(shí)序。
?。?)配置數(shù)據(jù)引腳——DATA。對(duì)于串行配置方式,使用DATA0引腳接收配置數(shù)據(jù);對(duì)于并行配置方式,使用DATA[7:0]引腳接收配置數(shù)據(jù)。
1.2 AS配置方式
 AS配置方式是Altera Cyclone IV系列FPGA配置方式中非常常用的方式,因其可由FPGA內(nèi)部的晶振提供配置時(shí)鐘,不需要外部時(shí)鐘源再額外提供配置時(shí)鐘,所以簡(jiǎn)化了配置電路,節(jié)省了配置成本。當(dāng)然,配置時(shí)鐘也可由外部時(shí)鐘源通過芯片上的CLKUSR引腳提供,只是此時(shí)輸入到該引腳的最大頻率只能為40 MHz[3]。該配置方式下,F(xiàn)PGA與可擦除可編程配置存儲(chǔ)器(EPCS)需要連接DCLK、NCSO、ASDO(主動(dòng)串行數(shù)據(jù)輸出)和DATA0這4個(gè)信號(hào)。DCLK信號(hào)給EPCS提供時(shí)鐘;NCSO信號(hào)為EPCS的片選信號(hào)(低電平有效);ASDO信號(hào)向EPCS發(fā)送讀/寫命令和地址,以及寫數(shù)據(jù);DATA0信號(hào)給FPGA傳輸配置數(shù)據(jù)。當(dāng)EPCS被選中時(shí),在FPGA的配置階段,EPCS在每一個(gè)DCLK周期向FPGA傳輸1 bit配置數(shù)據(jù)。配置結(jié)束后,這4個(gè)信號(hào)處于高阻狀態(tài)。但是,在該配置方式下,配置時(shí)鐘頻率比較低,因?yàn)楫?dāng)其由內(nèi)部晶振提供時(shí)只有20 MHz和40 MHz兩種模式,當(dāng)其由外部時(shí)鐘源提供時(shí)最大也只有40 MHz,所以當(dāng)配置數(shù)據(jù)比較大時(shí),需要的配置時(shí)間就比較多,這樣就有可能不滿足某些通信系統(tǒng)的時(shí)序要求,從而導(dǎo)致系統(tǒng)配置失敗。
 AS配置方式下對(duì)EPCS編程又細(xì)分為3種方式。方式一,通過JTAG接口在Nios II中利用EPCS控制器實(shí)現(xiàn)對(duì)EPCS的編程,此時(shí),最終編程數(shù)據(jù)格式為原始編程數(shù)據(jù)(rpd)格式;方式二,通過JTAG接口在Quartus II中利用串行Flash加載器SFL(Serial Flash Loader)實(shí)現(xiàn)對(duì)EPCS的編程,此時(shí),最終編程數(shù)據(jù)格式為JTAG間接配置(jic)格式;方式三,通過AS接口在Quartus II中直接實(shí)現(xiàn)對(duì)EPCS的編程,此時(shí),最終編程數(shù)據(jù)格式為編程對(duì)象文件(pof)格式。其中,前兩種方式只需在PCB上焊接一個(gè)JTAG接口,既可實(shí)現(xiàn)對(duì)EPCS的編程,又可實(shí)現(xiàn)對(duì)FPGA的在線配置調(diào)試;而后一種方式則需在PCB上焊接AS專用接口才可以實(shí)現(xiàn)對(duì)EPCS的編程。其配置原理圖如圖1所示。

1.3 AP配置方式
 Altera Cyclone IV E系列FPGA具有AP配置方式,其配置時(shí)鐘僅由FPGA內(nèi)部的晶振提供。該配置方式下,F(xiàn)PGA需與閃存連接的信號(hào)為:nRESET(控制閃存復(fù)位的信號(hào))、DCLK(供給閃存的時(shí)鐘信號(hào))、FLASH_nCE(片選閃存的信號(hào))、nOE(控制閃存輸出的信號(hào))、nAVD(地址有效信號(hào))、nWE(給閃存的寫使能信號(hào))、DATA[15..0](傳輸配置數(shù)據(jù)的信號(hào))和PADD[23..0](地址信號(hào))。當(dāng)選中閃存時(shí),在FPGA的配置階段,每一個(gè)DCLK周期閃存向FPGA傳輸16 bit配置數(shù)據(jù)。這種配置方式下編程閃存是通過FPGA的JTAG接口在Quartus II中利用并行Flash加載器PFL(Parallel Flash Loader)實(shí)現(xiàn)的,此時(shí)最終編程數(shù)據(jù)格式為pof格式。其配置原理圖如圖2所示。

1.4 PS配置方式
 PS配置方式是Altera Cyclone IV系列FPGA配置方式中比較常用的方式。但是,在工程應(yīng)用中若采用這種配置方式,F(xiàn)PGA需要連接一個(gè)智能主機(jī)(比如復(fù)雜可編程邏輯器件CPLD/微控制單元MCU等)以給其提供配置時(shí)鐘和配置數(shù)據(jù)。在該配置方式下,智能主機(jī)在保證與存儲(chǔ)配置數(shù)據(jù)的閃存通信無誤的情況下,只需向FPGA提供一個(gè)DCLK信號(hào)和一個(gè)DATA0信號(hào)即可實(shí)現(xiàn)對(duì)FPGA的配置。另外,該DCLK信號(hào)還可以實(shí)現(xiàn)多種頻率以滿足用戶對(duì)配置時(shí)間的需求,這是該配置方式的一大亮點(diǎn)。但是,這種配置方式需要首先配置智能主機(jī),然后才能通過智能主機(jī)編程閃存,最后在配置階段智能主機(jī)才能把閃存內(nèi)的配置數(shù)據(jù)傳輸?shù)紽PGA內(nèi),這樣就使得配置電路變得比較復(fù)雜,稍有不慎就會(huì)造成配置失敗,而且該配置方式必須有智能主機(jī),這樣也就增加了配置成本。這種配置方式下,編程閃存是通過智能主機(jī)的JTAG接口在Quartus II中利用PFL實(shí)現(xiàn)的,此時(shí),最終編程數(shù)據(jù)格式為pof格式。其配置原理圖如圖3所示。

1.5 FPP配置方式
 FPP配置方式與PS配置方式類似,只是在FPGA與智能主機(jī)連接時(shí),用來傳輸配置數(shù)據(jù)的數(shù)據(jù)線需連接DATA[7:0],從而使得智能主機(jī)在配置階段的每一個(gè)DCLK周期向FPGA傳輸8 bit配置數(shù)據(jù)。其與PS配置方式相比,極大縮短了配置同一器件所需的配置時(shí)間,這就更能滿足用戶對(duì)某些系統(tǒng)配置時(shí)間的要求。這種配置方式下編程閃存也是通過智能主機(jī)的JTAG接口在Quartus II中利用PFL實(shí)現(xiàn)的,此時(shí),最終編程數(shù)據(jù)格式也為pof格式。其配置原理圖與圖3非常相似,只是此時(shí)FPGA的配置數(shù)據(jù)總線為DATA[7:0]。
1.6 JTAG配置方式
 JTAG配置方式是Altera Cyclone IV系列FPGA配置方式中最常用的方式,它連接簡(jiǎn)單、操作方便,廣泛應(yīng)用于在線調(diào)試。該配置方式下,F(xiàn)PGA只需與JTAG插頭連接測(cè)試時(shí)鐘(TCLK)、測(cè)試模式選擇(TMS)、測(cè)試數(shù)據(jù)輸入(TDI)和測(cè)試數(shù)據(jù)輸出(TDO)這4個(gè)信號(hào)即可。若芯片只使用JTAG配置方式,則還須把芯片的nCONFIG引腳拉高,MSEL引腳接地,DCLK引腳和DATA0引腳根據(jù)PCB的方便接高或接低[3]。連接時(shí)須把TCLK下拉,以避免TCLK引腳上出現(xiàn)有效的上升沿而誤觸發(fā)對(duì)TMS和TDI的采樣;須把TMS引腳上拉,以便JTAG接口能進(jìn)入旁路狀態(tài),從而保證對(duì)FPGA的正常工作不造成任何影響;須把TDI引腳上拉,以便在FPGA正常工作時(shí)使JTAG接口能可靠地處于旁路狀態(tài)[4]。這種配置方式下,F(xiàn)PGA不能長(zhǎng)期保存配置數(shù)據(jù),一旦FPGA掉電,其內(nèi)部的配置信息就會(huì)丟失,在沒有其他配置方式的支持下,F(xiàn)PGA就會(huì)永久無法啟動(dòng),除非通過JTAG接口再次對(duì)FPGA芯片進(jìn)行配置,此時(shí),配置數(shù)據(jù)格式為靜態(tài)存儲(chǔ)器對(duì)象文件(sof)格式。其配置原理圖如圖4所示。

 

 

1.7 配置過程及配置時(shí)序
 整個(gè)配置過程為:FPGA上電后,nCONFIG信號(hào)先置低以使芯片復(fù)位,然后再置高以啟動(dòng)芯片配置,當(dāng)nSTATUS信號(hào)由低變高后,芯片就進(jìn)入配置階段并開始傳輸配置數(shù)據(jù);當(dāng)配置數(shù)據(jù)傳輸完成后,CONF_DONE信號(hào)變高,標(biāo)志配置階段完成,然后進(jìn)入初始化階段;當(dāng)INIT_DONE信號(hào)變高時(shí),標(biāo)志初始化階段完成,接著進(jìn)入用戶模式。配置時(shí)序如圖5所示。

2 Cyclone IV系列在工程中的配置應(yīng)用
 圖6為基于Nios II處理器的數(shù)據(jù)加密卡系統(tǒng)的配置電路原理圖。Nios II處理器為Altera公司FPGA的軟核,是該系統(tǒng)的控制核心。這里采用了JTAG、AS和FPP 3種配置方式的混合體。之所以有JTAG配置方式是因?yàn)樗阌谠谙到y(tǒng)編程和調(diào)試,而有FPP配置方式是為滿足系統(tǒng)對(duì)配置時(shí)間的需求,以提供可靠的保障。當(dāng)系統(tǒng)采用AS配置方式時(shí),配置數(shù)據(jù)從EPCS中讀取;當(dāng)系統(tǒng)采用FPP配置方式時(shí),配置數(shù)據(jù)從閃存中讀取。FPGA在系統(tǒng)上電后實(shí)際采用哪一種配置方式是由配置方式控制器決定的[5]。該系統(tǒng)采用Altera的EPM570(MAX II系列)CPLD作為配置方式控制器。FPGA通過預(yù)先編程在MAX II內(nèi)的配置方式選擇控制電路選擇上電后實(shí)際采用的配置方式。本次設(shè)計(jì)配置方式選擇的依據(jù)是輸入到MAX II內(nèi)的MSEL3信號(hào)的電平值。當(dāng)MSEL3信號(hào)為高電平時(shí),F(xiàn)PGA選擇AS配置方式;當(dāng)MSEL3信號(hào)為低電平時(shí),F(xiàn)PGA選擇FPP配置方式。

 綜上所述,Altera Cyclone IV系列FPGA的配置方式靈活多變,用戶可在具體的工程中根據(jù)實(shí)際需要選用合適的配置方式。當(dāng)今,隨著數(shù)字集成電路的發(fā)展,F(xiàn)PGA已成為復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì)的主流之一,因此,掌握FPGA的配置方式及其工程應(yīng)用是當(dāng)代硬件工程師應(yīng)具備的基本功。
參考文獻(xiàn)
[1] 叢文,李新紅.FPGA配置及Cyclone系列PS模式的工程應(yīng)用[J].北京電子科技學(xué)院學(xué)報(bào),2006(4):70-73.
[2] 張立哲,劉麗靜.適應(yīng)遠(yuǎn)程升級(jí)的FPGA配置方法[J].計(jì)算機(jī)與網(wǎng)絡(luò),2011(14):56-59.
[3] Altera Corporation. Cyclone IV device handbook, volume1[EB/OL]. http://www.altera.com/literature/hb/cyclone-iv/cyclone4-handbook.pdf.[2013.3.11]
[4] 王劍宇,蘇穎.高速電路設(shè)計(jì)實(shí)踐[M].北京:電子工業(yè)出版社,2012.
[5] 張小平,趙不賄.Altera新型FPGA器件的配置方式[J].微處理機(jī),2006(4):93-95.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。