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