在新基建 | MATLAB 助力 5G 小基站研發(上篇)中,我們介紹了 MATLAB 在 3GPP 5G 標準學習和校驗、無線信號發射和 EVM 測量、波束成形設計等方面助力 5G 小基站研發。在下篇中,我們將繼續探討 MATLAB 其他的硬核功能:
用 MATLAB 快速實現軟件接收機
自動代碼生成實現快速原型開發
軟件質量與安全檢查
5G 小基站廣闊的發展前景成功地吸引了芯片廠商的關注,紛紛推出各種小基站硬件平臺,例如 Intel FlexRAN 平臺,NXP Layerscape 集成小基站,高通 vRAN 平臺芯片組,Marvell OCTEON 系列處理器,Xilinx Zynq UltraScale+ RFSoC 等。這些硬件平臺多種多樣,跨越了 ASIC、FPGA、ARM、X86 等各種技術。如何將算法部署到不同的芯片硬件平臺,以實現多樣化的、有競爭力的產品?你可以使用 MATLAB 基于模型設計的工作流程,在高層級模型上進行設計變更、優化、測試、驗證,然后自動生成跨平臺的 C/C++ 或 HDL 代碼和測試平臺,從而加速 5G 算法部署到多樣化硬件的過程。利用基于模型的設計,能夠在模型層面試驗不同的架構和算法,反復調整參數,預測硬件性能,并快速在 SDR、FPGA 或 SoC 硬件上自動建立原型。
(一) 用 MATLAB 快速實現軟件收發信機1.1 黃金參考模型5G 工具箱提供了很多黃金參考模型,幫助你快速實現5G軟件收發信機模型。案例和函數的代碼是白盒的,很容易在此基礎上進行修改、調試、發現和解決問題、改進性能。例子 NR PUSCH Throughput 展示了如何測量 5G 物理上行共享信道(PUSCH)吞吐量。該示例可選擇配置采用 3GPP 定義的集群延遲線(CDL)或抽頭延遲線(TDL)信道,也可以選擇配置執行理想的或實際的同步和信道估計。為實現理想的同步和信道估計,可從信道模型中重構信道脈沖響應,用于同步接收和信道估計。選擇實際同步和信道估計時,則利用 DM-RS 信號同步和解調。為了減少總仿真時間,可以使用 Parallel Computing Toolbox 并行掃描不同的 SNR 條件下的吞吐量。
例子 NR Cell Search and MIB and SIB1 Recovery (https://ww2.mathworks.cn/help/5g/ug/nr-cell-search-and-mib-and-sib1-recovery.html) 演示了如何使用 5G Toolbox 提供的函數來同步、解調和解碼真實的 gNodeB 信號。該程序可用于模擬用戶終端下行接收,對主信息塊(MIB)和第一系統信息塊(SIB1)進行解碼。算法實現框圖如下:
你可以將圖中任何模塊替換為自己的算法,此時該示例模型將變成完美的單元模塊算法的測試平臺,而被替換的模塊則變身為性能基線模型。1.2 定點化建模工具通信算法優化收斂后,由于其計算密集的特性,一般都需要轉化為定點算法,以節省硬件資源開銷,最終降低產品成本,提高產品競爭力。MATLAB 的定點化工具箱 Fixed-Point Designer 提供豐富的數據類型和軟件工具,可以事先在模型中測試和調試溢出及精度損失等量化效應,之后再在硬件上實現設計。直觀的一項功能如下圖,在定點工具的引導下探索不同的定點數據類型及其對系統數值行為所產生的量化影響。你能觀察到算法中所有變量的動態范圍,并確保轉換后的算法在浮點表示和定點表示下具有一致的行為。
圖中藍色部分是某變量在給定的一組測試用例條件下的取值范圍(包括整數和小數部分),灰色部分是當前該變量的數據類型能支持的取值范圍。如有溢出會紅色高亮顯示,定點工具會自動記錄所有的溢出:
上溢出(overflow):運算結果超出了定點數的整數部分所能表示的范圍,會引起數據被截取或翻轉 wrap
下溢出(underflow):運算結果小數部分超出了定點數的小數部分能表示的范圍,會引起精度損失
識別到溢出后可快速識別、跟蹤并調試溢出、精度損失以及范圍或精度浪費的問題來源,并將定點設計與理想的浮點行為進行對比。Fixed-Point Designer 還集成了優化工具 fxpopt (https://ww2.mathworks.cn/help/fixedpoint/ref/fxpopt.html),可以自動優化尋找滿足給定的數值精度要求和目標硬件約束的數據類型。
% Use the addTolerance method to define tolerances for thedifferences between the original
behavior of the system, and the behavior using the optimized fixed-pointdata types.
tol = 10e-2;
addTolerance(opt, [model ‘/output_signal’], 1, ‘AbsTol’, tol);
result = fxpopt(model, sud, opt);
Starting parallel pool (parpool) using the ‘local’ profile 。。.
Connected to the parallel pool (number of workers: 4)。
+ Preprocessing
+ Modeling the optimizationproblem
- Constructing decisionvariables
+ Running the optimizationsolver
Analyzing and transferring files to the workers 。。.done.
- Evaluating new solution:cost 180, does not meet the tolerances.
- Evaluating new solution:cost 198, does not meet the tolerances.
- Evaluating new solution:cost 216, does not meet the tolerances.
- Evaluating new solution:cost 234, does not meet the tolerances.
- Evaluating new solution:cost 252, does not meet the tolerances.
- Evaluating new solution:cost 270, does not meet the tolerances.
- Evaluating new solution:cost 288, does not meet the tolerances.
- Evaluating new solution:cost 306, meets the tolerances.
- Evaluating new solution:cost 324, meets the tolerances.
- Evaluating new solution:cost 342, meets the tolerances.
- Evaluating new solution:cost 360, meets the tolerances.
◆ ◆ ◆ ◆
(二) 自動代碼生成實現快速原型開發完成定點設計后,可以從定點優化模型生成面向 X86 或 ARM 的 C/C++,或用于 FPGA 和 ASIC 設計的 HDL 代碼。示例 5G NR MIB Recovery Using Xilinx RFSoC Device 展示了如何將 5G 物理層算法自動生成 C/C++ 和 HDL 代碼并部署在 Xilinx Zynq UltraScale + RFSoC ZCU111 評估板中。在 SoC 硬件上實現之前,可以在系統級模型上調整軟硬件劃分以及驗證 ARM 處理器中軟件算法和 FPGA 中的硬件算法。下圖展示了 FR1 頻段的 SSB 檢測器結構,以及與搜索控制器之間傳遞的參數和數據。SSB 檢測器分為兩個功能部分:SSB 檢測器下變頻 DDC 和 SSB 檢測搜索和解調。DDC 接收 61.44 Msps 的樣本,糾正頻率偏移和下采樣。頻率偏移值由搜索控制器提供,并被用于粗和細的頻率偏移補償算法。SSB 檢測搜索和解調接受 7.68 Msps 的樣本,實現兩種工作方式:搜索和解調。
在上述算法模型的基礎上,創建 SoC 頂層模型(見下圖),并將硬件目標設置為 Xilinx Zynq Ultrascale+ RFSoC ZCU111 評估套件。該模型包括 FPGA 模型 soc_5GNRMIBRecovery_fpga(左)和處理器模型 soc_5GNRMIBRecovery_proc(右),它們被實例化為模型引用,分別指向 2 個 Simulink 模型。FPGA 模型包含三個子系統:發送重復,向量插值(連接到 DAC)和 5G 小區搜索接收(連接 ADC)。ARM 模型包含周期運行的搜索控制器算法,協調檢測器和解碼器硬件核心,以及內存讀寫控制與 FPGA 交換數據。頂層模型還包括 FPGA 和 ARM 之間的內存通道和內存控制器模型。
有了這樣的 SoC 系統模型,便可以使用生成的測試流量或真實 I/O 數據來仿真內存與內部和外部連接,以及調度和 OS 效果;也可以快速探索不同的系統架構,估計硬件和軟件分區的接口復雜度,并評估軟件性能和硬件利用率。系統設計優化之后,最終利用 MATLAB 自動代碼生成功能直接部署 HDL 和 C/C++ 代碼到 SoC 芯片中。
(三) 軟件質量與安全檢查當前全球對通信基礎設施的網絡安全和軟件質量的關注達到了前所未有的高度。除了 3GPP 對架構安全、認證和密鑰管理、業務安全等標準的研究和制定外,通信設備廠商在開發產品過程中的軟件質量和安全防護也是其中關鍵因素。據統計,高達 90% 的軟件安全問題是由編碼錯誤引起的。嵌入式系統使用手寫或自動生成的 C 等編程語言代碼。
C 語言允許直接訪問內存等低級操作,但相關的安全風險也更高。C 語言中的某些代碼構造會引入安全漏洞,惡意攻擊者可以利用這些漏洞并執行代碼注入、緩存溢出和弧注入等操作。如果攻擊者控制了系統,后果可能是災難性的。許多編碼規范標準,如 CERT C/C++,針對不安全編碼和可能導致可利用漏洞的未定義行為,提供了規則和建議。MATLAB 持續升級代碼分析工具 Polyspace:可自動檢查軟件代碼是否符合網絡安全編碼標準 CERT C/C++、ISO 17961 和 MISRA C:2012 Amendment 1;采用形式化方法證明在所有可能的控制流和數據流下都沒有關鍵運行錯誤;以及包括編碼規范、安全漏洞、代碼指標和數百條其他軟件缺陷的檢查。
利用 Polyspace 檢查運行在 ARM 等處理器中的 5G 算法和協議棧程序,可以提高5G小基站產品的軟件質量和安全等級,保障5G通信系統的安全運行。
原文標題:新基建 | MATLAB 助力 5G 小基站研發(下篇)
文章出處:【微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
matlab
+關注
關注
185文章
2974瀏覽量
230405 -
soc
+關注
關注
38文章
4163瀏覽量
218171 -
5G
+關注
關注
1354文章
48439瀏覽量
563997
原文標題:新基建 | MATLAB 助力 5G 小基站研發(下篇)
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論