基于PCIe+X86系統(tǒng)的毫米波信號實時處理研究及FPGA實現(xiàn)*
*基金項目:蚌埠市科技計劃項目,高性能5G增強移動寬帶通信矢量信號發(fā)生器
本文引用地址:http://butianyuan.cn/article/202305/446926.htm0 引言
隨著移動通信的迅猛發(fā)展及5G NR 技術(shù)的成熟,低頻頻譜資源的開發(fā)已經(jīng)非常成熟,剩余的低頻頻譜資源已經(jīng)不能滿足5G 時代10 Gbit/s 的峰值速率要求,因此未來5G 系統(tǒng)需要在毫米波頻段上尋找可用的頻譜資源。隨著全球移動通信技術(shù)向著網(wǎng)絡(luò)化和寬帶化趨勢發(fā)展,5G 商用的基站和手機也已近開始部署與批量生產(chǎn)?,F(xiàn)在儀表除了能夠分析6 GHz 以下頻率的信號以外,還需要分析微波、毫米波等波形。毫米波傳輸?shù)募夹g(shù)難點主要在于5G 極高速的傳輸速率導(dǎo)致信號寬帶和基帶信號處理速度都將大大增加,對極高速數(shù)據(jù)流的實時處理和解析使得測試變得更加困難,作為測試技術(shù)的先行者,測試儀表5G功能毫米波測試技術(shù)開發(fā)也已提上日程[1]。
目前的高速數(shù)據(jù)傳輸系統(tǒng)中數(shù)據(jù)之所以可以高速、穩(wěn)定的進行傳輸,總線技術(shù)在其中起到了很大的作用。早期的總線是以PCI 總線為代表的并行總線,并行總線因其并行結(jié)構(gòu)的缺陷,導(dǎo)致傳輸速率無法進一步提高。PCIe 總線作為其中代表,在帶寬、性能、時延、功耗、可靠性等方面有著卓越的表現(xiàn),為高速數(shù)據(jù)傳輸系統(tǒng)提供了堅實可靠的技術(shù)支持。
賽靈思公司為其FPGA 提供了PCIe IP 核,提供了多種用戶接口,可以大大降低設(shè)計成本,縮短整個項目的研發(fā)周期。隨著人們近年來對5G 移動通信和人工智能等領(lǐng)域的深入研究,越來越多的科研人員基于FPGA高性能運算平臺進行課題研究,但是運算過程中出現(xiàn)的海量數(shù)據(jù)傳輸問題成為需要克服的問題,所以對基于FPGA 的PCIe 高速數(shù)據(jù)傳輸系統(tǒng)進行研究有著重要的研究價值。
基帶接收處理模塊是滿足多通道接收、不同系統(tǒng)帶寬、不同子載波間隔、多用戶基帶接收的指標(biāo)要求,完成參數(shù)靈活可配單用戶、多用戶基帶信號接收功能,滿足5G 終端的低延時、高效率、高質(zhì)量的處理能力。FPGA 是現(xiàn)階段實現(xiàn)采用的主流方式,具有較強的處理數(shù)字能力,設(shè)計采用Xilinx 公司的FPGA 芯片作為主要的實現(xiàn)平臺。為了實現(xiàn)基帶數(shù)據(jù)成功采集后的實時分析,采用PCIe 將FPGA 數(shù)據(jù)傳輸給上位機進行處理,突破高速信號不易實時分析的難題。
1 系統(tǒng)架構(gòu)
為了滿足5G 信號采集傳輸控制系統(tǒng)中對前端射頻芯片的控制以及5G 數(shù)據(jù)到上位機的高速傳輸?shù)男枨?。本設(shè)計實現(xiàn)了一套基于FPGA 的高速采集系統(tǒng)。該系統(tǒng)可允許用戶通過PCIe 總線訪問FPGA 中的用戶配置寄存器,同時該系統(tǒng)可對前端射頻產(chǎn)生的不高于4 GB/s(若使用多通道,則全部通道的累加帶寬不高于4 GB/s)的連續(xù)或非連續(xù)上行數(shù)據(jù)進行實時采集,同時可以將上位機中的下行數(shù)據(jù)以不低于4 GB/s 的速率寫入FPGA 側(cè)的DDR4,并通過控制相應(yīng)的發(fā)送寄存器將DDR4 中的數(shù)據(jù)以循環(huán)或單次的形式發(fā)送給射頻端。
系統(tǒng)設(shè)計主要分為兩部分:用戶側(cè)邏輯和PCIe_DMA 傳輸側(cè)邏輯。
1.1 用戶側(cè)邏輯
1)模擬數(shù)據(jù)產(chǎn)生模塊。用戶可通過配置寄存器來產(chǎn)生4 種帶寬模式的模擬數(shù)據(jù)。
2)用戶寄存器配置模塊。用戶可通過cbus 接口讀寫用戶寄存器。通過用戶寄存器配置各類參數(shù)。
3)上行組幀模塊。根據(jù)用戶配置的四種模式,對模擬數(shù)據(jù)產(chǎn)生模塊生成的數(shù)據(jù)添加相對應(yīng)的32 字節(jié)幀頭和32 字節(jié)幀尾。
4)下行解幀模塊。該部分由用戶自己實現(xiàn),對DMA收發(fā)控制器發(fā)出的下行數(shù)據(jù)進行解幀。
1.2 PCIe_DMA傳輸側(cè)邏輯
1)AXI 轉(zhuǎn)CBUS 模塊。該模塊實現(xiàn)用戶通過PCIe總線的AXI 接口訪問用戶端的CBUS 接口。
2)DMA 收發(fā)控制模塊。該模塊提供1 路AXIS 接收接口,供用戶接入上行數(shù)據(jù);提供1 路AXI 接口供用戶讀寫寄存器;提供1 路AXI 接口,供用戶將下行數(shù)據(jù)寫入DDR4。提供1 路傳統(tǒng)中斷。
3)上行數(shù)據(jù)接收緩沖模塊。該模塊實現(xiàn)1 個數(shù)據(jù)虛通道,使上行數(shù)據(jù)通過DDR4 緩存后再發(fā)送給DMA收發(fā)控制模塊。
4)下行數(shù)據(jù)發(fā)送控制器模塊。該模塊實現(xiàn)用戶通過配置寄存器完成DDR4 中任意地址任意長度的下行數(shù)據(jù)循環(huán)發(fā)送和單次發(fā)送。
5)AXI PCIE 橋模塊。該模塊使用XILINX 官方IP核實現(xiàn),用戶可通過AXI 接口實現(xiàn)對上位機的內(nèi)存讀寫訪問。
6)MIG DDR4 模塊。該模塊實現(xiàn)上行數(shù)據(jù)和下行數(shù)據(jù)的DDR4 緩存。
2 FPGA詳細設(shè)計方案
PCIe 數(shù)據(jù)采集DMA 控制器模塊(PCIE_DMA) 是該采集系統(tǒng)的核心模塊,圖2 為該模塊的邏輯設(shè)計框圖。上行數(shù)據(jù)流向描述如下:上位機用戶通過AXI_PCIE橋的PCIE_M_AXI 接口讀寫用戶寄存器,控制上行模擬數(shù)據(jù)的產(chǎn)生;上行模擬數(shù)據(jù)通過RX_AXIS 接口寫入上行數(shù)據(jù)接收緩沖,經(jīng)過FPGA 板載DDR4 做緩沖后通過RX_AXIS 接口寫入DMA 收發(fā)控制器;DMA收發(fā)控制器模塊將收到的數(shù)據(jù)通過PCIE_S_AXI 接口寫入上位機內(nèi)存。下行數(shù)據(jù)流向描述如下:上位機用戶通過AXI_PCIE 橋的PCIE_M_AXI 接口讀寫DMA收發(fā)控制器中的發(fā)送配置寄存器;DMA 收發(fā)控制器通過PCIE_S_AXI 接口從上位機獲取下行數(shù)據(jù)并通過TX_AXI接口寫入FPGA 板載DDR4;上位機用戶通過AXI_PCIE 橋的PCIE_M_AXI 接口讀寫用戶側(cè)的發(fā)送地址、發(fā)送長度、發(fā)送周期等寄存器;下行數(shù)據(jù)發(fā)送控制器根據(jù)用戶側(cè)的發(fā)送地址、發(fā)送長度、發(fā)送周期等寄存器從板載DDR4 中讀取數(shù)據(jù)并通過TX_AXIS 接口發(fā)送到次級模塊。
3 數(shù)據(jù)傳輸設(shè)計
3.1 上行數(shù)據(jù)緩沖模塊
3.1.1 輸入輸出接口
圖3
該模塊為上行數(shù)據(jù)緩沖模塊。該模塊利用vfifo 控制器實現(xiàn),vfifo 控制器本質(zhì)是兩個DMA。第1 個DMA 將S_AXIS 收到的上行數(shù)據(jù)轉(zhuǎn)換成M_AXI 接口寫入DDR4做緩存,第2 個DMA 通過M_AXI 接口將數(shù)據(jù)從DDR4中讀出來并轉(zhuǎn)換成M_AXIS 接口送入次級處理模塊。該模塊主要為了實現(xiàn)瞬時帶寬較高的情況下,上行數(shù)據(jù)的緩存。
3.2 下行數(shù)據(jù)發(fā)送控制器
3.2.1 輸入輸出接口
圖4
該模塊是下行數(shù)據(jù)發(fā)送控制器模塊,此模塊可幫助用戶通過tx_addr、tx_len、tx_cycle、tx_start、tx_stop來實現(xiàn)從DDR4 中讀取任意長度的數(shù)據(jù)并以單次或者多次或者循環(huán)發(fā)送的方式發(fā)送到次級模塊。具體接口定義如下。
tx_addr :發(fā)送地址。
tx_len:發(fā)送長度。
tx_cycle:循環(huán)發(fā)送次數(shù),0 為循環(huán)發(fā)送,1-n 為固定次數(shù)發(fā)送。
tx_start:發(fā)送開始。
tx_stop:循環(huán)發(fā)送停止。
m_axi_mm2s:通過AXI 接口從DDR4 中讀取數(shù)據(jù)。
m_axis_mm2s:通過AXIS 接口將下行數(shù)據(jù)發(fā)送給用戶。
3.3 AXI轉(zhuǎn)CBUS
圖5
該模塊為AXI 轉(zhuǎn)CBUS 模塊。該模塊實現(xiàn)將來自PCIE IP 核的M_AXI 接口轉(zhuǎn)換成用戶讀寫寄存器CBUS接口。接口定義及時序如下。
cbus_addr: 寄存器地址。
cbus_wr: 寄存器寫使能。
cbus_rd: 寄存器讀使能。
cbus_din: 寄存器寫數(shù)據(jù)。
cbus_dout: 寄存器讀返回數(shù)據(jù)。
圖6 讀寫時序邏輯設(shè)計
3.4 DMA收發(fā)控制器
圖7
該模塊為DMA 收發(fā)控制器模塊。該模塊實現(xiàn)上下行數(shù)據(jù)的DMA 傳輸。用戶上行數(shù)據(jù)通過adc_axis 接口寫入,通過PCIE_M_AXI 接口寫入AXI PCIE 橋。用戶下行的數(shù)據(jù)通過PCIE_M_AXI 接口從AXI PCIE 橋讀返回后,通過DDR_M_AXI 接口寫入FPGA 板載DDR4。PCIE_S_AXI 接口用于上位機通過AXI PCIE 橋來訪問DMA 收發(fā)控制器中的各個配置寄存器。cbus_axi 接口用于上位機通過AXI PCIE 橋來訪問用戶側(cè)的自定義寄存器。axi_aclk為AXI PCIE 橋產(chǎn)生的250 MHz 時鐘。Intx_msi_request為DMA 收發(fā)中斷。RcvEn 為上位機發(fā)出接收使能信號。Rxready 為DMA 接收控制器準(zhǔn)備好信號。
3.5 AXI PCIE橋模塊
圖8
該模塊為AXI PCIE 橋模塊。此模塊為XILINX 提供的IP 核,具體設(shè)置以及接口說明可參考官方手冊pg195 DMA/Bridge Subsystem for PCI Express v4.1。本設(shè)計中M_AXI_B 接口用于上位機讀寫DMA 收發(fā)控制器中的配置寄存器或者用戶側(cè)自定義的寄存器。S_AXI_B 接口用于DMA 收發(fā)控制器訪問上位機內(nèi)存地址空間。S_AXI_LITE 接口用于動態(tài)配置AXI PCIE橋模塊,本設(shè)計不實際使用。Usr_irq_req 為DMA 收發(fā)控制器產(chǎn)生的中斷請求。PCIE_MGT 為8x Gen3 的PCIe 收發(fā)串行鏈路。s_axi_aclk 和s_axi_aresetn 為PCIe 輸出時鐘(250 M)和復(fù)位信號( 低有效)。其余輸入輸出接口本設(shè)計不實際使用。
3.6 MIG模塊
圖9
該模塊為MIG 模塊,此模塊為XILINX 提供的IP 核,具體設(shè)置以及接口說明可參考官方手冊pg150 LogiCOREIP UltraScale Architecture-Based FPGAs Memory Interface Solutions v4.2。本設(shè)計中采用64 位DDR 數(shù)據(jù)位寬,時鐘1 200M。AXI 數(shù)據(jù)位寬512 位,輸入?yún)⒖紩r鐘300M。
4 仿真與測試
采用Vivado2020.2 軟件進行本次開發(fā)設(shè)計工作,開發(fā)的FPGA 型號為XCZU27DR-ff vg1517-2-i,本次設(shè)計通過基帶板以及整個采集平臺,驗證本次試驗的可行性。
圖10
測試結(jié)果運行測試程序,啟動上行測試,上行測試結(jié)果如下圖所示,上行速率測試6 276 Mbyte/s,下行測試結(jié)果如下圖所示,下行速率測試6 620 Mbyte/s, 滿足數(shù)據(jù)實時傳輸要求。
邏輯仿真(部分)
圖11
5 結(jié)束語
本研究完成了毫米波基帶數(shù)據(jù)的實時傳輸,本設(shè)計主要研究開發(fā)了,經(jīng)過仿真和硬件驗證了傳輸?shù)恼_性,確認了本研究的可行性。
參考文獻:
[1] 袁行猛,徐蘭天,李奧.5G毫米波基帶數(shù)據(jù)傳輸?shù)难芯颗c實現(xiàn)[J].電子產(chǎn)品世界.2021(4):68-72.
[2] 何世文,黃永明, 王海明,等.毫米波無線通信發(fā)展趨勢及技術(shù)挑戰(zhàn)[J].電信科學(xué).2017(6):11-19.
[3] 黃宇紅,劉盛綱,楊光,等.5G高頻系統(tǒng)關(guān)鍵技術(shù)及設(shè)計[M].北京:人民郵電出版社.2018.
[4] 3GPP TS 38.215:NR;Physical layer measurements[S].
[5] 3GPP TS 38.214:NR;Physical layer procedures for data[S].
(本文來源于《電子產(chǎn)品世界》雜志2023年5月期)
評論