基于SCA的軟件無線電在FPGA上設(shè)計(jì)與實(shí)現(xiàn)
(2)OIS公司在一項(xiàng)專利中提出了一種新的基于FPGA的CORBA實(shí)現(xiàn)方法。該方法是將ICO的ORB引擎的分為4個(gè)功能模塊,包括ORB接收模塊、ORB發(fā)送模塊、接收操作適配器和發(fā)送操作適配器。其中ORB接收模塊和ORB發(fā)送模塊僅負(fù)責(zé)解析和封裝GIOP的報(bào)文頭信息,而接收操作適配器和發(fā)送操作適配器負(fù)責(zé)解析和封裝與每個(gè)應(yīng)用模塊相關(guān)的操作名稱和參數(shù)。這樣,每個(gè)應(yīng)用模塊都有自己專屬的處理操作名稱和參數(shù)的處理單元,從而保證了FPGA上應(yīng)用模塊的靈活性和通用性,也可以滿足部分重配置的需求。
然而,由于在OIS公司的專利中所提出的解決方案中,必須為每個(gè)應(yīng)用模塊都實(shí)現(xiàn)一個(gè)接收操作適配器和一個(gè)發(fā)送操作適配器,由此導(dǎo)致應(yīng)用模塊的實(shí)現(xiàn)十分復(fù)雜,必然會(huì)給應(yīng)用模塊的開發(fā)人員帶來一定的負(fù)擔(dān);同時(shí),FPGA內(nèi)部各應(yīng)用模塊之間的信息傳遞必須經(jīng)過發(fā)送操作適配器和接收發(fā)送操作適配器的處理,這對(duì)于FPGA內(nèi)部乃至FPGA之間高速數(shù)據(jù)傳輸?shù)囊箫@然是不恰當(dāng)?shù)?;而且,?dāng)一塊FPGA中運(yùn)行的應(yīng)用模塊數(shù)量較多時(shí),也必然要有大量的計(jì)算資源和存儲(chǔ)資源被處理操作名稱和參數(shù)的邏輯所占用,無法實(shí)現(xiàn)硬件資源的有效利用,甚至造成資源的浪費(fèi),這也是實(shí)際應(yīng)用中無法接受的。
3 改進(jìn)的設(shè)計(jì)方案
以上分析表明現(xiàn)存的種實(shí)現(xiàn)方案都不夠理想,有必要設(shè)計(jì)一種新都實(shí)現(xiàn)機(jī)制來改善當(dāng)前的設(shè)計(jì)。
根據(jù)實(shí)際應(yīng)用中通信系統(tǒng)的需求,結(jié)合上述分析的幾種實(shí)現(xiàn)方案的優(yōu)缺點(diǎn),在兼顧系統(tǒng)的資源利用率、應(yīng)用組件的易開發(fā)性、通用性、靈活性等各方面的性能,在現(xiàn)有設(shè)計(jì)方案對(duì)基礎(chǔ)上,對(duì)FPGA上的ORB實(shí)現(xiàn)方案進(jìn)行了改進(jìn),改進(jìn)后的設(shè)計(jì)方案實(shí)現(xiàn)結(jié)構(gòu)如圖3所示。本文引用地址:http://m.butianyuan.cn/article/190887.htm
在實(shí)際應(yīng)用中,實(shí)現(xiàn)各種波形的應(yīng)用模塊一般需要支持初始化、參數(shù)配置、參數(shù)查詢、建立連接、斷開連接、啟動(dòng)、停止、數(shù)據(jù)傳遞等操作功能,所以在改進(jìn)后的方案中,根據(jù)應(yīng)用模塊的實(shí)際需要抽象出一組與上述操作相對(duì)應(yīng)的操作名稱:initialize,configcIre,query,connectPort,disconnectPort,start,stop,pushPacket等,可稱之為公有操作。公有操作名稱的識(shí)別和處理由ORB主適配器完成。另外,對(duì)那些只是個(gè)別應(yīng)用模塊所實(shí)現(xiàn)的操作,可稱之為私有操作,其識(shí)別和處理則由應(yīng)用模塊的ORB輔助適配器完成。各模塊發(fā)所實(shí)現(xiàn)的功能
如下:
ORB主適配器(ORB Mian Adapter)實(shí)現(xiàn)的功能包括兩個(gè)方面:一是解析接收到的GIOP報(bào)文信息,從接收到到報(bào)文信息中抽取出GIOP報(bào)文頭和數(shù)據(jù)域,丟棄填充域。在該過程中,ORB主適配器需要基于GIOP報(bào)文頭信息所提供的協(xié)議版本和數(shù)據(jù)大小端標(biāo)志完成報(bào)文格式的識(shí)別和數(shù)據(jù)的大小端轉(zhuǎn)換。需要注意的是GIOP報(bào)文中的ObjecKey和Operation Name段均是變長的信息,為了便于后續(xù)處理,需要在ORB主適配器的處理過程中將它們轉(zhuǎn)換為固定的編碼,其中ObjectKey轉(zhuǎn)換為用于標(biāo)識(shí)應(yīng)用模塊的地址編碼,而Operation Name則轉(zhuǎn)換為與之對(duì)應(yīng)的控制信息;二是封裝需要發(fā)送到GIOP報(bào)文信息,負(fù)責(zé)從應(yīng)用模塊的數(shù)據(jù)總線和控制總線接收數(shù)據(jù)與控制信息,然后加上GIOP報(bào)文頭,將控制信息轉(zhuǎn)換為相應(yīng)的操作名稱,填充對(duì)齊數(shù)據(jù)等完成GIOP報(bào)文信息封裝,之后通過FIFO等類似的接口將數(shù)據(jù)傳送出去。
交叉開關(guān)(Crossbar Switch)實(shí)現(xiàn)的功能是根據(jù)接收到的地址編碼完成控制信息和數(shù)據(jù)的轉(zhuǎn)發(fā)。
ORB輔助適配器(ORB Assistant Adapter)實(shí)現(xiàn)的功能與ORB主適配器類似,也包括兩個(gè)方面:一是接收來自交叉開關(guān)的控制信息,若調(diào)用調(diào)用的是應(yīng)用模塊的私有操作,則將此操作名稱轉(zhuǎn)換為相應(yīng)的操作編碼后發(fā)送給給交叉開關(guān),否則,直接將控制信息轉(zhuǎn)發(fā)給應(yīng)用模塊;二是接收來自應(yīng)用模塊的控制信息,當(dāng)應(yīng)用模塊調(diào)用私有操作時(shí),則將操作編碼轉(zhuǎn)換為相應(yīng)的私有操作名稱后發(fā)送給給交叉開關(guān),否則,直接將控制信息轉(zhuǎn)發(fā)給交叉開關(guān)。
應(yīng)用模塊(Application Module)根據(jù)控制信息完成對(duì)數(shù)據(jù)的處理,給出處理結(jié)果。
圖4為CORBA請(qǐng)求報(bào)文的接收處理流程。
在根據(jù)改進(jìn)后設(shè)計(jì)方案所實(shí)現(xiàn)的系統(tǒng)中,GPP上的應(yīng)用將保持原有狀態(tài),不會(huì)引人任何額外的處理負(fù)擔(dān)和處理延遲。FPGA上由ORB主適配器統(tǒng)一完成各個(gè)應(yīng)用模塊的公有操作,在減小FPGA硬件資源的浪費(fèi)的同時(shí)也減輕了應(yīng)用模塊開發(fā)的負(fù)擔(dān)。應(yīng)用模塊預(yù)留有私有操作處理接口,可對(duì)其實(shí)現(xiàn)的私有操作進(jìn)行擴(kuò)展,從而也保證了應(yīng)用模塊的靈活性和動(dòng)態(tài)部分重配置功能的實(shí)現(xiàn);而且,F(xiàn)PGA上各應(yīng)用模塊間的數(shù)據(jù)傳遞不需要額外的處理,也滿足了高速處理的要求。
評(píng)論