愛爾蘭貝爾實驗室的研究人員用高性能 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)生頻率“失真”,進而導(dǎo)致系統(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ù)。例如,如果我們用NTX (發(fā)送器數(shù)量)天線發(fā)送 NRX 個獨立數(shù)據(jù)流,那么我們在將 NTX 個 RF 信號輻射到空中之前需要通過N 次臨時復(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ù)編碼性能。以提供合適的預(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)最佳的低成本部署策略。可擴展性源自模塊化。依照這個理論,我們使用賽靈思 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 所示。
?
?
不同的 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.72Msps(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ù)用,以生成采樣率更高的 8 個流水線 (NSS = 8)(采樣率較高,為 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ù)加法級;以及分段累積和下采樣級。
為了把內(nèi)核的 I/O 數(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)累積臨時子流,以導(dǎo)出 128 抽頭 FIR 濾波器的相應(yīng)線性卷積結(jié)果,并降低高速數(shù)據(jù)流的采樣速度以匹配本系統(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)(相當(dāng)于一個 Kintex? xc7k325tffg900-2)對所創(chuàng)建的 IP 進行綜合與實現(xiàn)。憑借工具的綜合與默認實現(xiàn)設(shè)置中具備的完整層級,我們創(chuàng)建了一個具有清晰注冊層級的完全管線化設(shè)計,因而在 491.52 MHz 的內(nèi)部處理時鐘速率下不難實現(xiàn)所要求的時序。
?
可擴展性演示
我們設(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)找到目標(biāo)器件的瓶頸和關(guān)鍵路徑應(yīng)該會有所幫助。然后,更好的方法將會是對硬件和算法進行協(xié)同優(yōu)化以調(diào)節(jié)系統(tǒng)性能,例如針對硬件的使用開發(fā)出更小型預(yù)編碼算法。
評論
查看更多