主要内容

NR HDL MIB恢复

此示例示出了如何设计5G NR同步信号块(SSB)解码和主信息块(MIB),用于HDL代码生成和硬件实现优化的恢复模式。

介绍

在此示例金宝app中描述的Simulink®模型是SSB解码和MIB恢复为5G NR频率范围1(FR1)的定点HDL优化的实现。这个例子是一组相关的它们显示了设计和部署一个5G NR小区搜索和MIB恢复算法对硬件工作流程的一个。完整的工作流程中。

此工作流中的每一步都由一个或多个相关示例演示。

  1. MATLAB黄金参考算法: 这NR Cell Search and MIB and SIB1 Recovery(5G工具箱)示例展示了浮点黄金参考算法。

  2. MATLAB硬件参考算法: 这NR HDL小区搜索和MIB恢复MATLAB参考模型硬件友好的算法并生成测试波形。此MATLAB代码运行在矢量和浮点数据样本的矩阵,并且不支持HDL代码生成。金宝app

  3. 金宝appSimulink的定点实施模型: 这NR HDL细胞搜索示例演示了一个使用与MATLAB®相同算法的5G cell搜索Simulin金宝appk子系统。NR HDL MIB恢复示例(本例)增加了广播信道解码和MIB恢复子系统。这NR HDL MIB Recovery for FR2已经扩展到支持FR2例子显示了小区搜索和MIB恢复模型。金宝app这些模型上的固定点的数据进行操作和用于HDL代码生成进行了优化。

  4. 金宝appSimulink SoC部署模型: 这在soc上部署NR HDL参考应用示例构建在定点实现模型之上,并使用硬件支持包在硬件上部署算法。金宝app

有关如何将MATLAB和Simulink用于开发可部署模型的一般描述,请参见金宝appfpga和asic的无线通信设计

MIB恢复需要SSB检测、解调和解码。本示例重点介绍单边带译码。单边带检测和解调在NR HDL细胞搜索例子。本实施例中介绍了SSB解码Simulink模型,并使用MATLAB参考以产生测试输金宝app入,并验证了该模型的行为。然后,将实施例描述了结合了SSB检测,解调Simulink模金宝app型,并进行解码,以从基带波形恢复MIB。

检测到单边带并解调后,需要对单边带进行解码,提取MIB内容。SSB译码需要解调参考信号(DMRS)搜索、信道估计和相位均衡、广播信道(BCH)译码步骤如下图所示。

文件结构

本示例使用这些文件。

金宝app仿真软件模型

  • nrhdlSSBDecoding.slx:这Simul金宝appink模型使用nrhdlSSBDecodingCore模型参考来模拟MIB恢复过程中SSB解码部分的行为。

  • nrhdlMIBRecovery.slx:这个Simu金宝applink模型将SSB检测器和SSB解码器的处理结合到一个集成模型中,说明了完整的MIB恢复过程。该模型使用nrhdlSSBDetectionFR1CorenrhdlSSBDecodingCore模型参考。

  • nrhdlSSBDecodingCore.slx:此模型引用实现了SSB解码算法。

  • nrhdlSSBDetectionFR1Core.slx:该模型参考实现了SSB检测算法。

金宝appSimulink的数据字典

  • nrhdlReceiverData.sldd:此Simul金宝appink数据字典包含定义示例模型中包含的总线的总线对象。

MATLAB代码

  • runMIBRecoveryModel.m:本脚本使用MATLAB参考实现单元搜索算法,然后运行nrhdlMIBRecovery金宝appSimulink模型。该脚本使用验证5G工具箱和MATLAB代码参考模型的操作。

  • nrhdlexamples:包含MATLAB参考代码和实用函数的包,用于验证实现模型。

NR HDL SSB解码

这个图显示了nrhdlSSBDecoding模型。模型的顶层从MATLAB基础工作空间读取信号,将其传递给SSB解码子系统,并将输出写回工作空间。ParseMIB子系统接受pbchPayload并解释位字段以产生MIB参数输出。

单边带解码接口

单边带译码子系统包含nrhdlSSBDecodingCore模型参考。本节描述的输入与模型的输出。

输入

  • startProcessing:其指示当所有数据已被写入和CELLID和Lmax的是有效的1位控制信号。

  • NCellID: 10位无符号号码,为检测到的SSB提供cell ID号码。

  • Lmax: 2位无符号数,表示一次突发中ssb的最大数目。0表示4个ssb, 1表示8个ssb。

  • 数据:携带单边带设备的4个OFDM符号的16位带符号复数信号。

  • dataValid:1位控制信号,以验证数据。

  • 重置: 1位控制信号复位处理。

输出

  • pbchStatus: 2位无符号值,表示PBCH解码操作的进度。见下面关于这个信号的可能值的更多信息。

  • bchStatus:3-位无符号值,表示BCH解码操作的进度。见下面关于这个信号的可能值的更多信息。

  • ssbIndex3Lsb:3-位无符号值,该值是由DMRS计算的SSB索引的3个最低位显著搜索过程和Lmax的。

  • pbchPayload:32位无符号值,包含MIB和其他PBCH RXWAVEFORM数据。

  • validOut:1位控制信号来验证ssbIndex3Lsb和pbchPayload。

  • nextSSB: 1位控制信号,指示何时核心可以开始处理下一个SSB。可用于调整背靠背单边带译码的输入。

  • 诊断:包含诊断信号的总线。

PBCH Status信号状态

  • 0.:闲置

  • 1:读取SSB网格的数据

  • 2:执行DMRS搜索

  • 3.:执行PBCH码元解调

BCH状态信号状态

  • 0.:闲置

  • 1:执行率恢复

  • 2:执行极性解码

  • 3.: CRC错误(结束状态)

  • 4.: CRC通过,检测到MIB(结束状态)

SSB解码模型参考结构

这个图显示了nrhdlSSBDecodingCore模型。输入数据为同步信号块(SSB)的4个OFDM符号,其值在+/-1范围内缩放。当所有SSB数据都已输入到模型并断言startProcessing时,模型开始处理。startProcessing信号还表明NCellID和Lmax输入是有效的。

的PBCH处理子系统执行DMRS搜索,信道估计和均衡,QPSK符号的解调,和解扰。从PBCH处理子系统的输出被传递给执行速率恢复,极性解码和CRC解码BCH处理子系统。诊断总线创建子系统通过连接从P-BCH和BCH处理子系统诊断创建诊断总线。

PBCH处理子系统

PBCH处理子系统执行DMRS搜索、信道估计和均衡、QPSK解调和解编。传入的数据存储在RAM缓冲区中,直到startProcessing断言为止,这表明启动DMRS搜索过程所需的所有信息都可用。DMRS搜索从RAM中读取DMRS符号,并与8个可能的DMRS序列进行相关性,选择最强的相关性值来确定ibar_SSB。一旦DMRS搜索完成,ibar_SSB将用于生成信道估计所需的参考DMRS。参考DMRS连同接收到的PBCH符号和相关的DMRS一起被传递到信道est + eq子系统。

信道est + eq子系统使用接收数据和参考DMRS进行信道估计。该信道估计应用于OFDM符号中DMRS位置之间的线性插值,但在存在任何剩余载波频率偏移的情况下不跨时间平均。然后对PBCH符号进行相位均衡,然后进行QPSK解调和解码,使用ibar_SSB和Lmax计算解码序列。

BCH处理子系统

的BCH处理执行速率恢复,极性解码和CRC解码BCH的。率恢复子系统包括信号缩放和字长还原为极性解码准备数据。然后,缩放,速率回收软比特被传递给NR极地解码器块,其还执行CRC解码。从NR极地解码器块中的ERR输出端口指示是否解码成功或遇到的任何错误。所述提取物的有效载荷子系统执行解扰和有效载荷的比特解交织。

SSB解码仿真设置

框图显示了本示例实现的仿真设置。5G工具箱™功能用于生成测试波形。然后使用MATLAB的单边带检测器参考代码来搜索和解调波形内最强的单边带。此结果为单边带译码阶段提供了测试输入。将测试数据传递给MATLAB和Simulink实现,并对输出进行比较,验证Simuli金宝appnk模型的运行。

SSB译码仿真

使用runSSBDecodingModel脚本运行单边带解码模拟。该脚本在MATLAB命令提示符中显示其进度。最后给出了用MATLAB和Simulink进行单边带译码的结果,结果表明两者吻合较好。金宝appDMRS搜索相关强度和均衡后的PBCH QPSK符号图表明,MATLAB和Simulink的信号匹配紧密。金宝app

runSSBDecodingModel;
生成测试波形。搜索ssb使用MATLAB参考。解调最强的单边带使用MATLAB参考。使用MATLAB参考对单边带进行解码。使用Simulink模型对SSB进行解码。金宝appnrhdlSSBDecoding运行。### nrhdlSSBDecodingCore的模型参考仿真目标是最新的。构建时间:0h 0m 0.62693s ..........MIB成功解码通过MATLAB仿真软件模型解码信息pbc金宝apphPayload: 218103952 ssbIndex: 3 hrf: 0犯错:0 MIB:[1×1 struct]仿真软件解码信息pbchPayload: 218103952 ssbIndex: 3 hrf: 0犯错:0 MIB:[1×1 struct] MATLAB解码NFrame MIB参数:105 SubcarrierSpacingCommon: 30 k_SSB: 0 DMRSTypeAPosition: 2 PDCCHConfigSIB1:0 cellforbidden: 0 IntraFreqReselection:金宝app 0 Simulink decoded MIB parameters NFrame: 105 SubcarrierSpacingCommon: 30 k_SSB: 0 dmrstypeposition: 2 PDCCHConfigSIB1: 0 cellforbidden: 0 IntraFreqReselection: 0

MIB恢复模型

nrhdlMIBRecovery型号为连接SSB解码和SSB检测两个参考模型(nrhdlSSBDecodingCorenrhdlSSBDetectionFR1Core),以创建一个完整的MIB恢复执行。该模型可用于从基带5G波形恢复MIB。剧本runMIBRecoveryModel可以用来运行该模型,并与MATLAB参考进行比较。为了减少算法的单元搜索部分在MATLAB中执行所需的处理时间,一旦确定了最强的单边带,就使用Simulink模型重新获取、解调和解码单边带。金宝app

检测器发出的状态信号在达到状态8时启动SSB解码器,表示解调完成,SSS已经找到,解调网格已经输出。当SSB解码器有被解调的网格并接收到startProcessing信号时,它将对SSB进行解码,输出PBCH有效负载,然后解析该有效负载来提取MIB数据。

HDL代码生成与实现结果

要生成此示例中的HDL代码,你必须有一个HDL编码器™许可证。使用makehdl.makehdltb命令生成HDL代码和HDL测试台nrhdlSSBDecoding / SSB解码或者nrhdlMIBRecovery / MIB恢复子系统。合成了Xilinx®Zynq®-7000 ZC706评估板的HDL代码。表格显示了发帖地点和路由资源的使用结果。该设计满足时钟频率为150 MHz的定时要求。

nrhdlSSBDecoding模型的资源利用率:

资源使用_______________ _____ Slice注册8297 Slice LUTs 11050 RAMB18 8 RAMB36 4 DSP48 37

nrhdlMIBRecovery模型的资源利用率:

资源使用_______________ _____切片寄存器83231级的LUT 40154 RAMB18 17 RAMB36 5 DSP48 245

相关话题