CN100566183C - 分层准循环扩展构造的ldpc码的编码器 - Google Patents

分层准循环扩展构造的ldpc码的编码器 Download PDF

Info

Publication number
CN100566183C
CN100566183C CNB2007100456230A CN200710045623A CN100566183C CN 100566183 C CN100566183 C CN 100566183C CN B2007100456230 A CNB2007100456230 A CN B2007100456230A CN 200710045623 A CN200710045623 A CN 200710045623A CN 100566183 C CN100566183 C CN 100566183C
Authority
CN
China
Prior art keywords
vector
cyclic shift
stage
matrix
piecemeal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2007100456230A
Other languages
English (en)
Other versions
CN101119118A (zh
Inventor
张晨
徐友云
俞晖
甘小莺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CNB2007100456230A priority Critical patent/CN100566183C/zh
Publication of CN101119118A publication Critical patent/CN101119118A/zh
Application granted granted Critical
Publication of CN100566183C publication Critical patent/CN100566183C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种分层准循环扩展构造的LDPC码的编码器,包括:输入缓存、第一处理-缓存流水级、第二处理流水级、第三缓存流水级、第四处理-缓存流水级、输出级,根据校验矩阵H是准循环移位阵拼接的特点,简化了RU编码方法的流水线结构,使流水线级数从六级降到了四级,缩短了编码时延。同时根据主要功能模块的实现特点,降低了最大流水线时延,提高了编码吞吐量。随后依据准循环移位阵运算的特点,减少了编码器ROM的资源消耗,用准循环移位单位阵乘向量取代了RU方法中的稀疏矩阵乘向量,用准循环移位阵乘向量取代了RU方法中的非稀疏矩阵乘向量。为了适应可变码长、可变码率的要求,级间的乒乓RAM可预留较大存储空间。

Description

分层准循环扩展构造的LDPC码的编码器
技术领域
本发明涉及一种数据通信技术领域的编码器,具体涉及一种分层准循环扩展构造的LDPC码的编码器。
背景技术
LDPC码(低密度校验码)是1963年Gallager首先提出的一种编码技术,它可用作多种通信系统或信息存贮系统的纠错/检错技术,由于它具有逼近信道极限的性能,成为近十年来最受关注的一项热门技术。常用的LDPC码编码方法有RU方法和基于生成矩阵的方法。RU方法实现简单,但编码吞吐量低;基于生成矩阵的方法吞吐量高,但需要占用较多的资源。
随着对LDPC码研究的深入,分层准循环LDPC码渐渐进入人们的视线。这种码的层的概念是指校验矩阵H的相邻行组成的子矩阵的最大列重为1。若校验矩阵能分割为具有相同大小的几层,则对应的LDPC码称为分层LDPC码。若一个方阵可由单位矩阵经循环右移n位后得到,那么这个矩阵称为循环移位单位阵(CS-Identity);一般的,若一个方阵除去第一行后的每一行都可由该方阵上一行经循环右移一位后得到,并且第一行是最后一行经循环右移一位后得到,那么这个方阵称为循环移位阵(CS-Matrix)。进一步,如果将p个大小相同的循环移位单位阵和p(p-1)个相同大小的零阵拼接得到方阵,并且使得该方阵的行重、列重均为一,那么这个方阵称为准循环移位单位阵(QC-Identity);如果将p2个大小相同的循环移位阵拼接得到方阵,那么这个方阵称为准循环移位阵(QC-Matrix)。显然,准循环移位单位阵是一种特殊的准循环移位阵。准循环移位阵的加、减、乘、求逆运算(如果存在)所得仍是准循环移位阵。若可将分层LDPC码中的每一层分为准循环移位单位阵的拼接,则对应的LDPC码称为分层准循环LDPC码(Layered QC-LDPC Code)。分层准循环LDPC码的出现不仅使提高吞吐量成为可能,而且还能减少编码复杂度。
经过对现有技术文献检索发现,D.Lee,W.Luk,C.Wang和C.Jones在《FieldProgrammable Custom Computing Machines》,2004,FCCM 2004,pp.101-111上提出的“Aflexible hardware encoder for low-density parity-check codes”(低密度校验码的灵活编码器实现)给出了一种目前普遍采用的基于RU方法的LDPC编码器,该编码器成功地将LDPC编码复杂度降低到近似与码长成正比,并且在编码器中引入了流水线结构,将编码过程并行化,一定程度上能够增加编码器的吞吐量。但是该编码器每一级流水线消耗的时钟数差距极大,抑制了吞吐量的进一步提升,并且它所涉及的串行的前项替换模块进一步限制了吞吐量的提高。由于结构不够灵活,多码长、多码率LDPC码的编码器实现还是比较困难。
发明内容
本发明针对现有技术的不足,提供一种支持可变码长、可变码率的分层准循环LDPC码的编码器,它是一种适用于基于二次扩展构造的LDPC码的编码器,是对传统RU方法编码器的一种改进发明,可以得到比RU方法编码器更大的吞吐量。
本发明是通过以下技术方案实现的:
本发明包括:输入缓存,第一处理-缓存流水级,第二处理流水级,第三缓存流水级,第四处理-缓存流水级,输出级。其中:所述输入缓存将信息比特s按照校验矩阵H中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,另外使用6块深度为p×q、位宽为的dc-dv的RAM对信息比特s进行FIFO操作以确保s与相应校验比特p1、p2同步传递给输出级;所述第一处理-缓存流水级,首先同时分块读取输入缓存各乒乓RAM的信息比特,然后同时分块执行准循环移位单位阵乘向量运算(CSIMV),分块同时更新T-1AsT,CsT,并将其按照H矩阵中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,另外使用4块深度为p×q、位宽为1的RAM对T-1AsT进行FIFO操作以确保T-1AsT与相应的校验比特p1同步传递给第四处理-缓存流水级;所述第二处理流水级,首先同时分块读取第一处理-缓存流水级各乒乓RAM中T-1AsT,CsT的值,接着同时分块执行准循环移位单位阵乘向量运算,然后同时分块执行向量加法运算(VA),最后同时分块执行准循环移位阵乘向量运算(CSDMV),分块同时更新p1并输出给第三缓存流水级;所述第三缓存流水级将p1按照H矩阵中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,另外使用3块深度为p×q、位宽为2的RAM对校验比特p1进行FIFO操作以确保p1与相应的信息比特s、校验比特p2同步传递给输出级;所述第四处理-缓存流水级,首先同时分块读取第三缓存流水级各乒乓RAM中的p1和第一处理-流水级的乒乓RAM中T-1AsT的值,然后同时分块执行准循环移位单位阵乘向量运算,最后执行向量加法运算,更新p2并将其存储在深度为p×q、位宽为1的乒乓RAM中;所述输出级同时分块读取输入缓存的乒乓RAM中的s、第三缓存流水级的乒乓RAM中的p1以及第四处理-流水级的乒乓RAM中p2的值,并将其输出给信道。
所述的校验矩阵H,行重为dc,列重为dv,则其可以按行分为dv层,每一层的列重均为1。也可以将其按RU编码方法分成A、B、T、C、D、E六个子矩阵,其中A由1×(dc-dv)的块组成,B由1×(dv-1)的块组成,T只由一块组成,C由(dv-1)×(dc-dv)的块组成,D由(dv-1)×(dv-1)的块组成,E由(dv-1)×1的块组成。每个循环移位单位阵都是q×q的,则H矩阵每一块均由p2个这样的循环移位单位阵拼接而成。定义Φ=-ET-1B+D。
所述的信息比特s、校验比特p1和p2,共同组成编码后码字x=(s,p1,p2),其中s对应C所在的列,p1和p2分别对应D和E所在的列。
所述的输入缓存,使用6块深度为p×q、位宽为的dc-dv的RAM对信息比特s进行FIFO操作以确保s与相应校验比特p1、p2同步传递给输出级。除此以外输入缓存将信息比特s按照H矩阵中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,每dc-dv对这样的乒乓RAM分块联合存储一份信息比特s的内容。一共有dv+1份信息比特s被存储在输入缓存中。
所述的第一处理-缓存流水级,使用dv个ROM存储矩阵C和T-1A中循环移位单位阵的移位因子,每个ROM存储T-1A或者C的一层中的所有移位因子,每一层中在同一行上的循环移位单位阵的移位因子被组合后存储在ROM的同一个地址。第一处理-缓存流水级使能时同时从dv个ROM中顺次读出移位因子,将这些移位因子作为读地址分块循环读取输入缓存中的dv份信息比特s,即同时分块执行准循环移位单位阵乘向量运算(CSIMV),分块同时更新T-1AsT,CsT,将T-1AsT按照H矩阵中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,将CsT按照H矩阵中块的大小p×q进行分割,分别存储在dv-1对深度为p×q、位宽为1的乒乓RAM中,另外使用4块深度为p×q、位宽为1的RAM对T-1AsT进行FIFO操作以确保T-1AsT与相应的校验比特p1同步传递给第四处理-缓存流水级。
所述的第二处理流水级,使用dv-1个ROM存储矩阵E中循环移位单位阵的移位因子,每个ROM顺序存储E的一层中的所有移位因子。同时使用1个ROM存储矩阵Φ-1中所有循环移位阵的第一列,将Φ-1的每一列层的第一列组合后存储在ROM的低地址,之后顺次添加下一列循环移位阵的第一列的组合。第二处理流水级使能时同时从dv-1个ROM中顺次读出移位因子,将这些移位因子作为读地址读取第一处理-缓存流水级的乒乓RAM中的T-1AsT,即同时分块执行准循环移位单位阵乘向量运算(CSIMV),分块同时更新ET-1AsT。然后分块同时顺序读取第一处理-缓存流水级的乒乓RAM中的CsT,进而分块执行向量加法运算(VA),逐比特更新(ET-1A+C)sT。最后从ROM中顺次读出Φ-1的所有循环移位阵的第一列,分块同时执行准循环移位阵乘向量运算(CSDMV),分块同时更新p1并输出给第三缓存流水级。
所述的第三缓存流水级,使用3块深度为p×q、位宽为2的RAM对校验比特p1进行FIFO操作以确保p1与相应的信息比特s、校验比特p2同步传递给输出级,另外还将校验比特p1按照H矩阵中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中。这样一共有2份p1被存储在第三缓存流水级中。
所述的第四处理-缓存流水级,使用1个ROM存储矩阵T-1B中循环移位单位阵的移位因子,在同一行上的循环移位单位阵的移位因子被组合后存储在ROM的同一个地址。第四处理-缓存流水级使能时从ROM中顺次读出移位因子,将这些移位因子作为读地址分块循环读取第三缓存流水级中的校验比特p1,即同时分块执行准循环移位单位阵乘向量运算(CSIMV),分块同时更新T-1Bp1。然后顺序读取第一处理-缓存流水级的乒乓RAM中的T-1AsT,进而执行向量加法运算(VA),逐比特更新p2,并将其存储在深度为p×q、位宽为1的乒乓RAM中。
所述的准循环移位单位阵乘向量运算,考虑到循环移位单位阵乘向量相当于将向量循环移位,本发明将每个准循环移位单位阵乘向量的运算按照H矩阵中块的大小分解成多个循环移位单位阵乘向量的运算。假设α为移位因子,当一个q×q的循环移位单位阵与长为q的向量x相乘时,其结果就是将向量x循环上移了α位。在循环移位单位阵乘向量使能时,使用一个二进制计数器对向量x进行地址选通,把当前循环移位单位阵的移位因子α载入计数器,读出x的第α位,此后计数器按模q计数,每次读出x中的一位,q个时钟之后,就完成了循环移位单位阵与向量x的乘法。由于A、B、T、C、D、E都是准循环移位单位阵,编码预处理后的矩阵T-1A、C、T-1B、E也都是准循环移位单位阵,都能由循环移位单位阵构成,因此能适用上述算法。
所述的准循环移位阵乘向量运算,涉及Φ-1与(ET-1A+C)sT的相乘的计算,本发明将该运算按照H矩阵中块的大小分解成多个循环移位阵乘向量的运算。当一个q×q的循环移位阵V与一个长为q的向量x相乘,在循环移位阵乘向量使能时,把V中的第一行并行载入寄存器组,同时把相乘向量x的各分量输入到对应的与门上,把各与门的输出结果进行模2加(异或)运算之后,就得到第一个输出比特。此后每经过一个时钟周期,寄存器循环右移一位,就能得到后续的输出比特,q个时钟之后,就完成了本次循环移位阵V与向量x的乘法。
与现有的基于RU方法的编码器相比,本发明所述的编码器具有以下特点:
(1)本发明利用T-1A是准循环移位单位阵的特性,仅存储T-1A的乘积矩阵,这样做要比RU方法编码器中分别存储T-1和A两个矩阵节省资源,类似地,本发明只需要存储T-1B的乘积矩阵。当T-1、A和B都是准循环移位单位阵时,ROM资源可以节省[2/(dc+1)]×100%。
(2)本发明利用T-1的准循环移位单位阵特性,使得RU方法中与T-1的串行乘法得以去除,将吞吐量提高了(3×dc/dv)×100%,而且将流水线级数从RU方法的6级缩短到现在的4级,在假定每一级流水线消耗时钟数不变的情况下,将编码时延缩短了33%。
(3)本发明进一步改进了流水线结构的平衡性,使每一级流水线的运算所需时钟数都为p×q,解决了RU方法流水线延时不平均的问题,进一步缩短了编码时延。
(4)本发明中准循环移位单位阵乘向量运算、向量加法运算和准循环移位阵乘向量运算均支持分块计算,因此编码器能支持可变码长、可变码率的各种LDPC码。通过改变dc和dv,本发明支持的码率有:1/2、2/3、3/4、4/5、…、n/n+1;通过改变p或q,就能实现码长的改变,只需要将每个模块的大小对应最大的p和q进行配置即可。
附图说明
图1为本发明实施基于的分层准循环LDPC校验矩阵的示意图;
图2为本发明实施例流水线结构示意图;
图3为本发明实施例的分层准循环LDPC校验矩阵的示意图;
图4为本发明实施例中根据图3的校验矩阵预处理后结果示意图;
图5为本发明实施例中根据图4预处理矩阵进行编码的示意图;
图6为本发明实施例中各ROM存储示意图;
图7为本发明实施例中准循环移位单位阵乘向量示意图;
图8为本发明实施例中准循环移位阵乘向量示意图;
图9为本发明实施例中RAM分割示意图;
图10为本发明为适应不同码长、码率配置准循环移位单位阵乘向量示意图。
具体实施方式
下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
图1给出了本发明实施基于的分层准循环LDPC校验矩阵的示意图。图中假设校验矩阵H行重为dc,列重为dv,则H矩阵分层数为dv,每个循环移位单位阵都是q×q的,每一个块由p2个循环移位单位阵拼接而成,其中A由1×(dc-dv)的块组成,B由1×(dv-1)的块组成,T只占用一个块的大小,C由(dv-1)×(dc-dv)的块组成,D由(dv-1)×(dv-1)的块组成,E由(dv-1)×1的块组成。
令x=(s,p1,p2),其中s是信息比特,p1和p2分别表示校验比特的前后两部分,分别对应图1中D和E所在的列,Φ=-ET-1B+D。
在本实施例中,假设dc=6、dv=3,p=2,q=2,故得到的校验矩阵H为12行24列。
图2示出了本实施例流水线结构,给出了流水线的分级及各级流水线中主要模块的划分。本发明将流水线级数从RU方法的6级缩短到现在的4级,在假定每一级流水线消耗时钟数不变的情况下,将编码时延缩短了33%。
本实施例具体包括:输入缓存、第一处理-缓存流水级、第二处理流水级、第三缓存流水级、第四处理-缓存流水级、输出级,其特征在于:
所述的输入缓存,将信息比特s按照校验矩阵H中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,另外使用6块深度为p×q、位宽为的dc-dv的RAM对信息比特s进行FIFO操作以确保信息比特s与校验比特p1、p2同步传递给输出级;
所述第一处理-缓存流水级,先同时分块读取输入缓存各乒乓RAM的信息比特,然后同时分块执行准循环移位单位阵乘向量运算,分块同时更新向量T-1AsT,CsT,并将其按照校验矩阵H中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,另外使用4块深度为p×q、位宽为1的RAM对向量T-1AsT进行FIFO操作以确保向量T-1AsT与的校验比特p1同步传递给第四处理-缓存流水级;
所述第二处理流水级,首先同时分块读取第一处理-缓存流水级各乒乓RAM中向量T-1AsT,CsT的值,接着同时分块执行准循环移位单位阵乘向量运算,然后同时分块执行向量加法运算,最后同时分块执行准循环移位阵乘向量运算,分块同时更新校验比特p1并输出给第三缓存流水级;
所述第三缓存流水级,将校验比特p1按照校验矩阵H中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,另外使用3块深度为p×q、位宽为2的RAM对校验比特p1进行FIFO操作以确保校验比特p1与信息比特s、校验比特p2同步传递给输出级;
所述第四处理-缓存流水级,首先同时分块读取第三缓存流水级各乒乓RAM中的校验比特p1和第一处理-流水级的乒乓RAM中向量T-1AsT的值,然后同时分块执行准循环移位单位阵乘向量运算,最后执行向量加法运算,更新校验比特p2并将其存储在深度为p×q、位宽为1的乒乓RAM中;
所述输出级同时分块读取输入缓存的乒乓RAM中的信息比特s、第三缓存流水级的乒乓RAM中的校验比特p1以及第四处理-流水级的乒乓RAM中校验比特p2的值,并将其输出给信道。
图3示出了本发明实施例的分层准循环LDPC校验矩阵的示意图,它的几个分割已经在图中标注;
图4示出了本发明实施例中根据图3的校验矩阵预处理后结果;如图4所示,本实施例中的校验矩阵预处理包括以下部分:
为了解释方便,定义矩阵的(r1,r2;c1,c2)子矩阵为限定于原矩阵[r1,r2]行和[c1,c2]列的矩阵。则矩阵A 301是矩阵H 201的(1,4;1,12)子矩阵,矩阵B 302是矩阵H的(1,4;13,18)子矩阵,矩阵T 303是矩阵H的(1,4;19,24)子矩阵,矩阵C 304是矩阵H的(5,12;1,12)子矩阵,矩阵D 305是矩阵H的(5,12;13,18)子矩阵,矩阵E 306是矩阵H的(5,12;19,24)子矩阵。经过模2矩阵乘法运算和高斯消元后得到Φ307以及Φ-1308,T-1A 309和T-1B 310。
图5示出了本发明实施例的编码流程图,基于图4的预处理矩阵和图2的流水线结构,本实施例中编码包括以下步骤:
假定待编码信息比特为s401,一份s被存储在输入缓存的由6块深度为4、位宽为3的RAM组成的缓存101中,另外两份s被分块存储在输入缓存的18对深度为2、位宽为1的乒乓RAM 102中。经过第一处理-缓存流水级的准循环移位单位阵乘向量运算106,得到T-1AsT 402,一份T-1AsT被存储在第一处理-缓存流水级的2对深度为2、位宽为1的乒乓RAM 108中,另一份T-1AsT被存储在第一处理-缓存流水级的由4块深度为4、位宽为1的RAM组成的缓存109中。经过准循环移位单位阵乘向量运算105,得到C1sT403,C2sT404,并将其分别存储在第一处理-缓存流水级的2对深度为4、位宽为1的乒乓RAM 107中。乒乓RAM 108中的T-1AsT经过第二处理流水级的准循环移位单位阵乘向量运算111,得到E1T-1AsT 405,E2T-1AsT406,将它们同时分块与乒乓RAM 107中的C1sT 403,C2sT404作向量加法运算,得到(E1T-1A+C1)sT 407,(E2T-1A+C2)sT408,分别经过第二处理流水级的准循环移位阵乘向量运算116,分块逐比特得到p1410。第三缓存流水级将一份p1存储在由3块深度为4、位宽为2的RAM组成的缓存117中,另一份p1被分块存储在4对深度为2、位宽为1的乒乓RAM118中。经过第四处理-缓存流水级的准循环移位单位阵乘向量运算120,得到T-1Bp1411,将其与第一处理-缓存流水级的乒乓RAM中的T-1AsT作向量加法运算122,得到p2412,并将其存储在第四处理-缓存流水级的深度为4、位宽为1的乒乓RAM 123中。输出级读取第一处理-缓存流水级的乒乓RAM 101中的s、第三缓存流水级的乒乓RAM 117中的p1以及第四处理-缓存流水级的乒乓RAM 123中的p2,并组合成输出编码后码字x413。
图6为根据本发明实施例的方法各ROM存储示意图。对应图2来看,501存放在图2中的ROM 104,502存放在图2中的ROM 119,503、505存放在图2中的ROM 103,504、506存放在图2中的ROM 110,507存放在图2中的ROM 115。举例ROM E1504的生成方法,由矩阵H201可知,E1由四个循环移位单位阵组成,存储E1的ROM的每一个地址上,高位指示该地址对应行块中循环移位单位阵的位置,低位指示该循环移位单位阵的移位因子。另外,若如RU方法编码器所述分别存储T-1、A和B,由于A、B在大小上和T-1A、T-1B无异,则需要多存储两份T-1,每份需要一个深度为2、位宽为2的ROM,这样将增加40%的ROM资源消耗。
图7为本发明实施例中准循环移位单位阵乘向量示意图。举例E1×T-1AsT来说,步骤701读出存储E1的ROM的低地址数据,步骤702根据当前ROM数据高位截取输入向量长度为2(q)的2(p)段中的一段,如果高位是1则截取输入向量的下半段,反之则截取输入向量的上半段,步骤703按照当前ROM数据低位对该段输入向量循环移位后构成目标向量的上半段。步骤704读出存储E1的ROM的高地址数据,步骤705根据当前数据高位截取输入向量长度为2(q)的2(p)段中的一段,步骤706按照当前ROM数据低位对该段输入向量循环移位后构成目标向量的下半段,最终组合得到目标向量707。可见,通过分块计算完成一次准循环移位单位阵乘向量所需的时钟数只是p×q=4。
图8为本发明实施例中准循环移位阵乘向量示意图。步骤801读出存储Φ-1的ROM的低地址数据,作为循环移位单位阵1、5、9、13、3、7、11、15的第一列,步骤802将上述数据与对应的输入向量a、c的第一比特相乘,步骤803对上述循环移位单位阵的第一列循环移位一位后得到其第二列,并再次与对应的输入向量a、c的第二比特相乘;步骤804读出存储Φ-1的ROM的高地址数据,作为循环移位单位阵2、6、10、14、4、8、12、16的第一列,步骤805将上述数据与对应的输入向量b、d的第一比特相乘,步骤806对上述循环移位单位阵的第一列循环移位一位后得到其第二列,并再次与对应的输入向量b、d的第二比特相乘,最终相加后得到目标向量。
图9为本发明实施例中RAM分割示意图。注意到步骤702需根据准循环移位单位阵ROM数据高位确定相关上级输入向量的移位范围,因此上级输入向量需要被分块存储在RAM中。步骤901将T-1AsT402的前2(q)位数据存储在乒乓RAM1的第一块RAM中,步骤902将T-1AsT的后2(q)位数据存储在乒乓RAM2的第一块RAM中。由于采用了流水线结构,在下一帧到来时,步骤903将下一帧T-1AsT的数据存放在乒乓RAM1和乒乓RAM2的第二块RAM中,以达到并行计算的效果。
图10为本发明为适应不同码长码率配置准循环移位单位阵乘向量的示意图。步骤1001矩阵{A2,A1}乘以向量{s2,s1}可以完全并行分解为A2乘以向量s21002和A1乘以向量s11003,所需时间与单个A1乘以向量s1完全相同。于是并行处理即可实现在可变码长、可变码率的要求下的编码吞吐量不变。
本实施例为了便于说明,选取了较小的H矩阵,本发明适用的H矩阵可以很大。
以上所述仅为本发明的实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1、一种分层准循环扩展构造的LDPC码的编码器,包括:输入缓存、第一处理-缓存流水级、第二处理流水级、第三缓存流水级、第四处理-缓存流水级、输出级,其特征在于:
所述的输入缓存,将信息比特s按照校验矩阵H中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,分层准循环LDPC码校验矩阵的每一层为准循环移位单位阵的拼接,一个准循环移位单位阵称为一个块,一个块由p个大小相同的循环移位单位阵和p2-p个相同大小的零阵拼接得到方阵,并且该方阵的行重、列重均为一,循环移位单位阵及零阵的大小均为q阶方阵,故一个块的大小为p×q阶方阵,分层准循环LDPC码校验矩阵的行重为dc,列重为dv,所谓行重,即每行中1元素的个数,所谓列重,即每列中1元素的个数,另外使用6块深度为p×q、位宽为dc-dv的RAM对信息比特s进行FIFO操作以确保信息比特s与校验比特p1、p2同步传递给输出级;
所述第一处理-缓存流水级,先同时分块读取输入缓存各乒乓RAM的信息比特,然后同时分块执行准循环移位单位阵乘向量运算,即T-1A乘sT运算和C乘sT运算,分块同时更新向量T-1AsT,CsT,并将其按照校验矩阵H中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,另外使用4块深度为p×q、位宽为1的RAM对向量T-1AsT进行FIFO操作以确保向量T-1AsT与的校验比特p1同步传递给第四处理-缓存流水级,分层准循环LDPC码校验矩阵的每一层为准循环移位单位阵的拼接,一个准循环移位单位阵称为一个块,按RU编码方法分成A、B、T、C、D、E六个子矩阵,其中T是只由右上方一个块组成的子矩阵,A是由左上方1×(dc-dv)个块组成的子矩阵,B是由子矩阵A和T之间1×(dv-1)个块组成的子矩阵,B、T、D、E四个子矩阵组成一个方阵;
所述第二处理流水级,首先同时分块读取第一处理-缓存流水级各乒乓RAM中向量T-1AsT,CsT的值,接着同时分块执行准循环移位单位阵乘向量运算,即E乘T-1AsT,然后同时分块执行向量加法运算,最后同时分块执行准循环移位阵乘向量运算,即Φ-1乘(ET-1AsT+CsT),其中Φ=-ET-1B+D,分块同时更新校验比特p1并输出给第三缓存流水级;
所述第三缓存流水级,将校验比特p1按照校验矩阵H中块的大小p×q进行分割,分别存储在p个深度为q、位宽为1的乒乓RAM中,另外使用3块深度为p×q、位宽为2的RAM对校验比特p1进行FIFO操作以确保校验比特p1与信息比特s、校验比特p2同步传递给输出级;
所述第四处理-缓存流水级,首先同时分块读取第三缓存流水级各乒乓RAM中的校验比特p1和第一处理-流水级的乒乓RAM中向量T-1AsT的值,然后同时分块执行准循环移位单位阵乘向量运算,即T-1B乘p1,最后执行向量加法运算,更新校验比特p2并将其存储在深度为p×q、位宽为1的乒乓RAM中;
所述输出级,同时分块读取输入缓存的乒乓RAM中的信息比特s、第三缓存流水级的乒乓RAM中的校验比特p1以及第四处理-流水级的乒乓RAM中校验比特p2的值,并将其输出给信道。
2、根据权利要求1所述的一种分层准循环扩展构造的LDPC码的编码器,其特征是,所述的第一处理-缓存流水级,使用列重dv个ROM存储矩阵C和T-1A中循环移位单位阵的移位因子,每个ROM存储矩阵T-1A或者C的一层中的所有移位因子,每一层中在同一行上的循环移位单位阵的移位因子被组合后存储在ROM的同一个地址,第一处理-缓存流水级使能时同时从列重dv个ROM中顺次读出移位因子,将这些移位因子作为读地址分块循环读取输入缓存中的列重dv份信息比特s,即同时分块执行准循环移位单位阵乘向量运算,分块同时更新向量T-1AsT,CsT
3、根据权利要求1所述的一种分层准循环扩展构造的LDPC码的编码器,其特征是,所述的第二处理流水级,使用列重dv-1个ROM存储矩阵E中循环移位单位阵的移位因子,每个ROM顺序存储矩阵E的一层中的所有移位因子,同时使用1个ROM存储矩阵Φ-1=-ET-1B+D中所有循环移位阵的第一列,将矩阵Φ-1的每一列层的第一列组合后存储在ROM的低地址,之后顺次添加下一列循环移位阵的第一列的组合,第二处理流水级使能时同时从列重dv-1个ROM中顺次读出移位因子,将这些移位因子作为读地址读取第一处理-缓存流水级的乒乓RAM中的向量T-1AsT,即同时分块执行准循环移位单位阵乘向量运算,分块同时更新向量ET-1AsT,然后分块同时顺序读取第一处理-缓存流水级的乒乓RAM中的向量CsT,进而分块执行向量加法运算,逐比特更新向量(ET-1A+C)sT,最后从ROM中顺次读出矩阵Φ-1的所有循环移位阵的第一列,分块同时执行准循环移位阵乘向量运算,分块同时更新校验比特p1并输出给第三缓存流水级。
4、根据权利要求1或3所述的一种分层准循环扩展构造的LDPC码的编码器,其特征是,在所述准循环移位阵乘向量运算中,按照校验矩阵H中块的大小p×q分解成多个循环移位阵乘向量的运算,当一个q×q的循环移位阵V与一个长为q的向量x相乘,在循环移位阵乘向量使能时,把循环移位阵V中的第一行并行载入寄存器组,同时把向量x的各分量输入到对应的与门上,把各与门的输出结果进行模2加运算之后,就得到第一个输出比特,此后每经过一个时钟周期,寄存器循环右移一位,就能得到后续的输出比特,q个时钟之后,就完成了本次循环移位阵V与向量x的乘法。
5、根据权利要求1所述的一种分层准循环扩展构造的LDPC码的编码器,其特征是,所述的第四处理-缓存流水级,使用1个ROM存储矩阵T-1B中循环移位单位阵的移位因子,在同一行上的循环移位单位阵的移位因子被组合后存储在ROM的同一个地址,第四处理-缓存流水级使能时从ROM中顺次读出移位因子,将这些移位因子作为读地址分块循环读取第三缓存流水级中的校验比特p1,即同时分块执行准循环移位单位阵乘向量运算,分块同时更新向量T-1Bp1,然后顺序读取第一处理-缓存流水级的乒乓RAM中的向量T-1AsT,进而执行向量加法运算,逐比特更新校验比特p2,并将其存储在乒乓RAM中。
6、根据权利要求1或2或3或5所述的一种分层准循环扩展构造的LDPC码的编码器,其特征是,在每个所述准循环移位单位阵乘向量的运算中,按照校验矩阵H中块的大小分解成多个循环移位单位阵乘向量的运算,假设α为移位因子,当一个q×q的循环移位单位阵与一个长为q的向量x相乘时,其结果就是将向量x循环上移了α位,在循环移位单位阵乘向量使能时,使用一个二进制计数器对向量x进行地址选通,把当前循环移位单位阵的移位因子α载入计数器,读出向量x的第α位,此后计数器按模q计数,每次读出向量x中的一位,q个时钟之后,就完成了循环移位单位阵与向量x的乘法。
CNB2007100456230A 2007-09-06 2007-09-06 分层准循环扩展构造的ldpc码的编码器 Expired - Fee Related CN100566183C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100456230A CN100566183C (zh) 2007-09-06 2007-09-06 分层准循环扩展构造的ldpc码的编码器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100456230A CN100566183C (zh) 2007-09-06 2007-09-06 分层准循环扩展构造的ldpc码的编码器

Publications (2)

Publication Number Publication Date
CN101119118A CN101119118A (zh) 2008-02-06
CN100566183C true CN100566183C (zh) 2009-12-02

Family

ID=39055084

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100456230A Expired - Fee Related CN100566183C (zh) 2007-09-06 2007-09-06 分层准循环扩展构造的ldpc码的编码器

Country Status (1)

Country Link
CN (1) CN100566183C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291261B2 (en) 2016-04-25 2019-05-14 SK Hynix Inc. Early selection decoding and automatic tuning

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272224B (zh) * 2008-05-04 2011-11-09 清华大学 全球数字广播系统中的ldpc分层信道编解码实现方法
CN101465655B (zh) * 2009-01-20 2011-04-06 清华大学 极短码长低密度奇偶校验码的编码方法
CN102457286B (zh) * 2010-10-21 2013-08-28 航天信息股份有限公司 准循环ldpc码编码方法、装置及校验矩阵生成方法
CN102664638A (zh) * 2012-05-31 2012-09-12 中山大学 基于分层nms算法的多码长ldpc码译码器的fpga实现方法
CN103023515B (zh) * 2013-01-01 2015-10-28 荣成市鼎通电子信息科技有限公司 基于块列循环的cmmb中ldpc编码器和编码方法
CN104780376B (zh) * 2015-04-09 2018-03-23 深圳市三朋电子有限公司 一种具有超低端到端时延的视频编解码系统、方法及装置
CN113708779A (zh) * 2015-12-28 2021-11-26 北京忆芯科技有限公司 一种矩阵与向量乘运算单元
CN107294541B (zh) * 2016-04-11 2020-07-10 清华大学 低面积开销的自容错ldpc译码器
CN107666367B (zh) * 2016-07-29 2023-01-03 中兴通讯股份有限公司 一种编码方法及装置
CN109150192B (zh) * 2017-06-16 2023-02-28 上海交通大学 一种ldpc码字结构及码字编码方法
CN107977231B (zh) * 2017-12-15 2020-10-27 安徽寒武纪信息科技有限公司 一种计算方法及相关产品
EP3718216A1 (en) 2017-12-15 2020-10-07 Huawei Technologies Co., Ltd. Design of base parity-check matrices for ldpc codes that have subsets of orthogonal rows
KR102449782B1 (ko) * 2018-05-04 2022-10-04 에스케이하이닉스 주식회사 준순환 저밀도 패리티 체크 코드의 패리티 체크 행렬 변환 회로, 이를 포함하는 에러 정정 회로 및 이의 동작 방법
CN109687877B (zh) * 2018-12-28 2023-04-28 深圳忆联信息系统有限公司 一种降低多级循环移位网络级联级数的方法及装置
CN112996040B (zh) * 2019-12-02 2023-08-18 中国移动通信有限公司研究院 缓存状态报告、资源配置方法、装置、终端及网络侧设备
CN111313912B (zh) * 2020-03-02 2023-10-27 北京华力创通科技股份有限公司 一种ldpc码编码器及编码方法
CN111447044B (zh) * 2020-03-10 2022-12-09 深圳市大数据研究院 分布式存储方法和传输译码方法
CN111931921B (zh) * 2020-10-13 2021-01-26 南京风兴科技有限公司 一种用于稀疏神经网络的乒乓存储方法及装置
CN112653474B (zh) * 2020-12-22 2022-12-13 西南大学 一种降低平均迭代次数的紧缩型ldpc-cc译码器设计方法
CN116827358B (zh) * 2023-07-13 2024-04-02 白盒子(上海)微电子科技有限公司 一种5g ldpc编码实现方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A flexible hardware encoder for low-density parity-checkcodes. Lee, D.-U,etc.Field-Programmable Custom Computing Machines, 2004. FCCM 2004. 12th Annual IEEE Symposium on. 2004
A flexible hardware encoder for low-density parity-checkcodes. Lee,D.-U,etc.Field-Programmable Custom Computing Machines,2004.FCCM 2004.12th Annual IEEE Symposium on. 2004 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291261B2 (en) 2016-04-25 2019-05-14 SK Hynix Inc. Early selection decoding and automatic tuning

Also Published As

Publication number Publication date
CN101119118A (zh) 2008-02-06

Similar Documents

Publication Publication Date Title
CN100566183C (zh) 分层准循环扩展构造的ldpc码的编码器
US10536169B2 (en) Encoder and decoder for LDPC code
CN102437857B (zh) 一种ira-ldpc码的构造方法及其编码器
CN101232288B (zh) 一种基于奇偶校验矩阵的ldpc码的译码方法及译码器
CN107786211B (zh) 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器
CN102377437B (zh) 一种准循环低密度奇偶校验码编码方法和装置
CN103248372A (zh) 基于循环左移的准循环ldpc串行编码器
CN101777921B (zh) 用于显式存储片上系统的结构化ldpc码译码方法及装置
CN101335592B (zh) 基于矩阵分块的高速ldpc译码器实现方法
CN100542049C (zh) 一种多码率的ldpc码的译码器装置及译码方法
US20230068450A1 (en) Method and apparatus for processing sparse data
CN102356554A (zh) Turbo码数据交织处理方法和用于交织Turbo码数据的交织器
CN110069444A (zh) 一种计算单元、阵列、模块、硬件系统及实现方法
CN101594152B (zh) 实现水平运算和垂直运算同时运行的ldpc码译码方法
CN104679719A (zh) 一种基于fpga的浮点运算方法
CN110278000A (zh) 基于dvb-s2标准的ldpc码并行译码fpga实现架构及译码方法
CN115145536A (zh) 一种低位宽输入-低位宽输出的加法器树单元及近似乘加方法
CN103023515B (zh) 基于块列循环的cmmb中ldpc编码器和编码方法
CN103259544A (zh) 共享存储机制的dtmb中准循环ldpc串行编码器
CN100578945C (zh) 一种ldpc码的译码器装置及译码方法
CN103236855A (zh) 基于循环左移的近地通信中准循环ldpc串行编码器
CN100586029C (zh) 一种结构化奇偶校验码的编码方法及其编码器
CN103269227A (zh) 基于循环左移的深空通信中准循环ldpc串行编码器
WO2022016261A1 (en) System and method for accelerating training of deep learning networks
CN103269228A (zh) 共享存储机制的cmmb中准循环ldpc串行编码器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091202

Termination date: 20120906