于智欣
摘要:FPGA設(shè)計課程內(nèi)容復(fù)雜且應(yīng)用靈活,傳統(tǒng)的授課方法使得課程內(nèi)容變得抽象,不易被學(xué)生理解。因此,結(jié)合當下最熱門的電子偵察領(lǐng)域,利用一種虛擬時反測向新技術(shù),結(jié)合FPGA設(shè)計實現(xiàn)一種新的測向系統(tǒng)。該系統(tǒng)的設(shè)計采用Xilinx公司FPGA開發(fā)板,通過信號的傳輸、控制、處理以及存儲等技術(shù)手段,比較全面地學(xué)習和探索了FPGA設(shè)計的基礎(chǔ)功能。這樣不僅能夠提高學(xué)生的學(xué)習興趣,同時鍛煉了學(xué)生的動手能力,更好地提升了學(xué)生對于該課程知識和技術(shù)的掌握。
關(guān)鍵詞:FPGA;虛擬時反;測向系統(tǒng);教學(xué)研究與實踐
一、前言
FPGA是指現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA),其優(yōu)勢能夠解決定制電路的不足以及克服原有可編程器件門電路數(shù)有限的缺點[1]。目前主要以Xilinx和Altera兩家公司的開發(fā)板作為主流,它們各自有配套的軟件,其中分別以為Vivado和QuartusII使用最為廣泛,采用的編程語言以VHDL以及Verilog為主,同時配合C語言進行控制。通過FPGA可以進行多通道的設(shè)計,這種設(shè)計是基于FPGA設(shè)計最大的優(yōu)勢,利用有限資源快速實現(xiàn)所需功能。FPGA設(shè)計作為一門實用性強的課程,通過傳統(tǒng)的授課方式進行講解不利于學(xué)生的理解,應(yīng)該搭配前沿技術(shù)的系統(tǒng)設(shè)計,在實現(xiàn)系統(tǒng)功能的過程中逐步掌握該門課程的核心知識,快速完成本門課程的學(xué)習[1]。
時間反轉(zhuǎn)技術(shù)具有自適應(yīng)聚焦特性,可以考慮將其應(yīng)用于電磁信號測向領(lǐng)域中,這樣做能夠提高在復(fù)雜電磁環(huán)境下的測向性能。2004年G.Lerosey等人第一次成功地將時間反轉(zhuǎn)技術(shù)應(yīng)用到了電磁實驗中。將時間反轉(zhuǎn)技術(shù)引入到輻射源目標探測領(lǐng)域中,通過對其原理的分析可知該技術(shù)具有良好的抗干擾性,適用于復(fù)雜的電磁環(huán)境。同時還對時間反轉(zhuǎn)理論的具體算法進行了分析和比較,發(fā)現(xiàn)其計算簡單、易于硬件工程實現(xiàn)的優(yōu)勢[2]。
本文以提高系統(tǒng)運算速度、實現(xiàn)測向的實時性為基本要求,利用現(xiàn)有的技術(shù)提出一種基于虛擬時反被動DOA估計算法的FPGA并行實現(xiàn)方案,通過該方案的設(shè)計與仿真實現(xiàn),增強學(xué)生的主觀能動性,進一步提高該課程的教學(xué)質(zhì)量。首先給出硬件設(shè)計方案的原理,然后介紹該算法的硬件并行實現(xiàn)模塊的IP核,最后通過Xilinx公司的Virtex-7信號處理板完成實驗設(shè)計與驗證[3]。
二、測向系統(tǒng)的FPGA設(shè)計方案
通過天線陣接收一段時長的待測信號,然后利用一個測向系統(tǒng)對信號進行處理,該系統(tǒng)由A/D采集模塊、雙倍速率(Double Data Rate3,DDR3)數(shù)據(jù)傳遞模塊、虛擬時反被動測向并行算法的FPGA實現(xiàn)模塊以及上位機中能量最大值搜索模塊組成。首先使用AD采集卡采集一段待測的盲信號,通過DMA方式存入DDR3中待用,將與之對應(yīng)的時延補償點以及下變頻數(shù)據(jù)由上位機計算完成后,通過PCIE總線協(xié)議(Peripheral Component Interconnect Express,PCIE)利用XDMA核將其存入DDR3對應(yīng)地址中,以上數(shù)據(jù)都需要存在DDR3的固定地址。通過尋址方式將DDR3的數(shù)據(jù)利用DMA寫入虛擬時反被動測向的FPGA實現(xiàn)模塊,進行時延補償,使信號波形對齊,把運算結(jié)果再通過DMA方式存入DDR3固定地址下,最后通過PCIE上傳至上位機,進行能量最大值搜索,找到的最大能量值所對應(yīng)的位置即為信源所在方向。數(shù)據(jù)的采集與傳輸采用文獻中的設(shè)計方案,本章重點介紹該系統(tǒng)中虛擬時反被動測向并行算法的FPGA實現(xiàn)模塊的設(shè)計[4]。
(一)雙通道數(shù)據(jù)傳輸原理
為了實現(xiàn)數(shù)據(jù)高速移動,且保證數(shù)據(jù)流不被阻塞,本文提出了一種基于FPGA的雙通道設(shè)計方案。兩個通道的數(shù)據(jù)移動分別由直接存儲器訪問(Direct Memory Access,DMA)控制器實現(xiàn)。在設(shè)計中,需要知道數(shù)據(jù)的基地地址和DDR3的數(shù)據(jù)量。這種設(shè)計不受天線陣陣型的限制,本章以16陣元的陣列進行設(shè)計。兩個通道待測信號分別存儲在DDR3的指定區(qū)域,數(shù)據(jù)的基址為0x80000000段和0x40000000段。每個地址單元存儲128bit數(shù)據(jù),128bit數(shù)據(jù)代表8個16bit信號。為了更直觀地展示上述過程,給出了數(shù)據(jù)傳輸?shù)慕Y(jié)構(gòu)框圖,如圖1所示。圖中N1-N8和N9-N16分別表示天線陣16個陣元接收到的數(shù)據(jù)。設(shè)天線陣有16個陣元,可將該陣列接收的信號分為兩組,即2個8元天線陣進行計算,整個設(shè)計分為兩個相同的通道。這兩個通道同時處理8個陣元接收的信號,數(shù)據(jù)移動方式和信號處理方式相同,但數(shù)據(jù)存儲的DDR3地址區(qū)域不同。由于兩條通道的設(shè)計原理是相同的[5],為簡便起見,下面將以一個通道(即8陣元的天線陣)為例進行描述。
(二)搜索域并行處理原理
根據(jù)前文中的虛擬點個數(shù)的計算公式以及FPGA開發(fā)板的資源,設(shè)搜索步長為Δ? ,N表示一次并行處理虛擬點的個數(shù),則完成一次DOA估計所需要的并行處理次數(shù)為KDOA。此處給出兩種陣列類型的并行處理次數(shù)計算公式。
若天線陣為均勻圓形天線陣列,當陣列進行二維DOA估計時,KDOA的計算公式為:
同理,若天線陣為均勻十字叉陣列,當陣列進行二維DOA估計時,KDOA的計算公式為:
對于上述KDOA的選取,需要根據(jù)FPGA開發(fā)板的資源而定,本設(shè)計采用KDOA=10。對于圓形陣列,當搜索步長為1°時,一共要處理450個虛擬點,因此需要將此過程循環(huán)45次。對于十字叉天線陣列,當搜索步長為1°時,一共要處理360個虛擬點,因此需要將此過程循環(huán)36次。
(三)硬件設(shè)計原理
測向系統(tǒng)的整體框圖如圖2所示,本文將待測的信號存入計算機中,并利用計算機計算時延補償點以及下變頻數(shù)據(jù),以上數(shù)據(jù)都通過PCIE方式寫入DDR3的固定地址中。通過DMA方式將DDR3的數(shù)據(jù)傳輸至FPGA中,并利用尋址方式分別寫入Memory_delay和Memory_data1~ Memory_dataN模塊中。Memory_delay中保存時延補償點,Memory_data1~ Memory_dataN分別保存天線陣1~N陣元的數(shù)據(jù)。下一步將DDR3中下變頻的數(shù)據(jù)利用DMA傳輸方式傳出,并與已保存的Memory_data1~ Memory_dataN中的數(shù)據(jù)做乘法運算,將結(jié)果經(jīng)過低通濾波器(LPF)進行濾波,得到下變頻后的信號。然后將該信號輸入到循環(huán)并行處理模塊,該模塊中SP表示全部掃描點數(shù),Q表示第幾次循環(huán),其中Q=1,2,…,SP/M。M表示循環(huán)一次能夠處理的掃描點,M的選擇主要與信號處理板的資源有關(guān),并且最好選擇能夠被SP整除的值。令每個掃描點處理模塊都有N路數(shù)據(jù),利用控制數(shù)據(jù)存儲模塊的讀使能將掃描點處的多路信號對齊并輸出,讀使能信號是由Memory_delay中的時延補償點通過Delay Control module將時延點轉(zhuǎn)換為讀使能信號Rd_enN_M。將第M個模塊輸出的N路數(shù)據(jù)SP_dataN_M通過加法器組求和并求其能量值。由于資源有限,因此在硬件設(shè)計中掃描點能量值運算使用求信號和的絕對值來替代求信號和的平方。將最終求得的掃描點能量值E1~EM都保存在FIFO_energy中,當所有掃描點的能量值全部計算完成后,控制FIFO_energy的讀使能,將數(shù)據(jù)通過DMA的方式傳輸?shù)紻DR3中,最后通過PCIE的方式上傳至計算機中進行最大能量值搜索。
三、實驗分析
一次并行處理的測試點越多,測向?qū)崟r性越好,但是還要考慮硬件資源的問題,在設(shè)計與調(diào)試過程中,根據(jù)經(jīng)驗,不應(yīng)占用全部資源,否則會使測向結(jié)果不穩(wěn)定。
本設(shè)計中的算法由Verilog編程語言設(shè)計并將其封裝成Custom IP核,如圖3(a)所示,將Custom IP核與DMA控制器、MicroBlaze核和DDR3控制器相連。然后我們利用Vivado軟件的Synthesis and Development以及Generate Bitstream完成系統(tǒng)設(shè)計。綜合將高級抽象電路描述轉(zhuǎn)換為低級描述,實現(xiàn)用于系統(tǒng)布局和布線。在上述兩個進程中未報告任何錯誤時,通過Generate Bitstream函數(shù)生成Bitstream文件。最后將生成的比特流文件通過平臺電纜USB下載到FPGA板上,利用MicroBlaze核,通過SDK平臺植入C代碼指令控制整個測向系統(tǒng),測試結(jié)果在上位機顯示。假設(shè)天線陣列是一個16陣元均勻分布的圓陣,系統(tǒng)時鐘為200MHz,信號類型為BPSK調(diào)制信號。本設(shè)計并行處理一次的測試點為10個,則經(jīng)過布局布線生成比特流后,能夠得到FPGA信號處理板資源利用率如圖3(b)所示,該占用比例不影響測向結(jié)果[6]。
以對稱的去中心陣元十字叉天線陣列為例,根據(jù)該設(shè)計給出16陣元的去中心十字叉天線陣列,需要改變一次測向循環(huán)的次數(shù),且預(yù)存的數(shù)據(jù)也按照十字叉天線陣列設(shè)計。利用vivado軟件自帶的仿真功能將測試結(jié)果進行了記錄,并通過軟件給出了誤差曲線。假設(shè)測試點選取的是 ,則測向結(jié)果如圖4所示。
四、結(jié)語
本文設(shè)計一種并行結(jié)構(gòu)實現(xiàn)算法的硬件實現(xiàn)方案,通過Vivado軟件利用Verilog編程語言將該設(shè)計封裝成一個IP核,通過SDK平臺與C語言指令來控制數(shù)據(jù)搬移等功能。最終采用Xilinx公司的FPGA信號處理板完成該設(shè)計的驗證,實驗結(jié)果表明,該算法在保證較高的測向精度的同時能夠完成系統(tǒng)的實時測向。通過實踐周的方式在兩個班級中進行授課,通過課堂表現(xiàn)以及作業(yè)和考核的成績顯示,本次改革從根本上解決了學(xué)生對FPGA技術(shù)入門難的問題,也提高了教師的教學(xué)和科研能力。
參考文獻
[1]楊一峰.硬件輔助驗證產(chǎn)品解讀之FPGA開發(fā)板vs原型驗證系統(tǒng)[J].中國集成電路,2022,31(7):27-30+47.
[2]劉博,范玉進,張建軍.基于FPGA的多通道可編程DDC算法研究與實現(xiàn)[J].消費電子,2021(8):21-22.
[3]趙英瀟,蘇陽.基于FPGA的多通道雷達數(shù)據(jù)回放系統(tǒng)設(shè)計[J].電子科技,2023,36(2):1-6+21.
[4]翁天恒,袁永春,周榕,等.基于FPGA的DDR4多通道控制器設(shè)計[J].電子測量技術(shù),2022,45(12):148-155.
[5]Jing LY,Zhang NM,He CB,et al.OTFS underwater acoustic communications based on passive time reversal[J].Applied Acoustics,2022,185:108386.
[6]劉海涵,呂衛(wèi)祥.基于時間反轉(zhuǎn)變換的動目標相參積累算法[J].現(xiàn)代防御技術(shù),2022,50(2):67-75.
基金項目:1.貴州省教育廳高等學(xué)??茖W(xué)研究項目“基于虛擬時反法的5G精確定位關(guān)鍵技術(shù)研究”(黔教技〔2022〕263號);2.貴州省教育廳自然科學(xué)研究項目(黔教技〔2022〕029號、黔教合KY字[2021]022)