低复杂度高吞吐率的5GLDPC编码器和编码方法与流程

文档序号:16885939发布日期:2019-02-15 22:38阅读:432来源:国知局
低复杂度高吞吐率的5G LDPC编码器和编码方法与流程

本发明一般属于无线通信系统的纠错技术领域,尤其涉及3gpp5g标准的低密度奇偶校验码的编码器和编码方法,具体是一种低复杂度高吞吐率的5gldpc编码器和编码方法,用于无线通信系统的纠错技术领域。



背景技术:

通信技术的发展即是追求更加可靠有效的信息传递方案。目前提高信息传递有效性的主流方案即为差错控制技术。在众多差错控制码中,ldpc码以其优异的性能、简洁的结构以及良好的应用前景成为目前研究的热门方向。据相关调查统计,编解码模块大约消耗现代数字芯片三分之一的功耗。因此,提供低复杂度高吞吐率的编码器对于现代通信系统架构的设计是极其重要的。

近期,3gpp5g标准已将qc-ldpc码列为增强移动宽带(embb)场景的数据传输和控制信息传输的信道编译码方案。qc-ldpc码即为奇偶校验矩阵为准循环阵的ldpc码。3gpp5g标准中的奇偶校验矩阵与传统标准的奇偶校验矩阵不同,其种类庞大,矩阵尺寸变化范围广,因此提出一种新型的针对3gpp5g标准的编码器是具有很强的现实意义。编码器fpga设计主要考虑两大方面的资源:一是lut资源,二是bram资源。lut资源与逻辑设计有关,当逻辑比较复杂时,如使用了非常大位宽的数字之间的运算将会消耗大量的lut资源。bram资源则与存储器的消耗有关,当使用了大量的ram、rom或者fifo等资源将会消耗大量的bram资源。传统的ldpc编码器有两种方案。第一种方案,每个奇偶校验矩阵需要存储m个rom。对于基准矩阵一,m=46;对于基准矩阵二,m=42。每个rom存储奇偶校验矩阵中每个循环移位矩阵的第一行,利用二元码乘法的特殊性,即与零相乘为零,与一相乘为一,采用选择器来实现编码。由于3gpp5g标准的奇偶校验矩阵有102种类型,因此采用此算法就需将102种奇偶校验矩阵都存储在rom,将会消耗大量的bram资源。第二种方案即采用rom存储循环移位系数,由于3gpp5g标准中奇偶校验矩阵的循环移位系数只有16种,所以相较于第一种方案将会节省一定的bram资源。实现过程为首先对输入信源进行串并转换,将串行的输入信源比特流存入寄存器中,然后利用桶形移位寄存器对寄存器中的数据进行循环移位等运算,最后再将寄存器中的码字进行并串转换输出编码后的码字流。由于其循环移位大多采用桶形移位寄存器实现,其寄存器位宽与循环移位矩阵的尺寸z值有关,对于3gpp5g标准,z值从2到384不等,为了兼容所有的z值,该桶形移位寄存器的位宽将会取到768。此外,该方案将串行的信源存入寄存器中,再将寄存器中的码字转为串行的码字比特流输出,将会涉及一个大位宽寄存器与单比特数据的串并转换和并串转换的运算,因此其耗费的lut资源十分巨大。



技术实现要素:

针对现有技术的缺点和不足,提出一种复杂度低,吞吐率高,时延小的低复杂度高吞吐率的5gldpc编码器和编码方法。

本发明首先是一种针对3gpp5g标准的ldpc编码器,具有输入信源、编码控制模块、码字拼接模块,从码字拼接模块输出码字,完成编码,其特征在于,还包括有奇偶校验矩阵存储器、校验比特计算存储器、校验比特计算模块、信息比特打孔缓存模块、校验比特打孔缓存模块,其中,奇偶校验矩阵存储器通过编码控制模块输出的控制信号产生循环移位系数,并将循环移位系数送入编码控制模块,用于产生校验比特计算存储器中随机存储ram所需的读地址;输入信源分别送入信息比特打孔缓存模块和校验比特计算存储器中,校验比特计算存储器通过编码控制模块输出的控制信号控制其随机存储ram的循环移位输出,校验比特计算存储器的输出送入校验比特计算模块,用于产生校验比特;校验比特计算模块通过编码控制模块的控制信号将产生的前四组校验向量存储到校验比特计算存储器的随机存储ram中,校验比特计算模块输出的校验比特送入校验比特打孔缓存模块;信息比特打孔缓存模块和校验比特打孔缓存模块通过编码控制模块的控制信号分别对输入信源和校验比特进行缓存和打孔,信息比特打孔模块和校验比特打孔缓存模块的输出送入码字拼接模块,码字拼接模块通过编码控制模块输出的控制信号连续输出码字信号,实现支持3gpp5g标准的所有奇偶校验矩阵的编码功能。

本发明还是一种针对3gpp5g标准的ldpc编码方法,在权利要求1~6的针对3gpp5g标准的ldpc编码器上实现,其特征在于,包括以下步骤:

步骤1,ip核存储信源:将输入信源存储于校验比特计算存储器的真双口ram用于计算校验比特,同时,将输入信源存储于信息比特打孔缓存模块的fifo中用于信息比特的打孔;

步骤2,累加ram循环移位计算校验比特:利用计算存储器中真双口ram对存储向量进行循环移位,在校验比特计算模块对校验比特存储器的输出进行累加计算校验向量,并将校验比特计算模块的输出缓存到校验比特打孔缓存模块的fifo中;

步骤3,信息比特与校验比特的打孔:对信息比特打孔缓存模块中的信息比特进行打孔,并根据码率对校验比特打孔缓存模块中的校验比特进行打孔;

步骤4,信息比特与校验比特的拼接:将信息比特打孔缓存模块和校验比特打孔缓存模块中fifo的输出在码字拼接模块进行拼接,得到编码后的码字。

本发明的有益效果为:

本发明采用四路并行方案计算校验比特,对于3gpp5g标准,四路并行是时间复杂度与空间复杂度考虑下的最优选择,这是因为计算第一组校验向量需要四份资源,计算第二、四组校验向量一份资源,计算第三组校验向量需要两份资源,计算其余校验向量需要一份资源。因此采用先用四份资源计算第一组校验向量,三路并行计算第二三四组校验向量,四路并行计算其余的校验向量是综合考虑时间与空间复杂度的最优选择,在四路并行处理的结构下,本发明相较于传统发明提高了三倍的吞吐率,而且时延也大大降低。

本发明利用随机存储ram的读取代替传统的桶形移位寄存器来实现循环移位,牺牲较少的bram资源来换取lut资源,将原本复杂的大位宽的寄存器循环移位的复杂操作简化为简单的ram读取操作,大大降低了lut资源。对四路并行会耗费大量资源的问题,采用真双口ram的结构减少了近一半的bram资源,并且利用真双口ram的特性存储双份存储向量,简化了编码控制模块产生ram读取地址的复杂度,即不用判决地址越界,直接顺序读取即可实现循环移位。此外,本发明利用blockrom的容量特性,将所有的循环移位系数存储于一个rom中,大大降低了bram资源,因此本发明距离较低的复杂度。

本发明采用统一简化的计算结构,不需对计算不同的校验位作不同处理,直接将ram输出结果累加,校验比特计的算实现十分简单。本发明可以兼容3gpp5g标准的102种奇偶校验矩阵的编码实现,并可以支持任意码率的速率匹配,具有较高的兼容性和可扩展性。

附图说明

图1是本发明的编码器结构示意图。

图2是本发明的编码方法的流程图。

图3是本发明所支持的奇偶校验矩阵的类型参数。

图4是本发明提供的3gpp5g标准下奇偶校验矩阵的组织形式。

图5是本发明提供的奇偶校验矩阵存储器针对16种循环移位系数的奇偶校验矩阵的整体存储形式。

图6是本发明本发明信息存储ram的存储示意图。

图7是本发明本发明计算校验向量的p1结构图。

图8是本发明计算校验向量p2的结构图。

图9是传统编码器和本发明编码器时序仿真对比图。

图10是传统编码器和本发明编码器资源对比图。

具体实施方式

为了清楚简明描述本发明,本发明将结合参考附图详细描述。

实施例1

传统的ldpc编码器主要有两种方案,第一种编码方案利用rom存储所有奇偶校验矩阵中分块矩阵的第一行,由于3gpp5g标准中共有102种奇偶校验矩阵,因此该方案会消耗大量bram资源,第二种编码方案在编码器的循环移位操作一般采用桶形移位寄存器,针对3gpp5g标准,要兼容所有的奇偶校验矩阵,该桶形移位寄存器的位宽要达到768,因此会消耗大量的lut资源。目前,3gppran1会议中已将qc-ldpc码作为增强移动宽(embb)场景的数据传输和控制信息传输的信道编译码方案,对未来通信领域的编译码器的吞吐率,时延,复杂度提出新的要求,现今为止还没有一种针对3gpp5g标准的ldpc编码器,本发明提出了低复杂度高吞吐率的5gldpc编码器和编码方法。

本发明是一种针对3gpp5g标准的ldpc编码器,具有输入信源、编码控制模块、码字拼接模块,从码字拼接模块输出码字,完成编码,参见图1,还包括有奇偶校验矩阵存储器、校验比特计算存储器、校验比特计算模块、信息比特打孔缓存模块、校验比特打孔缓存模块。其中,校验比特计算存储器,设置52个随机存储ram对输入信息向量和4个计算得到的校验向量进行缓存和循环移位;校验比特计算模块,根据输入的信息比特和奇偶校验矩阵计算校验比特;信息比特打孔缓存模块,用于信息比特的打孔和缓存;校验比特打孔缓存模块,用于校验比特的打孔和缓存;码字拼接模块,用于控制打孔后的信息比特和校验比特的连续输出;编码控制模块,用于产生其他模块所需的读写地址和使能信号。奇偶校验矩阵存储器通过编码控制模块输出的控制信号产生循环移位系数,并将循环移位系数送入编码控制模块,用于产生校验比特计算存储器中随机存储ram所需的读地址;输入信源分别送入信息比特打孔缓存模块和校验比特计算存储器中,校验比特计算存储器通过编码控制模块输出的控制信号控制其随机存储ram的循环移位输出,并将校验比特计算存储器的输出送入校验比特计算模块,用于产生校验比特;校验比特计算模块通过编码控制模块的控制信号将产生的前四组校验向量存储到校验比特计算存储器的随机存储ram中,校验比特计算模块输出的校验比特送入校验比特打孔缓存模块;信息比特打孔缓存模块和校验比特打孔缓存模块通过编码控制模块的控制信号分别对输入信源和校验比特进行缓存和打孔,信息比特打孔模块和校验比特打孔缓存模块的输出送入码字拼接模块,码字拼接模块通过编码控制模块输出的控制信号连续输出码字信号,实现支持3gpp5g标准的所有奇偶校验矩阵的编码功能。

本发明提出的编码器,其存储奇偶校验矩阵的方式为存储奇偶校验矩阵的循环移位系数。由于blockrom的特殊性,其存储时若采用单个rom存储比采用多个rom存储占用的bram资源少,因此可以把所有的循环移位系数存储在一个rom中来减少bram资源。循环移位采用真双口ram来实现,可以通过牺牲一定的bram资源来减少lut资源。这些ram以最大的z值384向下兼容,兼容所有的奇偶校验矩阵的编码。此外,本设计采用四路并行计算校验向量,具有时延小,复杂度低,吞吐率高等特点。

实施例2

针对3gpp5g标准的ldpc编码器的总体构成同实施例1,本发明奇偶校验矩阵存储器为一个宽度为1144,深度为240rom,用于储存3gpp5g标准的所有奇偶校验矩阵,包括基准矩阵1和基准矩阵2,其中,每一种基准矩阵包括51种循环移位矩阵,这102种循环移位矩阵的循环移位系数的类型有16种。奇偶校验矩阵存储器的存储规则为每一行存储基准矩阵四行的循环移位系数,其中每一个循环移位系数为11位二进制无符号数,循环移位系数为-1时存储为1536的二进制值,按照基矩阵行的顺序依次存储,各种类型的循环移位系数依次向下存储,特别地,基准矩阵1的循环移位系数存储于基矩阵2的循环移位系数的上方。

由于blockram的特殊存储特性,即若所存储的资源小于一个bockram,所占资源也为一个bockram的资源,因此本发明将3gpp5g标准的16种循环移位系数都存储于一个rom中,可以大大节省bockram资源。

实施例3

针对3gpp5g标准的ldpc编码器的总体构成同实施例1~2,本发明校验比特计算存储器由52个宽度为1,深度为384*5的真双口ram构成,用于存储信息向量和前四组校验向量,并对其进行循环移位;其存储规则为每个ram的存储结构由五部分构成,第奇数个存储向量,第奇数个存储向量的副本,第偶数个存储向量,第偶数个存储向量的副本和零向量,其中存储向量为信息向量的ram为信息存储ram,存储向量为校验向量的ram为校验存储ram,每组存储向量分别存储于相同的4个真双口ram中;其中,信息存储ram的工作数目由基准矩阵的类型决定,基准矩阵1的信息存储ram的工作数目为20,基准矩阵2的信息存储ram的工作数目为44,对于两种基准矩阵,本发明校验存储ram的工作数目都为8。

采用真双口ram的存储方式,一个ram存储两组存储向量,对于四路并行计算校验比特,可以节省近一半的bram资源。编码器的编码运算可以等效为根据奇偶校验矩阵的循环移位系数对存储向量进行循环移位。特别地,如果奇偶校验矩阵的循环移位系数为-1时,运算结果为零向量。采用真双口ram将一组存储向量在真双口ram中存储两份,其存储向量的循环移位即为从初始读地址依次向下读取,无需判断地址越界。由于本发明校验比特计算存储器中的存储向量地址在1536以下存储的全为0,如果奇偶校验矩阵中的系数为-1,则直接从地址为1536的地方直接向下读取,可直接读出全0值,简化了输入向量与循环移位阵的乘积运算,本发明的循环移位运算摒弃了传统的桶型移位寄存器,不涉及大位宽寄存器的运算,可节省大量的lut资源,具有较低的复杂度。

实施例4

针对3gpp5g标准的ldpc编码器的总体构成同实施例1~3,本发明信息比特打孔缓存模块包含1个宽度为1,深度为7680的fifo,通过编码控制模块输出的fifo写使能去除前两组信息向量;本发明校验比特缓存打孔模块包含4个宽度为1,深度为4608的fifo,根据速率匹配的要求,编码控制模块产生相应的fifo写使能去除相应的校验向量。

本发明利用简单的控制fifo的读写使能,可以去除任意校验向量,实现校验比特的打孔,支持任意码率的速率匹配。

实施例5

针对3gpp5g标准的ldpc编码器的总体构成同实施例1~4,本发明码字拼接模块将打孔后的信息向量与部分校验向量进行相应的延迟操作,保证输出码字的连续性。

本发明通过延迟打孔后的信息比特和校验比特,保证输出码字的完整性。

实施例6

针对3gpp5g标准的ldpc编码器的总体构成同实施例1~5,本发明编码控制模块向本编码器的各个模块发送控制信号,主要用于产生奇偶校验矩阵存储器rom的读使能和读地址信号;校验比特计算存储器中真双端口ram的读写使能和读写地址信号;校验比特计算模块的控制计算使能信号;信息比特缓存模块和校验比特打孔缓存模块的读写使能信号;码字拼接模块的输出控制使能信号。其中,各个控制信号是由编码控制模块两个模值不同的计数器产生,计数器a的模值为n,计数器b的模值为z,用于替代一个模值为n*z的计数器,其中n的大小由基矩阵类型决定,对于基准矩阵1,n为68,对于基准矩阵2,n为52,z值的取值范围从2到384不等,当计数器b取到最大值时计数器a加1。

若采用一个模值为n*z的计数器来产生控制信号,不仅需要用到一个位宽很大的寄存器耗费资源,而且对奇偶校验矩阵存储器中rom的读地址信号每过z个时钟加1,若采用该计数器,则设计到一个大位宽的寄存器数模z的操作,可能会不满足时序约束。本发明采用的大小计数器相结合的结构不仅可以节省一定的资源,而且可以提高时钟频率,进而提高吞吐率。

本发明利用随机存储ram的读取代替传统的桶形移位寄存器来实现循环移位,以较少的bram资源来换取lut资源,可将lut资源降低四倍以上;同时采用四路并行处理,提高吞吐量;采用统一简化的计算结构,可以兼容3gpp5g标准的102种奇偶校验矩阵的编码实现,并可以支持任意码率的速率匹配,具有复杂度低、吞吐率高、兼容性好等诸多优点。

实施例7

本发明还是一种针对3gpp5g标准的ldpc编码方法,在上述的针对3gpp5g标准的ldpc编码器上实现,针对3gpp5g标准ldpc编码器的总体构成同实施例1~6,参见图2,包括以下步骤:

步骤1,ip核存储信源:将输入信源存储于校验比特计算存储器的真双口ram用于计算校验比特,同时,将输入信源存储于信息比特打孔缓存模块的fifo中用于信息比特的打孔。

步骤2,累加ram循环移位计算校验比特:利用计算存储器中真双口ram对存储向量进行循环移位,在校验比特计算模块对校验比特存储器的输出进行累加计算校验向量,并将校验比特计算模块的输出缓存到校验比特打孔缓存模块的fifo中。

步骤3,信息比特与校验比特的打孔:对信息比特打孔缓存模块中的信息比特进行打孔,并根据码率对校验比特打孔缓存模块中的校验比特进行打孔。

步骤4,信息比特与校验比特的拼接:将信息比特打孔缓存模块和校验比特打孔缓存模块中fifo的输出在码字拼接模块进行拼接,得到编码后的码字。

传统的编码流程为首先对输入的信息比特进行串并转换,然后利用桶型移位寄存器对并行信号进行循环移位等相关运算来计算校验向量,然后再将校验向量进行并串转换,并与输入的信息比特拼接得到输出的码流。本发明采用ram对输入信源进行存储和循环移位,不仅省去了传统编码器的输入比特流的串并转换和输出码字的并串转换操作,而且本发明利用随机存储ram的读取代替传统的桶形移位寄存器来实现循环移位,牺牲较少的bram资源来换取lut资源,将原本复杂的大位宽的寄存器循环移位的复杂操作简化为简单的ram读取操作,大大降低了lut资源。

实施例8

低复杂度高吞吐率的5gldpc编码器和编码方法同实施例1~7,累加ram循环移位计算校验比特的过程包括以下步骤:

步骤2.1,计算第一组校验向量:根据校验比特计算存储器中工作的信息存储ram的循环移位输出在校验比特计算模块中累加得到第一组校验向量p11。

步骤2.2,存储第一组校验向量:将校验向量p11缓存于校验比特计算模块的临时存储ram中,同时根据随机存储ram的存储规则将p11存储在校验比特计算存储器的校验存储ram中。

步骤2.3,三路并行计算第二三四组校验向量:根据校验比特计算存储器中工作的信息存储ram的循环移位输出和校验比特计算存储器中临时存储ram的输出累加三路并行计算出校验向量p12,p13,p14,并将其按照随机存储ram的存储规则存储于校验存储ram中。

步骤2.4,四路并行计算其余校验向量:将校验比特计算存储器中工作的信息存储ram和校验存储ram的循环移位输出送入到校验比特计算模块,四路并行计算其他所有的校验向量p2。

本发明四路并行方案是时间复杂度与空间复杂度的最优化处理,这是因为计算第一组校验向量需要四份资源,计算第二、四组校验向量一份资源,计算第三组校验向量需要两份资源,计算其余校验向量需要一份资源。因此采用先用四份资源计算第一组校验向量,三路并行计算第二三四组校验向量,四路并行计算其余的校验向量的计算校验比特的是时间与空间复杂度的最优选择。本发明针对3gpp5g标准矩阵的特性,利用最少的资源,将编码器吞吐率提高三倍以上。

下面给出一个更加详尽的例子,对本发明进一步说明。

实施例9

低复杂度高吞吐率的5gldpc编码器和编码方法同实施例1~8,

图1描述了本发明的整体结构。如图1所示,本发明的编码器主要分为以下几部分:1)奇偶校验矩阵存储器2)校验比特计算存储器3)校验比特计算模块4)信息比特打孔缓存模块5)校验比特打孔缓存模块6)码字拼接模块7)编码控制模块。

奇偶校验矩阵存储器用于,设置一个rom用于存储奇偶校验矩阵的循环移位系数。其输出的循环移位系数传递给编码控制器用于计算校验比特计算存储器中ram的读地址。

校验比特计算存储器用于,首先对输入信息向量进行缓存,并根据编码控制模块所传递的ram的读写地址对信息向量进行循环移位。输出的结果传递给校验比特计算模块,校验比特计算模块计算所得的前四组校验向量p1传递给校验比特计算存储模块,校验比特计算存储器将p1以存储向量的存储规则存储到真双口ram中,然后根据编码控制模块所传递的ram的读写地址对所有的存储向量进行循环移位传递给校验比特计算模块用于计算其他的校验向量。

校验比特计算模块用于,根据校验比特计算存储器输出的存储向量的循环移位和编码控制器输出的计算控制使能信号计算校验向量。首先对校验比特计算模块输出的工作的信息存储ram的循环循环移位进行累加计算第一组校验向量p11,并设置一个简单双口ram用于存储校验向量p11,同时,也将p11送入到校验比特计算存储器中。然后根据工作的信息存储ram和简单双口ram中的校验向量p11的循环移位输出的累加计算出校验向量p12,p13,p14,并送入到校验比特计算存储器中。最后根据校验比特计算存储器中工作的ram的循环移位输出的累加和计算出其余校验位,输出到校验比特打孔缓存模块。

信息比特打孔缓存模块,用于信息比特的打孔和缓存,其输入信号为信息向量和编码控制模块输出的fifo的读写使能,输出信号为打孔后的信息比特,输出到码字拼接模块。

校验比特打孔缓存模块,用于校验比特的打孔和缓存。其输入信号为校验向量和编码控制模块输出的fifo的读写使能,输出信号为打孔后的校验比特,输出到码字拼接模块。

码字拼接模块,用于控制打孔后的信息比特和校验比特的连续输出。其输入为信息比特打孔缓存模块和校验比特打孔缓存模块的输出以及编码控制模块输出的控制使能信号,输出信号为编码后的码字比特。

编码控制模块,用于产生其他模块所需的读写和使能信号。包括奇偶校验矩阵存储器rom的读使能和读地址信号,计算存储器中真双端口ram的读写使能和读写地址信号,校验比特计算模块的控制计算使能信号,信息比特缓存模块和校验比特打孔缓存模块的读写使能信号,码字拼接模块的输出控制使能信号。其控制信号产生主要由以下几种编码器输入参数决定,基准矩阵类型,循环移位矩阵大小z,码率等。

图3描述了本发明所支持编码的奇偶校验矩阵的类型参数。本编码器支持的奇偶校验矩阵分为基准矩阵1和基准矩阵2。其中基准矩阵1由46*68个分块矩阵构成,基准矩阵2由42*52个分块矩阵构成。每一个分块矩阵由大小为z*z的循环移位阵构成。对于基准矩阵1和基准矩阵2,每种基准矩阵有8种类型的循环移位系数,如图3第一列所示。因此3gpp5g标准共有16种类型的循环移位系数。每种类型的循环移位系数对应不同的循环移位矩阵的大小,其对应关系如图3所示。如第一种系数类型的循环移位阵对应的循环移位矩阵的大小为2,4,8,16,32,64,128,256。如第二种系数类型的循环移位阵对应的循环移位矩阵的大小为3,6,12,24,48,96,192,384,……。由图3的第二列可以看出循环移位矩阵的大小z取值的从2到384不等。本发明支持3gpp5g标准的102种循环移位矩阵的编码。用bg,i_ls区分不同类型的奇偶校验矩阵。如奇偶校验矩阵bg1,i_ls1代表基准矩阵为1,奇偶校验矩阵的循环移位系数为第一种类型的奇偶校验矩阵。

图4描述了本发明提供的3gpp5g标准下奇偶校验矩阵的组织形式。如图4所示3gpp5g标准的奇偶校验矩阵h可分为两部分h=[hshp]。其中,如图4所示。其中,表示为一个4*k的分块矩阵。为(m-4)*k的分块矩阵。a为一个具有双对角结构的4*4块的可逆分块矩阵。o表示零矩阵,i表示单位阵,对于基准矩阵1,k=10;m=42。对于基准矩阵2,k=22,m=46。因此3gpp5g标准的编码过程可以通过以下公式描述。根据奇偶校验矩阵与编码后的码字其中h矩阵可以写成h=[hshp],故可以得到hss=hpp。在3gpp5g标准的h矩阵中,相应的可以将p分为两部分最终得出如下公式:

因此

图5描述了本发明提供的奇偶校验矩阵存储器针对16种循环移位系数的奇偶校验矩阵的整体存储形式。如图5所示奇偶校验矩阵存储器为一个宽度为1144,深度为240的rom。其循环移位系数的存储规则为:深度为0到14存储bg1,i_ls1的循环移位系数;深度为15到29存储bg1,i_ls2的循环移位系数在编码控制模块中……。以此类推。通过输入的bg和i_ls在控制模块中的选择器选择不同的rom初始地址。如bg1,i_ls1初始地址为0,bg1,i_ls2初始地址为15……。中对于rom的每一行,存储一个宽度为1144的二进制数,将这个数每十一位一组进行划分,可划分为52个数,每个数模z后的值(若值为1536则不需要模z)为校验比特计算存储器中ram的初始读地址。编码控制模块通过该地址计算校验比特计算存储器ram所需的读写地址。

图6是本发明信息存储ram的存储示意图。如图6所示,校验比特计算存储器中包含44个宽度为1深度为384*5的真双端口ram用于存储信息向量。通过编码控制模块输出的ram写使能和写地址将信息向量存储到相应的ram中。本发明校验比特计算存储器的存储规则为每个ram的存储结构由五部分构成,第奇数个存储向量,第奇数个存储向量的副本,第偶数个存储向量,第偶数个存储向量的副本和零向量。信息存储ram的工作数目由基准矩阵的类型决定,其中,基矩阵1的信息存储ram的工作数目为40。基矩阵2的信息存储ram的工作数目为88。具体实施方式为以第一个ram为例对ram存储方式作以下详细说明

s601:创建52个宽度为1深度为384*5的真双端口ram,初始化其值为0。

s602:信息向量s1有效时通过真双端口ram的两个端口a和b将信息向量s1分别写入到地址0~z-1,z~2*z-1中。

s603:信息向量s2有效时通过真双端口ram的两个端口a和b将信息向量s2分别写入到地址2*z~3*z-1,3*z~4*z-1中。

图7是本发明计算校验向量的p1结构图。由上述公式推导可得而p1可以分为四组校验向量p11,p12,p13,p14。相应地,

上述的t1,t2,t3,t4分别为每路计算结果。

以bg1,i_ls=1为例,

其中,p111为校验向量p11向右循环移位一位。

因此,计算校验向量p1可描述为以下步骤:

s701:根据工作的信息存储ram的循环移位输出的累加计算第一个校验向量p11。

s702:将算出的校验向量p11分别缓存于校验比特计算模块的临时缓存ram中,同时以相同的ram存储规则中存储在校验比特计算存储器的校验存储ram中,并输出到校验比特打孔缓存模块。

s703:根据工作的信息存储ram和临时缓存ram的循环移位输出的累加计算出校验向量p12,p13,p14。

s704:将校验向量p11,p12,p13,p14按照信息向量的存储规则存储于剩余的16个校验存储ram中。并输出到校验比特打孔缓存模块。

在s703中,临时缓存ram的循环移位输出为p111,即为临时缓存ram初始读地址为z时的输出。根据上述公式可知p12为第一路并行计算结果与临时缓存ram输出的累加;p13为第三路第四路并行计算结果与临时缓存ram输出的累加;p14为第四路并行计算结果与临时缓存ram输出的累加。因此可以采用三路并行同时计算出校验向量p12,p13,p14。

图8是本发明计算校验向量p2的结构图。如图8所示,本发明为了提高计算速度,采用4路并行的方式。由于每4个ram存储的内容完全相同,而计算p2中的一组校验向量只需要一份ram资源即可,因此校验向量可以每四组同时计算得出,计算速度得到大大提高,相较于传统发明提高了三倍的吞吐率,而且时延也大大降低。

第一组ram计算出校验向量p21,p25……等,第二组ram计算出校验向量p22,p26……等,第三组ram计算出校验向量p23,p27……等,第四组ram计算出校验向量p24,p28……等,所有计算出的校验向量都输出到校验比特打孔缓存模块中进行缓存和打孔。

本发明采用四路并行方案计算校验比特,对于3gpp5g标准,四路并行是时间复杂度与空间复杂度考虑下的最优选择,这是因为计算第一组校验向量需要四份资源,计算第二、四组校验向量一份资源,计算第三组校验向量需要两份资源,计算其余校验向量需要一份资源。因此采用先用四份资源计算第一组校验向量,三路并行计算第二三四组校验向量,四路并行计算其余的校验向量是综合考虑时间与空间复杂度的最优选择。

下面通过仿真及其结果结合实施例,对本发明的技术效果再作说明,

实施例10

低复杂度高吞吐率的5gldpc编码器和编码方法同实施例1~9,在vivado平台上对传统编码器和本编码进行时序仿真。其中,仿真采取150m时钟,基准矩阵选择基准矩阵1,奇偶校验矩阵循环移位阵的大小为24。

如图9所示,传统编码器输入使能为118ns,输出使能时钟为1348ns。本发明输入使能为116ns,输出使能时钟为532ns。在实际开发中,吞吐率的值为码字长度乘上编码器所需始时钟频率除以一次编码所需要的时钟数。本发明采用150m时钟,对于基准矩阵2,当奇偶校验矩阵循环移位阵的大小为24时,码字长度为1200。对于传统编码器,其输入输出使能信号延迟差为6*z+10。计算一次编码所需时间为46*z+10。即为1114,吞吐量为161.6mbps。本发明输入输出时延差为2*z+4,由于采用四路并行,计算一次编码所需时间为15*z+4,即为364。其吞吐量为494.5mbps。

通过上图及其分析可以看出,本发明的具有较低时延,且本发明的吞吐率相较于传统的编码器大约提高三倍多。

实施例11

低复杂度高吞吐率的5gldpc编码器和编码方法同实施例1~10,在vivado平台上对传统编码器和本编码器进行综合和实现。其中,综合时钟频率为150m,开发板选择kcu105。

如图10所示,本发明相对于传统编码器在lut资源上降低了4倍多。但是bram资源仅仅比传统编码器增加了0.25%,这是因为虽然本发明利用随机存储ram的读取代替传统的桶形移位寄存器来实现循环移位,但是本发明也在减少bram资源方面做了部分优化。如利用blockrom的容量特性,将所有的循环移位系数存储于一个rom中,大大降低了bram资源。针对四路并行会耗费大量资源的问题,采用真双口ram的结构减少了近一半的bram资源。因此,本发明具有较低的复杂度。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

综上所述,本发明是一种低复杂度高吞吐率的5gldpc编码器和编码方法。针对现有编码器吞吐率低,资源占用大,且不适用3gpp5g标准奇偶校验矩阵种类庞大,矩阵尺寸变化范围广的特点,本发明提出了一种针对3gpp5g标准的ldpc编码器和编码方法。本发明采用四路并行方案计算校验比特,其吞吐率较传统编码器提高三倍,并且时延也大大降低。而且,本发明利用随机存储ram的读取代替传统的桶形移位寄存器来实现循环移位,将原本复杂的大位宽的寄存器循环移位的复杂操作简化为简单的ram读取操作,大大降低了lut资源;采用真双口ram存储信息减少了近一半的bram资源,且简化了编码控制模块产生ram读取地址的复杂度。此外,本发明利用blockrom的容量特性,将所有的循环移位系数存储于一个rom中,大大降低了bram资源。本发明可以支持3gpp5g标准的102种奇偶校验矩阵的编码实现,并可以支持任意码率的速率匹配,具有较高的兼容性和可扩展性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1