專利名稱:現(xiàn)場可編程門陣列位文件下載的方法及裝置的制作方法
技術領域:
本發(fā)明涉及通信領域,具體而言,涉及一種現(xiàn)場可編程門陣列位文件下載的方法及裝置。
背景技術:
隨著通訊領域中嵌入式技術的發(fā)展,現(xiàn)場可編程門陣列(FieldProgrammable Gate Array,簡稱FPGA)作為一種邏輯控制電路器件,由于其具有靜態(tài)可重復編程或在線動 態(tài)重構的特點,是的其在越來越多的領域得到大規(guī)模的應用。FPGA在斷電之后會失去功能,因此在通常設計FPGA的外圍電路中會需要加上外 部存儲單元保存FPGA的邏輯程序(位文件),在系統(tǒng)上電或特定需求時從存儲單元中將邏 輯程序下載到FPGA里。通常FPGA的邏輯程序有多種下載方法,如采用FPGA廠家提供的專 用PROM芯片進行下載。通常如果需要對PROM進行升級時,需要直接對可編程只讀存儲器(Programmable Read Only Memory,簡稱為PROM)進行讀寫操作,但是如果在升級階段突然遇到FPGA斷電 或CPU出現(xiàn)異常中斷,如CPU復位時,最后導致FPGA再重新讀取PROM位文件時失敗,F(xiàn)PGA 加載不成功導致整個系統(tǒng)無法正常工作。針對相關技術中PROM升級中常常存在因異常狀況導致FPGA配置失敗的問題,目 前尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對PROM升級中常常存在因異常狀況導致FPGA配置失敗的問題而提出本發(fā)明, 為此,本發(fā)明的主要目的在于提供一種可編程門陣列位文件下載的方法及裝置,以解決上 述問題。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種可編程門陣列位文件下 載的裝置。根據(jù)本發(fā)明的可編程門陣列位文件下載的裝置包括主用PROM和備用PR0M,用于 存儲FPGA的邏輯配置文件;開關芯片,與FPGA、主用PROM和備用PROM相連,用于將FPGA與 主用PROM接通,或?qū)PGA與備用PROM接通。優(yōu)選地,主用PROM和備用PROM分別與開關芯片的輸入接口相連,F(xiàn)PGA的下載配 置管腳和開關芯片的輸出管腳相連。優(yōu)選地,F(xiàn)PGA下載裝置還包括標準燒結下載插座,與主用PROM相連,用于將燒結 邏輯寫入主用PROM中。
優(yōu)選地,F(xiàn)PGA下載裝置還包括處理器,與開關芯片和FPGA相連,用于對開關芯片 和FPGA進行控制。 優(yōu)選地,F(xiàn)PGA下載裝置還包括EEPR0M,與處理器相連,用于保存FPGA的升級相關信息ο
優(yōu)選地,F(xiàn)PGA升級相關信息包括指示通過備用PROM升級是否成功的信息。優(yōu)選地,開關芯片的管腳包括2個輸入接口、1個輸出接口、1個通道接口控制端 和1個使能端。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種可編程門陣列位文件下 載的方法。根據(jù)本發(fā)明的可編程門陣列位文件下載的方法包括在FPGA首次上電時將燒結 邏輯寫入主用PROM中;在系統(tǒng)正常工作后,使連接備用PROM的通道處于正常工作狀態(tài)以從 備用PROM中讀取邏輯配置位文件;在從備用PROM中讀取邏輯配置位文件失敗的情況下,使 連接主用PROM的通道處于正常工作狀態(tài)以從主用PROM中讀取邏輯位文件。優(yōu)選地,在從備用PROM中讀取邏輯配置位文件失敗的情況下,該方法還包括對 通過備用PROM中讀取邏輯配置位文件失敗進行記錄。優(yōu)選地,在FPGA重新上電或系統(tǒng)復位時,通過讀取EEPROM來判斷通過主用PROM 或備用PROM來讀取邏輯配置位文件,其中,EEPROM用于存儲FPGA升級的相關信息。本發(fā)明提供了一種可編程門陣列位文件下載的方法及裝置,該裝置包括主用 PROM和備用PR0M,用于存儲FPGA的邏輯配置文件;開關芯片,與FPGA、主用PROM和備用 PROM相連,用于將FPGA與主用PROM接通,或?qū)PGA與備用PROM接通,通過本發(fā)明,解決了 PROM升級中常常存在因異常狀況導致FPGA配置失敗的問題,進而達到了使FPGA升級更加 安全可靠的效果。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本中請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中圖1是根據(jù)本發(fā)明實施例的可編程門陣列位文件下載的裝置的示意圖;圖2是根據(jù)本發(fā)明實施例的可編程門陣列位文件下載的方法的流程圖;圖3是根據(jù)本發(fā)明實施例的首次上電或重新上電后可編程門陣列位文件下載的 方法的流程圖;圖4是根據(jù)本發(fā)明實施例的可編程門陣列升級和異常處理的方法的流程圖;圖5是根據(jù)本發(fā)明實施例的優(yōu)選的可編程門陣列位文件下載的裝置的示意圖。
具體實施例方式功能概述考慮到PROM升級中常常存在因異常狀況導致FPGA配置失敗,本發(fā)明實施例提供 了一種可編程門陣列位文件下載的方法及裝置。該裝置包括主用PROM和備用PR0M,用于 存儲FPGA的邏輯配置文件;開關芯片,與FPGA、主用PROM和備用PROM相連,用于將FPGA與 主用PROM接通,或?qū)PGA與備用PROM接通。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相 互組合。下面將參考附圖并結合實施例來詳細說明本發(fā)明。根據(jù)本發(fā)明的實施例,提供了一種可編程門陣列位文件下載的裝置。圖1是根據(jù)本發(fā)明實施例的可編程門陣列位文件下載的裝置的示意圖。
如圖1所示,該裝置包括FPGA 101,主PROM (主用PR0M) 103,備PROM (備用 PR0M) 104,優(yōu)選地,還包括CPU 102,SWITCH開關芯片105,EEPROM 106,標準燒結下載插座 107。FPGA 101的邏輯位文件存放于主PROM 103中和備PROM 104。SWITCH開關芯片105的 管腳一般由2個輸入接口,1個輸出接口,1個通道接口控制端,1個使能端組成。FPGA 101 的下載配置管腳已SWITCH開關芯片105的1個輸入相連,CPU 102的GPIO (通用的輸入輸 出)管腳分別與SWITCH開關芯片105的控制管腳和FPGA 101的下載狀態(tài)輸出管腳相連。 主I3ROM 103,備I3ROM 104的管腳和SWITCH開關芯片104的2個輸入管腳相連。EEPR0M106 的管腳和CPU 102的GPIO管腳或?qū)S肐IC接口相連。標準燒結下載插座107和主PROM 103 相連。同時FPGA 101和CPU 102通過并行總線或串行總線相連。首次FPGA上電后通過標 準燒結下載插座107和專用FPGA燒結軟件將燒結邏輯寫入主PROM 103中。同時CPU 102 的GPIO控制SWITCH開關芯片104的通道接口管腳使連接主用PROM 103的通道處于正常 工作狀態(tài)。圖2是根據(jù)本發(fā)明實施例的可編程門陣列位文件下載的方法的流程圖。如圖2所示,該方法包括如下的步驟S202至步驟S206 步驟S202,在FPGA首次上電時將燒結邏輯寫入主用PROM中;步驟S204,在系統(tǒng)正常工作后,使連接備用PROM的通道處于正常工作狀態(tài)以從所 述備用PROM中讀取邏輯配置位文件;步驟S206,在從所述備用PROM中讀取所述邏輯配置位文件失敗的情況下,使連接 所述主用PROM的通道處于正常工作狀態(tài)以從所述主用PROM中讀取邏輯位文件。下面將結合實例對本發(fā)明實施例的實現(xiàn)過程進行詳細描述。圖3是根據(jù)本發(fā)明實施例的首次上電或重新上電后可編程門陣列位文件下載的 方法的流程圖。如圖3所示,該方法包括以下步驟步驟S301,設計FPGA邏輯,其中包括為CPU設計出一個讀寫接口能夠讀寫FPGA內(nèi) 部寄存器和讀寫PROM的接口。步驟S302,設計CPU應用程序,其中包括對FPGA內(nèi)部寄存器進行讀寫、監(jiān)控FPGA 下載狀態(tài)管腳、控制FPGA下載的nConfig管腳、控制開關的WR管腳和讀寫EEPROM的IIC管腳。步驟S303,首次FPGA 101上電后通過標準燒結下載插座107和專用FPGA 101燒 結軟件(一般由FPGA廠家提供)將燒結邏輯寫入主PROM 103中。步驟S304,當單板重新上電后CPU 102根據(jù)IIC接口讀取預先約定的EEPROM 106 相應的地址空間中的內(nèi)容(升級成功標志字)來切換SWITCH開關芯片105決定從相應PROM 中下載FPGA 101邏輯。步驟S305,CPU 102控制SWITCH DIR管腳,切換到相應的通道。步驟S306,CPU 102判斷是從備用PROM 104還是從主用PROM 103更新FPGA邏輯。步驟S307,如果判斷結果為是,當CPU 102判斷是從備用PROM 104下載時同時打 開定時監(jiān)控程序監(jiān)控FPGA 101的下載狀態(tài)輸出管腳(通常是INIT_D0NE或C0NF_D0NE)。 如果這些管腳在一定時間內(nèi)(通常根據(jù)具體情況決定)沒有輸出為有效值,說明FPGA 101從備用PROM 104下載失敗,這時CPU 102切換SWITCH開關芯片105通道從主用PROM 103 下載FPGA 101邏輯文件,同時監(jiān)控程序監(jiān)控FPGA 101的下載狀態(tài)輸出管腳,當這些管腳為 有效值時說明FPGA 101下載成功,系統(tǒng)正常運行。最后CPU 102通過GPIO管腳或?qū)S肐IC 接口對相連的EEPROM 106進行寫操作,把特定的數(shù)據(jù)(升級是否成功標志)寫到的約定地 址空間中。監(jiān)控INIT_D0NE是否為高電平。如果判斷結果為是,轉(zhuǎn)步驟S312,如果判斷結果為 否,轉(zhuǎn)步驟S308。步驟S308,CPU監(jiān)控程序監(jiān)控FPGA 101的下載狀態(tài)輸出管腳是否超出預定的時 間。如果判斷結果為是,轉(zhuǎn)步驟S309,如果判斷結果為否,轉(zhuǎn)步驟S307。步驟S309,CPU控制SWITCH DIR管腳,切換到主用PROM通道。步驟S310,CPU控制FPGA管腳使FPGA重新下載邏輯。步驟S311,CPU監(jiān)控INIT_D0NE是否為高電平。如果判斷結果為是,轉(zhuǎn)步驟S312, 如果判斷結果為否,則繼續(xù)進行判斷。步驟S312,F(xiàn)PGA完成下載,系統(tǒng)開始正常工作。步驟S313,CPU將升級信息存儲到EEPROM相應的地址空間中。步驟S314,F(xiàn)PGA完成下載,系統(tǒng)處于正常狀態(tài)。圖4是根據(jù)本發(fā)明實施例的可編程門陣列升級和異常處理的方法的流程圖。如圖4所示,該方法包括以下步驟編寫CPU 102的應用程序,使CPU 102可以通過總線讀寫FPGA 101內(nèi)部寄存器升 級備用PROM 104中文件。完成升級備用PROM 104中文件后,CPU 102通過控制FPGA 101 的下載配置管腳(通常是nConf ig管腳)使FPGA重新從備用PROM 104中讀取邏輯配置位 文件完成FPGA邏輯下載。CPU 102在FPGA 101讀取配置期間,監(jiān)控FPGA 101的下載狀態(tài) 輸出指示管腳(通常是INIT_D0NE或C0NF_D0NE)。當FPGA 101完成下載后這些狀態(tài)管腳 輸出為有效值,CPU 102監(jiān)控到后,通過GPIO管腳或?qū)S肐IC接口相連的EEPROM 106把升 級成功標志字存儲到相應的地址空間中。如果FPGA 101在從備用PROM 104中讀取位文件 時,遇到備用PROM 104失效或者其他異常狀況導致讀操作失敗時,這些通過CPU 102在一 段時間內(nèi)(通常根據(jù)具體應用具體決定)沒有檢測到FPGA 101的下載狀態(tài)輸出指示管腳 (通常是INIT_D0NE或C0NF_D0NE)為有效值時,說明FPGA 101從備用PROM 104中讀取配 置位文件失敗,這時CPU 102的GPIO控制SWITCH開關芯片104的通道接口管腳使連接主 用PROM 104的通道處于正常工作狀態(tài),通過控制FPGA 101下載控制管腳(通常是nConfig 管腳)使FPGA 101重新從主用PROM 103中讀取邏輯配置位文件完成FPGA 101邏輯下載, 這樣可以避免系統(tǒng)因為升級異常導致FPGA101不能正常工作的情況。步驟S401,判斷是否對備用PROM邏輯文件進行升級。如果判斷結果為是,轉(zhuǎn)步驟 S402,如果判斷結果為否,則繼續(xù)進行判斷。步驟S402,CPU 102控制SWITCH DIR管腳,切換到備用的通道。步驟S403,CPU 102通過總線讀寫FPGA內(nèi)部寄存器以更新備用PROM中的文件。步驟S404,判斷備用PROM文件是否更新完成。如果判斷結果為是,轉(zhuǎn)步驟S405, 如果判斷結果為否,則繼續(xù)進行判斷。步驟S405,返回系統(tǒng)正常的進程。
步驟S406,判斷是否需要從備用PROM更新。如果判斷結果為是,轉(zhuǎn)步驟S407,如 果判斷結果為否,則轉(zhuǎn)步驟S405。步驟S407,CPU控制FPGA重新下載邏輯。步驟S408,監(jiān)控INIT_D0NE是否為高電平。如果判斷結果為是,轉(zhuǎn)步驟S413,如果 判斷結果為否,轉(zhuǎn)步驟S409。步驟S409,CPU判斷定時監(jiān)控是否超出預定時間。步驟S410,CPU 102控制SWITCH WR管腳,切換到主用的通道。步驟S411,CPU控制FPGA重新下載邏輯。步驟S412,監(jiān)控C0NF_D0NE是否為高電平。步驟S413,F(xiàn)PGA下載完成下載,開始正常工作。
步驟S414,CPU將升級信息保存到EEPROM相應的地址空間中。圖5是根據(jù)本發(fā)明實施例的優(yōu)選的可編程門陣列位文件下載的裝置的示意圖。如圖5所示,優(yōu)選地,該裝置中FPGA^)1)選擇器件為ALTERA公司的 EP2C35F672,CPU (402)為 PPC8321,主 PROM0O3)和備 I3ROMG(M)為 EPCS16,SWITCH 開關芯 片(405)為 PI3L100Q,EEPROM (406)為 ATMC64,標準燒結下載插座(407)。FPGA (401)的 邏輯程序存放于所述PROM003)中。SWITCH開關芯片005)的管腳一般由2個輸入接口 (10,II),1個輸出接口(Y),1個通道接口控制端(S),l個使能端(E)組成。FPGA(401)的 下載配置管腳已所述SWITCH開關芯片105的1個輸入相連,CPU (402)的GPIO (通用的輸 入輸出)管腳分別與SWITCH開關芯片(405)的控制管腳⑶和FPGA001)的下載狀態(tài)輸 出管腳(C0NF_D0NE)相連。主I3ROM003),備I3ROM004)的管腳和SWITCH開關芯片(404) 的2個輸入管腳相連。從以上的描述中,可以看出,本發(fā)明采用通用的PROM構成的邏輯位文件存儲器主 PROM 103和備PROM 104,通過CPU 102訪問預先設定的EEPROM 106相應的地址空間來切 換SWITCH開關芯片105從哪個邏輯位文件存儲器中下載FPGA 101邏輯,完成FPGA 101的 邏輯重新下載更新,同時可以避免在FPGA升級過程中引起的異常情況,方案簡單可靠,成 本低。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的 計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不 同于此處的順序執(zhí)行所示出或描述的步驟。顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲 在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們 中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的 硬件和軟件結合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技 術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種現(xiàn)場可編程門陣列FPGA位文件的下載裝置,其特征在于,包括 主用PROM和備用PR0M,用于存儲FPGA的邏輯配置文件;開關芯片,與所述FPGA、所述主用PROM和所述備用PROM相連,用于將所述FPGA與所述 主用PROM接通,或?qū)⑺鯢PGA與所述備用PROM接通。
2.根據(jù)權利要求1所述的裝置,其特征在于,所述主用PROM和所述備用PROM分別與所 述開關芯片的輸入接口相連,所述FPGA的下載配置管腳和所述開關芯片的輸出管腳相連。
3.根據(jù)權利要求1或2所述的裝置,其特征在于,所述FPGA下載裝置還包括 標準燒結下載插座,與所述主用PROM相連,用于將燒結邏輯寫入所述主用PROM中。
4.根據(jù)權利要求1或2所述的裝置,其特征在于,所述FPGA下載裝置還包括處理器,與所述開關芯片和所述FPGA相連,用于對所述開關芯片和所述FPGA進行控制。
5.根據(jù)權利要求1或2所述的裝置,其特征在于,所述FPGA下載裝置還包括 EEPR0M,與所述處理器相連,用于保存所述FPGA的升級相關信息。
6.根據(jù)權利要求5所述的裝置,其特征在于,所述FPGA升級相關信息包括 指示通過所述備用PROM升級是否成功的信息。
7.根據(jù)權利要求1或2所述的裝置,其特征在于,所述開關芯片的管腳包括 2個輸入接口、1個輸出接口、1個通道接口控制端和1個使能端。
8.一種現(xiàn)場可編程門陣列FPGA位文件的下載方法,其特征在于,包括 在現(xiàn)場可編程門陣列FPGA首次上電時將燒結邏輯寫入主用PROM中;在系統(tǒng)正常工作后,使連接備用PROM的通道處于正常工作狀態(tài)以從所述備用PROM中 讀取邏輯配置位文件;在從所述備用PROM中讀取所述邏輯配置位文件失敗的情況下,使連接所述主用PROM 的通道處于正常工作狀態(tài)以從所述主用PROM中讀取邏輯位文件。
9.根據(jù)權利要求8所述的方法,其特征在于,在從所述備用PROM中讀取所述邏輯配置 位文件失敗的情況下,所述方法還包括對通過所述備用PROM中讀取所述邏輯配置位文件失敗進行記錄。
10.根據(jù)權利要求8或9所述的方法,其特征在于,在FPGA重新上電或系統(tǒng)復位時, 通過讀取EEPROM來判斷通過主用PROM或備用PROM來讀取邏輯配置位文件,其中,所述 EEPROM用于存儲所述FPGA升級的相關信息。
全文摘要
本發(fā)明提供了一種可編程門陣列位文件下載的方法及裝置,該裝置包括主用PROM和備用PROM,用于存儲FPGA的邏輯配置文件;開關芯片,與FPGA、主用PROM和備用PROM相連,用于將FPGA與主用PROM接通,或?qū)PGA與備用PROM接通,通過本發(fā)明,解決了PROM升級中常常存在因異常狀況導致FPGA配置失敗的問題,進而達到了使FPGA升級更加安全可靠的效果。
文檔編號G06F13/38GK102043636SQ200910179879
公開日2011年5月4日 申請日期2009年10月19日 優(yōu)先權日2009年10月19日
發(fā)明者張?zhí)扃R 申請人:中興通訊股份有限公司