陳 亮 劉國浩 袁子喬 崔向陽 田 歡
(1.西安電子工程研究所 西安 710100;2.陸軍裝備部駐西安地區(qū)軍事代表局 西安 710032)
本文提出的DBF架構(gòu)主體內(nèi)容包括兩部分,第一部分是將多路A/D數(shù)據(jù)寫入雙口RAM,根據(jù)DBF模塊工作時(shí)鐘和A/D數(shù)據(jù)有效速率的N(N為正整數(shù))倍關(guān)系,將每個(gè)采樣點(diǎn)的A/D數(shù)據(jù)從雙口RAM中讀取N次,以保證RAM讀寫等速率。速率轉(zhuǎn)換的過程[1],將每個(gè)采樣點(diǎn)的A/D數(shù)據(jù)讀取次數(shù)參數(shù)化,可兼容雷達(dá)系統(tǒng)的不同采樣頻率;第二部分是基于DSP48構(gòu)建復(fù)數(shù)乘法單元,利用DSP48的PCIN/PCOUT端口,對(duì)多路A/D間的復(fù)乘結(jié)果級(jí)聯(lián)累加[2],由于級(jí)聯(lián)端口之間有專用的布線資源,從而保證DBF模塊達(dá)到更高時(shí)鐘頻率,或者同等資源利用率的情況下,F(xiàn)PGA更容易達(dá)到時(shí)序收斂。本文所述的陣元間直接加權(quán)的DBF方法,雖然比降維DBF方法占用更多DSP48資源,但增加了雷達(dá)系統(tǒng)波束形成的靈活性和不同采樣頻率的兼容性。DBF模塊設(shè)計(jì)充分利用DSP48內(nèi)部加法器、級(jí)聯(lián)管腳和專用的布線資源,相比于直接使用復(fù)乘和累加IP Core,節(jié)約資源的同時(shí)更加易于時(shí)序收斂。
假設(shè)FPGA收到的M路并行的A/D數(shù)據(jù),其中每路有N個(gè)通道的串行數(shù)據(jù),即單個(gè)采樣點(diǎn)的數(shù)據(jù)量K=M×N,單個(gè)采樣點(diǎn)的回波數(shù)據(jù)可用式(1)表示
(1)
理論上對(duì)N個(gè)通道的串行數(shù)據(jù)si1,si2…siN,其中i=1,2…M,對(duì)應(yīng)N個(gè)接收DBF權(quán)值wi1,wi2…wiN,這里的接收DBF權(quán)值包含了方位維和俯仰維的指向信息[3],則單個(gè)采樣點(diǎn)的DBF結(jié)果可表示為式(2)
(2)
假設(shè)雷達(dá)系統(tǒng)采樣頻率為fs,則上述M路A/D數(shù)據(jù)有效速率為fs×N,則DBF模塊時(shí)鐘頻率fdbf可以取值為式(3)
fdbf=I×fs×N
(3)
式(3)中I為正整數(shù),DBF模塊時(shí)鐘頻率fdbf可結(jié)合需求合理設(shè)置I的取值。
根據(jù)式(3)的速率關(guān)系,M路A/D數(shù)據(jù)流分別寫入M個(gè)雙口RAM,寫有效速率為fwr=fs×N,RAM的讀時(shí)鐘frd=fdbf,則frd=fwr×I,即讀時(shí)鐘是寫有效速率的I倍。通過控制每個(gè)RAM的讀節(jié)奏,保證每個(gè)采樣點(diǎn)的N個(gè)串行數(shù)據(jù)重復(fù)讀取I次,可以保證讀寫的有效速率相等。單路單個(gè)采樣點(diǎn)的N通道數(shù)據(jù)的RAM讀寫數(shù)據(jù)時(shí)序圖如圖1所示。
圖1 RAM讀寫數(shù)據(jù)時(shí)序
RAM將單路單個(gè)采樣點(diǎn)的N通道數(shù)據(jù)重復(fù)讀取I次,對(duì)應(yīng)I個(gè)指向的DBF接收權(quán)值,可同時(shí)形成I個(gè)接收波束,在FPGA資源使用合理的情況下,對(duì)RAM讀出數(shù)據(jù)并行使用L次,則最多可同時(shí)形成波束個(gè)數(shù)P為
P=I×L
(4)
若雷達(dá)系統(tǒng)有兩個(gè)基帶采樣頻率fs1和fs2,根據(jù)式(3)合理設(shè)置DBF模塊時(shí)鐘頻率fdbf,保證fdbf與fs1、fs2均是整數(shù)倍關(guān)系,即
fdbf=I1×fs1×N
fdbf=I2×fs2×N
(5)
根據(jù)當(dāng)前雷達(dá)工作的采樣頻率,參數(shù)化控制RAM讀出每個(gè)采樣點(diǎn)的次數(shù)I。因此這種RAM轉(zhuǎn)換速率的方式可以兼容雷達(dá)系統(tǒng)的兩種采樣頻率,適用于具備搜索、跟蹤等多功能的相控陣?yán)走_(dá)。
對(duì)于上述M×N形式的數(shù)據(jù)下傳格式,M路并行數(shù)據(jù),每路每個(gè)采樣點(diǎn)有N個(gè)串行通道數(shù)據(jù)。由式(2)可知,先對(duì)第i路(i=1,2…M)的I×N串行數(shù)據(jù)與對(duì)應(yīng)的DBF權(quán)值進(jìn)行復(fù)乘運(yùn)算,再對(duì)M路復(fù)乘結(jié)果并行求和,最后對(duì)求和結(jié)果進(jìn)行N個(gè)串行累加,最終得到單個(gè)采樣點(diǎn)的I個(gè)波束數(shù)據(jù)。本節(jié)先基于DSP48構(gòu)建復(fù)乘單元,再利用級(jí)聯(lián)的方式將M個(gè)復(fù)乘單元級(jí)聯(lián)相加輸出,最后構(gòu)建累加器,將串行數(shù)據(jù)累加輸出波束數(shù)據(jù)。
復(fù)數(shù)乘法運(yùn)算過程如式(6)所示
(a+jb)×(c+jd)=(ac-bd)+(ad+bc)j
(6)
基于式(6)的復(fù)數(shù)乘法表示,構(gòu)建的復(fù)乘器結(jié)構(gòu)如圖2所示,圖2中使用了4個(gè)DSP48,進(jìn)行了4次乘法運(yùn)算與2次加法運(yùn)算,稱為4M2A架構(gòu)。
圖2 4M2A結(jié)構(gòu)的復(fù)乘單元
將式(6)的復(fù)乘表示方式轉(zhuǎn)換,其結(jié)果也可用式(7)的方式表示。
(a+jb)×(c+jd)=[(a-b)×d+(c-d)×a]+
[(a-b)×d+(c+d)×b]j
(7)
由式(7)可知,實(shí)部、虛部有公共項(xiàng)(a-b)×d,因此可通過級(jí)聯(lián)的方式,進(jìn)行3次乘法和5次加法,只需3個(gè)DSP48便可實(shí)現(xiàn)復(fù)乘運(yùn)算,稱為3M5A結(jié)構(gòu),其復(fù)乘器結(jié)構(gòu)如圖3所示。
圖3 3M5A結(jié)構(gòu)的復(fù)乘單元
對(duì)于上述兩種復(fù)乘結(jié)構(gòu),單個(gè)3M5A結(jié)構(gòu)的復(fù)乘單元更節(jié)約DSP48資源,但在大型陣列雷達(dá)DBF實(shí)現(xiàn)過程,多路A/D數(shù)據(jù)與對(duì)應(yīng)的DBF系數(shù)復(fù)乘后仍需要并行相加,即將多個(gè)復(fù)乘單元級(jí)聯(lián)起來,一路的復(fù)乘結(jié)果作為輸入與另一路復(fù)乘結(jié)果相加,采用復(fù)乘單元間級(jí)聯(lián)的方式實(shí)現(xiàn)多路復(fù)乘結(jié)果并行相加。本文針對(duì)4M2A復(fù)乘結(jié)構(gòu),詳細(xì)介紹了多路并行DBF實(shí)現(xiàn)方法。
將圖2的復(fù)乘單元中DSP48_0與DSP48_1最后一級(jí)加法器修改,將復(fù)乘單元的實(shí)部、虛部結(jié)果作為輸入,連接到下一個(gè)復(fù)乘單元,即形成了多個(gè)復(fù)乘單元的級(jí)聯(lián),最后一個(gè)復(fù)乘單元的輸出即為多路復(fù)乘結(jié)果的累加結(jié)果。需要注意的是相比于前一級(jí)復(fù)乘單元輸入數(shù)據(jù)a1,b1,c1,d1,后一級(jí)復(fù)乘單元輸入數(shù)據(jù)a2,b2,c2,d2應(yīng)延遲兩個(gè)時(shí)鐘節(jié)拍,保證復(fù)乘單元間級(jí)聯(lián)相加的數(shù)據(jù)對(duì)齊。圖4給出了相鄰兩個(gè)復(fù)乘單元的級(jí)聯(lián)結(jié)構(gòu)。
基于1.1節(jié)假設(shè)的M×N的A/D數(shù)據(jù)格式(M路并行數(shù)據(jù),每路N個(gè)通道的串行數(shù)據(jù)),給出了DBF模塊的整體設(shè)計(jì)方法:M路并行數(shù)據(jù)分別寫入RAM,根據(jù)寫數(shù)據(jù)有效速率和讀時(shí)鐘頻率的倍數(shù)關(guān)系,邏輯產(chǎn)生讀節(jié)奏控制,將單路單個(gè)采樣點(diǎn)的數(shù)據(jù)重復(fù)讀I次,并保證RAM讀寫速率相等。M路RAM讀出的數(shù)據(jù)進(jìn)入M個(gè)復(fù)乘單元,與對(duì)應(yīng)DBF權(quán)系數(shù)復(fù)乘,M個(gè)級(jí)聯(lián)的復(fù)乘單元對(duì)復(fù)乘結(jié)果進(jìn)行并行相加,最后將并行累加結(jié)果進(jìn)行N個(gè)串行累加,輸出單個(gè)采樣點(diǎn)的I個(gè)波束數(shù)據(jù)。DBF模塊設(shè)計(jì)流程如圖5所示。
圖5所示的DBF設(shè)計(jì)模塊,能將M×N的數(shù)據(jù)合成I個(gè)波束數(shù)據(jù),若雷達(dá)系統(tǒng)要求最多形成P個(gè)波束,且P是I的整數(shù)倍,即P=I×L,L為正整數(shù)。則可將圖5虛線部分重復(fù)例化L次。
圖4 相鄰復(fù)乘單元間的級(jí)聯(lián)結(jié)構(gòu)
圖5 DBF模塊整體流程
對(duì)于全陣列DBF的實(shí)現(xiàn)方式,F(xiàn)PGA內(nèi)部將二維面陣數(shù)據(jù)等效于一維線陣來做乘累加處理,只是每個(gè)陣元對(duì)于的DBF權(quán)值包含方位維和俯仰維的復(fù)合信息。因此為便于實(shí)驗(yàn)的方向圖對(duì)比,這里假設(shè)二維面陣數(shù)據(jù)對(duì)應(yīng)DBF權(quán)值為一維形式,系統(tǒng)的實(shí)驗(yàn)參數(shù)如下所述。
設(shè)系統(tǒng)基帶采樣頻率為2.5 MHz,A/D數(shù)據(jù)格式M×N=4×16,即4路并行數(shù)據(jù),每路16個(gè)串行通道數(shù)據(jù),每路有效數(shù)據(jù)速率為2.5×16=40 MHz,根據(jù)式(3)的時(shí)鐘頻率關(guān)系,取DBF模塊工作時(shí)鐘為240 MHz。按圖5流程,4路數(shù)據(jù)分別進(jìn)入4個(gè)雙口RAM,每路數(shù)據(jù)重復(fù)讀出6次后,分別進(jìn)入4個(gè)復(fù)乘單元與對(duì)應(yīng)6個(gè)指向的DBF權(quán)復(fù)乘。最后一個(gè)復(fù)乘單元輸出的實(shí)部、虛部數(shù)據(jù)分別進(jìn)入累加器進(jìn)行16個(gè)數(shù)的串行累加,得到單個(gè)采樣點(diǎn)的6個(gè)DBF數(shù)據(jù)。并行例化圖5虛線部分8次,在-20°~20°方向等間隔同時(shí)形成48個(gè)接收波束。圖6給出了基于DSP48級(jí)聯(lián)的DBF模塊仿真方向圖和理論方向圖。
圖6 FPGA仿真方向圖與理論方向圖對(duì)比
由圖6可以看出,歸一化后FPGA計(jì)算的方向圖與理論方向圖的歸一化結(jié)果整體相同,兩個(gè)方向圖幅度相減得到理論值與實(shí)際計(jì)算值的歸一化誤差,如圖7所示。
圖7 方向圖實(shí)際計(jì)算值與理論值誤差
由圖7可知,歸一化方向圖的理論值與實(shí)際計(jì)算結(jié)果誤差在10-6量級(jí),因此本文所述的級(jí)聯(lián)DSP48的DBF方法具有可實(shí)現(xiàn)性。
1)FPGA資源與性能優(yōu)化:圖5所示的DBF模塊能夠同時(shí)形成I個(gè)波束數(shù)據(jù),其中每個(gè)復(fù)乘單元使用4個(gè)DSP48,最終兩個(gè)串行累加器使用2個(gè)DSP48,因此若雷達(dá)系統(tǒng)要求最多形成P=I×L個(gè)波束,則共使用DSP48個(gè)數(shù)為
(4×M+2)×L
(8)
使用傳統(tǒng)復(fù)乘核累加IP Core構(gòu)建DBF子模塊的方法,每個(gè)DBF子模塊使用5個(gè)DSP48(復(fù)乘占用3個(gè)DSP48,實(shí)部、虛部累加占用2個(gè)DSP48),則在同等條件下共使用DSP48的個(gè)數(shù)為
5×M×L
(9)
對(duì)比式(8)、式(9),M×L較大時(shí),即A/D數(shù)據(jù)量大、形成波束個(gè)數(shù)多的情況。級(jí)聯(lián)DSP48的DBF方法比傳統(tǒng)方法的DSP48利用率降低了約20%,且級(jí)聯(lián)DSP48的方式使用了DSP48內(nèi)部專用布線資源,更有利于FPGA時(shí)序收斂,在工程實(shí)現(xiàn)上具有突出的優(yōu)勢。
2)雷達(dá)系統(tǒng)靈活性提高:本文所述DBF方法,采用對(duì)陣元直接加權(quán)的方法,每個(gè)陣元對(duì)應(yīng)一個(gè)包含方位相位、俯仰相位的綜合DBF權(quán)值[4]。對(duì)于二維相控陣?yán)走_(dá),這種陣元級(jí)直接加權(quán)的DBF方法增加了方位維、俯仰維形成的波束個(gè)數(shù)靈活程度;對(duì)A/D數(shù)據(jù)寫入RAM進(jìn)行速率轉(zhuǎn)換的模塊,可兼容雷達(dá)系統(tǒng)多種采樣頻率,滿足雷達(dá)系統(tǒng)搜索、跟蹤等多功能需求。
3)DBF計(jì)算誤差降低:FPGA乘法器輸出會(huì)帶來數(shù)據(jù)位寬的成倍擴(kuò)展,因此需要對(duì)乘法結(jié)果進(jìn)行截位,截位的末位舍棄會(huì)對(duì)處理結(jié)果帶來誤差。傳統(tǒng)DBF方式一般進(jìn)行兩級(jí)截位,級(jí)聯(lián)DSP48結(jié)構(gòu)的DBF模塊,只需對(duì)累加結(jié)果進(jìn)行一級(jí)截位,因此級(jí)聯(lián)DSP48的DBF方法能夠提高計(jì)算精度。
4)具備模塊可復(fù)用性:本文所述的RAM讀寫控制模塊、圖5虛線中DBF子模塊均能夠滿足不同雷達(dá)系統(tǒng)DBF功能需求,只需根據(jù)系統(tǒng)需求修改相應(yīng)參數(shù),具備可移植性。
本文根據(jù)雷達(dá)系統(tǒng)對(duì)波束形成靈活性的需求,充分利用FPGA內(nèi)部DSP48結(jié)構(gòu)和功能,采用DSP48級(jí)聯(lián)的方式構(gòu)建復(fù)乘單元,且對(duì)多個(gè)復(fù)乘單元級(jí)聯(lián)的方式,構(gòu)建DBF總體模塊。同樣在大陣面多波束形成條件下,相對(duì)于傳統(tǒng)基于復(fù)乘、累加IP Core的DBF模塊方法[5],級(jí)聯(lián)DSP48的DBF實(shí)現(xiàn)方法節(jié)約了近20%的DSP48資源,且級(jí)聯(lián)使用DSP48專用的布線資源,更利于FPGA時(shí)序收斂。本方法兼容雷達(dá)系統(tǒng)的不同采樣頻率,工程上具有一定的復(fù)用性。