主要内容

NR HDL MIB恢复

这个例子展示了如何设计一个5G NR同步信号块(SSB)解码和主信息块(MIB)恢复模型优化的HDL代码生成和硬件实现。

介绍

本例中描金宝app述的Simulink®模型是针对5G NR频率范围1 (FR1)的SSB解码和MIB恢复的定点HDL优化实现。这个例子是一个相关的集合,展示了设计和部署5G NR单元搜索和MIB恢复算法到硬件的工作流。完整的工作流如图所示。

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

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

  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证模型的行为。然后,本示例描述了一个Simulink模型,该模型结合SSB金宝app检测、解调和解码,从基带波形中恢复MIB。

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

文件结构

本示例使用这些文件。

金宝app仿真软件模型

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

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

  • nrhdlSSBDecodingCore.slx:该模型参考实现单边带译码算法。

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

金宝app模型数据字典

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

MATLAB代码

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

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

NR HDL SSB译码

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

单边带解码接口

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

输入

  • startProcessing: 1位控制信号,表示所有数据已经写入,并且cellID和Lmax有效。

  • 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搜索过程和Lmax计算的SSB索引的3个最低有效位。

  • pbchPayload: 32位无符号值,包含MIB和附加的PBCH rx波形数据。

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

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

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

PBCH Status信号状态

  • 0:闲置

  • 1:读取SSB网格的数据

  • 2:执行DMRS搜索

  • 3.:执行PBCH符号解调

BCH Status信号状态

  • 0:闲置

  • 1:执行速率恢复

  • 2:执行极性解码

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

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

SSB解码模型参考结构

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

PBCH处理子系统执行DMRS搜索、信道估计和均衡、QPSK符号解调和解码器。从PBCH处理子系统的输出被传递到BCH处理子系统,BCH处理子系统执行速率恢复、极性解码和CRC解码。诊断总线创建子系统通过连接来自PBCH和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处理执行BCH的速率恢复、极性译码和CRC译码。速率恢复子系统包括信号缩放和字长缩减,为极译码准备数据。然后将缩放后的速率恢复软位传递给NR极译码器块,后者也执行CRC解码。NR Polar Decoder块的err输出端口指示解码是否成功或遇到任何错误。有效载荷提取子系统执行有效载荷位的解编和解交织。

单边带解码模拟设置

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

单边带解码模拟

使用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 Coder™许可证。使用makehdlmakehdltb用于生成HDL代码和HDL测试台的命令nrhdlSSBDecoding /单边带解码nrhdlMIBRecovery / MIB恢复子系统。合成了Xilinx®Zynq®-7000 ZC706评估板的HDL代码。表格显示了发帖地点和路由资源的使用结果。该设计满足时钟频率为150 MHz的定时要求。

nrhdlSSBDecoding模型的资源利用率:

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

nrhdlMIBRecovery模型的资源利用率:

资源使用_______________ _____ Slice注册83231 Slice LUTs 40154 RAMB18 17 RAMB36 5 DSP48 245

相关的话题