FPGA配置模式
FPGA有多種配置模式:并行主模式為一片FPGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片FPGA;串行模式可以采用串行PROM編程FPGA;外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對(duì)其編程。
本文引用地址:http://2s4d.com/article/150223.htm如何實(shí)現(xiàn)快速的時(shí)序收斂、降低功耗和成本、優(yōu)化時(shí)鐘管理并降低FPGA與PCB并行設(shè)計(jì)的復(fù)雜性等問(wèn)題,一直是采用FPGA的系統(tǒng)設(shè)計(jì)工程師需要考慮的關(guān)鍵問(wèn)題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發(fā)展,系統(tǒng)設(shè)計(jì)工程師在從這些優(yōu)異性能獲益的同時(shí),不得不面對(duì)由于FPGA前所未有的性能和能力水平而帶來(lái)的新的設(shè)計(jì)挑戰(zhàn)。
在很多項(xiàng)目設(shè)計(jì)中采用Altera 公司基于SRAM架構(gòu)Cyclone系列器件。Cyclone器件與其他FPGA器件一樣是基于門(mén)陣列方式為用戶提供可編程資源的,其內(nèi)部邏輯結(jié)構(gòu)的形成是由配置數(shù)據(jù)決定的。這些配置數(shù)據(jù)可通過(guò)多種模式加載到FPGA內(nèi)部的SRAM中,由于SRAM的易失性,每次上電時(shí),都必須對(duì)FPGA進(jìn)行重新配置。
1 Cyclone FPGA 配置模式
Cyclone系列FPGA器件配置方案主要有三種,包括使用低成本配置芯片的主動(dòng)串行(AS)配置、被動(dòng)串行(PS)配置以及基于JTAG配置,實(shí)際應(yīng)用時(shí)可以使用其中的一種方案配置Cyclone系列FPGA器件,來(lái)實(shí)現(xiàn)用戶編程所要實(shí)現(xiàn)的功能。
Cyclone系列FPGA器件是用SRAM單元配置數(shù)據(jù)的。由于SRAM掉電后容易丟失數(shù)據(jù),配置數(shù)據(jù)必須即時(shí)地下載到上電的Cyclone器件中。不同的配置模式可采用不同的專(zhuān)用配置芯片或數(shù)據(jù)源
這三種配置模式是由Cyclone器件的模式選擇引腳 MSEL1和 MSEL0的高低電平來(lái)決定的,如果你的實(shí)際應(yīng)用只要求單一的配置模式,可以把模式選擇引腳連接到VCC端或接地端在切換引腳的過(guò)程中,器件的運(yùn)行狀態(tài)不會(huì)被影響。不管怎樣,在重新配置之前,必須保障模式選擇引腳的電平是有效的。
2 配置芯片的主動(dòng)串行(AS)配置
在AS配置模式中,利用了新型低成本器件(如EPCS1、EPCS4),這種專(zhuān)用配置芯片是帶有永久性存儲(chǔ)器和四個(gè)引腳簡(jiǎn)單接口的串行配置器件,由于它的成本較低,可以解決配置器件成本高的問(wèn)題。串行配置芯片提供一個(gè)串行接口去存取數(shù)據(jù)。在配置期間,Cyclone FPGA通過(guò)串行接口讀取數(shù)據(jù),如果有需要的話,對(duì)數(shù)據(jù)進(jìn)行解壓以及配置FPGA的SRAM單元。此模式是由FPGA去控制配置接口的,這種方案稱為主動(dòng)串行配置,簡(jiǎn)稱AS配置。采用AS模式配置一個(gè)Cyclone FPGA器件的原理圖
專(zhuān)用串行配置芯片可選用EPCS1或EPCS4,其中EPCS1的存儲(chǔ)空間是1Mbits, EPCS4存儲(chǔ)空間是4Mbits ,設(shè)計(jì)者可根據(jù)配置文件的大小進(jìn)行選擇。主動(dòng)串行配置芯片的主要配置引腳
DCLK,串行時(shí)鐘輸入端,來(lái)自Cyclone FPGA器件,提供串行接口時(shí)鐘;DATA,串行數(shù)據(jù)輸出端,在DCLK下降沿讀出數(shù)據(jù);ASDI,控制信號(hào)輸入端,在DCLK上升沿鎖存數(shù)據(jù);nCS,使能輸入端,低電平有效。
在系統(tǒng)上電期間,兩芯片進(jìn)入到上電復(fù)位階段。當(dāng)一旦進(jìn)入上電復(fù)位,nSTATUS端為低電平,正在復(fù)位;同時(shí)CONF_DONE端為低電平,芯片還沒(méi)有被配置。復(fù)位后,延遲100ms,F(xiàn)PGA釋放nSTATUS端,由于上拉電阻的作用,該端變?yōu)楦唠娖?,此時(shí)進(jìn)入到配置狀態(tài)。一旦退出復(fù)位,所有用戶I/O端進(jìn)入三態(tài)狀態(tài)。時(shí)鐘信號(hào)DCLK是由FPGA內(nèi)部產(chǎn)生的,用來(lái)控制整個(gè)配置循環(huán)以及為配置芯片串口電路提供時(shí)鐘,時(shí)鐘信號(hào)的頻率范圍在14MHZ至20MHZ之間。當(dāng)DCLK下降沿到來(lái)時(shí),使FPGA輸出控制信號(hào)以及使配置芯片輸出配置數(shù)據(jù);當(dāng)DCLK上升沿到來(lái)時(shí),使FPGA鎖存配置數(shù)據(jù)以及使配置芯片鎖存控制信號(hào)。在所有配置數(shù)據(jù)被接收后,F(xiàn)PGA釋放CONF_DONE端,通過(guò)10K的上拉電阻置為高電平,開(kāi)始進(jìn)入初始化階段。Cyclone FPGA器件需要136個(gè)時(shí)鐘周期嚴(yán)格地進(jìn)行初始化。然后開(kāi)始進(jìn)入用戶狀態(tài),這時(shí)INIT_DONE引腳跳變到高電平。
3 基于單片機(jī)的被動(dòng)串行(PS)配置
采用微處理器的Cyclone FPGA被動(dòng)串行配置方案的簡(jiǎn)化電路圖。單片機(jī)配置過(guò)程很簡(jiǎn)單,單片機(jī)只需用5個(gè)I/O口與FPGA相連這5根信號(hào)線分別是:DATA0、DCLK、nCONFIG、nSTATUS和CONF_DONE。
具體配置過(guò)程如下:①nCONFIG=0 、DCLK=0,保持2us以上;②檢測(cè)nSTATUS,若為0表明FPGA已響應(yīng)配置要求,可開(kāi)始進(jìn)行配置,否則報(bào)錯(cuò)。正常情況下,nCONFIG=0后1us內(nèi)nSTATUS將為0;③nCONFIG=0,并等待5us;④DATA0上放置數(shù)據(jù),DCLK=1,延時(shí);⑤DCLK=0,檢測(cè)nSTATUS,若為0,則報(bào)錯(cuò)并重新開(kāi)始;⑥準(zhǔn)備下一位數(shù)據(jù),并重復(fù)執(zhí)行(4)、(5),直到所有數(shù)據(jù)送出為止;⑦此時(shí)CONF_DONE應(yīng)變?yōu)?,表明FPGA的配置已完成。若所有數(shù)據(jù)送出后,CONF_DONE不為1,必須重新配置;⑧配置完成后,則送出若干個(gè)周期的DCLK,以使FPGA完成初始化。
值得注意的是,用MAX+PlusⅡ或QuartusⅡ生成的SOF或POF文件不能直接用于單片機(jī)配置FPGA,需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換才能得到可用的配置數(shù)據(jù)。在MAX+PlusⅡ或QuartusⅡ中,都有數(shù)據(jù)轉(zhuǎn)換選項(xiàng),將.SOF文件轉(zhuǎn)換為.rbf文件,然后再將.rbf文件直接寫(xiě)入單片機(jī)系統(tǒng)的某一ROM或Flash區(qū)域,這段數(shù)據(jù)的起始地址和長(zhǎng)度都是已知的,按以上過(guò)程編寫(xiě)相應(yīng)軟件即可。
4 配置數(shù)據(jù)壓縮方法
Cyclone器件是一種支持解壓配置數(shù)據(jù)的FPGA器件,允許存儲(chǔ)在配置芯片或其他存儲(chǔ)器的配置數(shù)據(jù)是經(jīng)壓縮處理的數(shù)據(jù),在配置期間,這此壓縮數(shù)據(jù)發(fā)送到Cyclone器件中即時(shí)被解壓并對(duì)SRAM單元進(jìn)行編程。AS配置模式和PS配置模式都可支持壓縮方式,但基于JTAG配置模式卻不支持壓縮方式。初步數(shù)據(jù)表明壓縮可減少35至60的配置數(shù)據(jù)位流,可減少數(shù)據(jù)的存儲(chǔ)空間和傳輸速度以及配置設(shè)備的成本。
QuartusⅡ能生成帶壓縮的配置文件,可減少配置芯片和flash閃存空間及位流的傳送時(shí)間。下面以QuartusⅡ5.1版為例介紹兩種壓縮配置文件的操作方法。
4.1 方法一:設(shè)計(jì)程序編寫(xiě)前在項(xiàng)目程序設(shè)置中激活壓縮。
首先在Assignments菜單下點(diǎn)擊Device項(xiàng),彈出Settings窗口, 然后在Family選項(xiàng)中選擇Cyclone器件,點(diǎn)擊下面的DevicePin Options彈出窗口,再選擇Configuration窗口點(diǎn)擊Generate Compressed bitstreams選項(xiàng),最后按確定鍵結(jié)束設(shè)置。
4.2 方法二:設(shè)計(jì)程序編寫(xiě)后從Convert Programming Files窗口創(chuàng)建程序文件激活壓縮。
首先下拉File 菜單,點(diǎn)擊Convert Programming Files 彈出窗口,選擇文件類(lèi)型Programming File type(POF,SRAM HEXOUT,RBF,orTTF),然后為POF output files,選擇配置器件,再選擇Add File 添加一個(gè)Cyclone SOF 文件,選擇文件名加入到SOF Data 區(qū),單擊Properties選項(xiàng),再確定,最后按Generate鍵生成。
5 結(jié)束語(yǔ)
串行配置方法的硬件電路簡(jiǎn)單、配置過(guò)程軟件實(shí)現(xiàn)比較容易、工程應(yīng)用方便。Cyclone 系列的FPGA器件邏輯資源、芯片速度等技術(shù)參數(shù)能夠達(dá)到項(xiàng)目要求,性價(jià)比高,而且還有一定的擴(kuò)充性。此種FPGA 的配置實(shí)現(xiàn)方法也適用于和其它CPU結(jié)合,應(yīng)用于其它場(chǎng)合,只要嚴(yán)格按照軟硬件的配置要求即可,因此在實(shí)際應(yīng)用中具有參考價(jià)值。如今,CPLD/FPGA 已經(jīng)成為數(shù)字系統(tǒng)開(kāi)發(fā)的平臺(tái),并且以后將朝著高集成度、大容量、低成本、低電壓、低功耗、資源多樣化、適用于片上系統(tǒng)(SOC)、深亞微米工藝、各種軟硬IP 庫(kù)、動(dòng)態(tài)可重構(gòu)技術(shù)實(shí)用化等方面不斷完善和提高。
評(píng)論