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