摘 要: 為了高效正確配置Altera Cyclone IV系列FPGA,詳細研究了該系列FPGA配置的引腳、方式、原理圖、過程、時序和數(shù)據格式等,并比較了各配置方式。同時,通過一個實際工程應用表明該系列FPGA配置方式的靈活多樣性。
關鍵詞: FPGA;Cyclone IV;配置方式;JTAG;主動串行;主動并行;被動串行;快速被動并行
現(xiàn)場可編程門陣列FPGA(Field Programmable Gate Array)因其具有基于查找表技術、密度高、內部可用于時序邏輯的觸發(fā)器比較多、采用靜態(tài)隨機訪問存儲器SRAM(Static Random Access Memory)架構等優(yōu)良特點而被廣泛應用在當今復雜數(shù)字系統(tǒng)設計中。FPGA能否啟動取決于它內部有無配置數(shù)據,而其配置數(shù)據被載入其中是通過編程技術以某種配置方式實現(xiàn)的。
編程技術有反熔絲、SRAM和Flash[1]3種形式。其中,反熔絲編程技術因其不能實現(xiàn)重配置的局限性而在當今編程技術中逐漸被淘汰。SRAM編程技術因其配置速度快、重配置能力強等優(yōu)點而成為迄今為止在線調試最常用的配置技術,但是,由于SRAM的易失性,一旦FPGA芯片掉電,其內部的配置信息就立即全部丟失,所以為了使FPGA能啟動,就必須在FPGA每次上電時對其重新配置[2]。Flash編程技術可以長期存儲配置數(shù)據,所以即使FPGA掉電,它也可以在FPGA下次加電時根據用戶已經設計好的邏輯配置FPGA。一旦FPGA配置失敗,它就無法啟動,在這種情況下驗證FPGA內部邏輯正確與否也就根本不可能實現(xiàn)。因此,研究并掌握FPGA的配置方式及其工程應用是很有必要的。
1 Cyclone IV器件的配置方式
Altera Cyclone IV系列器件都有聯(lián)合測試行動組JTAG(Joint Test Action Group)配置方式;除此之外,從FPGA配置時所處的主從位置上劃分有主動配置方式和被動配置方式;從FPGA配置時每個配置時鐘周期所傳輸?shù)呐渲脭?shù)據位寬上又劃分有串行配置方式(1 bit)和并行配置方式(8/16 bit)。綜上所述,Altera Cyclone IV系列FPGA單獨的配置方式經排列組合后有主動串行AS(Active Serial)、主動并行AP(Active Parallel)、被動串行PS(Passive Serial)、快速被動并行FPP(Fast Passive Parallel)和JTAG這5種配置方式。
Altera Cyclone IV系列器件的配置方式眾多,用戶可根據需要自行選擇一種或多種配置方式,但是每次配置FPGA時只能使用一種配置方式,不可同時使用多種配置方式。其中,JTAG配置方式是配置優(yōu)先級最高、最常用、最簡單的一種配置方式,而且它的選擇也與配置方式選擇引腳MSEL所設置的電平值無關,其他的配置方式都必須通過設置MSEL的電平值來確定。
1.1 復用配置引腳
除JTAG配置方式外,其他幾種配置方式都復用以下配置引腳。
?。?)配置方式選擇引腳——MSEL。MSEL的數(shù)據位寬取決于FPGA,不同型號的FPGA其MSEL的數(shù)據位寬也會有所不同,且不能被懸空。在設置MSEL信號的高低電平時還需注意器件所支持的配置電壓標準(3.3 V/3.0 V/2.5 V/1.8 V/1.5 V)和上電復位延遲時間(快速/標準兩種)[3]。例如,Cyclone IV GX50這種芯片,在AS配置方式下其MSEL[3:0]的電平值就可在3.3 V的配置電壓標準和標準上電復位延遲時間下設為1001,而在3.3 V的配置電壓標準和快速上電復位延遲時間下設為1101。
?。?)配置使能引腳——nCE。其為FPGA的配置使能引腳,低電平有效。若只有一片F(xiàn)PGA,則該引腳必須始終為低電平[3]。
?。?)級聯(lián)時配置專用引腳——nCEO。它是多片F(xiàn)PGA級聯(lián)時的專用輸出引腳,F(xiàn)PGA配置完成后使其輸出低電平,從而驅動下一級FPGA的nCE引腳。
?。?)配置控制引腳——nCONFIG。其為控制配置過程的輸入引腳,其從高電平到低電平的轉換將復位FPGA;而從低電平到高電平的轉換將啟動芯片配置。
(5)配置狀態(tài)引腳——nSTATUS。其為雙向開漏引腳,其上電時為低電平,當控制引腳由低變高時,其變?yōu)楦唠娖綇亩M入配置階段。在配置過程中一旦其由高電平轉換到低電平就表示配置出錯,此時需要重新配置FPGA。
?。?)配置完成狀態(tài)引腳——CONF_DONE。其為雙向開漏引腳,配置完成狀態(tài)輸出引腳,高電平有效。在配置前和配置期間,F(xiàn)PGA將其驅動為低電平。當所有配置數(shù)據被無誤接收且初始化周期開始后,F(xiàn)PGA將其置為三態(tài),因為其信號線上有上拉電阻存在,所以其又被上拉為高電平,此時表示配置成功。
?。?)配置時鐘引腳——DCLK。對于被動配置方式,F(xiàn)PGA采用外部源提供的時鐘輸入和時鐘數(shù)據;對于主動配置方式,F(xiàn)PGA為配置接口提供時序。
?。?)配置數(shù)據引腳——DATA。對于串行配置方式,使用DATA0引腳接收配置數(shù)據;對于并行配置方式,使用DATA[7:0]引腳接收配置數(shù)據。
1.2 AS配置方式
AS配置方式是Altera Cyclone IV系列FPGA配置方式中非常常用的方式,因其可由FPGA內部的晶振提供配置時鐘,不需要外部時鐘源再額外提供配置時鐘,所以簡化了配置電路,節(jié)省了配置成本。當然,配置時鐘也可由外部時鐘源通過芯片上的CLKUSR引腳提供,只是此時輸入到該引腳的最大頻率只能為40 MHz[3]。該配置方式下,F(xiàn)PGA與可擦除可編程配置存儲器(EPCS)需要連接DCLK、NCSO、ASDO(主動串行數(shù)據輸出)和DATA0這4個信號。DCLK信號給EPCS提供時鐘;NCSO信號為EPCS的片選信號(低電平有效);ASDO信號向EPCS發(fā)送讀/寫命令和地址,以及寫數(shù)據;DATA0信號給FPGA傳輸配置數(shù)據。當EPCS被選中時,在FPGA的配置階段,EPCS在每一個DCLK周期向FPGA傳輸1 bit配置數(shù)據。配置結束后,這4個信號處于高阻狀態(tài)。但是,在該配置方式下,配置時鐘頻率比較低,因為當其由內部晶振提供時只有20 MHz和40 MHz兩種模式,當其由外部時鐘源提供時最大也只有40 MHz,所以當配置數(shù)據比較大時,需要的配置時間就比較多,這樣就有可能不滿足某些通信系統(tǒng)的時序要求,從而導致系統(tǒng)配置失敗。
AS配置方式下對EPCS編程又細分為3種方式。方式一,通過JTAG接口在Nios II中利用EPCS控制器實現(xiàn)對EPCS的編程,此時,最終編程數(shù)據格式為原始編程數(shù)據(rpd)格式;方式二,通過JTAG接口在Quartus II中利用串行Flash加載器SFL(Serial Flash Loader)實現(xiàn)對EPCS的編程,此時,最終編程數(shù)據格式為JTAG間接配置(jic)格式;方式三,通過AS接口在Quartus II中直接實現(xiàn)對EPCS的編程,此時,最終編程數(shù)據格式為編程對象文件(pof)格式。其中,前兩種方式只需在PCB上焊接一個JTAG接口,既可實現(xiàn)對EPCS的編程,又可實現(xiàn)對FPGA的在線配置調試;而后一種方式則需在PCB上焊接AS專用接口才可以實現(xiàn)對EPCS的編程。其配置原理圖如圖1所示。
1.3 AP配置方式
Altera Cyclone IV E系列FPGA具有AP配置方式,其配置時鐘僅由FPGA內部的晶振提供。該配置方式下,F(xiàn)PGA需與閃存連接的信號為:nRESET(控制閃存復位的信號)、DCLK(供給閃存的時鐘信號)、FLASH_nCE(片選閃存的信號)、nOE(控制閃存輸出的信號)、nAVD(地址有效信號)、nWE(給閃存的寫使能信號)、DATA[15..0](傳輸配置數(shù)據的信號)和PADD[23..0](地址信號)。當選中閃存時,在FPGA的配置階段,每一個DCLK周期閃存向FPGA傳輸16 bit配置數(shù)據。這種配置方式下編程閃存是通過FPGA的JTAG接口在Quartus II中利用并行Flash加載器PFL(Parallel Flash Loader)實現(xiàn)的,此時最終編程數(shù)據格式為pof格式。其配置原理圖如圖2所示。
1.4 PS配置方式
PS配置方式是Altera Cyclone IV系列FPGA配置方式中比較常用的方式。但是,在工程應用中若采用這種配置方式,F(xiàn)PGA需要連接一個智能主機(比如復雜可編程邏輯器件CPLD/微控制單元MCU等)以給其提供配置時鐘和配置數(shù)據。在該配置方式下,智能主機在保證與存儲配置數(shù)據的閃存通信無誤的情況下,只需向FPGA提供一個DCLK信號和一個DATA0信號即可實現(xiàn)對FPGA的配置。另外,該DCLK信號還可以實現(xiàn)多種頻率以滿足用戶對配置時間的需求,這是該配置方式的一大亮點。但是,這種配置方式需要首先配置智能主機,然后才能通過智能主機編程閃存,最后在配置階段智能主機才能把閃存內的配置數(shù)據傳輸?shù)紽PGA內,這樣就使得配置電路變得比較復雜,稍有不慎就會造成配置失敗,而且該配置方式必須有智能主機,這樣也就增加了配置成本。這種配置方式下,編程閃存是通過智能主機的JTAG接口在Quartus II中利用PFL實現(xiàn)的,此時,最終編程數(shù)據格式為pof格式。其配置原理圖如圖3所示。
1.5 FPP配置方式
FPP配置方式與PS配置方式類似,只是在FPGA與智能主機連接時,用來傳輸配置數(shù)據的數(shù)據線需連接DATA[7:0],從而使得智能主機在配置階段的每一個DCLK周期向FPGA傳輸8 bit配置數(shù)據。其與PS配置方式相比,極大縮短了配置同一器件所需的配置時間,這就更能滿足用戶對某些系統(tǒng)配置時間的要求。這種配置方式下編程閃存也是通過智能主機的JTAG接口在Quartus II中利用PFL實現(xiàn)的,此時,最終編程數(shù)據格式也為pof格式。其配置原理圖與圖3非常相似,只是此時FPGA的配置數(shù)據總線為DATA[7:0]。
1.6 JTAG配置方式
JTAG配置方式是Altera Cyclone IV系列FPGA配置方式中最常用的方式,它連接簡單、操作方便,廣泛應用于在線調試。該配置方式下,F(xiàn)PGA只需與JTAG插頭連接測試時鐘(TCLK)、測試模式選擇(TMS)、測試數(shù)據輸入(TDI)和測試數(shù)據輸出(TDO)這4個信號即可。若芯片只使用JTAG配置方式,則還須把芯片的nCONFIG引腳拉高,MSEL引腳接地,DCLK引腳和DATA0引腳根據PCB的方便接高或接低[3]。連接時須把TCLK下拉,以避免TCLK引腳上出現(xiàn)有效的上升沿而誤觸發(fā)對TMS和TDI的采樣;須把TMS引腳上拉,以便JTAG接口能進入旁路狀態(tài),從而保證對FPGA的正常工作不造成任何影響;須把TDI引腳上拉,以便在FPGA正常工作時使JTAG接口能可靠地處于旁路狀態(tài)[4]。這種配置方式下,F(xiàn)PGA不能長期保存配置數(shù)據,一旦FPGA掉電,其內部的配置信息就會丟失,在沒有其他配置方式的支持下,F(xiàn)PGA就會永久無法啟動,除非通過JTAG接口再次對FPGA芯片進行配置,此時,配置數(shù)據格式為靜態(tài)存儲器對象文件(sof)格式。其配置原理圖如圖4所示。
1.7 配置過程及配置時序
整個配置過程為:FPGA上電后,nCONFIG信號先置低以使芯片復位,然后再置高以啟動芯片配置,當nSTATUS信號由低變高后,芯片就進入配置階段并開始傳輸配置數(shù)據;當配置數(shù)據傳輸完成后,CONF_DONE信號變高,標志配置階段完成,然后進入初始化階段;當INIT_DONE信號變高時,標志初始化階段完成,接著進入用戶模式。配置時序如圖5所示。
2 Cyclone IV系列在工程中的配置應用
圖6為基于Nios II處理器的數(shù)據加密卡系統(tǒng)的配置電路原理圖。Nios II處理器為Altera公司FPGA的軟核,是該系統(tǒng)的控制核心。這里采用了JTAG、AS和FPP 3種配置方式的混合體。之所以有JTAG配置方式是因為它便于在系統(tǒng)編程和調試,而有FPP配置方式是為滿足系統(tǒng)對配置時間的需求,以提供可靠的保障。當系統(tǒng)采用AS配置方式時,配置數(shù)據從EPCS中讀?。划斚到y(tǒng)采用FPP配置方式時,配置數(shù)據從閃存中讀取。FPGA在系統(tǒng)上電后實際采用哪一種配置方式是由配置方式控制器決定的[5]。該系統(tǒng)采用Altera的EPM570(MAX II系列)CPLD作為配置方式控制器。FPGA通過預先編程在MAX II內的配置方式選擇控制電路選擇上電后實際采用的配置方式。本次設計配置方式選擇的依據是輸入到MAX II內的MSEL3信號的電平值。當MSEL3信號為高電平時,F(xiàn)PGA選擇AS配置方式;當MSEL3信號為低電平時,F(xiàn)PGA選擇FPP配置方式。
綜上所述,Altera Cyclone IV系列FPGA的配置方式靈活多變,用戶可在具體的工程中根據實際需要選用合適的配置方式。當今,隨著數(shù)字集成電路的發(fā)展,F(xiàn)PGA已成為復雜數(shù)字系統(tǒng)設計的主流之一,因此,掌握FPGA的配置方式及其工程應用是當代硬件工程師應具備的基本功。
參考文獻
[1] 叢文,李新紅.FPGA配置及Cyclone系列PS模式的工程應用[J].北京電子科技學院學報,2006(4):70-73.
[2] 張立哲,劉麗靜.適應遠程升級的FPGA配置方法[J].計算機與網絡,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] 王劍宇,蘇穎.高速電路設計實踐[M].北京:電子工業(yè)出版社,2012.
[5] 張小平,趙不賄.Altera新型FPGA器件的配置方式[J].微處理機,2006(4):93-95.