《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > FPGA配置模式

FPGA配置模式

2011-09-08
關(guān)鍵詞: FPGA配置 FPGA

  FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA;外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對其編程,。

  如何實現(xiàn)快速的時序收斂,、降低功耗和成本、優(yōu)化時鐘管理并降低FPGA與PCB并行設(shè)計的復(fù)雜性等問題,,一直是采用FPGA的系統(tǒng)設(shè)計工程師需要考慮的關(guān)鍵問題,。如今,,隨著FPGA向更高密度、更大容量,、更低功耗和集成更多IP的方向發(fā)展,,系統(tǒng)設(shè)計工程師在從這些優(yōu)異性能獲益的同時,不得不面對由于FPGA前所未有的性能和能力水平而帶來的新的設(shè)計挑戰(zhàn),。

  在很多項目設(shè)計中采用Altera 公司基于SRAM架構(gòu)Cyclone系列器件,。Cyclone器件與其他FPGA器件一樣是基于門陣列方式為用戶提供可編程資源的,其內(nèi)部邏輯結(jié)構(gòu)的形成是由配置數(shù)據(jù)決定的,。這些配置數(shù)據(jù)可通過多種模式加載到FPGA內(nèi)部的SRAM中,,由于SRAM的易失性,每次上電時,,都必須對FPGA進行重新配置,。

  1 Cyclone FPGA 配置模式

  Cyclone系列FPGA器件配置方案主要有三種,包括使用低成本配置芯片的主動串行(AS)配置,、被動串行(PS)配置以及基于JTAG配置,,實際應(yīng)用時可以使用其中的一種方案配置Cyclone系列FPGA器件,,來實現(xiàn)用戶編程所要實現(xiàn)的功能,。

  Cyclone系列FPGA器件是用SRAM單元配置數(shù)據(jù)的。由于SRAM掉電后容易丟失數(shù)據(jù),,配置數(shù)據(jù)必須即時地下載到上電的Cyclone器件中,。不同的配置模式可采用不同的專用配置芯片或數(shù)據(jù)源

  這三種配置模式是由Cyclone器件的模式選擇引腳 MSEL1和 MSEL0的高低電平來決定的,如果你的實際應(yīng)用只要求單一的配置模式,,可以把模式選擇引腳連接到VCC端或接地端在切換引腳的過程中,,器件的運行狀態(tài)不會被影響。不管怎樣,,在重新配置之前,,必須保障模式選擇引腳的電平是有效的。

  2 配置芯片的主動串行(AS)配置

  在AS配置模式中,,利用了新型低成本器件(如EPCS1,、EPCS4),這種專用配置芯片是帶有永久性存儲器和四個引腳簡單接口的串行配置器件,,由于它的成本較低,,可以解決配置器件成本高的問題。串行配置芯片提供一個串行接口去存取數(shù)據(jù),。在配置期間,,Cyclone FPGA通過串行接口讀取數(shù)據(jù),如果有需要的話,,對數(shù)據(jù)進行解壓以及配置FPGA的SRAM單元,。此模式是由FPGA去控制配置接口的,,這種方案稱為主動串行配置,簡稱AS配置,。采用AS模式配置一個Cyclone FPGA器件的原理圖

  專用串行配置芯片可選用EPCS1或EPCS4,,其中EPCS1的存儲空間是1Mbits, EPCS4存儲空間是4Mbits ,設(shè)計者可根據(jù)配置文件的大小進行選擇,。主動串行配置芯片的主要配置引腳

  DCLK,,串行時鐘輸入端,來自Cyclone FPGA器件,,提供串行接口時鐘;DATA,,串行數(shù)據(jù)輸出端,在DCLK下降沿讀出數(shù)據(jù);ASDI,,控制信號輸入端,,在DCLK上升沿鎖存數(shù)據(jù);nCS,使能輸入端,,低電平有效,。

  在系統(tǒng)上電期間,兩芯片進入到上電復(fù)位階段,。當(dāng)一旦進入上電復(fù)位,,nSTATUS端為低電平,正在復(fù)位;同時CONF_DONE端為低電平,,芯片還沒有被配置,。復(fù)位后,延遲100ms,,F(xiàn)PGA釋放nSTATUS端,,由于上拉電阻的作用,該端變?yōu)楦唠娖?,此時進入到配置狀態(tài),。一旦退出復(fù)位,所有用戶I/O端進入三態(tài)狀態(tài),。時鐘信號DCLK是由FPGA內(nèi)部產(chǎn)生的,,用來控制整個配置循環(huán)以及為配置芯片串口電路提供時鐘,時鐘信號的頻率范圍在14MHZ至20MHZ之間,。當(dāng)DCLK下降沿到來時,,使FPGA輸出控制信號以及使配置芯片輸出配置數(shù)據(jù);當(dāng)DCLK上升沿到來時,使FPGA鎖存配置數(shù)據(jù)以及使配置芯片鎖存控制信號,。在所有配置數(shù)據(jù)被接收后,,F(xiàn)PGA釋放CONF_DONE端,通過10K的上拉電阻置為高電平,,開始進入初始化階段,。Cyclone FPGA器件需要136個時鐘周期嚴(yán)格地進行初始化,。然后開始進入用戶狀態(tài),這時INIT_DONE引腳跳變到高電平,。

  3 基于單片機的被動串行(PS)配置

  采用微處理器的Cyclone FPGA被動串行配置方案的簡化電路圖,。單片機配置過程很簡單,單片機只需用5個I/O口與FPGA相連這5根信號線分別是:DATA0,、DCLK,、nCONFIG、nSTATUS和CONF_DONE,。

  具體配置過程如下:①nCONFIG=0 ,、DCLK=0,保持2us以上;②檢測nSTATUS,,若為0表明FPGA已響應(yīng)配置要求,,可開始進行配置,否則報錯,。正常情況下,,nCONFIG=0后1us內(nèi)nSTATUS將為0;③nCONFIG=0,并等待5us;④DATA0上放置數(shù)據(jù),,DCLK=1,,延時;⑤DCLK=0,檢測nSTATUS,,若為0,,則報錯并重新開始;⑥準(zhǔn)備下一位數(shù)據(jù),并重復(fù)執(zhí)行(4),、(5),直到所有數(shù)據(jù)送出為止;⑦此時CONF_DONE應(yīng)變?yōu)?,,表明FPGA的配置已完成,。若所有數(shù)據(jù)送出后,CONF_DONE不為1,,必須重新配置;⑧配置完成后,,則送出若干個周期的DCLK,以使FPGA完成初始化,。

  值得注意的是,,用MAX+PlusⅡ或QuartusⅡ生成的SOF或POF文件不能直接用于單片機配置FPGA,需要進行數(shù)據(jù)轉(zhuǎn)換才能得到可用的配置數(shù)據(jù),。在MAX+PlusⅡ或QuartusⅡ中,,都有數(shù)據(jù)轉(zhuǎn)換選項,將.SOF文件轉(zhuǎn)換為.rbf文件,,然后再將.rbf文件直接寫入單片機系統(tǒng)的某一ROM或Flash區(qū)域,,這段數(shù)據(jù)的起始地址和長度都是已知的,,按以上過程編寫相應(yīng)軟件即可。

  4 配置數(shù)據(jù)壓縮方法

  Cyclone器件是一種支持解壓配置數(shù)據(jù)的FPGA器件,,允許存儲在配置芯片或其他存儲器的配置數(shù)據(jù)是經(jīng)壓縮處理的數(shù)據(jù),,在配置期間,這此壓縮數(shù)據(jù)發(fā)送到Cyclone器件中即時被解壓并對SRAM單元進行編程,。AS配置模式和PS配置模式都可支持壓縮方式,,但基于JTAG配置模式卻不支持壓縮方式。初步數(shù)據(jù)表明壓縮可減少35﹪至60﹪的配置數(shù)據(jù)位流,,可減少數(shù)據(jù)的存儲空間和傳輸速度以及配置設(shè)備的成本,。

  QuartusⅡ能生成帶壓縮的配置文件,可減少配置芯片和flash閃存空間及位流的傳送時間,。下面以QuartusⅡ5.1版為例介紹兩種壓縮配置文件的操作方法,。

  4.1 方法一:設(shè)計程序編寫前在項目程序設(shè)置中激活壓縮。

  首先在Assignments菜單下點擊Device項,,彈出Settings窗口,, 然后在Family選項中選擇Cyclone器件,點擊下面的Device&Pin Options彈出窗口,,再選擇Configuration窗口點擊Generate Compressed bitstreams選項,,最后按確定鍵結(jié)束設(shè)置。

  4.2 方法二:設(shè)計程序編寫后從Convert Programming Files窗口創(chuàng)建程序文件激活壓縮,。

  首先下拉File 菜單,,點擊Convert Programming Files 彈出窗口,選擇文件類型Programming File type(POF,SRAM HEXOUT,RBF,orTTF),,然后為POF output files,選擇配置器件,,再選擇Add File 添加一個Cyclone SOF 文件,選擇文件名加入到SOF Data 區(qū),,單擊Properties選項,,再確定,最后按Generate鍵生成,。

  5 結(jié)束語

  串行配置方法的硬件電路簡單,、配置過程軟件實現(xiàn)比較容易、工程應(yīng)用方便,。Cyclone 系列的FPGA器件邏輯資源,、芯片速度等技術(shù)參數(shù)能夠達到項目要求,性價比高,,而且還有一定的擴充性,。此種FPGA 的配置實現(xiàn)方法也適用于和其它CPU結(jié)合,應(yīng)用于其它場合,,只要嚴(yán)格按照軟硬件的配置要求即可,,因此在實際應(yīng)用中具有參考價值,。如今,CPLD/FPGA 已經(jīng)成為數(shù)字系統(tǒng)開發(fā)的平臺,,并且以后將朝著高集成度,、大容量、低成本,、低電壓,、低功耗、資源多樣化,、適用于片上系統(tǒng)(SOC),、深亞微米工藝、各種軟硬IP 庫,、動態(tài)可重構(gòu)技術(shù)實用化等方面不斷完善和提高,。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。