主要内容

NR HDL细胞搜索

本示例展示了针对HDL代码生成和硬件实现进行优化的5G NR小区搜索子系统的设计。

介绍

本例中描万博1manbetx述的Simulink®模型是5G NR频率范围1 (FR1)的同步信号块(SSB)检测器的hdl优化实现。此示例是相关集合中的一个,有关详细信息,请参见NR HDL参考应用概述

SSB探测器的框图如图所示。探测器执行与单元搜索算法相关的所有高速信号处理任务,因此非常适合FPGA或ASIC实现。SSB探测器在给定的频率偏移和子载波间距下及时搜索SSB。它被设计成一个更大的系统的一部分,实现载波频率偏移恢复和子载波间隔检测。中所示,必须使用控制器来协调整个单元格搜索通过AD9361/AD9364模拟设备实现5G NR MIB恢复(基于Xilinx zynq的无线电通信工具箱支万博1manbetx持包)的例子。

SSB探测器执行主同步序列(PSS)搜索、正交频分复用(OFDM)解调和次同步序列(SSS)搜索。它还包括用于校正接收信号中的频率偏移的数字下变频(DDC)。SSB探测器有两种工作模式,搜索解调,在本例中进行了演示。在搜索模式下,探测器搜索ssb并返回其参数。在解调模式下,检测器恢复指定的SSB ofdm——解调其资源网格并在适当的资源元素中搜索SSS。

文件结构

本例使用这些文件。

万博1manbetx仿真软件模型

  • nrhdlSSBDetection.slx:此Simul万博1manbetxink模型用于模拟SSB检测的行为。

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

  • nrhdlDDCFR1Core.slx这个模型实现了一个DDC来为SIB1和ssb创建样本流。

万博1manbetxSimulink数据字典

  • nrhdlReceiverData.sldd这个Simul万博1manbetxink数据字典包含总线对象,这些对象定义了示例模型中包含的总线。

MATLAB代码

  • runSSBDetectionModelSearch.m:运行和验证的脚本nrhdlSSBDetection搜索模式下的模型。

  • runSSBDetectionModelDemod.m:运行和验证的脚本nrhdlSSBDetection解调模式下的模型。

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

NR HDL细胞搜索模型

该图显示了nrhdlSSBDetection模型。该模型的顶层从MATLAB基本工作空间读取信号,将其传递给SSB检测子系统,并将输出写入工作空间。使用runSSBDetectionModelSearchrunSSBDetectionModelDemod运行模型并对输出进行后处理的脚本。

SSB探测分系统

SSB检测子系统引用nrhdlDDCFR1CorenrhdlSSBDetectionFR1Core模型。DDC执行频率偏移校正和抽取,SSB检测器搜索和解调SSB。模型引用的算法将在下一节中描述。DDC的输出是SSB检测算法的输入。

输入

  • dataIn: 14位带符号复值信号,采样速率为61.44 Msps。

  • validIn: 1位控制信号验证dataIn

  • frequencyOffset: 32位有符号值,指定要纠正的频率偏移。该信号连接到一个带有32位累加器的NCO。使用以下公式将数值转换为Hz:frequencyOffset_HzfrequencyOffset* 61.44e6 / 2^32。

  • subcarrierSpacing:指定子载波间距的2位无符号值。将此信号设置为0选择15kHz,或设置为1选择30kHz。

  • 模式: 1位无符号值,指定操作模式。将此信号设置为搜索模式为0,或设置为mod模式为1。

  • timingOffset: 21位无符号值,指定要解调的SSB开始的时间偏移量。指定采样中的定时偏移61.44 Msps,从0到1228799。此参数仅适用于“demod”模式。

  • NCellID2: 2位无符号值,指定要解调的SSB的PSS(0、1或2)。此参数仅适用于“demod”模式。

  • 开始: 1位控制信号,用于启动搜索或解调操作。要开始操作,请设置frequencyOffsetsubcarrierSpacing模式timingOffset,NCellID2到所需的值并设置开始1真正的)进行一个或多个循环。如果一个操作已经在进行中,那么该操作将被取消开始设为1真正的)。新操作何时开始开始返回到0)。

输出

  • 状态: 4位无符号值,表示当前操作的进度。有关该信号的可能值,请参见下一节。

  • pssNCellID2: 2位无符号值,表示检测到的SSB的PSS(0、1或2)。

  • pssTimingOffset: 21位无符号值,表示检测到的SSB的定时偏移量。从0到1228799的采样时间偏移为61.44 Msp。

  • pssFrequencyOffset: 32位有符号值,表示检测到的SSB的频偏。这个信号的单位和frequencyOffset输入。

  • pssCorrelation: 32位无符号值,表示PSS相关强度。

  • pssThreshold: 32位无符号值,即检测到PSS时的阈值。

  • NCellID: 10位无符号值,表示解调后SSB的小区号。此值仅在demod模式下返回。

  • sssCorrelation: 32位无符号值,表示SSS相关强度。此信号仅在解调器模式下返回。

  • sssThreshold: 32位无符号值,即SSS阈值。此值仅在demod模式下返回。

  • reportValid: 1位控制信号。在搜索模式下,此信号被验证pssNCellID2pssTimingOffsetpssFrequencyOffsetpssCorrelation,pssThreshold对于检测到的每个PSS。在demod模式下,此信号也被验证NCellIDsssCorrelation,sssThreshold.在mod模式下,sssCorrelationsssThreshold只有在使用其PSS找到指定的SSB时才有效,并且NCellID仅在检测到SSS时有效。

  • gridData: 16位带符号的复数值,表示资源网格数据。接收方返回SSB资源网格的所有四个符号。值一次返回一个资源元素。资源网格只在demod模式下返回。

  • gridValid: 1位控制信号,用于验证gridData输出。只有在使用其PSS找到指定的SSB时才返回数据。此信号仅在解调器模式下返回。

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

信号状态

  • 0: Idle——初始状态。等待第一次启动脉冲。

  • 1:搜索模式——搜索PSS。

  • 2:搜索模式——操作完成,未找到PSS。

  • 3.:搜索模式——操作完成,找到一个或多个pss。

  • 4: Demod模式——等待指定的PSS定时偏移。

  • 5: mod模式—操作完成,未找到PSS。

  • 6: mod模式——找到指定的PSS。解调资源网格,寻找SSS。

  • 7: mod模式——操作完成,未发现SSS。返回的解调资源网格。

  • 8: mod模式——操作完成,找到SSS。返回的解调资源网格。

监护系统模型

的顶层nrhdlDDCFR1Core模型。输入信号(dataIn)是16位带符号的复值数据,采样速率为61.44 Msps。DDC执行三种操作。首先,输入扩展子系统将输入按0.875的系数进行缩放,为后续处理阶段提供了空间。第二,频率调整子系统将给定的频率偏移应用于数据流。最后,滤波和下采样子系统滤波并使用半带滤波器链将样本抽取8个(至7.68 Msps)。的滤波和下采样子系统产生两个数据流。的ssbData输出以7.68 Msps采样,用于SSB检测。的sib1Data输出以30.72 Msps采样并用于SIB1解调。选择这些采样率是因为它们是计算每个流的2 FFT功率所需的最小带宽。的sib1Data输出用于NR HDL SIB1恢复例如,其中共享一个DDC来驱动SSB和SIB1处理步骤。

SSB检测模型

的顶层nrhdlSSBDetectionFR1Core模型。该模型对SSB进行检测和解调。其内部采样率取决于子载波间距(SCS)。该模型为30kHz SCS使用7.68 Msps,为15kHz SCS使用3.84 Msps。左边的子载波间隔选择逻辑负责改变采样率。时触发新操作时,该速率才可以更改startProcessing输入。

接收机有一个内部定时参考系统,通过在数据路径的关键点上使用计数器来跟踪时间。定时参考计数20ms周期——5G NR标准定义的假定的小区搜索SSB周期。以61.44 Msps模1228800的采样测量时间,以创建20ms周期。由于实际采样率为7.84 Msps或3.84 Msps,因此每个样本的定时参考计数器分别增加8或16。类触发新操作时开始输入时,开始控制器记录开始时间并将时间传递给模型中的其他计时引用。当采用新的子载波间距和相应的采样率时,该信号告诉其他时序参考。其他计时引用要等到开始时间才更改其增量。这种设计是可行的,因为硬件延迟意味着其他时间参考滞后于开始控制器。这种架构使接收器能够始终跟踪时间,即使在采样率发生变化时也是如此。

nrhdlSSBDetectionFR1Core模型包含这些主要子系统。

  • 子载波间距选择:将输入转换为两个同步采样流,一个为7.68 Msps,一个为3.84 Msps,并根据子载波间隔选择将哪个流传递到后续处理阶段。

  • 单边带搜索:通过PSS关联查找ssb。

  • 单边带解调:进行OFDM解调和SSS相关。

  • 报告创建:对一个SSB检测对应的所有参数进行对齐,使所有参数同时生效。

SSB搜索分系统

  • PSS检测:在接收信号中搜索PSS符号。下一节将更详细地描述这个子系统。

  • 循环前缀相关:计算循环前缀(CP)相关值。每个结果在最后四个OFDM符号上取平均值。

  • CP与频率相关:将CP相关值转换为精细的频偏估计。

  • PSS和CP对齐:将基于cp的频率估计与每个PSS符号检测实例相匹配。这种校准是必要的,因为给定PSS检测实例的频率估计仅在相应的SSB的末尾可用。

  • PSS信息序列化如果在相同的时间偏移量下在多个PSS相关器输出上检测到PSS,则该块将结果序列化,以便它们一次从检测器返回一个。

SSB需求子系统

  • OFDM数据同步:将OFDM解调器输入与PSS检测器输出同步。这种同步使PSS检测器能够在正确的时间触发OFDM解调过程。同步数据是PSS相关器后面的一个OFDM符号,因为峰值检测发生在要解调的第一个OFDM符号的末尾。

  • OFDM解调: ofdm -解调指定SSB的四个符号。

  • SSS检测:从OFDM解调器输出中提取SSS资源元素,并将它们与所有336个可能的序列相关联,以确定小区ID。

仿真设置

框图显示了本例的仿真设置,该设置在runSSBDetectionModelSearchrunSSBDetectionModelDemod脚本。5G Toolbox™功能用于生成测试波形,该波形应用于搜索模式下的SSB检测器的MATLAB和Simulink实现,然后在解调模式下。万博1manbetx对每个检测器的关键诊断信号进行相对均方误差(MSE)比较,并对最终输出进行比较。最后,对Simulink模型的资源网格输出进行解码,表明MIB内容符合预期。万博1manbetx

搜索模式仿真

使用runSSBDetectionModelSearch脚本运行搜索模式模拟并验证结果。在搜索模式下,SSB探测器搜索SSB并返回其参数。该脚本在MATLAB命令窗口中显示其进度。表格显示了MATLAB和Simulink检测到的各个SSB的参数。万博1manbetx最后的表格显示了MATLAB和Simulink对每个相关器输出和检测阈值的相对MSE。万博1manbetx生成的图显示(i)传输波形中所有8个ssb的综合资源网格和(ii) PSS相关输出和阈值。结果表明,MATLAB和Simulink的实现非常吻合。万博1manbetx两种实现之间的微小差异是由于量化误差造成的。发生这些错误是因为MATLAB参考使用浮点数据类型,而Simulink模型使用定点数据类型。万博1manbetx

runSSBDetectionModelSearch;
生成测试波形。选择模拟案例:模拟情况下单边带模式共同PDCCH副载波间距配置SIB1信噪比dB Lmax最强的单边带索引  _______________ ___________ _________________________ _________________ ______ ___________________ ____ " SimCase 1”“C”30 164 50 4 8寻找SSBs使用MATLAB的参考。使用Simulink模型搜索ssb。万博1manbetxnrhdlSSBDetection运行。启动串行模型参考仿真构建### nrhdlDDCFR1Core模型参考仿真目标是最新的。nrhdlSSBDetectionFR1Core的模型参考仿真目标是最新的。构建总结2个模型构建的0(2个模型已经更新)构建持续时间:0小时0分钟3.8694秒..........通过MATLAB找到的SSBs参考:ncelllid2 timinggoffset pssCorrelation pssEnergy frequencyOffset ________ ____________ ______________ _________ _______________ 0 4416 1.8564 2.0487 5057 0 17568 1.4776 1.6272 4997 0 35136 3.7246 4.1033 5016 0 48288 2.9372 3.243 5031 0 65856 11.729 12.921 4940 0 79008 2.6242 2.8901 5003 0 96576 4.6843 5.1559 5017 0 1.0973e+05 2.3364 2.5728 4997万博1manbetxncelllid2 timinggoffset pssCorrelation pssEnergy frequencyOffset ________ ____________ ______________ _________ _______________ 0 4416 1.857 2.0492 5057 0 17568 1.4781 1.6277 4997 0 35136 3.7249 4.1042 5016 0 48288 2.9375 3.2439 5031 0 65856 11.732 12.923 4940 0 79008 2.6249 2.8908 5003 0 96576 4.6849 5.1569 5017 0 1.0973e+05 2.3367 2.5735 4997 MATLAB与Simulink在搜索模式下的相对均方误差:万博1manbetx名字relativeMSEdB  _____________________ _____________ {' PSS相关-71.51 0 '}{的PSS相关1}-63.414{的PSS相关2}-63.272 -76.134 {PSS阈值的}

使用Simuli万博1manbetxnk逻辑分析仪来查看SSB检测子系统的输入和输出。探测器在20毫秒的时间窗口内寻找PSS符号,该时间窗口开始于脉冲开始输入触发搜索操作。如果在20ms后没有发现PSS符号,探测器设置状态输出为2 -表示搜索失败。在本例中,检测器找到所有8个ssb。的状态在搜索期间将输出设置为1,并且通过断言的方法为每个SSB返回一个报告reportValid信号。模拟只运行5毫秒,但是如果扩展到运行超过20毫秒,那么状态输出最终被设置为3 -表示搜索成功。

解调模式仿真

在运行runSSBDetectionModelSearch,使用runSSBDetectionModelDemod脚本运行解调模式仿真并验证结果。在解调模式下,检测器通过搜索指定的SSB的PSS,对资源网格进行ofdm解调,并在适当的资源元素中搜索SSS来恢复指定的SSB。该脚本在MATLAB命令窗口中显示其进度。来自MATLAB和Simulink的SS块报告表明,两个检测器返回万博1manbetx相似的参数,并正确地确定了单元格ID为249。相对的MSE测量表明MATLAB和Simulink的实现非常接近。万博1manbetx作为最后的验证步骤,脚本从Simulink资源网格输出解码广播信道(BCH)。万博1manbetxCRC校验通过,且MIB (master information block)内容匹配。生成了显示PSS和SSS相关结果的图,以及资源网格输出。解调模式下的PSS相关水平比搜索模式下的更强,因为频率偏移被校正了。

runSSBDetectionModelDemod;
从先前的搜索中选择最强的PSS并计算其频率偏移。最强PSS指数(基于1):5频率偏移(粗+细):4.94 kHz使用MATLAB参考解调最强SSBs。使用Simulink模型解调最强ssb。万博1manbetxnrhdlSSBDetection运行。启动串行模型参考仿真构建### nrhdlDDCFR1Core模型参考仿真目标是最新的。nrhdlSSBDetectionFR1Core的模型参考仿真目标是最新的。构建总结已构建2个模型中的0个(2个模型已经更新)构建持续时间:0h 0m 1.6156s ...................来自MATLAB的SS块报告ncelllid2: 0 timmingoffset: 65856 pssCorrelation: 12.8410 pssEnergy: 12.9020 ncelllid1: 83 sssCorrelation: 13.0099 sssEnergy: 13.0102 NCellID: 249 frequencyOffset: 0来自Simulink的SS块报告ncelllid2: 0 timm万博1manbetxingoffset: 65856 pssCorrelation: 12.8441 pssEnergy: 12.9064 ncelllid1: 83 sssCorrelation: 13.0123 sssEnergy: 13.0143 NCellID: 249 frequencyOffset: 0 MATLAB与Simulink在demomode下的相对均方误差:名字relativeMSEdB  _____________________ _____________ {' PSS相关性0 '}-69.651 {PSS阈值的}-68.8 -69.961{“SSS相关性”}{Rx资源网格的}-70.084解码BCH从仿真软件资源网格输出:BCH CRC: 0解码(Rx) MIB NFrame: 0 SubcarrierSpacingC万博1manbetxommon: 30 k_SSB: 0 DMRSTypeAPosition: 3 PDCCHConfigSIB1: 164 CellBarred: 0 IntraFreqReselection:预期(Tx) MIB NFrame: 0 0 SubcarrierSpacingCommon: 30 k_SSB: 0 DMRSTypeAPosition: 3 PDCCHConfigSIB1: 164 CellBarred:0 intrafreqresselection: 0

使用Simuli万博1manbetxnk Logic Analyzer查看探测器的输出,因为它通过这些步骤进行。

  1. 探测器设置状态输出4同时等待指定的定时偏移量并搜索指定的PSS。

  2. 找到PSS。探测器设置状态输出6-探测器正在资源网格内搜索SSS。输出四个解调的OFDM符号,用断言表示gridValid

  3. 确定SSS后,探测器断言reportValid表示所有的PSS和SSS参数,包括NCellID,是有效的。的状态输出更改为8,以指示操作已完成,SSS和单元格ID已准备就绪。

如果在指定的时间偏移处没有找到PSS,则检测器设置状态输出5然后停止搜索。如果检测器无法确定SSS,则设置状态输出7.在本例中,探测器从初始搜索中恢复指定的SSB,即PSS最强的SSB。

HDL代码的生成和实现结果

要生成本示例中的HDL代码,您必须拥有HDL Coder™许可证。使用makehdlmakehdltb的生成HDL代码和一个HDL测试台nrhdlSSBDetection /单边带检测子系统。生成的HDL代码用于Xilinx®Zynq®-7000 ZC706评估板。表格显示了站点和路径资源利用结果。该设计满足时钟频率为230 MHz的时序要求。

资源使用情况_______________ _____片寄存器36531片LUTs 20857 RAMB18 13 RAMB36 0 DSP48 218

相关的话题