在新基建 | MATLAB 助力 5G 小基站研發(fā)(上篇)中,我們介紹了 MATLAB 在 3GPP 5G 標準學(xué)習(xí)和校驗、無線信號發(fā)射和 EVM 測量、波束成形設(shè)計等方面助力 5G 小基站研發(fā)。在下篇中,我們將繼續(xù)探討 MATLAB 其他的硬核功能:
用 MATLAB 快速實現(xiàn)軟件接收機
自動代碼生成實現(xiàn)快速原型開發(fā)
軟件質(zhì)量與安全檢查
5G 小基站廣闊的發(fā)展前景成功地吸引了芯片廠商的關(guān)注,紛紛推出各種小基站硬件平臺,例如 Intel FlexRAN 平臺,NXP Layerscape 集成小基站,高通 vRAN 平臺芯片組,Marvell OCTEON 系列處理器,Xilinx Zynq UltraScale+ RFSoC 等。這些硬件平臺多種多樣,跨越了 ASIC、FPGA、ARM、X86 等各種技術(shù)。如何將算法部署到不同的芯片硬件平臺,以實現(xiàn)多樣化的、有競爭力的產(chǎn)品?你可以使用 MATLAB 基于模型設(shè)計的工作流程,在高層級模型上進行設(shè)計變更、優(yōu)化、測試、驗證,然后自動生成跨平臺的 C/C++ 或 HDL 代碼和測試平臺,從而加速 5G 算法部署到多樣化硬件的過程。利用基于模型的設(shè)計,能夠在模型層面試驗不同的架構(gòu)和算法,反復(fù)調(diào)整參數(shù),預(yù)測硬件性能,并快速在 SDR、FPGA 或 SoC 硬件上自動建立原型。
(一) 用 MATLAB 快速實現(xiàn)軟件收發(fā)信機1.1 黃金參考模型5G 工具箱提供了很多黃金參考模型,幫助你快速實現(xiàn)5G軟件收發(fā)信機模型。案例和函數(shù)的代碼是白盒的,很容易在此基礎(chǔ)上進行修改、調(diào)試、發(fā)現(xiàn)和解決問題、改進性能。例子 NR PUSCH Throughput 展示了如何測量 5G 物理上行共享信道(PUSCH)吞吐量。該示例可選擇配置采用 3GPP 定義的集群延遲線(CDL)或抽頭延遲線(TDL)信道,也可以選擇配置執(zhí)行理想的或?qū)嶋H的同步和信道估計。為實現(xiàn)理想的同步和信道估計,可從信道模型中重構(gòu)信道脈沖響應(yīng),用于同步接收和信道估計。選擇實際同步和信道估計時,則利用 DM-RS 信號同步和解調(diào)。為了減少總仿真時間,可以使用 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 提供的函數(shù)來同步、解調(diào)和解碼真實的 gNodeB 信號。該程序可用于模擬用戶終端下行接收,對主信息塊(MIB)和第一系統(tǒng)信息塊(SIB1)進行解碼。算法實現(xiàn)框圖如下:
你可以將圖中任何模塊替換為自己的算法,此時該示例模型將變成完美的單元模塊算法的測試平臺,而被替換的模塊則變身為性能基線模型。1.2 定點化建模工具通信算法優(yōu)化收斂后,由于其計算密集的特性,一般都需要轉(zhuǎn)化為定點算法,以節(jié)省硬件資源開銷,最終降低產(chǎn)品成本,提高產(chǎn)品競爭力。MATLAB 的定點化工具箱 Fixed-Point Designer 提供豐富的數(shù)據(jù)類型和軟件工具,可以事先在模型中測試和調(diào)試溢出及精度損失等量化效應(yīng),之后再在硬件上實現(xiàn)設(shè)計。直觀的一項功能如下圖,在定點工具的引導(dǎo)下探索不同的定點數(shù)據(jù)類型及其對系統(tǒng)數(shù)值行為所產(chǎn)生的量化影響。你能觀察到算法中所有變量的動態(tài)范圍,并確保轉(zhuǎn)換后的算法在浮點表示和定點表示下具有一致的行為。
圖中藍色部分是某變量在給定的一組測試用例條件下的取值范圍(包括整數(shù)和小數(shù)部分),灰色部分是當(dāng)前該變量的數(shù)據(jù)類型能支持的取值范圍。如有溢出會紅色高亮顯示,定點工具會自動記錄所有的溢出:
上溢出(overflow):運算結(jié)果超出了定點數(shù)的整數(shù)部分所能表示的范圍,會引起數(shù)據(jù)被截取或翻轉(zhuǎn) wrap
下溢出(underflow):運算結(jié)果小數(shù)部分超出了定點數(shù)的小數(shù)部分能表示的范圍,會引起精度損失
識別到溢出后可快速識別、跟蹤并調(diào)試溢出、精度損失以及范圍或精度浪費的問題來源,并將定點設(shè)計與理想的浮點行為進行對比。Fixed-Point Designer 還集成了優(yōu)化工具 fxpopt (https://ww2.mathworks.cn/help/fixedpoint/ref/fxpopt.html),可以自動優(yōu)化尋找滿足給定的數(shù)值精度要求和目標硬件約束的數(shù)據(jù)類型。
% 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.
◆ ◆ ◆ ◆
(二) 自動代碼生成實現(xiàn)快速原型開發(fā)完成定點設(shè)計后,可以從定點優(yōu)化模型生成面向 X86 或 ARM 的 C/C++,或用于 FPGA 和 ASIC 設(shè)計的 HDL 代碼。示例 5G NR MIB Recovery Using Xilinx RFSoC Device 展示了如何將 5G 物理層算法自動生成 C/C++ 和 HDL 代碼并部署在 Xilinx Zynq UltraScale + RFSoC ZCU111 評估板中。在 SoC 硬件上實現(xiàn)之前,可以在系統(tǒng)級模型上調(diào)整軟硬件劃分以及驗證 ARM 處理器中軟件算法和 FPGA 中的硬件算法。下圖展示了 FR1 頻段的 SSB 檢測器結(jié)構(gòu),以及與搜索控制器之間傳遞的參數(shù)和數(shù)據(jù)。SSB 檢測器分為兩個功能部分:SSB 檢測器下變頻 DDC 和 SSB 檢測搜索和解調(diào)。DDC 接收 61.44 Msps 的樣本,糾正頻率偏移和下采樣。頻率偏移值由搜索控制器提供,并被用于粗和細的頻率偏移補償算法。SSB 檢測搜索和解調(diào)接受 7.68 Msps 的樣本,實現(xiàn)兩種工作方式:搜索和解調(diào)。
在上述算法模型的基礎(chǔ)上,創(chuàng)建 SoC 頂層模型(見下圖),并將硬件目標設(shè)置為 Xilinx Zynq Ultrascale+ RFSoC ZCU111 評估套件。該模型包括 FPGA 模型 soc_5GNRMIBRecovery_fpga(左)和處理器模型 soc_5GNRMIBRecovery_proc(右),它們被實例化為模型引用,分別指向 2 個 Simulink 模型。FPGA 模型包含三個子系統(tǒng):發(fā)送重復(fù),向量插值(連接到 DAC)和 5G 小區(qū)搜索接收(連接 ADC)。ARM 模型包含周期運行的搜索控制器算法,協(xié)調(diào)檢測器和解碼器硬件核心,以及內(nèi)存讀寫控制與 FPGA 交換數(shù)據(jù)。頂層模型還包括 FPGA 和 ARM 之間的內(nèi)存通道和內(nèi)存控制器模型。
有了這樣的 SoC 系統(tǒng)模型,便可以使用生成的測試流量或真實 I/O 數(shù)據(jù)來仿真內(nèi)存與內(nèi)部和外部連接,以及調(diào)度和 OS 效果;也可以快速探索不同的系統(tǒng)架構(gòu),估計硬件和軟件分區(qū)的接口復(fù)雜度,并評估軟件性能和硬件利用率。系統(tǒng)設(shè)計優(yōu)化之后,最終利用 MATLAB 自動代碼生成功能直接部署 HDL 和 C/C++ 代碼到 SoC 芯片中。
(三) 軟件質(zhì)量與安全檢查當(dāng)前全球?qū)νㄐ呕A(chǔ)設(shè)施的網(wǎng)絡(luò)安全和軟件質(zhì)量的關(guān)注達到了前所未有的高度。除了 3GPP 對架構(gòu)安全、認證和密鑰管理、業(yè)務(wù)安全等標準的研究和制定外,通信設(shè)備廠商在開發(fā)產(chǎn)品過程中的軟件質(zhì)量和安全防護也是其中關(guān)鍵因素。據(jù)統(tǒng)計,高達 90% 的軟件安全問題是由編碼錯誤引起的。嵌入式系統(tǒng)使用手寫或自動生成的 C 等編程語言代碼。
C 語言允許直接訪問內(nèi)存等低級操作,但相關(guān)的安全風(fēng)險也更高。C 語言中的某些代碼構(gòu)造會引入安全漏洞,惡意攻擊者可以利用這些漏洞并執(zhí)行代碼注入、緩存溢出和弧注入等操作。如果攻擊者控制了系統(tǒng),后果可能是災(zāi)難性的。許多編碼規(guī)范標準,如 CERT C/C++,針對不安全編碼和可能導(dǎo)致可利用漏洞的未定義行為,提供了規(guī)則和建議。MATLAB 持續(xù)升級代碼分析工具 Polyspace:可自動檢查軟件代碼是否符合網(wǎng)絡(luò)安全編碼標準 CERT C/C++、ISO 17961 和 MISRA C:2012 Amendment 1;采用形式化方法證明在所有可能的控制流和數(shù)據(jù)流下都沒有關(guān)鍵運行錯誤;以及包括編碼規(guī)范、安全漏洞、代碼指標和數(shù)百條其他軟件缺陷的檢查。
利用 Polyspace 檢查運行在 ARM 等處理器中的 5G 算法和協(xié)議棧程序,可以提高5G小基站產(chǎn)品的軟件質(zhì)量和安全等級,保障5G通信系統(tǒng)的安全運行。
原文標題:新基建 | MATLAB 助力 5G 小基站研發(fā)(下篇)
文章出處:【微信公眾號:MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
matlab
+關(guān)注
關(guān)注
185文章
2980瀏覽量
230750 -
soc
+關(guān)注
關(guān)注
38文章
4192瀏覽量
218651 -
5G
+關(guān)注
關(guān)注
1356文章
48495瀏覽量
565155
原文標題:新基建 | MATLAB 助力 5G 小基站研發(fā)(下篇)
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論