一種fpga遠(yuǎn)程加載大容量配置位流文件的方法
【專利摘要】本發(fā)明公開了一種FPGA遠(yuǎn)程加載大容量配置位流文件的方法,其步驟為:S1:遠(yuǎn)端主機預(yù)處理配置位流文件,以頁數(shù)據(jù)為單位對配置位流文件進(jìn)行處理;S2:啟動動態(tài)重配置;CPU讀取內(nèi)存中的配置信息,控制FPGA將初始化控制信息下發(fā)實現(xiàn)非易失性器件的初始化設(shè)置。同時,以頁數(shù)據(jù)為單位將配置信息寫入非易失性器件中并且回讀寫入非易失性器件中的頁數(shù)據(jù)執(zhí)行校驗比對操作;通過校驗比對操作,檢測寫入非易失性器件中頁單位元數(shù)據(jù)的正確性;當(dāng)配置信息完全寫入非易失性器件中后,完成配置信息的傳送。本發(fā)明具有原理簡單、可靠性好、能夠?qū)崿F(xiàn)目標(biāo)FPGA的功能性修正和系統(tǒng)功能升級等優(yōu)點。
【專利說明】一種嚇6八遠(yuǎn)程加載大容量配置位流文件的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主要涉及到可重構(gòu)硬件系統(tǒng)領(lǐng)域,特指一種基于??以的遠(yuǎn)程加載大容量配置位流文件的方法。
【背景技術(shù)】
[0002]當(dāng)代半導(dǎo)體器件的發(fā)展日新月異,超大規(guī)模集成電路越來越成為新的研宄熱點。然而,傳統(tǒng)器件的產(chǎn)品研發(fā)周期長,成本高且功能不靈活。這些不足使得它們越來越不能夠滿足新的用戶需求,促使以??以為代表的新一代可重構(gòu)硬件的研發(fā)與使用成為更好的選擇。針對航天航空、深海作業(yè)、宇宙探測以及核電監(jiān)控等重要且難于進(jìn)行人工維護(hù)的任務(wù)系統(tǒng)中,能夠更靈活、更高效地對電子設(shè)備進(jìn)行自動檢錯以及糾錯成為重要的研宄內(nèi)容,具有動態(tài)可重構(gòu)特性的硬件設(shè)計系統(tǒng)成為主流的選擇。
[0003]遠(yuǎn)程且難于進(jìn)行人工維護(hù)的空間應(yīng)用中,可重構(gòu)硬件系統(tǒng)更容易受到強度空間輻射而發(fā)生功能性故障??臻g探測任務(wù)中,受宇宙射線影響的電子設(shè)備器件的維修幾乎是不可能的。由于功能性故障導(dǎo)致空間電子設(shè)備的報廢,會形成空間垃圾,從而造成嚴(yán)重的生命財產(chǎn)損失。更有甚者,功能性故障的電子設(shè)備器件會在一定程度上威脅到空間設(shè)備的安全以及空間科學(xué)工作者的生命安全。保守的方法是以增加冗余部件來解決器件損傷問題,這不僅消耗大量的精密電子器件,還增加了空間探測設(shè)備的負(fù)擔(dān)。為此,設(shè)計快速且有效地修正可重構(gòu)硬件系統(tǒng)的功能性故障是一項必須要解決的課題。
[0004]可重構(gòu)硬件系統(tǒng)在空間完成自修復(fù),恢復(fù)由于強度空間輻射或極端空間環(huán)境引起部件功能性故障所導(dǎo)致失效的功能。具有可重構(gòu)特性的硬件系統(tǒng)更能夠適應(yīng)空間惡劣環(huán)境并延長其使用壽命,大大提高了空間電子設(shè)備的可靠性和可用性。同時,可重構(gòu)硬件設(shè)計在空間任務(wù)系統(tǒng)中的使用,對軟件加載提出了新的技術(shù)要求。多種功能模塊綜合和互聯(lián)互通以及應(yīng)用靈活性和簡易性要求的不斷增加,軟件維護(hù)及升級需求的日益迫切,軟件加載技術(shù)都需要不斷創(chuàng)新??紤]到空間惡劣環(huán)境的影響,提高軟件加載的可靠性也是一項亟待解決的重要問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種原理簡單、可靠性好、能夠?qū)崿F(xiàn)目標(biāo)??以的功能性修正和系統(tǒng)功能升級的??以遠(yuǎn)程加載大容量配置位流文件的方法。
[0006]為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
[0007]一種??以遠(yuǎn)程加載大容量配置位流文件的方法,其步驟為:
[0008]51:遠(yuǎn)端主機預(yù)處理配置位流文件,以頁數(shù)據(jù)為單位對配置位流文件進(jìn)行處理;
[0009]82:啟動動態(tài)重配置口讀取內(nèi)存中的配置信息,控制將初始化控制信息下發(fā)實現(xiàn)非易失性器件的初始化設(shè)置。同時,以頁數(shù)據(jù)為單位將配置信息寫入非易失性器件中并且回讀寫入非易失性器件中的頁數(shù)據(jù)執(zhí)行校驗比對操作;通過校驗比對操作,檢測寫入非易失性器件中頁單位元數(shù)據(jù)的正確性;當(dāng)配置信息完全寫入非易失性器件中后,完成配置信息的傳送。
[0010]作為本發(fā)明的進(jìn)一步改進(jìn):所述配置位流文件中包含配置信息文件、以及配置信息之外的行號和校驗冗余信息;所述配置信息文件中包含有初始化控制信息、配置信息、讀操作控制信息以及校驗比對控制信息。
[0011]作為本發(fā)明的進(jìn)一步改進(jìn):所述遠(yuǎn)端主機對配置信息文件進(jìn)行預(yù)處理時包括對配置位流文件的拆分處理;具體步驟為:
[0012]8101:遠(yuǎn)端主機預(yù)處理目標(biāo)??以的配置位流文件,去除配置位流文件中的行號以及校驗冗余信息,生成待傳送的配置信息文件;將大容量配置信息文件拆分成多個小容量的配置信息文件用來進(jìn)行分別傳送;
[0013]8102:將拆分后的配置信息文件分別寫入非易失性器件的內(nèi)部存儲模塊內(nèi),對非易失性器件中配置信息的更新是分塊進(jìn)行的。
[0014]作為本發(fā)明的進(jìn)一步改進(jìn):所述配置位流文件使用第三方軟件生成。
[0015]作為本發(fā)明的進(jìn)一步改進(jìn):所述步驟52中,如果頁單位元中寫入的配置信息與回讀的配置信息一致,控制??以將配置信息按照正確的時序要求寫入非易失性器件,開始啟動對下一頁單位元的操作;如果校驗結(jié)果顯示,寫入非易失性器件單位元中的配置信息與回讀的配置信息不一致,說明配置信息在寫入?的過程中出現(xiàn)錯誤;重新執(zhí)行對該頁單位元的操作,重復(fù)執(zhí)行一定次數(shù)后,發(fā)現(xiàn)配置該頁單位元仍然錯誤,說明非易失性器件器件損壞或者是通信鏈路特別惡劣。
[0016]作為本發(fā)明的進(jìn)一步改進(jìn):所述步驟32的具體流程為:
[0017]8201:當(dāng)啟動動態(tài)重配置時,讀取內(nèi)存中的配置信息文件下發(fā)到數(shù)據(jù)處理中心模塊進(jìn)行處理,使得配置信息文件以串行數(shù)據(jù)格式傳送到控制中;
[0018]8202:控制??以接到的配置信息文件經(jīng)過數(shù)據(jù)處理模塊和數(shù)據(jù)轉(zhuǎn)換模塊,以接口時序要求將配置信息寫入非易失性器件中存儲;
[0019]3203:待更新的配置信息文件存儲在非易失性器件中,上電或目標(biāo)??以檢測到重配置指令后,讀取非易失性器件中的配置信息,完成動態(tài)重配置。
[0020]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:
[0021]1、本發(fā)明為一種優(yōu)化的遠(yuǎn)程加載大容量配置位流文件的設(shè)計應(yīng)用方案,實現(xiàn)了從遠(yuǎn)端分多次下發(fā)小容量配置信息文件完成可重構(gòu)模塊的更新升級和重新加載,實現(xiàn)了軟件維護(hù)和模塊功能切換,滿足了日益復(fù)雜的系統(tǒng)設(shè)計。
[0022]2、本發(fā)明能夠適應(yīng)遠(yuǎn)程任務(wù)系統(tǒng)難于進(jìn)行人工維護(hù)的特點,將大容量配置信息文件拆分成多個小容量的配置信息文件,擺脫了主控板上內(nèi)存的限制。同時,考慮到通信鏈路上不穩(wěn)定因素可能造成的錯誤,分多次傳送小容量的配置信息文件,一旦遭遇通信鏈路上不穩(wěn)定因素造成的錯誤,能夠及時控制對錯誤配置信息文件的修正和重新傳送。
[0023]3、本發(fā)明分多次傳送小容量配置信息文件,能夠及時檢測到通信鏈路上不穩(wěn)定因素的影響造成的配置信息錯誤。通過重新下發(fā)配置信息文件糾正該錯誤,為可重構(gòu)硬件系統(tǒng)的功能性修正以及系統(tǒng)功能升級提供了一種可靠有效的實現(xiàn)手段。同時,本發(fā)明擺脫了可重構(gòu)硬件系統(tǒng)原始設(shè)計中內(nèi)存大小的限制,為遠(yuǎn)程控制系統(tǒng)功能性升級提供了必要的技術(shù)基礎(chǔ)。
【專利附圖】
【附圖說明】
[0024]圖1是本發(fā)明方法的流程示意圖。
[0025]圖2是本發(fā)明在具體應(yīng)用時控制??以遠(yuǎn)程更新加載配置位流文件的拓?fù)浣Y(jié)構(gòu)示意圖。
[0026]圖3是本發(fā)明在具體應(yīng)用時通過遠(yuǎn)端主機對配置信息文件進(jìn)行拆分的處理流程示意圖。
[0027]圖4是本發(fā)明在具體應(yīng)用時實現(xiàn)軟件加載時的控制流程圖。
[0028]圖例說明:
[0029]1、遠(yuǎn)端主機;2、0狀1 ;3、數(shù)據(jù)處理中心模塊;4、;401、數(shù)據(jù)傳輸模塊;402、數(shù)據(jù)轉(zhuǎn)換模塊;403、數(shù)據(jù)處理模塊;5、非易失性存儲器;6、目標(biāo)??以。
【具體實施方式】
[0030]以下將結(jié)合說明書附圖和具體實施例對本發(fā)明做進(jìn)一步詳細(xì)說明。
[0031]如圖1、圖2和圖4所示,本發(fā)明一種??以遠(yuǎn)程加載大容量配置位流文件的方法,是在可重構(gòu)硬件系統(tǒng)遭遇功能性故障或者是系統(tǒng)升級的需求時,遠(yuǎn)端主機1負(fù)責(zé)將配置信息文件傳送到主控板上的內(nèi)存中,其具體步驟為:
[0032]51:遠(yuǎn)端主機1預(yù)處理配置位流文件,以頁數(shù)據(jù)為單位對配置位流文件進(jìn)行處理。即,遠(yuǎn)端主機1對配置位流文件進(jìn)行預(yù)處理,下發(fā)完全符合非易失性存儲器5 存儲格式的配置信息。
[0033]上述配置位流文件在具體應(yīng)用時可以使用第三方軟件生成。在上述配置位流文件中,包含配置信息文件、以及配置信息之外的行號以及校驗等冗余信息。上述配置信息文件中包含有初始化控制信息、配置信息、讀操作控制信息以及校驗比對控制信息。
[0034]32:啟動動態(tài)重配置;⑶I讀取內(nèi)存中的配置信息,經(jīng)過下行通路的處理,控制??以4將初始化控制信息下發(fā)實現(xiàn)非易失性器件50801)的初始化設(shè)置。??以4包括數(shù)據(jù)傳輸模塊401、數(shù)據(jù)轉(zhuǎn)換模塊402、數(shù)據(jù)處理模塊403 ;同時,以頁數(shù)據(jù)為單位將配置信息寫入非易失性器件5 $801)中并且回讀寫入非易失性器件5 $801)中的頁數(shù)據(jù)執(zhí)行校驗比對操作。通過校驗比對操作檢測寫入非易失性器件5 0801)中頁單位元數(shù)據(jù)的正確性。當(dāng)寫入~頁時,配置信息已完全寫入?如15中,從而完成配置信息的傳送。
[0035]在具體操作時,是由遠(yuǎn)端主機1運行服務(wù)端,主控板運行油0於引導(dǎo)程序,在油00丨命令行中鍵入重配置的命令執(zhí)行動態(tài)重配置。通過網(wǎng)絡(luò)協(xié)議將遠(yuǎn)端主機1的配置信息文件數(shù)據(jù)存入主控板的內(nèi)存。同時,以頁為單位從對應(yīng)內(nèi)存地址中讀取數(shù)據(jù)進(jìn)行配置寫入與回讀操作,直到完全處理一個文件。重復(fù)對前一個配置信息文件的操作,將下一個配置信息文件通過網(wǎng)絡(luò)存入主控板上的內(nèi)存,可以覆蓋前一個文件寫入內(nèi)存的數(shù)據(jù),以解決主控板上內(nèi)存大小的限制。
[0036]在上述過程中,如果頁單位元中寫入的配置信息與回讀的配置信息一致,說明配置信息在通信鏈路上可靠傳輸,并且控制??以4將配置信息按照正確的時序要求寫入非易失性器件5 08011開始啟動對下一頁單位元的操作。如果校驗結(jié)果顯示,寫入非易失性器件5 $801)單位元中的配置信息與回讀的配置信息不一致,說明配置信息在寫入?801的過程中出現(xiàn)錯誤。重新執(zhí)行對該頁單位元的操作,重復(fù)執(zhí)行3次后,發(fā)現(xiàn)配置該頁單位元仍然錯誤,說明非易失性器件5 0801)器件損壞或者是通信鏈路特別惡劣,不適宜傳輸配置信息數(shù)據(jù)。
[0037]在具體實例中,步驟32的具體流程為:
[0038]8201:當(dāng)啟動動態(tài)重配置時,口讀取內(nèi)存中的配置信息文件下發(fā)到數(shù)據(jù)處理中心模塊3進(jìn)行處理,使得配置信息文件以串行數(shù)據(jù)格式傳送到控制??以4中。此處,采用串行通信鏈路,是由于其具有簡單可靠的優(yōu)點。
[0039]8202:控制??以4接到的配置信息文件經(jīng)過數(shù)據(jù)處理模塊403和數(shù)據(jù)轉(zhuǎn)換模塊402,以接口時序要求將配置信息寫入非易失性器件5 0801)中存儲。
[0040]在此過程中,配置信息在非易失性器件5 0801)中是掉電不丟失的,對目標(biāo)??以6進(jìn)行系統(tǒng)功能升級時,需要擦除非易失性器件5中的原始配置信息。
[0041]在此過程中,由于配置信息在非易失性器件5 0801)中是以頁為單位元進(jìn)行存儲的。所以,控制??執(zhí)行讀、寫操作。遠(yuǎn)端主機1預(yù)處理配置位流文件時,也是以頁數(shù)據(jù)為單位執(zhí)行的。
[0042]8203:待更新的配置信息文件存儲在非易失性器件5 $801)中,上電或目標(biāo)??以6檢測到重配置指令后,讀???如15中的配置信息,完成動態(tài)重配置。
[0043]在具體應(yīng)用過程中,待更新的目標(biāo)??以6的配置位流文件可能超出了主控板上原始內(nèi)存的存儲容量,這就需要對大容量的配置信息文件進(jìn)行拆分。同時,大容量的配置信息文件由遠(yuǎn)端主機1傳送到主控板上的內(nèi)存時,由于通信鏈路上的不穩(wěn)定因素可能還會造成下發(fā)配置信息的錯誤,惡劣環(huán)境的影響尤其明顯。一旦遭遇不穩(wěn)定因素的影響造成配置信息文件發(fā)生錯誤,檢測該錯誤并糾正該錯誤所花費的時間就會很長。因此,分多次傳送拆分的小容量配置信息文件,能夠減少出現(xiàn)該錯誤的恢復(fù)時間,提高目標(biāo)??以6動態(tài)重配置的效率。
[0044]如圖3所示,為在具體應(yīng)用實例中,遠(yuǎn)端主機1對配置信息文件進(jìn)行拆分的處理流程。
[0045]8101:遠(yuǎn)端主機1預(yù)處理目標(biāo)??以6的配置位流文件,去除配置位流文件中的行號以及校驗等冗余信息,生成待傳送的配置信息文件。為了提高通信鏈路傳輸配置信息文件的有效性以及擺脫主控板上內(nèi)存大小的限制,可以進(jìn)一步將大容量配置信息文件拆分成多個小容量的配置信息文件分別傳送。進(jìn)一步,還可以將拆分的小容量配置信息文件按照順序進(jìn)行編號。
[0046]在上述過程中,應(yīng)當(dāng)綜合考慮主控板上內(nèi)存的大小和通信鏈路的惡劣程度,確定拆分的配置信息文件的大小。在滿足主控板上內(nèi)存的要求條件下,惡劣程度嚴(yán)重的通信鏈路上傳送較小的配置信息文件;反之,在惡劣程度較輕的通信鏈路上傳送較大惡配置信息文件。
[0047]8102:將拆分后的配置信息文件分別寫入非易失性器件5 $801)的內(nèi)部存儲模塊內(nèi),對非易失性器件5 $801)中配置信息的更新是分塊進(jìn)行的。這樣,減少了通信鏈路上遭遇錯誤后的檢錯,糾錯的時間??芍貥?gòu)硬件系統(tǒng)適應(yīng)惡劣環(huán)境的能力進(jìn)一步提升。
[0048]配置信息在非易失性器件5 $801)中是以頁數(shù)據(jù)為單位(256610進(jìn)行存儲的。在非易失性器件50801)中每頁配置數(shù)據(jù)劃分的地址空間為0x000020。在本具體應(yīng)用實例中,是將大小為32她的配置位流文件寫入非易失性器件5(9801)中。321的大容量配置位流文件分32次進(jìn)行傳送,每次傳送1她的小容量配置信息文件;具體的拆分處理流程如圖3所示。
[0049] 以上僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤飾,應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種FPGA遠(yuǎn)程加載大容量配置位流文件的方法,其特征在于,步驟為: 51:遠(yuǎn)端主機預(yù)處理配置位流文件,以頁數(shù)據(jù)為單位對配置位流文件進(jìn)行處理; 52:啟動動態(tài)重配置;CPU讀取內(nèi)存中的配置信息,控制FPGA將初始化控制信息下發(fā)實現(xiàn)非易失性器件的初始化設(shè)置。同時,以頁數(shù)據(jù)為單位將配置信息寫入非易失性器件中并且回讀寫入非易失性器件中的頁數(shù)據(jù)執(zhí)行校驗比對操作;通過校驗比對操作,檢測寫入非易失性器件中頁單位元數(shù)據(jù)的正確性;當(dāng)配置信息完全寫入非易失性器件中后,完成配置信息的傳送。
2.根據(jù)權(quán)利要求1所述的FPGA遠(yuǎn)程加載大容量配置位流文件的方法,其特征在于,所述配置位流文件中包含配置信息文件、以及配置信息之外的行號和校驗冗余信息;所述配置信息文件中包含有初始化控制信息、配置信息、讀操作控制信息以及校驗比對控制信息。
3.根據(jù)權(quán)利要求2所述的FPGA遠(yuǎn)程加載大容量配置位流文件的方法,其特征在于,所述遠(yuǎn)端主機對配置信息文件進(jìn)行預(yù)處理時包括對配置位流文件的拆分處理;具體步驟為: S101:遠(yuǎn)端主機預(yù)處理目標(biāo)FPGA的配置位流文件,去除配置位流文件中的行號以及校驗冗余信息,生成待傳送的配置信息文件;將大容量配置信息文件拆分成多個小容量的配置信息文件用來進(jìn)行分別傳送; S102:將拆分后的配置信息文件分別寫入非易失性器件的內(nèi)部存儲模塊內(nèi),對非易失性器件中配置信息的更新是分塊進(jìn)行的。
4.根據(jù)權(quán)利要求3所述的FPGA遠(yuǎn)程加載大容量配置位流文件的方法,其特征在于,所述配置位流文件使用第三方軟件生成。
5.根據(jù)權(quán)利要求1?4中任意一項所述的FPGA遠(yuǎn)程加載大容量配置位流文件的方法,其特征在于,所述步驟S2中,如果頁單位元中寫入的配置信息與回讀的配置信息一致,控制FPGA將配置信息按照正確的時序要求寫入非易失性器件,開始啟動對下一頁單位元的操作;如果校驗結(jié)果顯示,寫入非易失性器件單位元中的配置信息與回讀的配置信息不一致,說明配置信息在寫入PROM的過程中出現(xiàn)錯誤;重新執(zhí)行對該頁單位元的操作,重復(fù)執(zhí)行一定次數(shù)后,發(fā)現(xiàn)配置該頁單位元仍然錯誤,說明非易失性器件器件損壞或者是通信鏈路特別惡劣。
6.根據(jù)權(quán)利要求1?4中任意一項所述的FPGA遠(yuǎn)程加載大容量配置位流文件的方法,其特征在于,所述步驟S2的具體流程為: 5201:當(dāng)啟動動態(tài)重配置時,CPU讀取內(nèi)存中的配置信息文件下發(fā)到數(shù)據(jù)處理中心模塊進(jìn)行處理,使得配置信息文件以串行數(shù)據(jù)格式傳送到控制FPGA中; 5202:控制FPGA接到的配置信息文件經(jīng)過數(shù)據(jù)處理模塊和數(shù)據(jù)轉(zhuǎn)換模塊,以接口時序要求將配置信息寫入非易失性器件中存儲; 5203:待更新的配置信息文件存儲在非易失性器件中,上電或目標(biāo)FPGA檢測到重配置指令后,讀取非易失性器件中的配置信息,完成動態(tài)重配置。
【文檔編號】G06F9/445GK104503813SQ201510025258
【公開日】2015年4月8日 申請日期:2015年1月19日 優(yōu)先權(quán)日:2015年1月19日
【發(fā)明者】毛席龍, 王寶生, 趙寶康, 陳一驕, 吳純青, 虞萬榮, 馮振乾 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)