本發明涉及通信技術領域,特別涉及一種現場可編程門陣列(英文全稱:field-programmablegatearray,英文簡稱:fpga)芯片文件加載的系統及方法。
背景技術:
目前數字信號處理一般在中頻進行,大部分操作由fpga芯片實現。為實時動態重新配置fpga芯片來加載不同的軟件設計,快速的實現功能的切換,目前的主要實現方法分為靜態系統重構和動態系統重構。靜態系統重構是指目標系統的邏輯功能靜態重載,即只能在運行前配置的系統。fpga芯片功能在外部邏輯的控制下,通過存貯于存貯器中不同的目標系統數據的重新下載,而實現芯片邏輯功能的改變。在重新配置數據的過程中,舊的邏輯功能失去,新的邏輯功能尚未建立,存在系統重構時隙,系統功能無法動態連續。動態系統重構是指芯片能在運行過程中實現內部邏輯塊和連接線的改變,能夠解決上述無法動態連續的問題,但該方案實現過程比較復雜,文件加載速率較低。
技術實現要素:
本發明實施例提供了一種用于fpga芯片文件加載的系統及方法。為了對披露的實施例的一些方面有一個基本的理解,下面給出了簡單的概括。該概括部分不是泛泛評述,也不是要確定關鍵/重要組成元素或描繪這些實施例的保護范圍。其唯一目的是用簡單的形式呈現一些概念,以此作為后面的詳細說明的序言。
根據本發明實施例的第一方面,提供了一種用于fpga芯片文件加載的系統,其特征在于,包括:上位機模塊、軟件通信體系框架(英文全稱:servicecomponentarchitecture,英文簡稱:sca)中間層模塊,一個第一fpga芯片和至少一個第二fpga芯片;所述上位機模塊,用于發送控制指令至所述sca中間層模塊;所述控制指令包含功能算法文件的名稱;所述sca中間層模塊,用于接收控制指令并根據所述控制指令查找所述功能算法文件并加載至所述第一fpga芯片;所述第一fpga芯片,用于引導加載所述功能算法文件至所述第二fpga芯片;所述第二fpga芯片,用于加載所述功能算法實現對應的所述功能。
可選地,所述上位機模塊和所述sca中間層模塊通過基于公共對象請求代理體系結構(英文全稱:commonobjectrequestbrokerarchitecture,英文簡稱:corba)規范的接口通過局域網(英文全稱:localareanetwork,英文簡稱:lan)總線進行通信;所述一個或多個第二fpga芯片和所述第一fpga芯片之間通過輸入/輸出(英文全稱:input/output,英文簡稱:i/o)接口互聯。
可選地,所述上位機模塊包括一個功能選擇模塊,用于進行功能選擇和參數配置生成控制指令;所述控制指令包括功能算法文件名稱和配置參數;所述配置參數包括所述第二fpga芯片的標識id;所述第一fpga芯片按所述第二fpga芯片id加載所述功能算法文件至相應的第二fpga芯片。
可選地,所述sca中間層模塊包括:至少一個波形應用組件、至少一個設備組件和外設部件互連標準(英文全稱:peripheralcomponentinterconnect,英文簡稱:pci)驅動;所述波形應用組件與所述功能選擇模塊提供的功能選項一一對應,所述設備組件與底層硬件中的第二fpga芯片一一對應;所述波形應用組件用于根據所述第二fpga芯片id尋找所述設備組件并將所述控制指令發送給所述設備組件;所述設備組件,用于調用所述pci驅動讀取所述功能算法文件;所述pci驅動,用于發送所述功能算法文件至所述第一fpga芯片。
可選地,所述設備組件連接至所述緊湊型外設部件互連標準(英文全稱:compactperipheralcomponentinterconnect,英文簡稱:cpci)總線接口,并通過所述cpci總線接口與所述cpci總線連接。
可選地,所述第二fpga芯片各外接一個閃存(英文全稱:flasheeprom,英文簡稱:flash)和一個雙倍速率同步動態隨機存儲器(英文全稱:dualdataratesynchronousdynamicrandomaccessmemory,英文簡稱:ddr);所述flash內固化了所述第二fpga芯片驅動文件,用于在所述第二fpga芯片上電后加載,在所述第一fpga芯片給出控制信號后完成所述第二fpga芯片的初始化;所述ddr,用于存儲所述功能算法文件。
根據本發明實施例的第二方面,提供一種用于fpga芯片文件加載的方法,包括:上位機模塊發送控制指令;sca中間層模塊接收所述控制指令;所述sca中間層模塊解析所述控制指令,得出所述控制指令中包含的功能算法文件的名稱;所述sca中間層模塊根據所述功能算法文件的名稱查找所述功能算法文件并將所述功能算法文件發送至第一fpga芯片;所述第一fpga芯片引導加載所述功能算法文件至所述第二fpga芯片。
可選地,所述控制指令由功能選擇模塊發送;所述控制指令包括功能算法文件名稱和配置參數;所述配置參數包括所述第二fpga芯片的id;所述第一fpga芯片按所述第二fpga芯片id加載所述功能算法文件至相應的第二fpga芯片。
可選地,所述sca中間層模塊包括:至少一個波形應用組件、至少一個設備組件和外設部件互連標準pci驅動;所述波形應用組件與所述功能選擇模塊提供的功能選項一一對應,所述設備組件與底層硬件中的第二fpga芯片一一對應;所述sca中間層模塊根據所述功能算法文件的名稱查找所述功能算法文件并將所述功能算法文件發送至第一fpga芯片包括:所述波形應用組件根據所述第二fpga芯片id尋找所述設備組件并將所述控制指令發送給所述設備組件;所述設備組件調用所述pci驅動讀取所述功能算法文件;所述pci驅動發送所述功能算法文件至所述第一fpga芯片。
可選地,在上位機模塊發送控制指令之前還包括:所述第一fpga芯片上電;
所述功能選擇模塊,所述sca中間層模塊和所述第二fpga芯片上電。所述第二fpga芯片加載固化在所述第二fpga芯片外接的flash內的fpga芯片驅動文件;所述第二fpga芯片根據所述第一fpga芯片發送的控制信號完成初始化。
本發明實施例提供的技術方案可以包括以下有益效果:
本實施例提供的系統基于sca進行軟件結構設計,文件加載過程中不需要進行內部邏輯塊和連接線的改變,實現fpga芯片文件動態加載。整個過程不需要斷電重啟,過程簡單,提高文件的加載效率。
應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,并不能限制本發明。
附圖說明
此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本發明的實施例,并與說明書一起用于解釋本發明的原理。
圖1是根據一示例性實施例示出的一種用于fpga芯片文件加載的系統的結構示意圖;
圖2是根據一示例性實施例示出的一種用于fpga芯片文件加載的系統的結構示意圖;
圖3是根據一示例性實施例示出的一種用于fpga芯片文件加載的方法的框圖;
圖4是根據一示例性實施例示出的一種用于fpga芯片文件加載的方法的框圖。
具體實施方式
以下描述和附圖充分地示出本發明的具體實施方案,以使本領域的技術人員能夠實踐它們。實施例僅代表可能的變化。除非明確要求,否則單獨的部件和功能是可選的,并且操作的順序可以變化。一些實施方案的部分和特征可以被包括在或替換其他實施方案的部分和特征。本發明的實施方案的范圍包括權利要求書的整個范圍,以及權利要求書的所有可獲得的等同物。在本文中,各實施方案可以被單獨地或總地用術語“發明”來表示,這僅僅是為了方便,并且如果事實上公開了超過一個的發明,不是要自動地限制該應用的范圍為任何單個發明或發明構思。本文中,諸如第一和第二等之類的關系術語僅僅用于將一個實體或者操作與另一個實體或操作區分開來,而不要求或者暗示這些實體或操作之間存在任何實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素本文中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的結構、產品等而言,由于其與實施例公開的部分相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
sca是基于corba制定的軟件無線電軟件協議和相應技術標準,通過corba規范實現了軟件總線,為各軟件模塊之間進行數據傳輸與聯系提供的虛擬公共通道和接口。sca定義了一個實現獨立、開放的軟件框架,支持軟件開發的基本需求,包括了開發軟件的接口規范、應用編程接口、行為規范和準則。本發明的實施例基于sca的系統架構在不同的層面對硬件和軟件進行詳細地定義,為系統的設計和開發提供了詳細的規范,建立了獨立于設備的結構框架,使系統具有組件的可移植性和復用性,并確保根據sca開發的產品之間的兼容性。sca能保證基于該規范的各種系統間實現互連、互通和互操作,同時,它還為不同的sca波形應用組件提供了可移植的平臺,并通過充分采用corba規范封裝復雜的接口,降低了開發的復雜性,減少了開發成本。憑借sca技術能夠實現文件的動態切換,不需要將設備斷電或是重啟再加載文件。
如圖1所示,本發明實施例提供的用于fpga芯片文件加載的系統包括:上位機模塊1100、sca中間層模塊1200,一個第一fpga芯片1300和至少一個第二fpga芯片。
上位機模塊1100,用于發送控制指令至sca中間層模塊1200,其中,控制指令包含功能算法文件的名稱。上位機模塊1100設置有功能選項,將算法文件分解成對應所有功能選項的多個功能算法文件。
sca中間層模塊1200用于接收控制指令并根據控制指令中的功能算法文件的名稱查找對應的功能算法文件并加載該功能算法文件至第一fpga芯片1300。
第一fpga芯片1300,用于引導加載功能算法文件至第二fpga芯片。
第二fpga芯片用于加載功能算法文件并實現功能。
一般情況下,按系統中fpga芯片數量進行平均,每塊fpga芯片能使運算速度提高7-30倍左右。本系統一個第一fpga芯片1300作為加載文件的控制器,一個或多個第二fpga芯片作為整個系統的目標器件,加載功能算法文件并實現功能。第一fpga芯片1300引導第二fpga芯片加載sca中間層模塊1200發送的功能算法文件,第二fpga芯片算法文件加載功能算法文件并實現功能。整個過程不需要斷電重啟,以軟件重構的形式,完成fpga芯片的文件動態加載。
本實施例提供的系統基于sca進行軟件結構設計,文件加載過程中不需要進行內部邏輯塊和連接線的改變,實現fpga芯片文件動態加載。整個過程不需要斷電重啟,過程簡單,提高文件的加載效率。
在另一些實施例中,如圖2所示,用于fpga芯片文件加載的系統包括:上位機模塊1100、sca中間層模塊1200,一個第一fpga芯片1300和至少一個第二fpga芯片。
上位機模塊1100包括一個功能選擇模塊,用于進行功能選擇和參數配置生成控制指令。生成的控制指令包括功能算法文件名稱和配置參數,其中,配置參數包括第二fpga芯片的id,指示加載選擇的功能對應的功能算法文件至對應的第二fpga芯片。該id為第二fpga芯片的設備號,進一步地,該id包括第二fpga芯片的廠商號。功能算法文件為二進制(英文全稱:binary,英文簡稱:bin)文件,通過仿真器生成。第一fpga芯片1300在引導加載功能算法文件時,按控制指令中的第二fpga芯片id加載功能算法文件至相應的第二fpga芯片。
sca中間層模塊1200以.xml文件和.out文件形式存在,由spectracx軟件生成。sca中間層模塊1200包括波形應用組件1201、設備組件1202和pci驅動。sca中間層模塊1200同樣針對上位機模塊1100設置的功能選項將算法文件分解,生成對應的波形應用組件1201。sca中間層模塊1200每個波形應用組件1201與主功能模塊中每個功能選項和對應的功能算法文件是一一映射的。sca中間層模塊1200具有針對底層第二fpga芯片抽象出來的設備組件1202,第二fpga芯片根據所能實現的功能分解成若干個可選的模塊并建立一個功能管理接口,然后在設備組件1202中通過corba接口與這若干個模塊映射。波形應用組件1201,用于根據控制指令尋找設備組件1202并將控制指令發送給設備組件1202,設備組件1202,調用pci驅動讀取功能算法文件將功能算法文件發送至第一fpga芯片1300,波形應用組sca中間層模塊1200與上位機模塊1100基于corba規范定義的接口通過lan進行通信。
第一fpga芯片1300按照控制指令中的第二fpga芯片id引導加載功能算法文件至相應的第二fpga芯片。
第二fpga芯片各外接一個flash和一個ddr,在flash內固化了第二fpga芯片驅動文件,第二fpga芯片上電后加載驅動文件,在接收到第一fpga芯片1300通過通用i/o接口給出控制信號后完成初始化。ddr內存儲有功能算法文件,pci驅動從該ddr內讀取功能算法文件。
上位機模塊1100和sca中間層模塊1200基于corba規范的接口通過局域網lan總線進行通信。波形應用組件1201和設備組件1202通過基于corba規范的接口通信,設備組件1202還連接至cpci總線接口,并通過cpci總線接口與cpci總線連接。sca中間層模塊1200和第一fpga芯片1300采用緊湊型外設部件互連標準cpci總線連接。第二fpga芯片和第一fpga芯片1300之間通過i/o接口互聯。
在本實施例中第一fpga芯片1300采用sprtan-6,第二fpga芯片采用virtex-6。
系統上電過程為:第一fpga芯片1300首先上電完成加載,然后上位機模塊1100和sca中間層模塊1200以及第二fpga芯片上電。
第二fpga芯片的配置以及文件加載都是通過第一fpga芯片1300控制完成,所以第一fpga芯片1300最先上電、加載,在第一fpga芯片1300加載完畢后,其他模塊才能進行上電。
系統上電后,第二fpga芯片加載固化在flash內的第二fpga芯片驅動文件,在接收到第一fpga芯片1300發送的控制信號后完成第二fpga芯片的初始化。然后執行fpga芯片文件加載過程。
文件動態加載過程為:通過上位機模塊1100選擇需要加載的功能和需要配置的參數,生成控制指令,通過基于corba規范的接口傳遞給sca中間層模塊1200。當sca中間層模塊1200中的波形應用組件1201接收到上位機1100發出的控制指令,會根據其中的第二fpga芯片的id尋找對應的設備組件1202,并將控制指令發送給設備組件1202。當設備組件1202接收到波形應用組件1211傳遞的控制指令,會調用pci驅動從第二fpga外接的ddr中讀取功能算法文件并將功能算法文件通過cpci總線傳送給第一fpga芯片1300,由第一fpga芯片1300引導加載至指定的第二fpga芯片,直接替代原來的文件完成fpga芯片文件加載。當需要切換功能時,在功能選擇模塊1100進行功能切換,并依次執行前述步驟完成對fpga芯片文件動態加載,整個過程不需要重啟加載。
本實施例提供的系統基于sca進行軟件結構設計,文件加載過程中不需要進行內部邏輯塊和連接線的改變,實現fpga芯片文件動態加載。整個過程不需要斷電重啟,過程簡單,提高文件的加載效率。
與前述系統實施例相對應,參見圖3,本發明實施例提供的用于fpga芯片文件加載的方法包括如下步驟。
步驟s301,上位機模塊發送控制指令。
上位機模塊1100提供軟件功能選項,根據需求在上位機模塊1100選擇需要執行的軟件功能,上位機模塊1100發送控制指令,控制指令中包含功能算法文件的名稱。
步驟s302,sca中間層模塊接收所述控制指令。
步驟s303,所述sca中間層模塊根據所述功能算法文件的名稱查找所述功能算法文件并將所述功能算法文件發送至第一fpga芯片。
步驟s304,所述第一fpga芯片引導加載所述功能算法文件至所述第二fpga芯片。
本實施例提供的方法可以實現對fpga芯片文件的動態加載,整個過程不需要重啟加載,過程簡單,提高文件的加載效率。
波形應用組件1201與上位機模塊1100提供的功能選項一一對應,每個功能選項對應的功能算法文件不同。根據功能算法文件的名稱選擇與選擇的功能選項對應的波形應用組件1201。
控制指令中包含功能算法文件的名稱,設備組件1202根據功能算法文件的名稱選擇對應的功能算法文件,并發送至第一fpga芯片1300。
步驟s208,所述第一fpga芯片根據所述控制指令引導加載所述功能算法文件至第二fpga芯片。
第一fpga芯片1300發送功能算法文件至能夠完成選擇的功能的第二fpga芯片。
在一些實施例中,參見圖4,用于fpga芯片文件加載的方法包括如下步驟。
步驟s401,所述第一fpga芯片上電。
步驟s402,所述功能選擇模塊,所述sca中間層模塊和所述第二fpga芯片上電。
第一fpga芯片1300實現第二fpga芯片的初始化和文件部署,在系統進行工作前首先對第一fpga芯片1300上電,當fpga芯片1300上電后再對其他模塊即上位機模塊,sca中間層模塊和第二fpga芯片進行上電。
步驟s403,所述第二fpga芯片加載固化在所述第二fpga芯片外接的flash內的fpga芯片驅動文件。
第二fpga芯片外接的flash內固化了第二fpga芯片的驅動文件,在第二fpga芯片上電后會自動加載第二fpga芯片驅動文件。
步驟s404,所述第二fpga芯片根據所述第一fpga芯片發送的控制信號完成初始化。
第二fpga芯片在加載文件前首先要進行初始化,第一fpga芯片1300發送控制信號控制第二fpga芯片進行初始化。
步驟s405,上位機模塊發送控制指令。
上位機模塊1100包括功能選擇模塊,可以進行功能選擇和參數配置并生成控制指令。配置參數中包含第二fpga芯片id,所述第二fpga芯片id指示加載選擇的功能對應的功能算法文件至對應的第二fpga芯片。
步驟s406,sca中間層模塊接收所述控制指令。
sca中間層模塊1200接收的控制指令包括功能算法文件名稱和配置參數。其中,功能算法文件名稱為與選擇的功能對應的功能算法文件名稱,該功能算法文件為加載到第二fpga芯片的文件名稱。
步驟s407,所述波形應用組件根據所述第二fpga芯片id尋找所述設備組件并將所述控制指令發送給所述設備組件。
sca中間層模塊1200針對上位機模塊1100設置的功能選項將算法文件分解,生成對應的波形應用組件1201。sca中間層模塊1200每個波形應用組件1201與主功能模塊中每個功能選項和對應的功能算法文件是一一映射的。sca中間層模塊1200具有針對底層第二fpga芯片抽象出來的設備組件1202,因此,可通過第二fpga芯片id尋找對應的設備組件1202。
步驟s408,所述設備組件調用所述pci驅動讀取所述功能算法文件。
sca中間層模塊1200包括pci驅動,設備組件1202調用pci驅動讀取控制指令中功能算法文件名稱對應的功能算法文件。
步驟s409,所述pci驅動發送所述功能算法文件至所述第一fpga芯片。
步驟s410,所述第一fpga芯片引導加載所述功能算法文件至所述第二fpga芯片。
控制指令包括第二fpga芯片id,第一fpga芯片1300根據控制指令包含的第二fpga芯片id將功能算法文件加載至對應的第二fpga芯片。
當執行上述步驟完成一次功能算法文件的加載后。系統等待功能選擇模塊1100發送控制指令,當在功能選擇模塊1100做出功能切換時,則執行步驟s405及之后的步驟,完成fpga芯片文件的動態加載。
本實施例提供的方法可以實現對fpga芯片文件的動態加載,整個過程不需要重啟加載,過程簡單,提高文件的加載效率。
應當理解的是,本發明并不局限于上面已經描述并在附圖中示出的流程及結構,并且可以在不脫離其范圍進行各種修改和改變。本發明的范圍僅由所附的權利要求來限制。