專利名稱:一種fpga配置文件在線升級方法及裝置的制作方法
技術領域:
本發明涉及電子電路設計技術領域,尤其涉及一種FPGA配置文件在線升級方法
及裝置。
背景技術:
現場可編程門陣列(FPGA,Field-Programmable Gate Array)是在可編程陣列邏輯(PAL, Programming array logic)、通用陣歹 Ij 邏輯(GAL, generic array logic)、復雜可編程邏輯器件(CPLD,Complex Programmable Logic Device)的基礎上進一步發展的產物。 其允許涉及人員使用硬件描述語言作61^108或者¥皿0完成電路設計,通過對應綜合工具的編譯生成配置文件,當FPGA載入配置文件后,即可使得FPGA實現設計需要的邏輯功能。FPGA載入配置文件時,可以使用聯合測試行動小組(JTAG,Joint Test Action Group)下載線纜與其JTAG接口連接,通過下載線纜將配置文件載入FPGA,但是,在芯片下電后通過配置文件形成的邏輯功能無法保存,所以,FPGA在使用前均有一個配置的過程,使用FPGA的電子設備在上電后,會首先進行配置文件的載入。現有技術中,FPGA載入配置文件分為主動配置方式和被動配置方式。主動配置方式即為FPGA主動讀取存儲器中的配置文件,其中,存儲器可以為可編程只讀存儲器 (PROM),高速同步串行口閃存(SPI-flash),非易失閃存(Nor-flash)等,按照存儲器與 FPGA之間的接口采用的協議,主動配置方式可以包括以下四種工作模式圖Ia為主動串行配置模式,圖Ib為主動SPI配置模式,圖Ic為主動BPI配置模式,圖Id為主動klectMAP 模式;被動配置方法即為外部的控制器件,例如中央處理器(CPU),微處理器(MCU)以及模擬配置時序的CPLD等,通過控制FPGA的配置管腳,以滿足FPGA時序的方式進行配置,按照存儲器與FPGA之間采用的接口協議,被動配置方式可以包括以下四種工作模式圖加為被動串行模式,圖%為被動JTAG模式,圖2c為被動klectMAP模式。當使用FPGA的電子設備做好之后,其配置文件就固定下來了,通過燒片機燒片的方式錄入存儲器芯片中,在板卡制版的時候焊接帶有配置文件的存儲芯片,這樣,如果需要改變或者增加FPGA的邏輯功能,就需要更改FPGA的配置文件,如果在電路設計上未考慮 FPGA配置文件的在線升級,只能將存儲芯片從板卡上取下,重新燒寫后焊接上。為了解決上述問題,現有技術中,主要通過以下兩種方案進行FPGA配置文件的在線升級1、增加一塊CPLD (復雜可編程邏輯器件),專門用作FPGA的升級。FPGA配置在被動配置方式之下,其配置管腳和CPLD相連,同時CPLD和存儲配置文件的存儲芯片相連。CPLD 的邏輯功能固定,專門用作配置FPGA。在上電的時候由CPLD讀取存儲芯片中的配置文件, 再寫入FPGA完成配置。當需要進行FPGA升級的時候,通過CPU將新的配置文件通過寫入 CPLD這一中間器件寫入存儲芯片覆蓋原來的配置文件。在重啟FPGA整個配置流程或系統斷電重啟后,CPLD從存儲芯片中讀取到的就是更新后的配置文件了。這樣就完成了配置的升級;2、直接通過CPU的GPIO (通用輸入輸出)管腳使用軟件模擬FPGA的下載時序,對 FPGA進行配置。配置文件可放在CPU下掛的存儲芯片中,或者與CPU運行的主程序合為一體,在CPU程序運行加載后將配置文件部分寫入FPGA。如果需要更新FPGA配置文件,可以通過更新存儲芯片中配置文件的方式進行,或跟隨CPU主程序的更新一起進行升級。上述兩種解決方案中,存在以下問題上述第一種方案中,需要增加專門的CPLD 器件,且CPLD需要模擬和CPU和存儲器間的接口時序,以及配置FPGA的時序,占用了 CPLD 較多的管腳,耗費邏輯資源;上述第二種方案中,需要占用資源緊張的CPU較多的處理資源,而且,由于這種配置方式需要在CPU自身啟動配置完成,軟件開始執行以后才能通過 CPU的GPIO模擬時序對FPGA進行下載,在這之前FPGA處于未配置狀態,其邏輯功能無法實現,而在很多情況下,需要FPGA —上電即可用,因此,不是所有使用FPGA的場合都適用這種方式。
發明內容
本發明提供一種FPGA配置文件在線升級的方法及裝置,用以在不增加額外的邏輯器件的前提下,完成FPGA配置文件的在線升級,并實現FPGA上電即可用的目的。本發明實施例提供一種FPGA配置文件在線升級的方法,包括在進行現場可編程門陣列FPGA配置文件升級時,中央處理器CPU控制總線切換開關將FPGA與存儲器之間的第一數據通路斷開、將CPU與存儲器之間的第二數據通路連通;所述CPU更新所述存儲器中存儲的FPGA配置文件;并在完成FPGA配置文件的更新之后,所述CPU控制所述總線切換開關將所述第一數據通路連通、將所述第二數據通路斷開;以及所述CPU觸發所述FPGA從所述存儲器中重新載入更新后的FPGA配置文件,并對所述FPGA進行更新。本發明實施例提供一種FPGA配置文件在線升級的裝置,包括存儲器,用于存儲現場可編程門陣列FPGA配置文件;中央處理器CPU,用于在進行FPGA配置文件升級時,控制總線切換開關將FPGA與存儲器之間的第一數據通路斷開、將CPU與存儲器之間的第二數據通路連通,并更新所述存儲器中的FPGA配置文件;以及在完成FPGA配置文件的更新之后,控制所述總線切換開關將所述第一數據通路連通、將所述第二數據通路斷開;并觸發所述FPGA重新從所述存儲器中載入更新后的FPGA配置文件,并進行配置。總線切換開關,用于在所述CPU的控制下,分別連通或者斷開所述第一數據通路和所述第二數據通路;FPGA,用于在所述CPU的觸發下,從所述存儲器中重新載入更新后的FPGA配置文件,并進行配置。本發明實施例提供的FPGA配置文件在線升級的方法及裝置,當需要進行FPGA配置文件升級時,CPU控制總線切換開關將FPGA與存儲器之間的第一數據通路斷開、將CPU與存儲器之間的第二數據通路連通,使得CPU能夠更新存儲器中存儲的FPGA配置文件,并在完成FPGA配置文件的更新之后,CPU觸發FPGA重新加載更新后的FPGA配置文件,以完成 FPGA配置文件的升級,采用本發明實施例提供的FPGA配置文件在線升級的方法,無需增加額外的邏輯器件,且在升級完成后,FPGA上電后即可從存儲器讀取配置文件進行配置,由于無需通過CPU的GPIO模擬FPGA的下載時序,從而對FPGA的配置無需在CPU自身啟動配置完成后再進行,實現了 FPGA上電即可用的目的。本發明的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
圖Ia為現有技術中,主動串行配置模式下的主動配置方式示意圖;圖Ib為現有技術中,主動SPI配置模式下的主動配置方式示意圖;圖Ic為現有技術中,主動BPI配置模式下的主動配置方式示意圖;圖Id為現有技術中,主動klectMAP模式下的主動配置方式示意圖;圖加為現有技術中,被動串行模式下的被動配置方式示意圖;圖2b為現有技術中,被動JTAG模式下的被動配置方式示意圖;圖2c為現有技術中,被動klectMAP模式下的被動配置方式示意圖;圖3為本發明實施例中,總線切換開關的結構示意圖;圖4為本發明實施例中,FPGA配置文件在線升級的方法的實施流程示意圖;圖5為本發明實施例中,使用SPI-Flash主動配置方式下的電路結構示意圖;圖6為本發明實施例中,使用SPI-Flash主動配置方式下,FPGA配置文件在線升級方法的實施流程示意圖;圖7為本發明實施例中,FPGA配置文件在線升級裝置的結構示意圖。
具體實施例方式為了在不增加額外的邏輯器件的前提下,完成FPGA配置文件的在線升級,并實現 FPGA上電即可用的目的,本發明實施例提供了一種FPGA文件在線升級的方法及裝置。采用本發明實施例提供FPGA文件在線升級的方法及裝置,使得FPGA可以在正常模式與升級模式之間進行切換。為了實現上述目的,本發明實施例中,利用FPGA的主動配置方式,通過總線切換開關進行數據通路的選通。如圖3所示,為總線切換開關的結構示意圖,圖3中以3384總線切換開關的結構為例進行說明。3384總線切換開關一共有10路數據通路,通過兩組OE使能鍵進行控制,10E#有效時(即為低電平時),則對應的1A,IB側數據通路連通,即IAl和IBl可認為物理上連通,1A2與1B2連通...1A5與1B5連通。而在 10E#無效時,中間連通斷開。同理20E#可控制2A1與2B1,2A2與2B2...等的通斷情況。基于此,本發明實施例中,FPGA的配置管腳通過總線切換開關的10E#與存儲器相連,CPU通過總線切換開關的20E#與存儲器相連,并通過CPU向總線切換開關輸入使能信號,控制10E#或者20E#有效,使得FPGA能夠在正常模式與升級模式之間進行切換,即當 10E#有效且2oe#無效時,FPGA處于正常模式下;當10E#無效且2oe#有效時,FPGA處于升級模式下。正常模式下,當上電時,FPGA從存儲器中讀取FPGA配置文件完成FPGA的配置。 當需要進行FPGA配置文件升級時,總線切換開關將FPGA與存儲器之間的數據通路斷開,即使得10E#無效,同時,將CPU與存儲器之間的數據通路連通,即使得20E#有效,這樣,便建立了 CPU與存儲器之間的連接,使得CPU可以對存儲器中存儲的FPGA文件進行更新操作, 即使得CPU能夠將更新后的FPGA配置文件寫入到存儲器中,CPU在完成FPGA配置文件的更新操作之后,控制總線切換開關將FPGA與存儲器之間的數據通路連通,即使得10E#有效, 同時,將CPU與存儲器之間的數據通路斷開,即使得20E#無效,并觸發FPGA從存儲器中重新載入更新后的FPGA配置文件,完成了 FPGA配置文件的在線升級。以下結合說明書附圖對本發明的優選實施例進行說明,應當理解,此處所描述的優選實施例僅用于說明和解釋本發明,并不用于限定本發明,并且在不沖突的情況下,本發明中的實施例可以相互組合使用或者進行任意變型。如圖4所示,為本發明實施例提供的FPGA配置文件在線升級的方法,包括以下步驟S401、在FPGA配置文件升級時,CPU控制總線切換開關將FPGA與存儲器之間的第一數據通路斷開、將CPU與存儲器之間的第二數據通路連通;S402、CPU更新所述存儲器中存儲的FPGA配置文件;S403、CPU在完成FPGA配置文件的更新之后,控制總線切換開關將第一數據通路連通、將所述第二數據通路斷開; S404、CPU觸發FPGA從存儲器中重新載入更新后的FPGA配置文件,并對該FPGA進行配置。具體實施時,存儲器可以為可編程只讀存儲器(PROM),高速同步串行口閃存 (SPI-flash),非易失閃存(Nor-flash)等,為了便于描述,本發明實施例中,以存儲器為 SPI-flash為例進行說明。如圖5所示,為使用SPI-Flash主動配置方式下的電路示意圖,SPI-flash的SPI 接口的數據線、時鐘線及控制線分別與總線切換開關一邊的兩組數據通路相連接,例如, SPI-flash的數據輸入線datain同時與IAl和2A1連接,而接口對應的FPGA端的MOSI數據線、CPU的MOSI數據線分別與IBl和2B1連接,SPI-flash的數據輸出線dataout同時與1A2和2A2連接,而接口對應端的FPGA的DIN數據線、CPU的MISO數據線分別與1B2和 2B2連接,SPI-flash的時鐘線同時與1A4和2A4連接,而接口對應端的FPGA的elk時鐘線、 CPU的elk時鐘線分別與1B4和2B4連接;CPU通過GPIO配置管腳引出的控制線向總線切換開關輸入電平信號,來控制總線切換開關的10E#有效且2(^#無效,或者控制10E#無效且20E#有效。在正常模式下,上電后,從CPU的GPIO出來的控制線默認上拉,即CPU向10E#輸入高電平信號,向2(^#輸入反向(低電平)信號,使得10E#有效,20E#無效,這時,使得控制總線切換開關將SPI-flash與FPGA之間的數據通路連通,將CPU和SPI-flash之間的數據通路斷開;當需要進行FPGA配置文件升級時,通過CPU的GPIO對總線切換開關的勢能管腳進行控制,向10E#輸入低電平信號,使得10E#無效,從而將FPGA與SPI-flash之間的 10E#斷開,并同時向20E#輸入高電平信號,使得20E#有效,從而將CPU與SPI-flash之間的第二數據通路連通。這樣,CPU與SPI-flash之間建立了連接,此時,可以通過CPU的SPI 接口對SPI-flash進行寫入操作,更新SPI-flash存儲的FPGA配置文件。其中,CPU的SPI 接口可以是CPU自帶的,如果CPU無SPI接口,可以通過GPIO進行模擬。在完成FPGA配置文件的更新之后,CPU對FPGA的配置管腳PR0G_B進行操作,拉低FPGA的配置管腳PR0G_B 并持續設定時長后釋放,即可觸發FPGA重新從存儲器中載入更新后的FPGA配置文件,進行 FPGA配置文件升級后的配置。
具體實施中,CPU在觸發FPGA重新載入更新后的配置文件,并進行配置之后,還需要確定FPGA配置是否成功。具體的,CPU可以通過檢測FPGA的配置管腳DONE,當檢測到 DONE重新拉高時,則確定FPGA重新載入更新后的FPGA配置文件之后,進行配置成功,否則, 確定FPGA重新載入更新后的FPGA配置文件之后,進行配置失敗。本發明實施例中,FPFA配置文件的升級過程對于FPGA來說是不可見的,在FPGA 配置文件升級的過程中,對于FPGA來說,與主動SPI模式下的配置過程無異,在上電后主動的從對應的配置接口去載入FPGA配置文件,完成對FPGA的配置,這樣,使得FPGA上電即可用。具體實施中,由于可能出現更新后的FPGA無法正常配置的情況出現,而FPGA的未成功配置在某些情況下會影響到整個設備的正常工作。較佳地,本發明實施例中,為了避免上述情況的出現,增強FPGA配置文件升級的可靠性,可以將存儲器的存儲空間劃分為連續的三段,分別為第一存儲區、第二存儲區和第三存儲區,其中,第一存儲區存儲本次更新后的FPGA配置文件,第二存儲區存儲本次更新前的FPGA配置文件,第三存儲區存儲初始FPGA配置文件;即第一存儲區為正常讀取配置空間,第二存儲區為升級配置存儲區,第三存儲區為保留區,其中,第三存儲區原則上不允許進行寫操作。初始時,三個存儲區都寫入初始FPGA配置文件。在后續進行FPGA配置文件在線升級時,CPU將更新后的FPGA配置文件寫入第一存儲區中,并覆蓋第一存儲區中原來的FPGA配置文件,CPU在寫入更新后的FPGA配置文件之后,通過重新上電或者拉低FPGA的配置管腳PR0G_B的方式觸發FPGA重新載入更新后的FPGA配置文件,FPGA默認從第一存儲區載入更新后的FPGA配置文件。CPU通過檢測FPGA的配置管腳DONE的狀態變化,判斷 FPGA進行配置是否成功。若DONE重新拉高,則確定FPGA載入更新后的FPGA配置文件,進行配置成功,否則,確定FPGA進行配置未成功。較佳地,當CPU在確定FPGA重新載入第一存儲區存儲的FPGA配置文件,進行配置成功時,比較第一存儲區存儲的本次更新后的FPGA配置文件與第二存儲區存儲的本次更新前的FPGA配置文件是否一致;以及在比較結果不一致時,用第一存儲區存儲的本次更新后的FPGA配置文件覆蓋第二存儲區存儲的本次更新前的FPGA配置文件;在比較結果一致時,則不進行操作。較佳地,當CPU在確定FPGA重新載入第一存儲區存儲的本次更新后的FPGA配置文件,進行配置未成功時,用第二存儲區存儲的本次更新前的FPGA配置文件覆蓋第一存儲區存儲的本次更新后的FPGA配置文件;并觸發FPGA從第一存儲區中重新載入本次更新前的FPGA配置文件,并進行配置。特別地,當CPU在確定FPGA從第一存儲區中重新載入本次更新前的FPGA配置文件,進行配置仍未成功時,即在用第二存儲區存儲的本次更新前的 FPGA配置文件覆蓋第一存儲區存儲的本次更新后的FPGA配置文件之后,對FPGA進行配置仍未成功時,用第三存儲區存儲的初始FPGA配置文件覆蓋第一存儲區存儲的本次更新前的FPGA配置文件;并觸發FPGA從第一存儲區中重新載入初始FPGA配置文件,并進行配置。具體實施過程中,對于存儲區之間的讀寫均是在總線切換開關在CPU的控制下將存儲器與CPU之間的數據通路連通的情況下完成的,在觸發FPGA重現載入FPGA配置文件進行配置之前,總線切換開關在CPU的控制下將存儲器與FPGA之間的數據通路連通,對于 FPGA來說,均是通過主動配置方式,從第一存儲區載入FPGA配置文件,升級過程對其不可見。通常情況下,不會出現載入更新后的FPGA配置文件,進行配置失敗的情況。但是如果在進行FPGA配置文件升級的過程中,恰好出現設備斷電等意外情況時,可以采取用第二存儲區存儲的更新前的FPGA配置文件覆蓋第一存儲區的存儲的更新后的FPGA配置文件。特別地,考慮極端情況,如果在用第二存儲區存儲的更新前的FPGA配置文件覆蓋第一存儲區的存儲的更新后的FPGA配置文件的過程中,也出現了意外情況,此時,可以用第三存儲區存儲的初始FPGA配置文件覆蓋第一存儲區存儲的本次更新前的FPGA配置文件,從而,保證了 FPGA配置文件升級過程的可靠性。為了便于理解本發明,以下以使用SPI-Flash主動配置方式下,FPGA配置文件在線升級方法為例,進行說明。如圖6所示,為本發明實施例中,使用SPI-Flash主動配置方式下,FPGA配置文件在線升級方法的實施流程示意圖,包括以下步驟S601、CPU控制總線切換開關將FPGA與存儲器之間的數據通路斷開、將CPU與存儲器之間的數據通路連通;具體的,CPU向FPGA與存儲器之間的數據通路輸入低電平信號,將FPGA與存儲器之間的數據通路斷開,并同時向CPU與存儲器之間的數據通路輸入高電平信號,將CPU與存儲器之間的第二數據通路連通。S602、CPU向存儲器的第一存儲區寫入更新后的FPGA配置文件;S603、CPU控制總線切換開關將FPGA與存儲器之間的數據通路連通、將CPU與存儲器之間的數據通路斷開;S604、CPU拉低FPGA的配置管腳PR0G_B,并持續設定時長后釋放;具體實施時,也可以通過對FPGA重啟上電的方式,觸發FPGA從第一存儲區中重新載入更新后的FPGA配置文件,并進行配置。S605、FPGA從第一存儲區中重新載入更新后的FPGA配置文件,并進行配置;S606、CPU判斷FPGA配置是否成功,如果是,執行步驟S607,否則,執行步驟S609 ;具體的,CPU通過檢測FPGA的配置管腳DONE,若檢測到其重新拉高時,則確定FPGA 配置成功,否則,確定FPGA配置失敗。S607、比較第一存儲區的FPGA配置文件與第二存儲區的FPGA配置文件是否一致, 如果是,執行步驟S616,否則執行步驟S608 ;S608、用第一存儲區存儲的本次更新后的FPGA配置文件覆蓋第二存儲區存儲的本次更新前的FPGA配置文件,并執行步驟S616 ;S609、用第二存儲區的存儲的本次更新前的FPGA配置文件覆蓋第一存儲區存儲的本次更新后的FPGA配置文件;S610、CPU拉低FPGA的配置管腳PR0G_B,并持續設定時長后釋放;S6IU FPGA重新從第一存儲區載入本次更新前的FPGA配置文件,并進行配置;S612、CPU判斷FPGA配置是否成功,如果是,執行步驟S616,否則,執行步驟S613 ;S613、用第三存儲區存儲的初始FPGA配置文件覆蓋第一存儲區存儲的本次更新前的FPGA配置文件;S614、CPU拉低FPGA的配置管腳PR0G_B,并持續設定時長后釋放;S615、FPGA重新從第一存儲區載入初始FPGA配置文件,并進行配置;S616、流程結束。
基于同一發明構思,本發明實施例中還提供了一種FPGA配置文件在線升級的裝置,由于該裝置解決問題的原理與上述FPGA配置文件在線升級的方法相似,因此該裝置的實施可以參見上述FPGA配置文件在線升級的方法的實施,重復之處不再贅述。如圖7所示,為本發明實施例提供的FPGA配置文件在線升級裝置的結構示意圖, 包括存儲器701,用于存儲現場可編程門陣列FPGA配置文件;CPU 702,用于在進行FPGA配置文件升級時,控制總線切換開關將FPGA704與存儲器701之間的第一數據通路斷開、將CPU 702與存儲器701之間的第二數據通路連通,并更新存儲器701中的FPGA配置文件;以及在完成FPGA配置文件的更新之后,控制總線切換開關703將第一數據通路連通、將第二數據通路斷開;并觸發FPGA 704重新從存儲器701中載入更新后的FPGA配置文件,并進行配置。總線切換開關703,用于在CPU 702的控制下,分別連通或者斷開第一數據通路和第二數據通路;FPGA 704,用于在CPU 702的觸發下,從所述存儲器中重新載入更新后的FPGA配置文件,并進行配置。具體實施中,CPU 702,可以用于向第一數據通路輸入低電平信號,將FPGA704與存儲器之間的第一數據通路斷開,并同時向第二數據通路輸入高電平信號,將CPU702與存儲器之間的第二數據通路連通。具體實施中,CPU702,可以用于拉低FPGA 704的配置管腳PR0G_B并持續設定時長后釋放,觸發FPGA 704重新從存儲器701中載入更新后的FPGA配置文件。具體實施中,CPU702,還可以用于確定FPGA704重新載入更新后的FPGA配置文件之后,進行配置成功。具體的,CPU 702,具體用于在檢測到FPGA 704的配置管腳DONE重新拉高時,確定FPGA 704重新載入更新后的FPGA配置文件成功。具體實施中,存儲器701的存儲空間包括第一存儲區、第二存儲區和第三存儲區, 其中,第一存儲區存儲本次更新后的FPGA配置文件,第二存儲區存儲本次更新前的FPGA配置文件,第三存儲區存儲初始FPGA配置文件;以及CPU 702,還可以用于在確定FPGA704重新載入第一存儲區存儲的FPGA配置文件, 進行配置成功時,比較第一存儲區存儲的本次更新后的FPGA配置文件與第二存儲區存儲的本次更新前的FPGA配置文件是否一致;以及在比較結果不一致時,用第一存儲區存儲的本次更新后的FPGA配置文件覆蓋第二存儲區存儲的本次更新前的FPGA配置文件,在比較結果一致時,不進行操作。具體實施中,CPU 702,還可以用于在確定FPGA 704重新載入第一存儲區存儲的本次更新后的FPGA配置文件,進行配置未成功時,用第二存儲區存儲的本次更新前的FPGA 配置文件覆蓋第一存儲區存儲的本次更新后的FPGA配置文件;并觸發FPGA 704從所述第一存儲區中重新載入本次更新前的FPGA配置文件,并進行配置。具體實施中,CPU 702,還用于在確定FPGA 704從第一存儲區中重新載入本次更新前的FPGA配置文件,進行配置未成功時,用第三存儲區存儲的初始FPGA配置文件覆蓋第一存儲區存儲的本次更新前的FPGA配置文件;并觸發FPGA704從第一存儲區中重新載入初始FPGA配置文件,并進行配置。
本發明實施例提供的FPGA配置文件在線升級的方法及裝置,基于FPGA的主動配置模式,在默認情況下,使得FPGA與存儲有FPGA配置文件的存儲器之間的數據通路連通, 上電時FPGA主動載入FPGA配置文件,在需要進行配置文件升級時,通過總線切換開關將 CPU與存儲器之間的數據通路連通,并斷開FPGA與存儲有FPGA配置文件的存儲器之間的數據通路,使得CPU能夠將更新的FPGA配置文件寫入到存儲器中。本發明實施例提供的FPGA配置文件在線升級的方法及裝置,當需要進行FPGA配置文件升級時,CPU控制總線切換開關將FPGA與存儲器之間的第一數據通路斷開、將CPU與存儲器之間的第二數據通路連通,使得CPU能夠更新存儲器中存儲的FPGA配置文件,并在完成FPGA配置文件的更新之后,CPU觸發FPGA重新加載更新后的FPGA配置文件,以完成 FPGA配置文件的升級,采用本發明實施例提供的FPGA配置文件在線升級的方法,無需增加額外的邏輯器件,且在升級完成后,FPGA上電后即可從存儲器讀取配置文件進行配置,由于無需通過CPU的GPIO模擬FPGA的下載時序,從而對FPGA的配置無需在CPU自身啟動配置完成后再進行,實現了 FPGA上電即可用的目的。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種FPGA配置文件在線升級的方法,其特征在于,包括在進行現場可編程門陣列FPGA配置文件升級時,中央處理器CPU控制總線切換開關將 FPGA與存儲器之間的第一數據通路斷開、將CPU與存儲器之間的第二數據通路連通;所述CPU更新所述存儲器中存儲的FPGA配置文件;并在完成FPGA配置文件的更新之后,所述CPU控制所述總線切換開關將所述第一數據通路連通、將所述第二數據通路斷開;以及所述CPU觸發所述FPGA從所述存儲器中重新載入更新后的FPGA配置文件,并對所述 FPGA進行配置。
2.如權利要求1所述的方法,其特征在于,CPU控制總線切換開關將FPGA與存儲器之間的第一數據通路斷開、將CPU與存儲器之間的第二數據通路連通,具體包括所述CPU向所述第一數據通路輸入低電平信號,將FPGA與存儲器之間的第一數據通路斷開,并同時向所述第二數據通路輸入高電平信號,將CPU與存儲器之間的第二數據通路連通。
3.如權利要求1所述的方法,其特征在于,觸發所述FPGA重新從所述存儲器中載入更新后的FPGA配置文件,具體包括所述CPU拉低所述FPGA的配置管腳PR0G_B并持續設定時長后釋放,觸發所述FPGA重新從所述存儲器中載入更新后的FPGA配置文件。
4.如權利要求1所述的方法,其特征在于,還包括所述CPU確定FPGA重新載入更新后的FPGA配置文件之后,進行配置成功檢測。
5.如權利要求4所述的方法,其特征在于,所述CPU在檢測到所述FPGA的配置管腳 DONE重新拉高時,確定FPGA重新載入更新后的FPGA配置文件成功。
6.如權利要求1 5任一權利要求所述的方法,其特征在于,所述存儲器的存儲空間包括第一存儲區、第二存儲區和第三存儲區,其中,第一存儲區存儲本次更新后的FPGA配置文件,第二存儲區存儲本次更新前的FPGA配置文件,第三存儲區存儲初始FPGA配置文件; 以及所述方法,還包括CPU在確定FPGA重新載入第一存儲區存儲的FPGA配置文件,進行配置成功時,比較第一存儲區存儲的本次更新后的FPGA配置文件與第二存儲區存儲的本次更新前的FPGA配置文件是否一致;以及在比較結果不一致時,用第一存儲區存儲的本次更新后的FPGA配置文件覆蓋第二存儲區存儲的本次更新前的FPGA配置文件。
7.如權利要求6所述的方法,其特征在于,還包括CPU在確定FPGA重新載入第一存儲區存儲的本次更新后的FPGA配置文件,進行配置未成功時,用第二存儲區存儲的本次更新前的FPGA配置文件覆蓋第一存儲區存儲的本次更新后的FPGA配置文件;并觸發所述FPGA從所述第一存儲區中重新載入本次更新前的FPGA 配置文件,并進行配置;以及CPU在確定FPGA從所述第一存儲區中重新載入本次更新前的FPGA配置文件,進行配置仍未成功時,用第三存儲區存儲的初始FPGA配置文件覆蓋第一存儲區存儲的本次更新前的進行配置。
8.—種FPGA配置文件在線升級的裝置,其特征在于,包括存儲器,用于存儲現場可編程門陣列FPGA配置文件;中央處理器CPU,用于在進行FPGA配置文件升級時,控制總線切換開關將FPGA與存儲器之間的第一數據通路斷開、將CPU與存儲器之間的第二數據通路連通,并更新所述存儲器中的FPGA配置文件;以及在完成FPGA配置文件的更新之后,控制所述總線切換開關將所述第一數據通路連通、將所述第二數據通路斷開;并觸發所述FPGA重新從所述存儲器中載入更新后的FPGA配置文件,并進行配置;總線切換開關,用于在所述CPU的控制下,分別連通或者斷開所述第一數據通路和所述第二數據通路;FPGA,用于在所述CPU的觸發下,從所述存儲器中重新載入更新后的FPGA配置文件,并進行配置。
9.如權利要求8所述的裝置,其特征在于,所述CPU,具體用于向所述第一數據通路輸入低電平信號,將FPGA與存儲器之間的第一數據通路斷開,并同時向所述第二數據通路輸入高電平信號,將CPU與存儲器之間的第二數據通路連通。
10.如權利要求9所述的裝置,其特征在于,所述CPU,具體用于拉低所述FPGA的配置管腳PR0G_B并持續設定時長后釋放,觸發所述FPGA重新從所述存儲器中載入更新后的FPGA配置文件。
11.如權利要求8所述的裝置,其特征在于,所述CPU,還用于確定FPGA重新載入更新后的FPGA配置文件之后,進行配置成功檢測。
12.如權利要求11所述的裝置,其特征在于,所述CPU,具體用于在檢測到所述FPGA的配置管腳DONE重新拉高時,確定FPGA重新載入更新后的FPGA配置文件成功。
13.如權利要求8 12任一權利要求所述的裝置,其特征在于,所述存儲器的存儲空間包括第一存儲區、第二存儲區和第三存儲區,其中,第一存儲區存儲本次更新后的FPGA 配置文件,第二存儲區存儲本次更新前的FPGA配置文件,第三存儲區存儲初始FPGA配置文件;以及所述CPU,還用于在確定FPGA重新載入第一存儲區存儲的FPGA配置文件,進行配置成功時,比較第一存儲區存儲的本次更新后的FPGA配置文件與第二存儲區存儲的本次更新前的FPGA配置文件是否一致;以及在比較結果不一致時,用第一存儲區存儲的本次更新后的FPGA配置文件覆蓋第二存儲區存儲的本次更新前的FPGA配置文件。
14.如權利要求8所述的裝置,其特征在于,所述CPU,還用于在確定FPGA重新載入第一存儲區存儲的本次更新后的FPGA配置文件,進行配置未成功時,用第二存儲區存儲的本次更新前的FPGA配置文件覆蓋第一存儲區存儲的本次更新后的FPGA配置文件;并觸發所述FPGA從所述第一存儲區中重新載入本次更新前的FPGA配置文件,并進行配置;以及在確定FPGA從所述第一存儲區中重新載入本次更新前的FPGA配置文件,進行配置仍未成功時,用第三存儲區存儲的初始FPGA配置文件覆蓋第一存儲區存儲的本次更新前的FPGA配置文件;并觸發所述FPGA從所述第一存儲區中重新載入初始FPGA配置文件,并進行配置。
全文摘要
本發明公開了一種FPGA配置文件在線升級的方法及裝置,用以在不增加額外的邏輯器件的前提下,完成FPGA配置文件的在線升級,并實現FPGA上電即可用的目的。其中,FPGA配置文件在線升級的方法,包括在進行FPGA配置文件升級時,CPU控制總線切換開關將FPGA與存儲器之間的第一數據通路斷開、將CPU與存儲器之間的第二數據通路連通;所述CPU更新所述存儲器中存儲的FPGA配置文件;并在完成FPGA配置文件的更新之后,所述CPU控制所述總線切換開關將所述第一數據通路連通、將所述第二數據通路斷開;以及所述CPU觸發所述FPGA從所述存儲器中重新載入更新后的FPGA配置文件,并所述FPGA進行配置。
文檔編號G06F9/445GK102360302SQ201110310780
公開日2012年2月22日 申請日期2011年10月13日 優先權日2011年10月13日
發明者周磊 申請人:福建星網銳捷網絡有限公司