專利名稱:嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)的現(xiàn)場可編程門陣列(Field Programmable GateArray, 簡稱FPGA),尤其涉及一種嵌入式系統(tǒng)FPGA邏輯自加載方法和系統(tǒng)。
背景技術(shù):
在單板軟件研發(fā)過程中,F(xiàn)PGA已經(jīng)變成單板硬件上必不可少的核心器件。目前 FPGA種類繁多,加載方法更是有很多種。如串行加載、并行加載、JATG(Joint Test Action Gro卯,中文名稱為聯(lián)合測試行為組織)方式加載,JATG是一種國際標(biāo)準(zhǔn)測試協(xié)議(IEEE 1149. 1兼容),可對具有JTAG接口的芯片的硬件電路進(jìn)行邊界掃描和故障檢測。單板軟件 以前加載FPGA的做法是將FPGA加載方法放到應(yīng)用程序存儲(chǔ)空間,并通過混合編譯的方法 與單板軟件綁定,在單板軟件初始化過程中由存儲(chǔ)空間讀出,然后根據(jù)加載方式不同進(jìn)行 邏輯加載。 上述做法的缺點(diǎn)是每換一種FPGA或者更換一種加載方法,都要修改應(yīng)用程序代 碼并重新編譯,然后還需要先升級應(yīng)用程序再升級FPGA邏輯,才能支持新的FPGA加載方 法。 為了避免由此產(chǎn)生的應(yīng)用程序版本變更,只能通過限制硬件使用某幾種加載方法 統(tǒng)一的FPGA芯片來解決,造成FPGA選型困難。對于未來可能出現(xiàn)的新型高效的FPGA加載 方法,只能通過先升級應(yīng)用程序再升級FPGA邏輯而不能通過單獨(dú)升級FPGA邏輯來支持。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種嵌入式系統(tǒng)FPGA邏輯自加載方法和系 統(tǒng),以解決現(xiàn)有技術(shù)中只能通過先升級應(yīng)用程序再升級FPGA邏輯而不能通過單獨(dú)升級 FPGA邏輯的問題。 為了解決上述技術(shù)問題,本發(fā)明提供了一種嵌入式系統(tǒng)FPGA邏輯自加載方法,該 方法包括以下步驟 將第一存儲(chǔ)空間中存儲(chǔ)的單板邏輯引導(dǎo)模塊,與第二存儲(chǔ)空間中存儲(chǔ)的單板邏輯
下載模塊進(jìn)行綁定,以獲得自動(dòng)啟動(dòng)加載邏輯模塊; 所述自動(dòng)啟動(dòng)加載邏輯模塊啟動(dòng)現(xiàn)場可編程門陣列;禾口 所述自動(dòng)啟動(dòng)加載邏輯模塊將所述現(xiàn)場可編程門陣列的邏輯文件,根據(jù)所述單板
邏輯下載模塊中記載的加載方式進(jìn)行加載。
上述過程之后還包括 所述自動(dòng)啟動(dòng)加載邏輯模塊將程序指針指向第三存儲(chǔ)空間存儲(chǔ)的單板應(yīng)用程序 模塊。 所述自動(dòng)啟動(dòng)加載邏輯模塊將所述現(xiàn)場可編程門陣列的邏輯文件,根據(jù)所述單板
邏輯下載模塊中記載的加載方式進(jìn)行加載具體包括 確定當(dāng)前單板上的邏輯狀態(tài)還沒有正常加載所述邏輯文件;
4
從所述單板邏輯下載模塊中獲取單板邏輯類型; 所述自動(dòng)啟動(dòng)加載邏輯模塊獲取單板待加載的所述邏輯文件; 所述自動(dòng)啟動(dòng)加載邏輯模塊從所述單板邏輯下載模塊中確定當(dāng)前邏輯的所述加 載方式;和 所述自動(dòng)啟動(dòng)加載邏輯模塊根據(jù)所述加載方式將所述邏輯文件加載至所述現(xiàn)場 可編程門陣列。 所述自動(dòng)啟動(dòng)加載邏輯模塊啟動(dòng)所述現(xiàn)場可編程門陣列具體為 所述自動(dòng)啟動(dòng)加載邏輯模塊根據(jù)所述單板邏輯引導(dǎo)模塊將所述單板邏輯下載模
塊進(jìn)行初始化; 所述單板邏輯下載模塊將所述現(xiàn)場可編程門陣列啟動(dòng)。 本發(fā)明還提供了一種嵌入式系統(tǒng)FPGA邏輯自加載系統(tǒng),該系統(tǒng)包括 綁定模塊,用于將第一存儲(chǔ)空間中存儲(chǔ)的單板邏輯引導(dǎo)模塊,與第二存儲(chǔ)空間中
存儲(chǔ)的單板邏輯下載模塊進(jìn)行綁定,以獲得自動(dòng)啟動(dòng)加載邏輯模塊; 所述自動(dòng)啟動(dòng)加載邏輯模塊,用于啟動(dòng)現(xiàn)場可編程門陣列;和將所述現(xiàn)場可編程
門陣列的邏輯文件,根據(jù)所述單板邏輯下載模塊中記載的加載方式進(jìn)行加載。 所述的嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載系統(tǒng)還包括 所述自動(dòng)啟動(dòng)加載邏輯模塊,還用于將程序指針指向第三存儲(chǔ)空間存儲(chǔ)的單板應(yīng) 用程序模塊。 所述自動(dòng)啟動(dòng)加載邏輯模塊具體包括 加載確定模塊,用于確定當(dāng)前單板上的邏輯狀態(tài)還未正常加載所述邏輯文件;
自動(dòng)加載邏輯模塊,用于從所述單板邏輯下載模塊中獲取單板邏輯類型;獲取單 板待加載的所述邏輯文件;從所述單板邏輯下載模塊中確定當(dāng)前邏輯的所述加載方式;和 根據(jù)所述加載方式將所述邏輯文件加載至所述現(xiàn)場可編程門陣列。
所述自動(dòng)啟動(dòng)加載邏輯模塊還包括 自動(dòng)啟動(dòng)模塊,用于將所述單板邏輯下載模塊進(jìn)行初始化;所述單板邏輯下載模 塊將所述現(xiàn)場可編程門陣列啟動(dòng)。 因此,本發(fā)明提供的嵌入式系統(tǒng)FPGA邏輯自加載方法和系統(tǒng),通過綁定方式,使 得單板軟件單板邏輯的內(nèi)容、下載方式等相關(guān)因素改變的情況下不再需要重新編譯和構(gòu)建 應(yīng)用程序代碼。
圖1為本發(fā)明一種嵌入式系統(tǒng)FPGA邏輯自加載方法流程圖;
圖2為程序承載媒體存儲(chǔ)空間示例簡圖; 圖3為本發(fā)明一種嵌入式系統(tǒng)FPGA邏輯自加載方法中加載邏輯文件的流程圖。
具體實(shí)施例方式
下面通過附圖和實(shí)施例,對本發(fā)明實(shí)施例的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
如圖1所示,為本發(fā)明一種嵌入式系統(tǒng)FPGA邏輯自加載方法流程圖。如圖中所示, 該方法包括以下步驟
5
步驟10,將第一存儲(chǔ)空間中存儲(chǔ)的單板邏輯引導(dǎo)模塊,與第二存儲(chǔ)空間中存儲(chǔ)的 單板邏輯下載模塊進(jìn)行綁定,以獲得自動(dòng)啟動(dòng)加載邏輯模塊; 上述單板邏輯引導(dǎo)模塊和單板邏輯下載模塊在存儲(chǔ)空間中的示例如圖2所示,A 部分存儲(chǔ)空間即第二存儲(chǔ)空間,存儲(chǔ)的是單板邏輯下載模塊,即為單板邏輯待下載程序。該 部分存儲(chǔ)空間中的單板邏輯下載模塊是可以變化的部分。由于單板邏輯器件類型的不同、 邏輯下載方式的不同以及邏輯版本升級等多方面的原因,該部分單板邏輯下載模塊會(huì)隨著 它們的改變而改變。B部分存儲(chǔ)空間即第一存儲(chǔ)空間中存儲(chǔ)的是單板邏輯引導(dǎo)模塊,即為單
板邏輯自動(dòng)加載程序。該部分由一小段啟動(dòng)代碼構(gòu)成,支持所有的邏輯廠家及邏輯的下載 方式。該段代碼與A部分進(jìn)行綁定,這樣就可以得到一個(gè)可以自動(dòng)啟動(dòng)并加載邏輯的程序 即自動(dòng)啟動(dòng)加載邏輯模塊。該部分主要功能就是啟動(dòng)最基本的單板核心器件(核心器件指 的是最小MCU系統(tǒng))以及FPGA,然后將邏輯文件通過相應(yīng)的方式進(jìn)行加載,即執(zhí)行以下步 驟 步驟ll,所述自動(dòng)啟動(dòng)加載邏輯模塊啟動(dòng)所述FPGA ;該過程具體為所述自動(dòng)啟動(dòng) 加載邏輯模塊根據(jù)所述單板邏輯引導(dǎo)模塊將所述單板邏輯下載模塊進(jìn)行初始化;在初始化 時(shí),所述單板邏輯下載模塊將所述FPGA啟動(dòng)。 步驟12,所述自動(dòng)啟動(dòng)加載邏輯模塊將所述FPGA的邏輯文件,根據(jù)所述單板邏輯 下載模塊中記載的加載方式進(jìn)行加載。 如圖所示,在上述過程之后還包括,加載成功之后執(zhí)行步驟13 :所述自動(dòng)啟動(dòng)加 載邏輯模塊將程序指針指向第三存儲(chǔ)空間存儲(chǔ)的單板應(yīng)用程序模塊。即將軟件的程序指針 指向單板應(yīng)用程序C部分,單板應(yīng)用程序正常執(zhí)行。如圖所示的,C部分存儲(chǔ)空間即第三存 儲(chǔ)空間,其中存儲(chǔ)的即是單板應(yīng)用程序模塊。其中單板應(yīng)用軟件部分,在現(xiàn)有的方式中是與 FPGA程序綁定,而在本發(fā)明中為獨(dú)立執(zhí)行,不再關(guān)心邏輯程序如何下載,僅處理其本身的單 板應(yīng)用程序功能即可,因此功能復(fù)雜性降低了很多。 因此,本發(fā)明通過上述這種綁定方式,使得單板軟件單板邏輯的內(nèi)容、下載方式等 相關(guān)因素改變的情況下不再需要重新編譯和構(gòu)建應(yīng)用程序代碼,這樣可以控制單板軟件的 版本數(shù)量及版本間的一致性。 而上述各模塊的存儲(chǔ)空間如圖2所示,程序承載媒體存儲(chǔ)空間示例簡圖。存儲(chǔ)空 間大體分為四個(gè)部分第一部分單板邏輯引導(dǎo)程序存儲(chǔ)空間21,用于存儲(chǔ)單板邏輯自動(dòng) 加載程序;第二部分單板邏輯待下載程序存儲(chǔ)空間22,用于存儲(chǔ)單板邏輯待下載程序;上 述兩個(gè)部分綁定(即A+B部分)成為自動(dòng)啟動(dòng)加載邏輯模塊,而存儲(chǔ)空間被稱之為自動(dòng)啟 動(dòng)加載邏輯存儲(chǔ)空間20,。第三部分(即C部分)單板應(yīng)用程序存儲(chǔ)空間23,用于存儲(chǔ)單 板應(yīng)用程序。程序承載媒體存儲(chǔ)空間中還包括第四部分(D部分)單板邏輯程序存儲(chǔ)空間
24,用于存儲(chǔ)單板邏輯程序(即單板邏輯文件)。 如圖3所示,為本發(fā)明一種嵌入式系統(tǒng)FPGA邏輯自加載方法中加載邏輯文件的流 程圖。該圖描述上述步驟12的具體過程,其具體包括 步驟31,確定當(dāng)前單板上的邏輯狀態(tài)是否還未正常加載所述邏輯文件;是則執(zhí)行 步驟32,如果已加載,則執(zhí)行步驟13(該步驟在圖中省略); 步驟32,所述自動(dòng)啟動(dòng)加載邏輯模塊從所述單板邏輯下載模塊中獲取單板邏輯類 型;
6
步驟33,所述自動(dòng)啟動(dòng)加載邏輯模塊從存儲(chǔ)空間D部分獲取單板待加載的所述單 板邏輯文件; 步驟34,所述自動(dòng)啟動(dòng)加載邏輯模塊從所述單板邏輯下載模塊中確定當(dāng)前邏輯的 所述加載方式,即單板邏輯下載模塊中包含了單板邏輯類型、加載方式等關(guān)鍵信息;禾口
步驟35,所述自動(dòng)啟動(dòng)加載邏輯模塊根據(jù)所述加載方式將所述邏輯文件加載至所 述FPGA。 因此,通過本發(fā)明這種方法,單板應(yīng)用程序?qū)⒉辉賹壿嬒螺d部分進(jìn)行適配和兼 容,僅需要從單板自身功能方面考慮即可。這樣有利于降低單板軟件的復(fù)雜度和耦合性。并 且由于采用了本方法,單板軟件(即單板應(yīng)用程序)的修改和FPGA上運(yùn)行的程序即所要加 載的單板邏輯程序的修改彼此分開,不會(huì)有牽一發(fā)而動(dòng)全身的效果。單板邏輯下載模塊的 獨(dú)立構(gòu)建和執(zhí)行,有助于軟件的版本控制,還大大降低的單板開發(fā)人員對功能軟件的維護(hù) 成本。 而由此(1)減少了由于FPGA加載方法變更導(dǎo)致的FPGA邏輯開發(fā)與應(yīng)用程序開 發(fā)之間的耦合,甚至做到FPGA自加載邏輯與應(yīng)用程序之間都不需要嚴(yán)格的版本匹配關(guān)系。 (2) FPGA加載方法變更以后不需要先升級應(yīng)用程序再升級FPGA邏輯,只需要單獨(dú)升級FPGA 自加載邏輯(即A部分存儲(chǔ)空間即第二存儲(chǔ)空間存儲(chǔ)的是單板邏輯下載模塊)即可,減少 了操作步驟,從而減少了誤操作的可能性。 相應(yīng)地,本發(fā)明提出了一種嵌入式系統(tǒng)FPGA邏輯自加載系統(tǒng),包括 綁定模塊,用于將第一存儲(chǔ)空間中存儲(chǔ)的單板邏輯引導(dǎo)模塊,與第二存儲(chǔ)空間中
存儲(chǔ)的單板邏輯下載模塊進(jìn)行綁定,以獲得自動(dòng)啟動(dòng)加載邏輯模塊; 所述自動(dòng)啟動(dòng)加載邏輯模塊,用于啟動(dòng)所述FPGA ;和將所述FPGA的邏輯文件,根 據(jù)所述單板邏輯下載模塊中記載的加載方式進(jìn)行加載。 該嵌入式系統(tǒng)FPGA邏輯自加載系統(tǒng)還包括所述自動(dòng)啟動(dòng)加載邏輯模塊,還用于
將程序指針指向第三存儲(chǔ)空間存儲(chǔ)的單板應(yīng)用程序模塊。 其中所述自動(dòng)啟動(dòng)加載邏輯模塊具體包括 加載確定模塊,用于確定當(dāng)前單板上的邏輯狀態(tài)還未正常加載所述邏輯文件;
自動(dòng)加載邏輯模塊,用于從所述單板邏輯下載模塊中獲取單板邏輯類型;獲取單 板待加載的所述邏輯文件;從所述單板邏輯下載模塊中確定當(dāng)前邏輯的所述加載方式;和 根據(jù)所述加載方式將所述邏輯文件加載至所述FPGA。 所述自動(dòng)啟動(dòng)加載邏輯模塊還包括自動(dòng)啟動(dòng)模塊,用于將所述單板邏輯下載模 塊進(jìn)行初始化;所述單板邏輯下載模塊將所述FPGA啟動(dòng)。 該嵌入式系統(tǒng)FPGA邏輯自加載系統(tǒng)可以執(zhí)行上述圖1描述的流程,從而使得單板 軟件單板邏輯的內(nèi)容、下載方式等相關(guān)因素改變的情況下不再需要重新編譯和構(gòu)建應(yīng)用程 序代碼,這樣可以控制單板軟件的版本數(shù)量及版本間的一致性。 最后應(yīng)當(dāng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參 照較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明 進(jìn)行修改、更改或者等同替換,而不脫離本發(fā)明和權(quán)利要求的精神和范圍。
權(quán)利要求
一種嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載方法,其特征在于包括將第一存儲(chǔ)空間中存儲(chǔ)的單板邏輯引導(dǎo)模塊,與第二存儲(chǔ)空間中存儲(chǔ)的單板邏輯下載模塊進(jìn)行綁定,以獲得自動(dòng)啟動(dòng)加載邏輯模塊;所述自動(dòng)啟動(dòng)加載邏輯模塊啟動(dòng)現(xiàn)場可編程門陣列;和所述自動(dòng)啟動(dòng)加載邏輯模塊將所述現(xiàn)場可編程門陣列的邏輯文件,根據(jù)所述單板邏輯下載模塊中記載的加載方式進(jìn)行加載。
2. 如權(quán)利要求1所述的嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載方法,其特征在于上 述過程之后還包括所述自動(dòng)啟動(dòng)加載邏輯模塊將程序指針指向第三存儲(chǔ)空間存儲(chǔ)的單板應(yīng)用程序模塊。
3. 如權(quán)利要求1或2所述的嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載方法,其特征在 于所述自動(dòng)啟動(dòng)加載邏輯模塊將所述現(xiàn)場可編程門陣列的邏輯文件,根據(jù)所述單板邏輯下 載模塊中記載的加載方式進(jìn)行加載具體包括確定當(dāng)前單板上的邏輯狀態(tài)還沒有正常加載所述邏輯文件;從所述單板邏輯下載模塊中獲取單板邏輯類型;所述自動(dòng)啟動(dòng)加載邏輯模塊獲取單板待加載的所述邏輯文件;所述自動(dòng)啟動(dòng)加載邏輯模塊從所述單板邏輯下載模塊中確定當(dāng)前邏輯的所述加載方 式;和所述自動(dòng)啟動(dòng)加載邏輯模塊根據(jù)所述加載方式將所述邏輯文件加載至所述現(xiàn)場可編 程門陣列。
4. 如權(quán)利要求3所述的嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載方法,其特征在于所 述自動(dòng)啟動(dòng)加載邏輯模塊啟動(dòng)所述現(xiàn)場可編程門陣列具體為所述自動(dòng)啟動(dòng)加載邏輯模塊根據(jù)所述單板邏輯引導(dǎo)模塊將所述單板邏輯下載模塊進(jìn) 行初始化;所述單板邏輯下載模塊將所述現(xiàn)場可編程門陣列啟動(dòng)。
5. —種嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載系統(tǒng),其特征在于包括 綁定模塊,用于將第一存儲(chǔ)空間中存儲(chǔ)的單板邏輯引導(dǎo)模塊,與第二存儲(chǔ)空間中存儲(chǔ)的單板邏輯下載模塊進(jìn)行綁定,以獲得自動(dòng)啟動(dòng)加載邏輯模塊;所述自動(dòng)啟動(dòng)加載邏輯模塊,用于啟動(dòng)現(xiàn)場可編程門陣列;和將所述現(xiàn)場可編程門陣 列的邏輯文件,根據(jù)所述單板邏輯下載模塊中記載的加載方式進(jìn)行加載。
6. 如權(quán)利要求5所述的嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載系統(tǒng),其特征在于還 包括所述自動(dòng)啟動(dòng)加載邏輯模塊,還用于將程序指針指向第三存儲(chǔ)空間存儲(chǔ)的單板應(yīng)用程 序模塊。
7. 如權(quán)利要求5或6所述的嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載系統(tǒng),其特征在 于所述自動(dòng)啟動(dòng)加載邏輯模塊具體包括加載確定模塊,用于確定當(dāng)前單板上的邏輯狀態(tài)還未正常加載所述邏輯文件; 自動(dòng)加載邏輯模塊,用于從所述單板邏輯下載模塊中獲取單板邏輯類型;獲取單板待 加載的所述邏輯文件;從所述單板邏輯下載模塊中確定當(dāng)前邏輯的所述加載方式;和根據(jù) 所述加載方式將所述邏輯文件加載至所述現(xiàn)場可編程門陣列。
8.如權(quán)利要求7所述的嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載方法,其特征在于所述自動(dòng)啟動(dòng)加載邏輯模塊還包括自動(dòng)啟動(dòng)模塊,用于將所述單板邏輯下載模塊進(jìn)行初始化;所述單板邏輯下載模塊將 所述現(xiàn)場可編程門陣列啟動(dòng)。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)現(xiàn)場可編程門陣列邏輯自加載方法及系統(tǒng),該方法包括將單板邏輯引導(dǎo)模塊,與單板邏輯下載模塊進(jìn)行綁定,以獲得自動(dòng)啟動(dòng)加載邏輯模塊;自動(dòng)啟動(dòng)加載邏輯模塊啟動(dòng)現(xiàn)場可編程門陣列;和自動(dòng)啟動(dòng)加載邏輯模塊將現(xiàn)場可編程門陣列的邏輯文件,根據(jù)記載的加載方式進(jìn)行加載。該系統(tǒng)包括綁定模塊,用于將單板邏輯引導(dǎo)模塊,與單板邏輯下載模塊進(jìn)行綁定,以獲得自動(dòng)啟動(dòng)加載邏輯模塊;自動(dòng)啟動(dòng)加載邏輯模塊,用于啟動(dòng)現(xiàn)場可編程門陣列;和將現(xiàn)場可編程門陣列的邏輯文件,根據(jù)記載的加載方式進(jìn)行加載。因此,本發(fā)明通過綁定方式,使得單板邏輯的內(nèi)容、下載方式等相關(guān)因素改變的情況下不再需要重新編譯和構(gòu)建應(yīng)用程序代碼。
文檔編號G06F9/445GK101697129SQ20091018106
公開日2010年4月21日 申請日期2009年10月27日 優(yōu)先權(quán)日2009年10月27日
發(fā)明者張旭, 徐坤, 焦曉霞 申請人:中興通訊股份有限公司;