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

摘  要: 為了高效正確配置Altera Cyclone IV系列FPGA,,詳細(xì)研究了該系列FPGA配置的引腳,、方式、原理圖,、過(guò)程,、時(shí)序和數(shù)據(jù)格式等,并比較了各配置方式,。同時(shí),,通過(guò)一個(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ī)訪問(wèn)存儲(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)部有無(wú)配置數(shù)據(jù),,而其配置數(shù)據(jù)被載入其中是通過(guò)編程技術(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配置失敗,,它就無(wú)法啟動(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è)置的電平值無(wú)關(guān),,其他的配置方式都必須通過(guò)設(shè)置MSEL的電平值來(lái)確定。
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。
?。?)配置使能引腳——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,。其為控制配置過(guò)程的輸入引腳,,其從高電平到低電平的轉(zhuǎn)換將復(fù)位FPGA;而從低電平到高電平的轉(zhuǎn)換將啟動(dòng)芯片配置,。
?。?)配置狀態(tài)引腳——nSTATUS。其為雙向開(kāi)漏引腳,,其上電時(shí)為低電平,,當(dāng)控制引腳由低變高時(shí),其變?yōu)楦唠娖綇亩M(jìn)入配置階段。在配置過(guò)程中一旦其由高電平轉(zhuǎn)換到低電平就表示配置出錯(cuò),,此時(shí)需要重新配置FPGA,。
 (6)配置完成狀態(tài)引腳——CONF_DONE,。其為雙向開(kāi)漏引腳,,配置完成狀態(tài)輸出引腳,高電平有效,。在配置前和配置期間,,F(xiàn)PGA將其驅(qū)動(dòng)為低電平。當(dāng)所有配置數(shù)據(jù)被無(wú)誤接收且初始化周期開(kāi)始后,,F(xiàn)PGA將其置為三態(tài),,因?yàn)槠湫盘?hào)線上有上拉電阻存在,所以其又被上拉為高電平,,此時(shí)表示配置成功,。
 (7)配置時(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í)鐘源通過(guò)芯片上的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種方式,。方式一,,通過(guò)JTAG接口在Nios II中利用EPCS控制器實(shí)現(xiàn)對(duì)EPCS的編程,此時(shí),,最終編程數(shù)據(jù)格式為原始編程數(shù)據(jù)(rpd)格式,;方式二,通過(guò)JTAG接口在Quartus II中利用串行Flash加載器SFL(Serial Flash Loader)實(shí)現(xiàn)對(duì)EPCS的編程,,此時(shí),,最終編程數(shù)據(jù)格式為JTAG間接配置(jic)格式;方式三,,通過(guò)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ù),。這種配置方式下編程閃存是通過(guò)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ù)的閃存通信無(wú)誤的情況下,,只需向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ī),,然后才能通過(guò)智能主機(jī)編程閃存,,最后在配置階段智能主機(jī)才能把閃存內(nèi)的配置數(shù)據(jù)傳輸?shù)紽PGA內(nèi),,這樣就使得配置電路變得比較復(fù)雜,,稍有不慎就會(huì)造成配置失敗,而且該配置方式必須有智能主機(jī),,這樣也就增加了配置成本,。這種配置方式下,編程閃存是通過(guò)智能主機(jī)的JTAG接口在Quartus II中利用PFL實(shí)現(xiàn)的,,此時(shí),,最終編程數(shù)據(jù)格式為pof格式。其配置原理圖如圖3所示,。

1.5 FPP配置方式
 FPP配置方式與PS配置方式類似,,只是在FPGA與智能主機(jī)連接時(shí),,用來(lái)傳輸配置數(shù)據(jù)的數(shù)據(jù)線需連接DATA[7:0],從而使得智能主機(jī)在配置階段的每一個(gè)DCLK周期向FPGA傳輸8 bit配置數(shù)據(jù),。其與PS配置方式相比,,極大縮短了配置同一器件所需的配置時(shí)間,這就更能滿足用戶對(duì)某些系統(tǒng)配置時(shí)間的要求,。這種配置方式下編程閃存也是通過(guò)智能主機(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ì)丟失,,在沒(méi)有其他配置方式的支持下,F(xiàn)PGA就會(huì)永久無(wú)法啟動(dòng),,除非通過(guò)JTAG接口再次對(duì)FPGA芯片進(jìn)行配置,,此時(shí),配置數(shù)據(jù)格式為靜態(tài)存儲(chǔ)器對(duì)象文件(sof)格式,。其配置原理圖如圖4所示,。

 

 

1.7 配置過(guò)程及配置時(shí)序
 整個(gè)配置過(guò)程為:FPGA上電后,,nCONFIG信號(hào)先置低以使芯片復(fù)位,然后再置高以啟動(dòng)芯片配置,,當(dāng)nSTATUS信號(hào)由低變高后,,芯片就進(jìn)入配置階段并開(kāi)始傳輸配置數(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通過(guò)預(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)載。