《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(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,;主動串行主動并行,;被動串行,;快速被動并行

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

1.3 AP配置方式
 Altera Cyclone IV E系列FPGA具有AP配置方式,其配置時(shí)鐘僅由FPGA內(nèi)部的晶振提供,。該配置方式下,,F(xiàn)PGA需與閃存連接的信號為:nRESET(控制閃存復(fù)位的信號)、DCLK(供給閃存的時(shí)鐘信號),、FLASH_nCE(片選閃存的信號),、nOE(控制閃存輸出的信號)、nAVD(地址有效信號),、nWE(給閃存的寫使能信號),、DATA[15..0](傳輸配置數(shù)據(jù)的信號)和PADD[23..0](地址信號)。當(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ī)在保證與存儲配置數(shù)據(jù)的閃存通信無誤的情況下,只需向FPGA提供一個(gè)DCLK信號和一個(gè)DATA0信號即可實(shí)現(xiàn)對FPGA的配置,。另外,,該DCLK信號還可以實(shí)現(xiàn)多種頻率以滿足用戶對配置時(shí)間的需求,這是該配置方式的一大亮點(diǎn),。但是,,這種配置方式需要首先配置智能主機(jī),然后才能通過智能主機(jī)編程閃存,,最后在配置階段智能主機(jī)才能把閃存內(nèi)的配置數(shù)據(jù)傳輸?shù)紽PGA內(nèi),,這樣就使得配置電路變得比較復(fù)雜,稍有不慎就會造成配置失敗,而且該配置方式必須有智能主機(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í)間,,這就更能滿足用戶對某些系統(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配置方式中最常用的方式,它連接簡單,、操作方便,,廣泛應(yīng)用于在線調(diào)試。該配置方式下,,F(xiàn)PGA只需與JTAG插頭連接測試時(shí)鐘(TCLK),、測試模式選擇(TMS)、測試數(shù)據(jù)輸入(TDI)和測試數(shù)據(jù)輸出(TDO)這4個(gè)信號即可,。若芯片只使用JTAG配置方式,,則還須把芯片的nCONFIG引腳拉高,MSEL引腳接地,,DCLK引腳和DATA0引腳根據(jù)PCB的方便接高或接低[3],。連接時(shí)須把TCLK下拉,以避免TCLK引腳上出現(xiàn)有效的上升沿而誤觸發(fā)對TMS和TDI的采樣,;須把TMS引腳上拉,,以便JTAG接口能進(jìn)入旁路狀態(tài),從而保證對FPGA的正常工作不造成任何影響,;須把TDI引腳上拉,,以便在FPGA正常工作時(shí)使JTAG接口能可靠地處于旁路狀態(tài)[4]。這種配置方式下,F(xiàn)PGA不能長期保存配置數(shù)據(jù),,一旦FPGA掉電,,其內(nèi)部的配置信息就會丟失,在沒有其他配置方式的支持下,,F(xiàn)PGA就會永久無法啟動,,除非通過JTAG接口再次對FPGA芯片進(jìn)行配置,此時(shí),,配置數(shù)據(jù)格式為靜態(tài)存儲器對象文件(sof)格式,。其配置原理圖如圖4所示。

 

 

1.7 配置過程及配置時(shí)序
 整個(gè)配置過程為:FPGA上電后,,nCONFIG信號先置低以使芯片復(fù)位,,然后再置高以啟動芯片配置,當(dāng)nSTATUS信號由低變高后,,芯片就進(jìn)入配置階段并開始傳輸配置數(shù)據(jù),;當(dāng)配置數(shù)據(jù)傳輸完成后,CONF_DONE信號變高,,標(biāo)志配置階段完成,,然后進(jìn)入初始化階段;當(dāng)INIT_DONE信號變高時(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)對配置時(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信號的電平值,。當(dāng)MSEL3信號為高電平時(shí),F(xiàn)PGA選擇AS配置方式,;當(dāng)MSEL3信號為低電平時(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)程升級的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)載,。