王 燕
(上海諾基亞貝爾股份有限公司,江蘇 南京 210037)
隨著移動通信的發展,特別是5G 的大規模部署,基站技術在不斷演進。網絡覆蓋理念的核心是將基帶處理與射頻部分分離,分為基帶處理單元(Base Band Unit,BBU)和射頻拉遠單元(Remote Radio Unit,RRU)兩大設備,兩者之間通過光纖連接。
數字中頻[1]是RRU 的核心部分,作為基帶和射頻之間的橋梁。它的需求體現在以下幾個方面。
(1)基帶輸出的是剛剛組成幀的信號,單個載波的采樣率是一定的,而載波有好幾種,每種采樣率都不同。因此,要兼容多種載波,需要轉換到統一的采樣率。E-UTRA 系統可配置的6 種信道帶寬,如表1 所示。

表1 E-UTRA 系統可配置的6 種信道帶寬
(2)受限于市場上可供選擇的器件,中頻采樣率需要有合適的AD/DA 器件支持。
(3)運營商擁有的頻段寬度并不限于一個載波的寬度,通常設計要求支持載波的位置覆蓋整個頻段,且需要支持同時有多個載波的設計。
(4)信號傳輸過程中,為了提高傳輸質量,許多工作放在數字部分可以取得更好的性能。數字部分可以設計出性能更好的濾波器、更準確的功率和相位控制、更準確的設計時延等。此外,現代通信為了提高功放的使用效率,使其在非線性區間也能正常工作,增加了CFR、DPD 等功能,而這些都需要在數字中頻完成。
典型的數字中頻設計框圖如圖1 所示。

圖1 數字中頻設計
數字中頻分為發射和接收兩大塊:從基帶向射頻方向為發射方向,稱為下行;反之為接收方向,稱為上行。
發射部分的數據流源于基帶的成幀信號,CPRI[2]/OBSAI 模塊從中提取I/Q 數據流發給成型濾波器。成型濾波器[3]的特點是具有較陡的過渡帶和較低的阻帶,從而抑制帶外泄露。信號經過處理后,頻譜形狀能滿足預期。DUC 即數字上變頻,完成的工作主要是內插和濾波。內插在提高采樣率的同時會產生頻譜鏡像,所以需要濾波處理。NCO 合路進行頻譜搬移,將載波按需求放置在不同的位置。CFR 即波峰因子衰減,主要是改善OFDM 峰均比過高的缺陷,使得功放在合理動態范圍內工作。DPD即數字預失真,使用反饋機制采樣輸出信號,并用以校正預失真算法,目的在于補償功放的非線性失真。
接收部分可以看作發射部分的逆過程。值得注意的是AGC 模塊,即自動增益控制,可以幫助AD器件實現更精確的量化。NCO 分路功能體現在將所需載波搬移至零頻,方便DDC 對載波分選。DDC先濾除帶外干擾,然后進行抽取,從而降低信號的采樣率,與基帶側保持一致。后經過成型濾波器,最終I/Q 數據通過CPRI/OBSAI 接口發往基帶。
一直以來,濾波器的設計和仿真都是基于matlab實現的,但是對于數字中頻芯片,整體層面的RTL代碼仿真也至關重要。實際工作過程中,摸索、積累出了一套切實可行的仿真方案。
仿真平臺[4]的搭建如圖2 所示。

圖2 數字中頻仿真平臺
依托CPRI 驗證IP 資源,在基帶側通過CPRI接口進行激勵,保證雙方能夠正常同步。I/Q 數據的激勵產生既支持sequence,也支持直接load 外部現成的數據文件。整合后的超幀需要經過加擾、8B/10B 的轉換,而后經過并串轉換驅動DUT,具體見圖3。接收方向見圖4,主要起到monitor 的作用,可以看作發送方向的逆過程,最終可以得到I/Q數據的dump 文件。

圖3 CPRI_VIP 發送方向的處理流程

圖4 CPRI_VIP 接收方向的處理流程
射頻側考慮針對DUT 內部的JESD 并口,采集JESD_Rx 接口上的數據,提取出正確的I/Q 數據格式文件;用function 產生或者直接load 外部數據作為激勵,轉換格式對JESD_Tx 接口進行驅動。
單音信號也就是單一頻率的正弦信號。將單音信號作為激勵實施對整個數字中頻的仿真,是一種簡單且切實有效的方式。
如2.1 章節所述,通過monitor 可以得到輸出I/Q數據的dump 文件,但是該文件僅僅是16 bit 的I 數據和Q 數據的羅列,利用肉眼無法得到正確與否的結論,所以還需要借助python 腳本分析數據文件。
對模擬信號來說,可以通過時域分析和頻域分析兩個面來觀察。兩者的轉換是由快速傅立葉變換(Fast Fourier Transform,FFT)和逆向快速傅立葉變換(Fast Fourier Transform,IFFT)來完成。時域的表示形象且直觀,而頻域分析更加簡練,剖析問題更加深刻和方便,兩者相輔相成。
Python 腳本的思想是從dump 文件末尾開始,向前取FFT 所需size 的4 倍數據進行分析,利用python 強大的畫圖功能,可以直接畫出時域的圖形;同時,python 也擁有數值計算的擴展庫,可以針對數據進行FFT,從而畫出頻域圖形。借助圖形,人們可以一目了然地進行觀察。
此外,根據給出的SCS 參數、頻率、幅度,python 腳本可以計算特定數值點的預期功率,比對之后給出PASS/FAIL 的結論。單音時域波形和頻譜,分別如圖5 和圖6 所示。

圖5 單音時域波形
寬帶信號與單音信號相比,可以更準確更全面地反映整個datapath 的功能和性能。實際的困難是仿真代碼中要想通過函數直接產生寬帶信號比較復雜。
折中的辦法是借助matlab[5]生成寬帶信號。JESD輸入信號以5G NR 100 MHz 為例,信號帶寬100 MHz,數據率245.76 MHz,平均功率為-18.22 dBFS,在matlab 中時域波形如圖7 所示,頻譜如圖8 所示。

圖6 單音頻譜

圖7 matlab 100 MHz 信號時域波形

圖8 matlab 100 MHz 信號頻譜
matlab 產生的信號數據文件可以通過load 的方式加到JESD 輸入側進行激勵。基帶側采集數據通過python 腳本畫出的時域波形和頻譜圖(如圖9 和圖10 所示)滿足預期。此外,在python 腳本中還可以進一步計算EVM 等指標,更全面地評估整體性能。

圖9 基帶側信號時域波形

圖10 基帶側信號頻譜
Delay的測量是數字中頻測試不可缺少的一環,濾波器的階數改變等都會引起delay 的變化。如何精確得到內部delay,是仿真研究的重點。
以下行的delay 測量來講,可以考慮給CPRI接口輸入的I/Q 數據進行特殊激勵??梢岳斫鉃閱蚊}沖,即大部分數據為0,特定一個為0xffff。在經過datapath 處理后,送給JESD 并口的數據呈現為一段較寬的對稱非零波形。這里在questasim中,將信號的顯示改為十進制,format 選擇Analog(automatic),可以呈現為時域波形。以CPRI 接口的脈沖作為起點,JESD 非零波形的中心作為終點,這兩者之間的差值即下行delay。
如圖11 所示,仿真得到的delay 值可以與實際上板測得的值相互印證,固化后的delay 值在底層軟件應用層面起著極為重要的作用。

圖11 delay 測量結果
仿真貫穿整個數字中頻芯片的開發過程。從一定程度上講,仿真的質量決定了芯片的研發質量。同時,仿真并不局限于對仿真工具的使用、對設計和協議的高度理解,還需要熟練運用各種腳本,如python、perl、tcl、makefile 以及matlab 等工具的輔助,是對綜合能力要求極高的一項工作。只有在工作過程中不斷創新,不斷積累,才能找到更貼合設計的仿真策略。文中所述的仿真研究具有較大的通用價值,對其他數字中頻項目的仿真同樣有著重要的指導作用。