在新基建 | 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文章
2976浏览量
230559 -
soc
+关注
关注
38文章
4170浏览量
218369 -
5G
+关注
关注
1354文章
48464浏览量
564477
原文标题:新基建 | MATLAB 助力 5G 小基站研发(下篇)
文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论