專利名稱:一種實現(xiàn)fpga上電即用和遠程升級的裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種FPGA (Field Programmable Gate Array,現(xiàn)場可編程門陣 列),尤其涉及一種實現(xiàn)FPGA上電即用和遠程升級的裝置及方法。
背景技術(shù):
在現(xiàn)代的嵌入式系統(tǒng)中,越來越多的采用了 FPGA芯片來完成大規(guī)模的邏輯 功能。有些系統(tǒng)除了需要具有FPGA的遠程升級功能外,還需要在上電后很短時 間內(nèi)就用到FPGA的功能。 一般FPGA的加載方法有以下幾種
1、 使用CPU加載,方法是將FPGA的邏輯文件與軟件程序一起存放在設(shè)備的 FLASH存儲器(閃存)里,系統(tǒng)啟動后,CPU執(zhí)行帶有加載功能的應(yīng)用程序,將 邏輯文件加載到FPGA中。這種加載方式雖然方便于遠程升級FPGA,但要在應(yīng)用 程序加載完邏輯后才能使用FPGA。
2、 增加一片專用的配置PROM (可編程只讀存儲器),將FPGA邏輯文件先燒 到PR0M中,單板啟動時采用FPGA的主串或主并模式,由FPGA主動發(fā)起,將邏 輯文件從PROM中加載到FPGA中。這種方式下,邏輯文件燒入PROM后就固定了 , 無法實現(xiàn)FPGA的升級。
3、 有的系統(tǒng)采用CPLD (Complex Programmable Logic Device,復(fù)雜的可 編程邏輯器件)加上閃存的方法。閃存里存放FPGA的邏輯文件,通過CPLD將邏 輯文件加載到FPGA中,CPLD可以與CPU通訊來升級閃存上的邏輯文件。這種方 案雖然可以實現(xiàn)FPGA的上電即用和遠程升級,但比較復(fù)雜,成本較高。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種實現(xiàn)FPGA上電即用和遠程升級的 裝置,并且提供一種實現(xiàn)FPGA上電即用和遠程升級的方法,本發(fā)明能夠使FPGA 在上電后就能正常工作并能實現(xiàn)遠程升級。
一種實現(xiàn)FPGA上電即用和遠程升級的裝置,包 FPGA芯片,還包括一個與 CPU及FPGA芯片相連的緩沖電路,用于保證與該電路相連的FPGA芯片的引腳的電平在上電后一直為高,所述FPGA芯片內(nèi)嵌有閃存。
若系統(tǒng)中的CUP 1/0引腳匱乏,則所述FPGA芯片通過鎖存器與CPU連接。
若系統(tǒng)中的CUP 1/0引腳匱乏,則所述FPGA芯片通過復(fù)雜的可編程邏輯器
件CPLD的寄存器與CPU連接。
一種實現(xiàn)FPGA上電即用和遠程升級的方法,邏輯文件遠程下載到系統(tǒng)的閃 存后,執(zhí)行以下歩驟
歩驟一FPGA的加載模塊讀取閃存中的邏輯文件數(shù)據(jù)流,加載FPGA;
步驟二檢測加載中是否出現(xiàn)CRC校驗錯誤,若是,則重新加載;否則,執(zhí)
行下一 步;
步驟三檢測邏輯文件是否加載成功,若是,則升級完畢;否則,執(zhí)行歩驟 所述步驟一之前還包括初始化FPGA芯片的加載時序。
所述步驟二與步驟三之間還包括:檢測邏輯文件數(shù)據(jù)流是否加載完畢,若是, 則執(zhí)行步驟三;否則,執(zhí)行步驟一。
所述步驟四進一步包括檢測加載次數(shù)是否小于等于事先設(shè)定的值,若是, 則執(zhí)行步驟一;否則結(jié)束流程。
本發(fā)明采用了一種內(nèi)嵌閃存的FPGA器件,這種FPGA器件除了具有普通FPGA 器件的配置模式外,還有一種SDM (Self Download Mode,自下載模式), 一般 情況下,此種FPGA器件只能實現(xiàn)上電即用和遠程升級中的一種功能,但本發(fā)明 不僅可以使FPGA在上電后就能正常工作,而且也能實現(xiàn)遠程升級。
圖1是本發(fā)明中FPGA的從串加載實施例一電路示意圖; 圖2是本發(fā)明中FPGA的從串加載實施例二電路示意圖; 圖3是本發(fā)明中所述方法優(yōu)選實施例流程圖。
具體實施例方式
下面結(jié)合附圖的實施例對本發(fā)明進行詳細描述
本發(fā)明的裝置可采用從串或者從并的加載方式,從并方式有8條數(shù)據(jù)線,而 從串方式只需l條數(shù)據(jù)線,實施例采用了從串的加載方式。
4圖1是FPGA的從串加載實施例一電路示意圖,圖中包括CPU、緩沖電路、 FPGA芯片,F(xiàn)PGA芯片采用Lattice的LFXP系列器件,緩沖電路的作用是保證 信號CFG和PR0GRA腦的電平在上電后一直為高,因為有些CPU的I/O腳在上電 復(fù)位時電平狀態(tài)不穩(wěn)定,會影響到FPGA的SDM功能,所述FPGA芯片的INITN 和DONE信號必須接上拉電阻。
FPGA芯片引腳功能說明
DIN: 數(shù)據(jù)輸入
CCLK: 同步時鐘,由CPU提供
PROGRAMN: 初始化配置時序
INITN:指示是否出現(xiàn)CRC校驗錯誤
DONE: 指示加載是否完成
CFG: 設(shè)置配置模式(值為l: SDM模式;值為0:從串模式)
該實施例中,CPU的1/01 、 1/02引腳通過緩沖電路與FPGA的CFG和PROGRAMN 相連,1/03、 1/04 、 1/05、 1/06引腳分別與FPGA的INITN、 DONE、 CCLK、 DIN 引腳相連。
圖2是本發(fā)明中FPGA的從串加載實施例二電路示意圖。圖中包括CPU、鎖 存器或者CPLD、 FPGA芯片,F(xiàn)PGA芯片同樣采用Lattice的LFXP系列器件,當(dāng) CPU的通用I/O資源匱乏,沒有足夠的引腳分配給FPGA的加載端口時,可以采 用這種電路。原理是采用鎖存器或者小型CPLD里的寄存器,通過本地總線的讀 寫操作來模擬和驅(qū)動加載信號。
基于以上兩個實施例,在系統(tǒng)的單板上,CPU通過I/O 口,或者經(jīng)過鎖存器、 CPLD的接口轉(zhuǎn)換,與FPGA的配置加載端口連接。單板第一次使用時,先在PC 上用下載電纜通過JTAG (Joint Test Action Group,聯(lián)合測試行動小組)接口 將一份邏輯文件燒錄進FPGA的閃存里面;當(dāng)系統(tǒng)上電時,F(xiàn)PGA采用S匿模式, 在有效上電后的微秒級時間內(nèi),邏輯文件數(shù)據(jù)流從內(nèi)嵌閃存中自動加載到SRAM
(Static RAM)中,當(dāng)單板的應(yīng)用軟件啟動時,如果需要升級FPGA邏輯文件, 則CPU通過FPGA的配置加載端口使用從串(被動串行)模式或者從并(被動并 行)模式來加載邏輯文件,實現(xiàn)FPGA的遠程升級。
圖3是本發(fā)明中所述方法優(yōu)選實施例流程圖。當(dāng)進行FPGA的遠程升級時, 新的邏輯文件通過以太網(wǎng)或者HDLC (High level Data Link Control,高級數(shù)據(jù)鏈路控制)通道傳送到FPGA,并寫進FPGA的閃存里后,執(zhí)行如下步驟
歩驟301:系統(tǒng)上電期間和之后,CFG和PROGRAMN信號一直為高,F(xiàn)PGA完
成自下載(將邏輯數(shù)據(jù)流從內(nèi)嵌閃存中自動加載到SRAM中),開始正常工作; 歩驟302:若FPGA的閃存中的邏輯文件版本比FPGA的SRAM里的高,則執(zhí)
行加載邏輯文件的任務(wù),主要步驟如下
(1) 將CFG信號置為低電平,采用從串配置模式;
(2) 在PROGRAMN上送出一個低電平脈沖,初始化加載時序。然后檢測INITN 信號,如果此信號為高,說明初始化成功,延時一段時間后就可以加載數(shù)據(jù);
(3) 從閃存中讀出邏輯文件數(shù)據(jù)流,在CCLK和DIN端口分別送出時鐘及數(shù) 據(jù)信號,加載FPGA;
(4) 在加載過程中,檢測INITN信號,若1誦=0,即為低,則說明加載 過程出現(xiàn)了CRC校驗錯誤,需要重新開始加載邏輯文件,執(zhí)行(6);若INITN4, 即為高,則說明加載過程沒有CRC校驗錯誤,則加載一個字節(jié)后執(zhí)行(5);
(5) 檢測數(shù)據(jù)是否加載完畢,若是,則檢測DONE信號,若D0NE^,則說 明加載失敗,執(zhí)行(6), D0NE4則加載成功,執(zhí)行(7);否則執(zhí)行(4);
(6) 檢測加載次數(shù)是否小于等于事先設(shè)定的值,若是,則執(zhí)行(2);否則, 結(jié)束流程;
(7) 送出120個時鐘,流程結(jié)束。 通過上面的方法就可以實現(xiàn)FPGA的上電即用和遠程升級,使嵌入式系統(tǒng)的
設(shè)計具有更大的靈活性。
權(quán)利要求
1、一種實現(xiàn)FPGA上電即用和遠程升級的裝置,包括FPGA芯片,其特征在于,還包括一個與CPU及FPGA芯片相連的緩沖電路,用于保證與該電路相連的FPGA芯片的引腳的電平在上電后一直為高,所述FPGA芯片內(nèi)嵌有閃存。
2、 如權(quán)利要求1所述的實現(xiàn)FPGA上電即用和遠程升級的裝置,其特征在于, 若系統(tǒng)中的CUP 1/0引腳匱乏,則所述FPGA芯片通過鎖存器與CPU連接。
3、 如權(quán)利要求1或2所述的實現(xiàn)FPGA上電即用和遠程升級的裝置,其特征 在于,若系統(tǒng)中的CUP 1/0引腳匱乏,則所述FPGA芯片通過復(fù)雜的可編程邏輯 器件CPLD的寄存器與CPU連接。
4、 一種實現(xiàn)FPGA上電即用和遠程升級的方法,其特征在于,邏輯文件遠程 下載到系統(tǒng)的閃存后,執(zhí)行以下歩驟-步驟一FPGA的加載模塊讀取閃存中的邏輯文件數(shù)據(jù)流,加載FPGA; 步驟二檢測加載中是否出現(xiàn)CRC校驗錯誤,若是,則重新加載;否則,執(zhí) 行下一步;歩驟三..檢測邏輯文件是否加載成功,若是,則升級完畢;否則,執(zhí)行步驟
5、 如權(quán)利要求4所述的實現(xiàn)FPGA上電即用和遠程升級的方法,其特征在于, 所述歩驟一之前還包括初始化FPGA芯片的加載時序。
6、 如權(quán)利要求4所述的實現(xiàn)FPGA上電即用和遠程升級的方法,其特征在于, 所述步驟二與步驟三之間還包括檢測邏輯文件數(shù)據(jù)流是否加載完畢,若是,則 執(zhí)行步驟三;否則,執(zhí)行歩驟一。
7、 如權(quán)利要求4所述的實現(xiàn)FPGA上電即用和遠程升級的方法,其特征在于, 所述歩驟四進一歩包括檢測加載次數(shù)是否小于等于事先設(shè)定的值,若是,則執(zhí) 行步驟一;否則結(jié)束流程。
全文摘要
本發(fā)明提供一種實現(xiàn)FPGA上電即用和遠程升級的裝置,該裝置包括FPGA芯片,還包括一個與CPU及FPGA芯片相連的緩沖電路,用于保證與該電路相連的FPGA芯片的引腳的電平在上電后一直為高,所述FPGA芯片內(nèi)嵌有閃存;本發(fā)明還提供一種實現(xiàn)FPGA上電即用和遠程升級的方法,該方法在邏輯文件遠程下載到系統(tǒng)的閃存后,做如下操作FPGA的加載模塊讀取閃存中的邏輯文件數(shù)據(jù)流,加載FPGA;檢測加載中是否出現(xiàn)CRC校驗錯誤,若是,則重新加載;否則,檢測邏輯文件是否加載成功,若是,則升級完畢;否則,繼續(xù)加載。本發(fā)明不僅可以使FPGA在上電后就能正常工作,而且也能實現(xiàn)其遠程升級。
文檔編號H03K19/177GK101604244SQ200810067788
公開日2009年12月16日 申請日期2008年6月13日 優(yōu)先權(quán)日2008年6月13日
發(fā)明者桂國才, 陸榮飛 申請人:中興通訊股份有限公司