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