主要内容

LTE HDL SIB1恢复

这个例子展示了如何设计一个HDL优化的接收器,可以从LTE下行信号中恢复第一个系统信息块(SIB1)。

介绍

这个设计是建立在LTE HDL MIB恢复,添加解码SIB1所需的处理。它基于LTE工具箱™Cell Search, MIB and SIB1 Recovery(LTE工具箱)

为了解码SIB1消息,需要在对MIB(主信息块)进行解码后进行额外的操作。该设计增加了定位和解码PCFICH(物理控制格式指示通道)、PDCCH(物理下行链路控制通道)和PDSCH(物理下行链路共享通道)的功能。中使用的可扩展架构LTE HDL MIB恢复允许扩展设计,同时重用MIB恢复实现的核心功能。该设计可在SoC平台上通过软硬件协同设计和硬件支持包实现。金宝app看到在soc上部署LTE HDL参考应用

SIB1处理阶段总结

SIB1回收的初始阶段与初始阶段相同LTE HDL MIB恢复,包括cell search、PSS/SSS检测、OFDM解调和MIB解码。对接收数据进行LTE信号检测、定时频率同步、OFDM解调,提供接收波形的子帧号、双工模式、cell ID等信息。接收到的数据被缓冲到网格子帧内存缓冲区中,一旦完整的子帧被存储在内存中,信道估计就被计算出来。当数据从缓冲区读出时,可以使用信道估计来均衡网格。当0子帧存储在缓冲区中,并计算出信道估计时,可以从网格中检索物理广播信道(PBCH),对其进行均衡和解码,从而恢复MIB消息。

MIB消息中包含了大量的参数,用于对后续通道进行解码。其中一个参数是系统帧号(SFN)。需要SFN来确定SIB1消息的位置,因为SIB1消息只以偶数帧发送(国防部(SFN, 2) = 0)。因此,如果MIB消息在奇数帧内被解码,接收方必须等到下一个偶数帧后才尝试解码SIB1。当接收端已经解码了MIB消息,并且收到了偶数帧的子帧5时,可以尝试对SIB1进行解码。

该MIB消息还提供了NDLRB系统参数,表示发送方使用的下行资源块数。对于不同的NDLRB值(不同的带宽),活动子载波的数量是不同的。因此,NDLRB会影响在PBCH之后处理的每个通道的资源网格内存的索引。

NDLRB首先用于计算分配给物理控制格式指示符通道(PCFICH)的资源元素(Resource Elements, REs),并且可以从资源网格中检索相应的符号。然后,PCFICH Decoder使用从资源网格检索的符号尝试解码CFI数据。

CFI表示分配给PDCCH (Physical Downlink Control Channel)的OFDM符号数。CFI与MIB参数NDLRB、PHICH Duration和Ng一起用来计算哪些资源元素(Resource Elements, REs)被分配给PDCCH。从网格中请求这些REs,并传递给PDCCH解码器。如果正在解码的信号使用的是TDD (Time Division Duplexing),则根据TDD的配置,PDCCH的分配会有所不同。因为此时还不知道TDD配置,所以会尝试影响PDCCH分配的每个TDD配置,直到成功解码为止。

一旦PDCCH被解码,就对PDCCH公共搜索空间进行盲搜索,找到SIB1的DCI (Downlink Control Information)消息。该DCI消息具有与SI-RNTI(系统信息无线网络临时标识符)的CRC加密,并携带关于在PDSCH中SIB1消息的分配和编码的信息。搜索操作盲目地尝试从许多候选的DCI消息中使用许多可能的格式进行解码。如果正在解码的信号正在使用TDD,并且在搜索期间没有找到DCI消息,则将对任何未尝试的TDD配置重新尝试PDCCH解码。

一旦定位,就解析DCI消息,给出PDSCH资源分配计算所需的DCI分配类型、RIV和Gap参数。然后可以计算在PDSCH中分配给SIB1消息的物理资源块(PRBs)。解析DCI消息还提供了解码PDSCH所需的传输块长度和冗余版本的信息。

使用PRB分配信息,可以计算在PDSCH中分配给SIB1消息的REs。然后,PDSCH解码处理从资源网格检索的数据。如果解码是无错误的,则返回SIB1消息位。

体系结构和配置

该体系结构被设计为可扩展的,允许添加、删除通道处理子系统,或交换替代实现。这种可扩展性可以通过添加MIB设计来生成SIB1设计来说明。核心功能是相同的,只是为解码SIB1所需的三个额外通道添加了额外的处理和控制。

为了允许重用和共享模型的主要子系统,示例使用模型引用.模型引用允许对每个子系统进行单元测试,并允许在多个不同的示例中实例化模型。LTE HDL Cell Search、LTE HDL MIB Recovery和LTE HDL SIB1 Recovery共享参考模型。

  • 小区搜索、同步和OFDM解调执行检测下行信号和同步的初始阶段。未均衡的网格数据将以流形式输出,在网格内存中进行缓冲,以便进一步处理。

  • 网格存储器、信道估计和信道均衡的中心资源被组合在一起,通过一个接口,可以通过向网格提供一个地址来请求数据,并输出均衡的符号以供解码阶段处理。

  • 索引子系统通过提供子载波号、OFDM符号号和读使能标志从网格请求数据。这些信号在总线中分组,以便在Simulink模型中更容易路由。金宝app一次只能有一个索引子系统访问网格。控制器用于避免争用,并在正确的时间启用索引子系统。每个索引子系统都有一个相应的解码子系统,该子系统试图解码索引子系统从网格请求的数据。

  • 解码子系统从网格接收到均衡的复杂符号,当传入的数据是有效的时,会有一个信号指示。在开始处理输入处的有效样本之前,必须启用解码子系统,并且在任何时间点,预计只有一个解码子系统将启用。SIB1解码器的中央控制器在适当的时候启用解码子系统。

  • 控制子系统跟踪解码器的状态,并为各个处理阶段使用已完成、有效、检测到和错误信号(视情况而定),使解码和索引子系统按照正确的顺序进行。

  • DCI资源分配功能(ltehdlDCIResourceAllocation)被选择用于在软件上实现,作为硬件/软件协同设计实现的一部分。选择这个函数是因为计算频率低,而且复杂的循环行为使它在硬件中实现效率低下。

实例模型结构

最顶层的ltehdlSIB1Recovery模型如下图所示的高密度脂蛋白LTE SIB1子系统支持HDL代码金宝app生成。的SW DCI资源分配子系统表示为硬件/软件协同设计实现而划分的设计中的软件部分。的stateViewerMATLAB函数块基于文本信息生成消息decoderState信号从高密度脂蛋白LTE SIB1,并将此信息打印到Simulink诊断查看器和MATLAB图形窗口。金宝app的stateViewer也产生了stopSimulation信号,当解码器到达终端状态时停止模拟,如文本信息消息所示。

SW DCI资源分配

SW DCI资源分配的实例ltehdlDCIResourceAllocation模型。这里使用总线来方便进出这个子系统的信号路由。

dciRecourceAllocation

ltehdlDCIResourceAllocation模型引用对DCI消息位进行解析,生成DCI参数,然后使用DCI参数进行DCI物理资源块(PRB)分配计算。这些操作相当于LTE工具箱功能lteDCIlteDCIResourceAllocation.由于PRB分配计算的复杂性,本设计选择在软件中实现这一部分,因为HDL实现需要大量的硬件资源。

高密度脂蛋白LTE SIB1

高密度脂蛋白LTE SIB1子系统包含2个子系统。的下行同步解调的实例ltehdlDownlinkSyncDemod模型,该模型在LTE HDL细胞搜索的例子。它执行小区搜索,定时和频率同步,OFDM解调。的HDL MIB + SIB1解码器子系统执行解码MIB和SIB1消息所需的信道解码操作,如下所述。

HDL MIB + SIB1解码器

HDL MIB + SIB1解码器结构如下所示。接收OFDM解调后的网格数据下行同步解调并将数据存储在子帧缓冲区中,资源网格内存.然后计算接收数据的信道估计信道估计子系统中读取数据时使用该方法使数据相等资源网格内存.然后执行一系列的信道解码步骤来解码SIB1消息。在这个层次层中总共有10个参考模型:4个信道译码器,4个信道索引生成子系统,以及2个执行资源网格缓冲、信道估计和均衡的子系统。

PBCH索引资源网格内存信道均衡MIB译码器所有实例化在MIB示例中使用的相同的引用模型。有关这些参考模型的操作的更详细信息,请参阅LTE HDL MIB恢复

索引子系统

有4个索引子系统,对应于接收SIB1消息需要解码的4个通道:PBCH、PCFICH、PDCCH和PDSCH。每个索引子系统都有一个相应的解码子系统。索引子系统使用一个地址总线,由与子载波号相对应的读地址、与OFDM符号相对应的读组和一个读使能信号组成,以控制对网格的访问。的read_selector函数块根据读使能信号在4个索引子系统的输出之间进行选择。假设在任何时间点只有一个索引子系统尝试从网格中读取控制子系统负责在适当的时候启用索引子系统。

PBCH索引

PBCH索引块的引用ltehdlPBCHIndexing模型。它为PBCH执行索引生成,等价于LTE工具箱功能ltePBCHIndices

PCFICH索引

PCFICH索引块的引用ltehdlPCFICHIndexing模型。它生成从网格内存中读取PCFICH符号所需的索引,相当于LTE工具箱功能ltePCFICHIndices.PCFICH总是位于OFDM的第一个符号(网格缓冲区的第一个存储组),长度为16个符号,分为4组4个符号。这4组符号分布在占用带宽的四分之一处,其偏移量取决于Cell ID。

PDCCH索引

PDCCH索引子系统生成从网格内存中读取PDCCH符号所需的索引。它引用的ltehdlPDCCHIndexing型号,相当于LTE工具箱功能ltePDCCHIndicesltePDCCHDeinterleave.PDCCH跨越1到4个OFDM符号,由从PCFICH解码的值定义。PDCCH跨越的子携带者的数量取决于NDLRB。因此,从网格中读出的符号的数量是不同的,用符号表示nSymbols输出。PDCCH占用CFI指示的所有OFDM符号,但必须排除已经分配给其他信道的任何位置,如PCFICH和PHICH。方法执行主索引计算PDCCH_Index_Gen子系统。它计算PCFICH和PHICH的位置,然后从PDCCH所占用的索引范围中排除这些位置。在TDD模式下,根据TDD的配置,PHICH占用的符号数量会有所不同。对于不同的TDD配置,mi(0,1,和2)有三个可能的值,在[的6.9节中指定1,这是分配给PHICH的区域规模的一个乘数。双工模式为FDD时,mi始终为1。PDCCH的大小以四联体(4个符号组)和符号的形式给出MquadMsymb输出。

ramAddrCalclk_ram子系统被用来在四联体上执行循环移位cellID.由于SIB1的DCI消息总是在PDCCH的公共搜索空间中传输,因此可以通过只检索公共搜索空间中的符号来减少从网格内存中读取的符号数量。为了做到这一点,执行PDCCH去交错操作,并从网格请求前576个符号。如果在PDCCH中有少于576个符号,那么所有的符号将被请求。在LTE工具箱中,PDCCH去交错操作是作为ltePDCCHDecode函数。然而,由于该函数只是重新排序数据,而不更改数据内容,因此可以将此处理阶段移到接收端的较早位置。通过移动去交织器来作用于索引而不是数据,并在去交织后减少到公共搜索空间,减少了去交织器和PDCCH译码器的内存需求。

PDSCH索引

PDSCH索引基于物理资源块(PRB)集计算PDSCH在网格内存中的位置,该物理资源块从DCI资源分配计算中传递给该块SW DCI资源分配子系统。的PDSCH索引的实例是ltehdlPDSCHIndexing模型,相当于LTE工具箱功能ltePDSCHIndices.PDSCH占用PRB集合中所有以前没有分配给其他信道的符号。因此,PDSCH索引函数必须排除分配给PSS和SSS的任何位置,以及所有的控制信道区域(即由PCFICH表示的OFDM符号)。由于SIB1消息总是出现在偶数帧的子帧5中,所以不需要排除PBCH位置,因为这些位置只出现在子帧0中。

译码器子系统

有4个解码器子系统,每个子系统都有相应的索引子系统。当启用时,解码器子系统处理从信道均衡子系统,执行解码信道所需的操作。的控制子系统在适当的时候启用每个解码器子系统。每个解码器子系统的输出用于定位和解码链中的后续通道。为了确保这些信息在需要时可用,每个解码器子系统都在输出中注册已解码的信息,以便以后访问。属性清除输出寄存器clearOutputReg输入在每个解码器。

MIB译码器

MIB译码器使用相同的参考模型,ltehdlPBCHDecoder,在LTE HDL MIB示例中使用。它执行PBCH和BCH解码操作,相当于LTE工具箱功能ltePBCHDecodelteMIB.这个块的输出提供了为后续通道定位和解码通道信息所需的信息。

CFI译码器

CFI译码器使用ltehdlPCFICHDecoder参考模型。它执行PCFICH和CFI解码操作相当于ltePCFICHDecodelteCFIDecode功能在LTE工具箱。来自信道均衡这16个符号是要求的吗PCFICH索引.的PCFICH译码器子系统对16个PCFICH符号进行解编和QPSK解调,产生32个软位。的CFI提取然后将软位与三个CFI码字相关联。相关性最强的码字给出CFI值为1、2或3。CFI值表示PCFICH所占用的OFDM符号数。如果NDLRB大于10,OFDM符号的数量等于CFI值(1、2或3)。如果NDLRB小于或等于10,OFDM符号的数量是一个大于CFI值(2、3、4),使用这些信息PDCCH索引PDSCH索引子系统。

PDCCHDecodeSearch

PDCCHDecodeSearch子系统使用ltehdlPDCCHDecode参考模型。它执行在PDCCH中定位和解码SIB1 DCI消息所需的PDCCH解码、盲PDCCH搜索和DCI解码操作。这大致相当于LTE工具箱功能ltePDCCHDecodeltePDCCHSearch,lteDCI(在内部使用ltePDCCHSearch),稍作修改。由于SIB1 DCI消息总是在PDCCH的公共搜索空间内,因此只能从网格缓冲区检索这些符号,如上所述PDCCH索引.SIB1的DCI消息总是DCI格式1A或1C。在PDCCH公共搜索空间中使用PDCCH聚合级别4或8,并使用系统信息无线网络临时标识符(SI-RNTI)对DCI消息的CRC进行置乱。与LTE工具箱相比,使用这些信息可以简化搜索ltePDCCHSearch实现。有关LTE工具箱PDCCH搜索过程的更多信息,请参见PDCCH盲搜索和DCI解码(LTE工具箱)的例子。的PDCCHSearch子系统盲目尝试解码DCI消息从所有可能的候选人和组合常见的搜索空间内,直到DCI与正确的CRC面具是解码信息,表明SIB1 DCI消息被发现,或所有候选人都未遂,没有SIB1 DCI消息被发现。当找到一个SIB1 DCI消息时,搜索停止,并从块返回解码后的DCI消息的信息。然后将该信息传递给SW DCI资源分配子系统来解析DCI消息,并确定PDSCH中的哪些资源已分配给SIB1消息。

解调/ descramble子系统进行解码和QPSK解调,同时PDCCHSearch子系统执行下面详细描述的搜索过程。

PDCCHSearch

PDCCHSearch子系统中有许多处理阶段,这些处理阶段结合起来执行PDCCH搜索操作。的pdcchSearchControl函数块将传入的数据写入PDCCH RAM,然后控制搜索过程,遍历DCI格式、PDCCH格式和PDCCH候选格式的不同组合。的dciControl函数块生成的读地址PDCCH RAM给出了PDCCH候选编号和大小。的pdcchRateRecoveryMATLAB函数块相当于LTE工具箱功能lteRateRecoverConvolutional,对卷积译码器进行去交错和速率恢复。的dciDecode子系统对恢复比特率执行卷积解码,然后用SI-RNTI检查消息CRC,以确定是否找到了SIB1 DCI消息。如果成功解码,DCI消息位将被缓冲并输出,并停止搜索过程。如果已经检查了所有可能的候选项,但没有找到SIB1的DCI消息,则PDCCH搜索过程也将停止错误输出被断言。

PDSCHDecode

PDSCHDecode子系统使用ltehdlPDSCHDecode参考模型。它等于ltePDSCHDecodelteDLSCHDecode功能在LTE工具箱。的QPSKDemodPDSCHPRBS解调传入信号并生成解码序列。然后将解码位传递给TurboRateRecovery它执行反交错和传入比特的速率恢复。的SampleControlBusGeneration子系统产生与控制器接口所需的控制信号LTE Turbo译码器LTE CRC译码器它解码信号。的LTE CRC译码器表示CRC解码的状态,断言犯错信号,连同结束信号的ctrl总线输出,如果已经检测到错误。如果CRC没有检测到任何错误,则SIB1消息已成功解码,并且sib1_bits从街区流出,用bitsValid指示当sib1_bits是有效的。一旦检测到SIB1消息,从PDSCHDecode,模拟停止。没有尝试结合DLSCH的不同冗余版本(rv)。

控制子系统

控制子系统通过不同的通道处理阶段跟踪解码器的状态,依次启用每个索引和解码子系统。子帧号和帧号被作为输入,允许frameCount函数跟踪系统框架号(SFN)。子帧和帧号用于确定信道何时可用于解码(例如,SIB1仅在偶数帧的子帧5上传输)。的decoderStateMATLAB函数块实现了一个简单的状态机,跟踪哪个处理阶段已经完成,以及下一个阶段将启用。解码器的状态由控制器输出,并由stateViewerMATLAB函数块在模型的顶层,以产生人类可读的消息。

当接收到的信号处于TDD模式时控制子系统管理对每个TDD配置的盲搜索,运行PDCCH索引PDCCH解码这三种可能的子系统心肌梗死值。不同的心肌梗死值{0,1,2}导致不同的PHICH分配,因此不同的PDCCH分配。计算PDCCH分配,并尝试为每个mi值进行PDCCH解码,直到找到一个SIB1 DCI消息,或耗尽所有的可能性。

并显示结果

仿真模型被配置为在以下几种条件下停止仿真:

  • 如果单元格搜索没有找到任何单元格。

  • 如果MIB检测错误。

  • 如果在PDCCH搜索过程中没有检测到SI-RNTI DCI消息。

  • 在PDSCH解码的最后尝试。

如果成功解码了SIB1消息,则从sib1Bits港口,sib1BitsValid端口,指示输出何时有效。数据被缓冲并发送到MATLAB工作区。

LTE HDL SIB1 Receiver State Information图形窗口显示文本消息,指示解码器的当前状态。系统的状态由控制子系统,decoderState信号传递到模型的顶层statePrintMATLAB函数块生成文本信息消息。

模型顶层的显示块显示由每个信道处理阶段解码的一些关键参数。多个按键控制信号,由内而外控制子系统的日志,以便使用逻辑分析器查看。

HDL代码生成与验证

要为本示例生成HDL代码,您必须拥有HDL Coder™许可证。注意,由于创建测试向量所需的模拟时间很长,因此本例的测试台生成需要很长时间。

的HDL代码高密度脂蛋白LTE SIB1子系统是使用Xilinx®Zynq®-7000 ZC706评估板的HDL Workflow Advisor IP Core Generation工作流生成的,然后进行合成。岗位和路线资源利用结果如下图所示。该设计满足了目标时钟频率150MHz的定时要求。使用工作流顾问IP核生成工作流允许输入和输出端口映射到AXI4-Lite寄存器,减少所需的FPGA IO引脚的数量,并允许在硬件和软件之间分割设计。

资源使用_______________ ______ Slice register 128726 Slice LUTs 70032 RAMB18 52 RAMB36 193 DSP48 156

有关更多信息,请参见基于硬件的无线通信算法原型

限制

stateViewer在快速加速器模式下不支持MATLAB函数块进行仿真。金宝app如果需要快速加速器模拟,可以删除或注释掉该块。

针对LTE信号连续的情况,优化了频率估计算法。算法性能会随着信号在时域的稀疏性而降低,例如在下行链路比较低的TDD模式配置下。这种退化会降低后续处理阶段检测和解码信号的能力。

参考文献

1.3GPP TS 36.211,“物理通道与调制”

相关的话题