此示例示出了如何设计5G NR同步信号块(SSB)解码和主信息块(MIB),用于HDL代码生成和硬件实现优化的恢复模式。
在此示例金宝app中描述的Simulink®模型是SSB解码和MIB恢复为5G NR频率范围1(FR1)的定点HDL优化的实现。这个例子是一组相关的它们显示了设计和部署一个5G NR小区搜索和MIB恢复算法对硬件工作流程的一个。完整的工作流程中。
此工作流中的每一步都由一个或多个相关示例演示。
MATLAB黄金参考算法: 这NR Cell Search and MIB and SIB1 Recovery(5G工具箱)示例展示了浮点黄金参考算法。
MATLAB硬件参考算法: 这NR HDL小区搜索和MIB恢复MATLAB参考模型硬件友好的算法并生成测试波形。此MATLAB代码运行在矢量和浮点数据样本的矩阵,并且不支持HDL代码生成。金宝app
金宝appSimulink的定点实施模型: 这NR HDL细胞搜索示例演示了一个使用与MATLAB®相同算法的5G cell搜索Simulin金宝appk子系统。NR HDL MIB恢复示例(本例)增加了广播信道解码和MIB恢复子系统。这NR HDL MIB Recovery for FR2已经扩展到支持FR2例子显示了小区搜索和MIB恢复模型。金宝app这些模型上的固定点的数据进行操作和用于HDL代码生成进行了优化。
金宝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恢复过程。该模型使用nrhdlSSBDetectionFR1Core
和nrhdlSSBDecodingCore
模型参考。
nrhdlSSBDecodingCore.slx
:此模型引用实现了SSB解码算法。
nrhdlSSBDetectionFR1Core.slx
:该模型参考实现了SSB检测算法。
金宝appSimulink的数据字典
nrhdlReceiverData.sldd
:此Simul金宝appink数据字典包含定义示例模型中包含的总线的总线对象。
MATLAB代码
runMIBRecoveryModel.m
:本脚本使用MATLAB参考实现单元搜索算法,然后运行nrhdlMIBRecovery
金宝appSimulink模型。该脚本使用验证5G工具箱和MATLAB代码参考模型的操作。
nrhdlexamples
:包含MATLAB参考代码和实用函数的包,用于验证实现模型。
这个图显示了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(结束状态)
这个图显示了nrhdlSSBDecodingCore
模型。输入数据为同步信号块(SSB)的4个OFDM符号,其值在+/-1范围内缩放。当所有SSB数据都已输入到模型并断言startProcessing时,模型开始处理。startProcessing信号还表明NCellID和Lmax输入是有效的。
的PBCH处理子系统执行DMRS搜索,信道估计和均衡,QPSK符号的解调,和解扰。从PBCH处理子系统的输出被传递给执行速率恢复,极性解码和CRC解码BCH处理子系统。诊断总线创建子系统通过连接从P-BCH和BCH处理子系统诊断创建诊断总线。
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处理执行速率恢复,极性解码和CRC解码BCH的。率恢复子系统包括信号缩放和字长还原为极性解码准备数据。然后,缩放,速率回收软比特被传递给NR极地解码器块,其还执行CRC解码。从NR极地解码器块中的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
这nrhdlMIBRecovery
型号为连接SSB解码和SSB检测两个参考模型(nrhdlSSBDecodingCore
和nrhdlSSBDetectionFR1Core
),以创建一个完整的MIB恢复执行。该模型可用于从基带5G波形恢复MIB。剧本runMIBRecoveryModel
可以用来运行该模型,并与MATLAB参考进行比较。为了减少算法的单元搜索部分在MATLAB中执行所需的处理时间,一旦确定了最强的单边带,就使用Simulink模型重新获取、解调和解码单边带。金宝app
检测器发出的状态信号在达到状态8时启动SSB解码器,表示解调完成,SSS已经找到,解调网格已经输出。当SSB解码器有被解调的网格并接收到startProcessing信号时,它将对SSB进行解码,输出PBCH有效负载,然后解析该有效负载来提取MIB数据。
要生成此示例中的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