愛爾蘭貝爾實驗室的研究人員采用高性能 FPGA 開發(fā)出一款用于通用 MIMO 無線通信系統(tǒng)的頻變預(yù)編碼內(nèi)核,。
作為首選的 5G 無線網(wǎng)絡(luò)基礎(chǔ)架構(gòu),,大規(guī)模 MIMO 無線系統(tǒng)現(xiàn)已領(lǐng)跑整個行業(yè),。低時延預(yù)編碼實現(xiàn)方案是充分利用多輸入多輸出 (MIMO) 方案多傳輸架構(gòu)內(nèi)在優(yōu)勢的關(guān)鍵,。我們的團隊利用賽靈思 System Generator 和簡單可擴展的 Vivado? Design Suite 構(gòu)建了一款高速,、低時延預(yù)編碼內(nèi)核,。
憑借其固有的多用戶空分復(fù)用傳輸能力,,大規(guī)模 MIMO 系統(tǒng)可顯著提高傳統(tǒng)單天線用戶設(shè)備和升級版多天線用戶終端的信號干擾噪聲比 (SINR),。這樣不僅可獲得更大的網(wǎng)絡(luò)容量、更高的數(shù)據(jù)吞吐量,,而且還能提高頻譜利用率,。
但是,大規(guī)模 MIMO 技術(shù)自身仍存在一些挑戰(zhàn),。要使用該技術(shù),,電信工程師需要構(gòu)建多個 RF 收發(fā)器和多個基于輻射式相控陣天線。他們還需要使用數(shù)字資源來執(zhí)行所謂的預(yù)編碼功能,。
我們的解決方案是構(gòu)建低時延,、可擴展的頻變預(yù)編碼 IP;可以按照 Lego 方式將該 IP 核用于集中式和分布式 大規(guī)模 MIMO 架構(gòu),。這個 DSP 研發(fā)項目的關(guān)鍵是高性能賽靈思 7 系列 FPGA以及帶有 System Generator 和 MATLAB?/Simulink? 的賽靈思 Vivado Design Suite 2015.1 版本
通用 MIMO 系統(tǒng)中的預(yù)編碼
在蜂窩網(wǎng)絡(luò)中,,特定頻率下每個發(fā)送器與接收器之間所謂的信道響應(yīng)將在空中對普通 MIMO 發(fā)送器中輻射出來的用戶數(shù)據(jù)流進行“重塑”。換句話說,,不同數(shù)據(jù)流通往空域另一端的接收器的路徑不同,。由于頻域中的“經(jīng)歷”不同,即使是相同的數(shù)據(jù)流有時也會有不同表現(xiàn),。
這種固有的無線傳輸現(xiàn)象等同于將具有特定頻率響應(yīng)的有限脈沖響應(yīng) (FIR) 濾波器應(yīng)用于每個數(shù)據(jù)流,,這樣無線信道就會產(chǎn)生頻率“失真”,進而導致系統(tǒng)性能不佳,。如果我們將無線信道視為一個大型黑盒,,那么在系統(tǒng)級只有輸入(發(fā)送器輸出)和輸出(接收器輸入)是顯而易見的。我們可在 MIMO 發(fā)送器側(cè)添加一個具有逆信道響應(yīng)的預(yù)均衡黑盒,,以預(yù)先補償信道的黑盒效應(yīng),,然后,級聯(lián)系統(tǒng)會在接收器設(shè)備上提供合理的“校正”數(shù)據(jù)流,。
我們將這種預(yù)均衡方法稱為預(yù)編碼,,從根本上說,就是在發(fā)送器鏈上應(yīng)用一組“重塑”系數(shù),。例如,,如果我們用發(fā)送器數(shù)量)天線發(fā)送 NRX 個獨立數(shù)據(jù)流,那么我們在將 NTX 個 RF 信號輻射到空中之前需要通過 NRX x TX次臨時復(fù)數(shù)線性卷積運算及相應(yīng)的合并運算來執(zhí)行預(yù)均衡編碼,。
復(fù)數(shù)線性卷積的直接,、低時延實現(xiàn)方法是使用時域中的復(fù)數(shù) FIR 離散數(shù)字濾波器。
系統(tǒng)功能要求
在低時延預(yù)編碼 IP 的創(chuàng)建過程中, 我的團隊面臨一系列基本要求,。
1. 我們必須用不同系數(shù)組將一個數(shù)據(jù)流預(yù)編碼為多分支的并行數(shù)據(jù)流,。
2. 我們需要在每個分支上放置一個 100 + 抽頭長度的復(fù)數(shù)非對稱 FIR 函數(shù),以提供合適的預(yù)編碼性能,。
3. 需要經(jīng)常對預(yù)編碼系數(shù)進行更新,。
4. 所設(shè)計的內(nèi)核必須易于更新和擴展,,以支持不同的可擴展系統(tǒng)架構(gòu)。
5. 在給定資源約束下,,預(yù)編碼時延應(yīng)該盡可能低,。
此外,除了注意滿足特定設(shè)計的功能要求以外,,我們還要考慮硬件資源約束,。換句話說,建立節(jié)約資源的算法實現(xiàn)方案對于有限的關(guān)鍵硬件資源(例如賽靈思 FPGA 上的專用硬件乘法器 DSP48s)大有裨益,。
高速,、低時延預(yù)編碼 (HLP) 內(nèi)核設(shè)計
本質(zhì)上講,在開發(fā)具備該特質(zhì)的設(shè)計之前必須先滿足可擴展性這個關(guān)鍵特性,??蓴U展設(shè)計能確保長期的基礎(chǔ)架構(gòu)可持續(xù)演進,并在短期實現(xiàn)最佳的低成本部署策略,??蓴U展性源自模塊化。依照這個理論,,我們使用賽靈思 System Generator 在 Simulink 中創(chuàng)建了一個模塊化的通用復(fù)數(shù) FIR 濾波器評估平臺,。
圖 1 所示為頂層系統(tǒng)架構(gòu)。Simulink_HLP_Core 在 Simulink 中用離散數(shù)字濾波器模塊描述多分支復(fù)數(shù) FIR 濾波器,;FPGA_HLP_Core 在 System Generator 中用賽靈思資源模塊實現(xiàn)多分支復(fù)數(shù) FIR 濾波器,,如圖 2 所示。
圖 1–頂層預(yù)編碼內(nèi)核的 Simulink 評估
圖 2 - FPGA_HLP_Core 的高級視圖
* 建議的高速,、低時延預(yù)編碼 (HLP) 內(nèi)核架構(gòu)
表 1 - 128 抽頭復(fù)數(shù)非對稱 FIR 濾波器的復(fù)數(shù)乘法器 (CM) 使用對比
不同的 FIR 實現(xiàn)架構(gòu)會產(chǎn)生不同的 FPGA 資源使用,。表 1 對不同實現(xiàn)架構(gòu)中 128 抽頭復(fù)數(shù)非對稱 FIR 濾波器中所使用的復(fù)數(shù)乘法器 (CM) 進行了比較。我們假設(shè) IQ 數(shù)據(jù)速率是30.72 Msps(20 MHz 帶寬 LTE-Advanced 信號),。
全并行實現(xiàn)架構(gòu)非常簡單直接,,可輕松地映射至直接型 FIR 架構(gòu),但這種實現(xiàn)架構(gòu)需要使用大量 CM 資源,。全串行實現(xiàn)架構(gòu)使用的 CM 資源數(shù)量最少,,得益于其能以時分復(fù)用 (TDM) 方式與 128 個操作共享相同的 CM 單元。但其運行時鐘速率是最先進的 FPGA 都不可能達到的,。
比較現(xiàn)實的解決方案是選用部分并行實現(xiàn)架構(gòu),,該架構(gòu)將連續(xù)的長濾波器鏈分成幾段并行級。表 1 給出了兩個實例,。我們選擇使用方案 A,,因為該方案的 CM 使用量最少,而且時鐘速率合理,。事實上,,我們可以通過控制數(shù)據(jù)速率、時鐘速率和連續(xù)級數(shù)來決定最終的架構(gòu):
其中 N 和 N 代表濾波器長度和連續(xù)級的數(shù)量,。
然后,,我們創(chuàng)建三個主要模塊:
1. 系數(shù)存儲模塊:我們使用高性能雙端口 Block RAM 來存儲需要加載到 FIR 系數(shù) RAM 中的 IQ 系數(shù)。用戶可以選擇何時將系數(shù)上載到存儲設(shè)備中以及何時通過 wr 和 rd 控制信號來更新 FIR 濾波器的系數(shù),。
2. 數(shù)據(jù) TDM 管線化模塊:我們將采樣率為 30.72 MHz 的輸入 IQ 數(shù)據(jù)進行多路復(fù)用,,以及分段累積和下采樣級。為了把內(nèi)核的 I/O 數(shù)量降到最低,,以導出 128 抽頭 FIR 濾波器的相應(yīng)線性卷積結(jié)果,,并降低高速數(shù)據(jù)流的采樣速度以生成采樣率更高的 8 個流水線 (N= 8),我們的第一級就需要以匹配數(shù)據(jù)流(采樣率較高,,為 30.72×128÷8 = 491.52 MHz),。然后,我們將這些數(shù)據(jù)流送入四分支的線性卷積 (4B-LC) 模塊,。
3. 4B-LC 模塊:該模塊包含四條獨立的復(fù)數(shù) FIR 濾波器鏈,,每條都利用相同的部分并行架構(gòu)實現(xiàn)。例如,,圖 3 中給出的分支 1,。
分支 1 包含四個被寄存器隔離以獲得更好時序特性的子處理級:FIR 系數(shù) RAM (cRAM) 順序?qū)懭牒筒⑿凶x取級;復(fù)數(shù)乘法級,;復(fù)數(shù)加法級,;
創(chuàng)建順序?qū)懭氩僮饕员阋?TDM 方式從存儲設(shè)備向 FIR cRAM 加載系數(shù)(每個 cRAM 包含 16 = 128/8 個 IQ 系數(shù))。我們設(shè)計了并行讀取操作用以同時將 FIR 系數(shù)送至 CM 內(nèi)核,。
在復(fù)數(shù)乘法級,,為將 DSP48 使用量減至最少,我們選擇高效的,、完全管線化的三重乘法器架構(gòu)來執(zhí)行復(fù)數(shù)乘法運算,,代價是產(chǎn)生六倍的時延周期。
接下來,,復(fù)數(shù)加法級將 CM 的輸出聚合成單個數(shù)據(jù)流,。最后,分段累積和下采樣級在 16 個時間周期內(nèi)累積臨時子流,,本系統(tǒng)的數(shù)據(jù)采樣率,,即 30.72 MHz。
設(shè)計驗證
我們分兩步執(zhí)行 IP 驗證,。首先,,我們將 FPGA_HLP_Core 的輸出與 Simulink 中的參考雙精度多分支 FIR 內(nèi)核進行比較。我們發(fā)現(xiàn),,在 16 位分辨率版本中,我們已成功實現(xiàn)小于 0.04% 的相對幅值誤差,。較大的數(shù)據(jù)寬度能提供更好的性能,,但代價是消耗更多資源。
功能驗證完成后,,就需要驗證芯片性能,。因此,我們的第二個步驟是在 Vivado 設(shè)計套件 2015.1 中針對 Zynq?-7000 All Programmable SoC 的 FPGA 架構(gòu)(相當于一個 Kintex? xc7k325tffg900-2)對所創(chuàng)建的 IP 進行綜合與實現(xiàn),。憑借工具的綜合與默認實現(xiàn)設(shè)置中具備的完整層級,,我們創(chuàng)建了一個具有清晰注冊層級的完全管線化設(shè)計,因而在 491.52 MHz 的內(nèi)部處理時鐘速率下不難實現(xiàn)所要求的時序,。
圖 3 - 部分并行復(fù)數(shù) FIR 模塊
可擴展性演示
我們設(shè)計的 HLP IP 便于用來創(chuàng)建更大的大規(guī)模 MIMO 預(yù)編碼內(nèi)核,。表 2 列出了一些應(yīng)用方案以及重要資源的使用情況。您需要一個額外的聚合級以提交最后的預(yù)編碼結(jié)果,。
例如圖 4 所示,,通過插入四個 HLP 內(nèi)核以及一個額外管線化數(shù)據(jù)聚合級,很容易構(gòu)建一個 4x4 預(yù)編碼內(nèi)核,。
高效和可擴展
我們已經(jīng)介紹了如何利用賽靈思 System Generator 和 Vivado 設(shè)計工具快速構(gòu)建 大規(guī)模 MIMO 預(yù)編碼內(nèi)核形式的高效,、可擴展的DSP 線性卷積應(yīng)用。您既可以在部分并行架構(gòu)中使用更多順序級,,也可以合理地增大處理時鐘速率以更快速地實現(xiàn)任務(wù)操作,,從而對該內(nèi)核進行擴展,以便支持更長抽頭的 FIR 應(yīng)用,。對于第二種情況,,針對實際的實現(xiàn)架構(gòu)找到目標器件的瓶頸和關(guān)鍵路徑應(yīng)該會有所幫助。然后,,更好的方法將會是對硬件和算法進行協(xié)同優(yōu)化以調(diào)節(jié)系統(tǒng)性能,,例如針對硬件的使用開發(fā)出更小型預(yù)編碼算法。
首先,,我們著重開發(fā)具有最低時延的預(yù)編碼解決方案,。下一步,我們將探索一種替代解決方案以獲得優(yōu)化的資源使用與功耗,。如需了解更多信息,,請通過郵件聯(lián)系作者,郵件地址:[email protected],。
圖 4:基于 4B-LC 內(nèi)核的擴展的預(yù)編碼應(yīng)用實例
表 2 - 以推薦的 HLP 內(nèi)核為基礎(chǔ),,在不同應(yīng)用場景下的資源使用實例