主要内容

LTE HDL SIB1恢复

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

简介

本设计建立在LTE HDL MIB恢复,添加解码SIB1所需的处理。它基于LTE工具箱™Cell搜索,MIB和SIB1恢复(LTE工具箱)

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

SIB1处理阶段总结

SIB1恢复的初始阶段与LTE HDL MIB恢复,由单元搜索、PSS/SSS检测、OFDM解调和MIB解码组成。对接收的数据进行LTE信号检测、定时和频率同步以及OFDM解调,提供接收波形的子帧号、双工模式和小区号信息。接收的数据被缓冲到网格子帧内存缓冲区中,并且,一旦一个完整的子帧已存储在内存中,就计算通道估计。然后,当数据从缓冲区读取时,通道估计可用于均衡网格。当子帧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表示分配给物理下行控制通道(pdch)的OFDM符号的数量。CFI与MIB参数NDLRB、PHICH Duration和Ng一起计算分配给PDCCH的资源元素。这些REs是从网格请求的,并传递给pdch解码器。如果被解码的信号使用时分双工(TDD), PDCCH分配根据所使用的TDD配置而变化。因为此时还不知道TDD配置,所以会尝试影响PDCCH分配的每个TDD配置,直到解码成功。

一旦PDCCH被解码,对PDCCH公共搜索空间进行盲搜索,以找到SIB1的DCI(下行控制信息)消息。此DCI消息具有与SI-RNTI(系统信息无线网络临时标识符)的CRC置乱,并携带有关PDSCH中SIB1消息的分配和编码的信息。搜索操作盲目地尝试从多个候选消息中解码具有多个可能格式的DCI消息。如果正在解码的信号正在使用TDD,并且在搜索过程中没有找到DCI消息,那么将对任何未尝试的TDD配置重新尝试PDCCH解码。

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

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

体系结构和配置

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

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

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

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

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

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

  • 控制子系统跟踪解码器的状态,并使用已完成的、有效的、检测到的和错误信号(视情况而设)以正确的顺序启用解码和索引子系统。

  • 选择在软件上实现DCI资源分配函数(ltehdlDCIResourceAllocation),作为硬件/软件联合设计实现的一部分。选择此函数的原因是计算频率低,且复杂的循环行为使其在硬件上实现效率低下。

实例模型结构

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

SW DCI资源分配

SW DCI资源分配类的实例ltehdlDCIResourceAllocation模型。这里使用总线来促进与这个子系统之间的信号路由。

dciRecourceAllocation

ltehdlDCIResourceAllocation模型引用对DCI消息位进行解析,生成DCI参数,然后使用DCI参数进行DCI物理资源块(Physical Resource Block, PRB)分配计算。这些操作相当于LTE工具箱的功能lteDCI而且lteDCIResourceAllocation.由于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_selectorMATLAB函数块根据读使能信号在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工具箱的功能ltePDCCHIndices而且ltePDCCHDeinterleave.PDCCH跨越1到4个OFDM符号,由从PCFICH解码的值定义。PDCCH所跨越的子载波数量取决于NDLRB。因此,从网格中读取的符号数量是不同的,这由nSymbols输出。PDCCH占用CFI指示的所有OFDM符号,但必须排除已经分配给其他通道的任何位置,如PCFICH和PHICH。函数执行主要索引计算PDCCH_Index_Gen子系统。它计算PCFICH和PHICH的位置,然后从PDCCH所占的索引范围中排除这些位置。在TDD模式下,PHICH占用的符号数量根据TDD配置而变化。对于不同的TDD配置,mi有三个可能的值(0、1和2),如[1],它是分配给PHICH的区域大小的乘数。当双工模式为FDD时,mi始终为1。PDCCH在四胞胎(4个符号组)和符号方面的大小由Mquad而且Msymb输出。

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

PDSCH索引

PDSCH索引根据物理资源块(PRB)集计算PDSCH在网格内存中的位置,该物理资源块(PRB)集从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工具箱功能ltePBCHDecode而且lteMIB.该块的输出提供了为后续通道定位和解码通道信息所需的信息。

CFI译码器

CFI译码器使用ltehdlPCFICHDecoder参考模型。它执行的PCFICH和CFI解码操作相当于ltePCFICHDecode而且lteCFIDecode功能在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)大1PDCCH索引而且PDSCH索引子系统。

PDCCHDecodeSearch

PDCCHDecodeSearch子系统使用ltehdlPDCCHDecode参考模型。它执行PDCCH解码、PDCCH盲搜索和DCI解码操作,以定位和解码PDCCH中的SIB1 DCI消息。这大致相当于LTE工具箱的功能ltePDCCHDecodeltePDCCHSearch,lteDCI(这是用在ltePDCCHSearch)进行了一些修改。由于SIB1 DCI消息总是在PDCCH的公共搜索空间内,因此只有这些符号从网格缓冲区中检索,如上所述PDCCH索引.SIB1 DCI消息总是DCI格式1A或1C。它在使用PDCCH聚合级别4或8的PDCCH公共搜索空间中找到,DCI消息的CRC使用系统信息无线网络临时标识符(SI-RNTI)进行置乱。与LTE工具箱相比,使用这些信息可以简化搜索ltePDCCHSearch实现。有关LTE工具箱PDCCH搜索过程的更多信息,请参见PDCCH盲搜索与DCI解码(LTE工具箱)的例子。的PDCCHSearch子系统盲目地尝试解码来自公共搜索空间内所有可能候选项和组合的DCI消息,直到解码出一个具有正确CRC掩码的DCI消息,表明已经找到了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参考模型。它相当于ltePDSCHDecode而且lteDLSCHDecode功能在LTE工具箱。的QPSKDemod而且PDSCHPRBS对传入信号进行解调,生成解调序列。然后将解乱的位传递给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接收器状态信息图窗口显示文本消息,指示解码器的当前状态。控件跟踪系统的状态控制子系统,decoderState信号向上传递到模型的顶层,其中statePrintMATLAB函数块生成文本信息消息。

模型顶层的显示块显示由每个通道处理阶段解码的一些关键参数。一些关键的控制信号,从内部控制子系统,都被记录下来,以便用逻辑分析器查看。

HDL代码生成与验证

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

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

资源使用情况_______________ ______ Slice寄存器104299 Slice LUTs 64678 RAMB18 55 RAMB36 191 DSP48 138

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

限制

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

参考文献

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

相关的话题

Baidu
map