CN101917249B - Qc-ldpc码译码器及其实现方法 - Google Patents

Qc-ldpc码译码器及其实现方法 Download PDF

Info

Publication number
CN101917249B
CN101917249B CN2010102389459A CN201010238945A CN101917249B CN 101917249 B CN101917249 B CN 101917249B CN 2010102389459 A CN2010102389459 A CN 2010102389459A CN 201010238945 A CN201010238945 A CN 201010238945A CN 101917249 B CN101917249 B CN 101917249B
Authority
CN
China
Prior art keywords
merging
information
submatrix
storing device
array
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.)
Active
Application number
CN2010102389459A
Other languages
English (en)
Other versions
CN101917249A (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.)
Tsinghua University
Original Assignee
Tsinghua 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 Tsinghua University filed Critical Tsinghua University
Priority to CN2010102389459A priority Critical patent/CN101917249B/zh
Publication of CN101917249A publication Critical patent/CN101917249A/zh
Application granted granted Critical
Publication of CN101917249B publication Critical patent/CN101917249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明提供了一种QC-LDPC码译码器及其实现方法,该译码器包括:HPU阵列、VPU阵列、XRAM-C阵列、CRAM-C阵列、复接单元以及控制单元。本发明提供的译码器及其实现方法充分利用QC-LDPC码半并行译码器结构的特性,深入挖掘其中的优化潜力,在引入水平、垂直复用组复用运算单元以降低硬件实现复杂度的基础上,还对存储资源进行优化配置,通过RAM块合并,显著提高硬件实现中RAM单元的使用效率,减少所需RAM单元的数量,减少复接单元所占的逻辑资源,同时有效优化了硬件实现所需的布线资源,能够在逻辑资源、存储资源、布线资源以及吞吐率之间灵活折中。

Description

QC-LDPC码译码器及其实现方法
技术领域
本发明涉及数字通信技术领域,尤其涉及一种QC-LDPC码译码器及其实现方法。
背景技术
LDPC码(Low Density Parity Check Code,低密度奇偶校验码),是由Robert G.Gallager于1962年提出的一类基于稀疏校验矩阵的特殊线性分组码。它通常由校验矩阵H进行描述,校验矩阵H的化零空间即LDPC码的码字,其主要特点是校验矩阵具有稀疏性。LDPC码不仅有逼近香农限的优良性能,而且译码复杂度较低,结构灵活,是近年来信道编码领域的研究热点,目前已广泛应用于深空通信、光纤通信、地面及卫星数字多媒体广播等领域。LDPC码成为第四代无线移动通信系统和新一代数字电视广播传输系统信道编码方案的强有力竞争者,而基于LDPC码的信道编码方案已经被多个通信与广播标准所采纳,如IEEE802.16e、IEEE802.3an(10BASE-T)、DVB-T2、DVB-S2,以及中国数字电视地面广播传输标准(DTMB)等。
LDPC(N,K)码具有(N-K)×N维的H矩阵。H矩阵的每一行代表一个校验方程,在Tanner图中称为校验节点,共(N-K)个;每一列代表一个信息比特,在Tanner图中称为变量节点,共N个;H矩阵中的元素1表示其所在行的校验节点和所在列的变量节点之间的连接关系,在Tanner图中称为边。
LDPC译码算法较多,但目前应用比较广泛的是最小和算法(Min-SumAlgorithm)及其改进算法。最小和算法作为基于对数似然比(LogarithmLikelihood Ratio,LLR)软信息的置信度传播算法(Belief PropagationAlgorithm)的一种近似简化算法,虽然在性能上有所损失,但是大大降低了硬件实现复杂度,因此十分适合工程实现。最小和译码算法的主要流程可简单表示为:
1)初始化
Zmn=Cn    (1)
2)水平运算(Horizontal Process,HP)
L mn = Π n ′ ∈ N ( m ) \ n sgn ( Z mn ′ ) · min n ′ ∈ N ( m ) \ n | Z mn ′ | - - - ( 2 )
3)垂直运算(Vertical Process,VP)
Z mn = C n + Σ m ′ ∈ M ( n ) \ m L m ′ n - - - ( 3 )
Z n = C n + Σ m ∈ M ( n ) L mn - - - ( 4 )
4)译码校验判决
c ^ n = 0 , Z n &GreaterEqual; 0 ; 1 , Z n < 0 .
如果
Figure BSA00000209088100025
则译码结束;否则返回步骤2)。
以上各式中,Cn是变量节点n的接收软信息,即变量节点n的初始对数似然比,通常由接收符号yn经过软解映射得到;Lmn是变量节点n传播到校验节点m的软信息;N(m)表示连接到校验节点m的全部变量节点的集合,N(m)\n表示N(m)去除变量节点n后的集合;Zmn是校验节点m传播到变量节点n的软信息;M(n)表示连接到变量节点n的全部校验节点的集合,M(n)\m表示M(n)去除校验节点m后的集合;Zn是变量节点n经本次迭代后的后验对数似然比,用于译码判决等;
Figure BSA00000209088100026
是变量节点n所对应的比特n的译码结果。
根据2009年第10期的清华大学学报(自然科学版)中彭克武,牛迪民,宋健,杨知行公开的文献“面向中国DTTB标准的多码率LDPC译码器”[1]中所述对传统译码算法流程的优化,译码校验判决的译码部分与垂直运算合并,译码校验判决的校验判决部分与水平运算合并。
基于上述优化的译码算法,LDPC码译码器一般包括以下功能单元:
HPU(Horizontal Process Unit,水平运算单元),对应校验节点m,完成(2)式的水平运算,得到Lmn;同时,完成译码校验
Figure BSA00000209088100027
并将结果反馈给控制单元;
VPU(Vertical Process Unit,垂直运算单元),对应变量节点n,完成(3)式的垂直运算,得到Zmn;同时,完成(4)式,得到Zn的符号位,即译码结果码字
Figure BSA00000209088100031
LRAM,校验信息存储器,对应校验节点m,存储Lmn
ZRAM,变量信息存储器,对应变量节点n,存储Zmn
Figure BSA00000209088100032
CRAM,接收信息存储器,对应变量节点n,存储Cn
控制单元,管理存储器读写地址和译码启动及结束。
对于H矩阵无规律的LDPC码,译码器最直接的实现结构有全并行(Full-parallel)和全串行(Full-serial)两种。
全并行译码器结构,即对应每一行或列的水平或垂直运算均各自独立使用一个HPU或VPU,实际将校验矩阵和译码算法直接映射到硬件上。这种结构译码速度最快,但硬件实现非常复杂,特别是对于长码,译码器的硬件规模会急剧增加,所以不适用于实际工程中的硬件实现。
全串行译码器结构,即对应每一行或列的水平或垂直运算时分复用一个HPU或VPU。全串行译码器通过运算单元的复用大大降低了硬件资源,但译码速度最慢,通常难以满足高吞吐率的需求,在可编程逻辑器件或专用集成电路的应用中受到较大限制。
与全并行或全串行译码器结构相比,半并行(Semi-parallel)译码器结构能够在译码速度和硬件资源之间取得很好的折中与平衡,并且非常适合于校验矩阵具有分块结构(Array Structure)的LDPC码,如QC-LDPC码。
QC(Quasi-Cyclic,准循环)-LDPC码是LDPC码的一个重要子类,它的校验矩阵具有准循环形式,同时也能提供优异的纠错性能。基于校验矩阵的规则结构,QC-LDPC码可以通过比较简单的电路结构进行编码,可以采用半并行译码器结构进行译码,大大降低编译码电路的实现复杂度。因此,QC-LDPC码被广泛应用,DTMB标准的信道编码方案已经采用QC-LDPC码。
QC-LDPC(N,K)码的校验矩阵由Mc×Nc个子矩阵组成,其中,Mc=(N-K)/b,Nc=N/b,b是子矩阵的阶数。每个子矩阵的大小相等,都是b×b的方阵,这些方阵或者是全零矩阵,或者是循环行列式矩阵(CirculantMatrix)。其中,循环行列式矩阵的特点是,其每一行都是它的上一行的右循环移位,而第一行是最后一行的右循环移位。在大多数QC-LDPC码中,循环行列式矩阵由单位矩阵平移得到,因此,一个循环行列式矩阵的一行或一列中只有一个非零元素。
显然,在QC-LDPC码的Tanner图表示中,循环行列式矩阵的非零元素对应的边是平行的。半并行译码器正是利用QC-LDPC码的这一特性来实现运算单元的复用。为描述方便,根据QC-LDPC码校验矩阵的准循环结构,首先进行如下解释:
子矩阵(Sub-Matrix):QC-LDPC码的H矩阵由Mc×Nc个子矩阵组成,其中子矩阵或者是循环行列式矩阵,或者是全零矩阵,分别定义为循环行列式子矩阵(Circulant Sub-Matrix,CSM),和全零子矩阵(Zero Sub-Matrix,ZSM)。设其中循环行列式子矩阵的数量为Ω。
行(列)矢量:H矩阵中属于一行(列)子矩阵的所有b行(列)节点组成的矢量定义为一个行(列)矢量,其中一个行矢量对应b个校验节点,一个列矢量对应b个变量节点。
QC-LDPC码半并行译码器结构框图如图1所示。利用QC-LDPC码的准循环性质,半并行译码器以行或列矢量为单位进行水平或垂直运算单元的复用,即一个行矢量的所有校验节点共用一个HPU,一个列矢量的所有变量节点共用一个VPU。每个HPU或VPU在一次迭代中被重复使用b次。因此,半并行译码器的并行系数为S=b。在半并行译码器中,同一行矢量或列矢量中的节点信息按一定顺序读写,而不同行矢量或列矢量的节点信息的读写则并行进行。每一个CSM分别配置一块ZRAM和LRAM,因此,ZRAM和LRAM各自的总数均等于CSM的数量Ω。每块RAM的容量为b×q比特,其中,q是软信息的量化位宽。图2是半并行译码器中一个CSM的信息存储方式以及水平和垂直运算的地址控制方式。其中,RAM的存储地址可以选择与CSM的行序号一致,也可以选择与CSM的列序号一致,二者等价。参与每一个列矢量的变量节点运算的外部接收软信息分别配置一块CRAM,这样的CRAM共Nc块,每块的容量为b×q比特。
在半并行译码器结构中,可以为一个行矢量或一个列矢量配置多个运算单元,提高并行度。但伴随吞吐率的提高,运算单元和存储器的数目也相应增加。半并行译码器电路规模下限为上述S=b的情况,即最小半并行结构。
在最小半并行结构和全串行结构之间,可以设计一种灵活的低复杂度译码器结构。如文献“Flexible low-complexity decoding architecture forQC-LDPC codes”[2](Nan Jiang,Kewu Peng,Zhixing Yang.11th IEEESingapore International Conference on Communication Systems,2008.ICCS2008.)所述,通过新的运算单元复用方式,降低QC-LDPC码译码器的硬件复杂度,所得译码器的并行系数S=bF。该低复杂度译码器结构框图如图3所示。这种译码器结构引入了水平和垂直复用组,首先进行如下解释:
水平(垂直)复用组(Horizontal Sharing Group,HSG;Vertical SharingGroup,VSG):复用同一个HPU(VPU)的F个行(列)矢量组成一个HSG(VSG),F为组合系数,F=1,2,...。
在这种译码器中,每个HSG或VSG,从半并行结构中的仅包含1个行矢量或列矢量,扩展到包含F个行矢量或列矢量;即每个HPU或VPU被F个行矢量或列矢量复用,在每个迭代周期内被复用bF次。因为边的平行关系只存在于一个循环行列式中,为了避免RAM的访问冲突,仍将各子矩阵的信息分开保存在独立的RAM块中,并通过RAM的读出和写入复接单元来实现一个复用组内F行或F列的RAM与运算单元之间的连接。
上述低复杂度译码器结构,在不增加存储容量和存储单元数量的情况下,将运算单元数量减少为最小半并行结构的1/F,降低了译码器的电路资源和实现复杂度。同时串行度相应增加,是在最小半并行结构和全串行结构之间的盲区当中进行折中,便于在满足吞吐率要求的前提下,尽量降低译码器的硬件实现复杂度,是一种灵活有效的低复杂度译码器结构。
但是在实际应用中,上述低复杂度译码器结构仍存在一些问题,主要在于:
1)RAM块的数量等于H矩阵的CSM的数量Ω,对于实际应用中的长码,RAM块的数量维持在较高的水平;且每个RAM块都要以位宽q参与复接,在硬件实现当中,这需要庞大的布线资源(Routing Resources),且容易在复接中发生阻塞,严重影响上述复接单元和运算单元的最高工作频率。
2)在面向以FPGA为主的可编程逻辑器件的硬件实现当中,RAM资源通常是以固定容量的RAM单元的方式存在的,比如Altera公司FPGA中的M4K和M9K单元模块,分别包含4.5K和9K的比特存储资源。而上述译码器结构中的RAM块(ZRAM/LRAM/CRAM),实际需要的存储容量可能远小于硬件中提供的RAM单元的固定容量。比如DTMB标准中的QC-LDPC码,b=127,q=8,其一个RAM块实际只需要不到1K比特的存储容量。所以在FPGA实现时,为充分利用M4K这样的RAM单元,可以最多使4个偏移地址和控制信号相同的子矩阵所对应的RAM块合并到一个M4K,深度不变,读写数据位宽变为原来的4倍。这样能在一定程度上提高M4K单元的使用效率。但实际上偏移地址相同的子矩阵的数目往往并非是4的倍数,所以即便采用了上述优化策略,FPGA中大量的RAM单元仍未得到充分利用。此外,由于增加了RAM单元的读写数据位宽,使得同一RAM单元与外围逻辑电路的连线成倍增加,硬件实现时仍易遇到布线资源紧张等问题。
鉴于以上缺陷,特别是针对长QC-LDPC码的译码器对存储资源要求成倍提高的情况,本发明提出将文献[2]中所述低复杂度译码器结构进一步改进,成倍增加RAM块的深度,实现RAM块合并,从而显著提高硬件实现中RAM单元的使用效率,减少所需RAM单元的数量,减少复接单元所占的逻辑资源,同时有效优化硬件实现所需的布线资源,达到在逻辑资源、存储资源、布线资源以及吞吐率之间折中的目的,从而实现更为灵活高效的QC-LDPC码低复杂度译码器结构。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:在降低QC-LDPC码译码器硬件实现复杂度的基础上,对存储资源进行优化配置,通过合并减少RAM单元的数量,提高RAM单元的使用效率,实现逻辑资源、存储资源、布线资源和系统吞吐率之间的灵活折中。
(二)技术方案
为解决上述技术问题,本发明提供了一种QC-LDPC码译码器,该译码器包括:
水平运算单元阵列,包括若干水平运算单元,每个所述水平运算单元分别对应一个水平复用组,由所述水平复用组的F1个行矢量时分复用,用于根据从合并的信息存储器读出的各循环行列式子矩阵的变量信息,完成水平复用组内变量节点到校验节点的水平运算,得到各循环行列式子矩阵的校验信息,并重新写入到合并的信息存储器,同时完成译码校验,并将校验结果反馈给控制单元,每个所述水平复用组由QC-LDPC码的校验矩阵中的每F1个行矢量组成,F1为任意正整数;
垂直运算单元阵列,包括若干垂直运算单元,每个所述垂直运算单元分别对应一个垂直复用组,由所述垂直复用组的F2个列矢量时分复用,用于根据从合并的信息存储器读出的各循环行列式子矩阵的校验信息,完成垂直复用组内校验节点到变量节点的垂直运算,得到各循环行列式子矩阵的变量信息,以及由变量节点经过本次迭代后的后验对数似然比译码得到所述变量节点对应比特的译码结果码字,并将其重新写入到合并的信息存储器,每个所述垂直复用组由QC-LDPC码的校验矩阵中的每F2个列矢量组成,F2为任意正整数;
合并的信息存储器阵列,包含若干合并的信息存储器,每个所述合并的信息存储器均用于写入并存储所述水平运算单元输出的校验信息以及所述垂直运算单元输出的变量信息和译码结果码字,全部校验信息更新之后,读出更新的校验信息,通过复接单元将其输入到所述垂直运算单元,全部变量信息和译码结果码字更新之后,读出更新的变量信息和译码结果码字,通过复接单元将其输入到所述水平运算单元,并在控制单元的控制下输出合法的译码结果码字;
合并的接收信息存储器阵列,包括若干合并的接收信息存储器,每个所述合并的接收信息存储器均用于分不同地址段存储一个垂直复用组内各个列矢量所对应从外部接收的软信息,并将其与所述合并的信息存储器存储的校验信息一起输入到所述垂直运算单元;
复接单元,连接所述合并的信息存储器与所述垂直运算单元或所述水平运算单元,用于完成所述合并的信息存储器的读出及写入复接操作,并进行相应的时序调整;
控制单元,控制各合并的信息存储器以及合并的接收信息存储器的读写地址、复接操作、以及译码启动与结束。
其中,所述合并的信息存储器阵列进一步包括两组存储器阵列:
合并的校验信息存储器阵列,包括若干合并的校验信息存储器,每个所述合并的校验信息存储器均用于写入并存储所述水平运算单元输出的校验信息,全部校验信息更新之后,读出更新的校验信息,并通过复接单元将其输入到所述垂直运算单元;
合并的变量信息存储器阵列,包括若干合并的变量信息存储器,每个所述合并的变量信息存储器均用于写入并存储所述垂直运算单元输出的变量信息和译码结果码字,全部变量信息和译码结果码字更新之后,读出更新的变量信息和译码结果码字,通过复接单元将其输入到所述水平运算单元,并在控制单元的控制下输出合法的译码结果码字。
其中,所述复接单元进一步包括:
读出复接单元,连接所述合并的校验信息存储器阵列与所述垂直运算单元阵列,用于完成所述合并的校验信息存储器的读出复接操作,并进行相应的时序调整;或连接所述合并的变量信息存储器阵列与所述水平运算单元阵列,用于完成所述合并的变量信息存储器的读出复接操作,并进行相应的时序调整;
写入复接单元,与所述读出复接单元对偶,连接所述垂直运算单元阵列与所述合并的变量信息存储器阵列,用于完成所述合并的变量信息存储器的写入复接操作;或连接所述水平运算单元阵列与所述合并的校验信息存储器阵列,用于完成所述合并的校验信息存储器的写入复接操作。
其中,所述合并的信息存储器阵列通过时分复用一组存储器阵列,实现合并的校验信息存储器阵列和合并的变量信息存储器阵列的功能,其中:
实现合并的校验信息存储器阵列的功能为:在校验信息存取阶段,每个所述合并的信息存储器均用于写入并存储所述水平运算单元输出的校验信息,全部校验信息更新之后,读出更新的校验信息,并通过复接单元将其输入到所述垂直运算单元;
实现合并的变量信息存储器阵列的功能为:在变量信息存取阶段,每个所述合并的信息存储器均用于写入并存储所述垂直运算单元输出的变量信息和译码结果码字,全部变量信息和译码结果码字更新之后,读出更新的变量信息和译码结果码字,并通过复接单元将其输入到所述水平运算单元,并在控制单元的控制下输出合法的译码结果码字。
其中,所述复接单元进一步包括:
读出复接单元,连接所述合并的信息存储器阵列与所述垂直运算单元阵列,用于完成所述合并的信息存储器的校验信息的读出复接操作,并进行相应的时序调整;或连接所述合并的信息存储器阵列与所述水平运算单元阵列,用于完成所述合并的信息存储器的变量信息的读出复接操作,并进行相应的时序调整;
写入复接单元,与所述读出复接单元对偶,连接所述垂直运算单元阵列与所述合并的信息存储器阵列,用于完成所述合并的信息存储器的变量信息的写入复接操作;或连接所述水平运算单元阵列与所述合并的信息存储器阵列,用于完成所述合并的信息存储器的校验信息的写入复接操作。
本发明还提供了一种上述QC-LDPC码译码器的实现方法,该方法包括步骤:
水平和垂直复用组构建步骤,将QC-LDPC码的校验矩阵中的每F1个行矢量组成一个水平复用组,每F2个列矢量组成一个垂直复用组,F1与F2为任意正整数;
循环行列式子矩阵复接组构建步骤,分别按第一构建方式以及第二构建方式将所有循环行列式子矩阵进行组合,所述第一构建方式为:对于每个所述水平复用组,依次从其每个行矢量中取一个循环行列式子矩阵组成一个水平循环行列式子矩阵复接组;所述第二构建方式为:对于每个所述垂直复用组,依次从其每个列矢量中取一个循环行列式子矩阵组成一个垂直循环行列式子矩阵复接组;
合并的信息存储器阵列构建步骤,根据所述循环行列式子矩阵复接组的构建结果,将组成所述循环行列式子矩阵复接组的循环行列式子矩阵的校验信息或变量信息分不同地址段存储于同一合并的信息存储器中,若干合并的信息存储器构成合并的信息存储器阵列;
合并的接收信息存储器阵列构建步骤,根据垂直复用组的构建结果,将组成同一垂直复用组的列矢量对应的外部接收软信息分不同地址段存储于同一合并的接收信息存储器中,若干合并的接收信息存储器构成合并的接收信息存储器阵列;
复接单元构建步骤,根据所述合并的信息存储器的构建方式,构建复接单元;
控制单元构建步骤,根据各合并的信息存储器、合并的接收信息存储器以及复接单元的构建结果,构建控制单元,用于控制各合并的信息存储器以及合并的接收信息存储器的读写地址、复接操作,以及根据译码参数控制译码的启动与结束;
运算单元复用步骤,使每一个所述水平复用组内的F1个行矢量时分复用一个水平运算单元,每一个所述垂直复用组内的F2个列矢量时分复用一个垂直运算单元;
译码运算步骤,在所述控制单元的控制下,完成迭代译码运算。
其中,所述合并的信息存储器阵列构建步骤进一步包括:
根据所述水平循环行列式子矩阵复接组或所述垂直循环行列式子矩阵复接组构建结果,构建与各所述水平循环行列式子矩阵复接组或所述垂直循环行列式子矩阵复接组对应的合并的变量信息存储器及合并的校验信息存储器,将组成所述水平循环行列式子矩阵复接组或所述垂直循环行列式子矩阵复接组的F1或F2个循环行列式子矩阵的校验信息分不同地址段存储于同一合并的校验信息存储器中,将组成所述水平循环行列式子矩阵复接组或所述垂直循环行列式子矩阵复接组的F1或F2个循环行列式子矩阵的变量信息分不同地址段存储于同一合并的变量信息存储器中,将若干合并的变量信息存储器以及若干合并的校验信息存储器分别构成合并的变量信息存储器阵列以及合并的校验信息存储器阵列。
其中,所述复接单元构建步骤进一步包括:
若所述合并的信息存储器阵列是按照所述水平循环行列式子矩阵复接组构建的,则根据所述垂直复用组构建所述合并的校验信息存储器阵列的读出复接单元以及所述合并的变量信息存储器阵列的写入复接单元;
若所述合并的信息存储器阵列是按照所述垂直循环行列式子矩阵复接组构建的,则根据所述水平复用组构建所述合并的变量信息存储器阵列的读出复接单元以及所述合并的校验信息存储器阵列的写入复接单元。
其中,若所述合并的信息存储器阵列按照所述水平循环行列式子矩阵复接组构建,则在所述水平和垂直复用组构建步骤中,构建所述水平复用组的各行矢量中有尽量少的循环行列式子矩阵属于同一列矢量;
若所述合并的信息存储器阵列按照所述垂直循环行列式子矩阵复接组构建,则在所述水平和垂直复用组构建步骤中,构建所述垂直复用组的各列矢量中有尽量少的循环行列式子矩阵属于同一行矢量。
其中,若所述合并的信息存储器阵列按照所述水平循环行列式子矩阵复接组构建,则在所述第一构建方式中,组成所述水平循环行列式子矩阵复接组的循环行列式子矩阵均不属于同一列矢量;
若所述合并的信息存储器阵列按照所述垂直循环行列式子矩阵复接组构建,则在所述第二构建方式中,组成所述垂直循环行列式子矩阵复接组的循环行列式子矩阵均不属于同一行矢量。
其中,在所述循环行列式子矩阵复接组构建步骤中,组成各循环行列式子矩阵复接组的循环行列式子矩阵在全部循环行列式子矩阵的分布阵列中的连线交叉最少。
(三)有益效果
本发明提供的QC-LDPC码译码器及其实现方法充分利用QC-LDPC码半并行译码器结构的特性,深入挖掘其中的优化潜力,在引入水平、垂直复用组复用运算单元以降低硬件实现复杂度的基础上,还对存储资源进行了优化配置,通过RAM块合并,显著提高硬件实现中RAM单元的使用效率,减少所需RAM单元的数量,减少复接单元所占的逻辑资源,同时有效优化了硬件实现所需的布线资源,能够在逻辑资源、存储资源、布线资源以及吞吐率之间灵活折中,实现了更为灵活高效的QC-LDPC码低复杂度译码器结构。
附图说明
图1为现有的QC-LDPC码半并行译码器结构示意图;
图2为半并行译码器中一个CSM的信息存储方式以及水平和垂直运算的地址控制方式示意图;
图3为现有的一种引入水平和垂直复用组的低复杂度译码器结构示意图;
图4为依照本发明一种实施方式的QC-LDPC码译码器结构示意图;
图5为依照本发明一种实施方式的QC-LDPC码译码器实现方法流程图;
图6为依照本发明一种实施方式的QC-LDPC码译码器以按CSMG-H构建ZRAM-C和LRAM-C所实现的结构示意图;
图7为依照本发明一种实施方式的QC-LDPC码译码器以按CSMG-V构建ZRAM-C和LRAM-C所实现的结构示意图;
图8为一种简单的子矩阵分布示意图;
图9为依照本发明方法的CSMG-H的构建结果示意图;
图10为依照本发明方法的CSMG-V的构建结果示意图;
图11为依照本发明方法的ZRAM-C阵列的实现示意图;
图12为依照本发明方法的LRAM-C阵列以及读出复接子单元的实现示意图。
具体实施方式
对于本发明所提出的QC-LDPC码译码器及其实现方法,结合附图和实施例详细说明。
本发明的QC-LDPC码译码器在文献[2]中所述的低复杂度译码器结构的基础上做进一步改进,引入合并的信息存储器对存储资源进行优化配置。通过在水平复用组(HSG)(或垂直复用组(VSG))内将多个CSM进行组合,并将与之对应的存储信息一起存储到合并的信息存储器,达到减少RAM单元数量、提高其使用效率、优化布线资源的目的,并实现逻辑资源(包括数据复接资源)、存储资源、布线资源以及吞吐率之间的灵活折中。
本发明提出的HSG和VSG的组合系数可以不同,分别设为F1和F2,二者均为正整数。为描述方便,本发明提出的QC-LDPC码译码器及其实现方法,在背景技术中所作解释的基础上,增加如下解释:
循环行列式子矩阵复接组(Circulant Sub-Matrix Multiplex Group,CSMG):根据HSG或VSG,CSM的存储信息需要通过复接的方式输入到HPU或VPU的某个输入端,对应一个HSG或VSG的不同行矢量或列矢量的CSM需要进行组合复接,将需要进行复接的CSM的组合定义为循环行列式子矩阵复接组。其中,按HSG组合得到的CSMG为水平循环行列式子矩阵复接组CSMG-Horizontal(CSMG-H);按VSG组合得到的CSMG为垂直循环行列式子矩阵复接组CSMG-Vertical(CSMG-V)。
合并的信息存储器:对应一个CSMG-H(或CSMG-V,二者选其一)的F1(或F2)个CSM的F1(或F2)个ZRAM和LRAM分别合并为一个合并的变量信息存储器ZRAM-Combination(ZRAM-C)和一个合并的校验信息存储器LRAM-Combination(LRAM-C),F1(或F2)个CSM的存储信息分不同地址段存储于同一ZRAM-C和LRAM-C中;一个VSG的F2个列矢量所对应的F2个CRAM合并为一个合并的接收信息存储器CRAM-Combination(CRAM-C),F2个列矢量的外部接收软信息分不同地址段存储于同一CRAM-C中。此外,LRAM-C阵列和ZRAM-C阵列的功能可通过时分复用一组存储器阵列(XRAM-C阵列)来实现。
本发明中RAM的存储地址与CSM的列序号一致,从0至b-1。
如图4所示,依照本发明一种实施方式的QC-LDPC码译码器包括:
HPU阵列,包括若干HPU,每个HPU分别对应一个HSG,由HSG的F1个行矢量时分复用,用于根据从XRAM-C读出的各CSM的变量信息Zmn,完成HSG内变量节点到校验节点的水平运算,得到各循环行列式子矩阵的校验信息Lmn,并重新写入到XRAM-C,同时完成译码校验
Figure BSA00000209088100141
并将校验结果反馈给控制单元。
VPU阵列,包括若干VPU,每个VPU分别对应一个VSG,由VSG的F2个列矢量时分复用,用于根据从XRAM-C读出的各CSM的校验信息Lmn,完成VSG内校验节点到变量节点的垂直运算,得到各循环行列式子矩阵的变量信息Zmn,以及由变量节点经过本次迭代后的后验对数似然比Zn译码得到所述变量节点对应比特的译码结果码字
Figure BSA00000209088100142
(即Zn的符号位),并将其重新写入到XRAM-C。
合并的信息存储器(XRAM-C)阵列,包括若干XRAM-C,用于写入并存储HPU输出的校验信息以及VPU输出的变量信息和译码结果码字,全部校验信息更新之后,读出更新的校验信息,通过复接单元将其输入到所述垂直运算单元,全部变量信息和译码结果码字更新之后,读出更新的变量信息和译码结果码字,通过复接单元将其输入到HPU,并在控制单元的控制下输出合法的译码结果码字。
合并的接收信息存储器(CRAM-C)阵列,包括若干CRAM-C,每个CRAM-C均用于分不同地址段存储一个VSG内各个列矢量所对应从外部接收的信息,并将其与LRAM-C存储的校验信息一起输入到VPU。
复接单元阵列,包括若干复接单元,连接XRAM-C与VPU或HPU,每个复接单元均用于完成XRAM-C的读出及写入复接操作,并进行相应的时序调整;
控制单元,控制各XRAM-C以及CRAM-C的读写地址、复接操作、以及译码启动与结束。
其中,XRAM-C阵列可进一步包括两组存储器阵列:
合并的校验信息存储器(LRAM-C)阵列,包括若干LRAM-C,每个LRAM-C均用于写入并存储HPU输出的校验信息,全部校验信息更新之后,读出更新的校验信息,并通过复接单元将其输入到VPU;
合并的变量信息存储器(ZRAM-C)阵列,包括若干ZRAM-C,每个ZRAM-C均用于写入并存储VPU输出的变量信息和译码结果码字,全部变量信息和译码结果码字更新之后,读出更新的变量信息和译码结果码字,通过复接单元将其输入到HPU,并在控制单元的控制下输出合法的译码结果码字。
同一块ZRAM-C和LRAM-C中分不同地址段存储组成CSMG-H或CSMG-V的F1或F2个CSM的信息。
此时,复接单元进一步包括:
读出复接单元,若ZRAM-C和LRAM-C是按照CSMG-H进行构建所得,则连接LRAM-C阵列与VPU阵列,用于完成LRAM-C的读出复接操作,并进行相应的时序调整;若ZRAM-C和LRAM-C是按照CSMG-V进行构建所得,则连接ZRAM-C阵列与HPU阵列,用于完成ZRAM-C的读出复接操作,并进行相应的时序调整;
写入复接单元,与读出复接单元对偶,若ZRAM-C和LRAM-C是按照CSMG-H进行构建所得,则连接VPU阵列与ZRAM-C阵列,用于完成ZRAM-C的写入复接操作;若ZRAM-C和LRAM-C是按照CSMG-V进行构建所得,则连接HPU阵列与LRAM-C阵列,用于完成LRAM-C的写入复接操作。
此外,XRAM-C阵列还可通过时分复用一组存储器阵列,实现LRAM-C阵列和ZRAM-C阵列的功能。从LDPC码译码流程可以看出,水平运算和垂直运算之间总是顺序执行的,在完成水平运算时,只需LRAM存储校验信息,此时原ZRAM同地址完全空闲;而在完成垂直运算时,只需ZRAM存储变量信息,此时原LRAM同地址完全空闲。为此,通过复用统一的RAM来存储校验信息或变量信息,即为XRAM,用于取代原有的ZRAM和LRAM。通过XRAM的复用,实现存储器的总容量大幅减少,从而显著节省存储器资源。
此时,复接单元进一步包括:
读出复接单元,若XRAM-C是按照CSMG-H进行构建所得,则连接XRAM-C列与VPU阵列,用于完成XRAM-C的校验信息的读出复接操作,并进行相应的时序调整;若XRAM-C是按照CSMG-V进行构建所得,则连接XRAM-C阵列与HPU阵列,用于完成XRAM-C的变量信息的读出复接操作,并进行相应的时序调整;
写入复接单元,与读出复接单元对偶,若XRAM-C是按照CSMG-H进行构建所得,则连接VPU阵列与XRAM-C阵列,用于完成XRAM-C的变量信息的写入复接操作;若XRAM-C是按照CSMG-V进行构建所得,则连接HPU阵列与XRAM-C阵列,用于完成XRAM-C的校验信息的写入复接操作。
如图5所示,依照本发明一种实施方式的上述QC-LDPC码译码器的实现方法包括步骤:
复用组构建步骤,将QC-LDPC码的校验矩阵中的每F1个行矢量组成一个HSG,每F2个列矢量组成一个VSG,F1与F2为任意正整数;
CSMG构建步骤,分别按第一构建方式以及第二构建方式将所有CSM组合,第一构建方式为:对于每个HSG,依次从其每个行矢量中取一个CSM组成一个CSMG-H;第二构建方式为:对于每个VSG,依次从其每个列矢量中取一个CSM组成一个CSMG-V;
XRAM-C阵列构建步骤,根据CSMG的构建结果,将组成CSMG的CSM的信息分不同地址段存储于同一XRAM-C中,若干XRAM-C构成XRAM-C阵列;
CRAM-C阵列构建步骤,将外部接收软信息分不同地址段存储于同一CRAM-C中,若干CRAM-C构成CRAM-C阵列;
复接单元构建步骤,根据XRAM-C的构建方式,构建复接单元;
控制单元构建步骤,根据XRAM-C、CRAM-C以及复接单元的构建结果,构建控制单元,用于控制各XRAM-C、CRAM-C读写地址、复接操作、以及根据每次迭代的校验结果和最大迭代次数等译码参数控制译码的启动与结束;
运算单元复用步骤,使每一个HSG内的F1个行矢量时分复用一个HPU,每一个VSG内的F2个列矢量时分复用一个VPU;
译码运算步骤,在所述控制单元的控制下,完成迭代译码运算。
其中,XARM-C阵列构建步骤进一步包括:
根据CSMG-H或CSMG-V的构建结果,构建与各CSMG-H或CSMG-V对应的ZRAM-C及LRAM-C,将组成CSMG-H或CSMG-V的F1或F2个CSM的信息分不同地址段存储于同一ZRAM-C及中,将若干ZRAM-C以及若干LRAM-C分别构成ZRAM-C及阵列以及LRAM-C阵列。
复接单元构建步骤进一步包括:
若XRAM-C是按照CSMG-H构建的,则根据VSG构建LRAM-C的读出复接子单元以及ZRAM-C的写入复接子单元;若XRAM-C是按照CSMG-V构建的,则根据HSG构建ZRAM-C的读出复接子单元以及LRAM-C的写入复接子单元。
若XRAM-C按照CSMG-H构建,则在复用组构建步骤中,构建HSG的各行矢量中有尽量少的CMS属于同一列;若XRAM-C按照CSMG-V构建,则在复用组构建步骤中,构建VSG的各列矢量中有尽量少的CSM属于同一行。
若XRAM-C按照CSMG-H构建,则在第一构建方式中,组成CSMG-H的CSM均不属于同一列矢量;若XRAM-C按照CSMG-V构建,则在第二构建方式中,组合CSMG-V的CSM均不属于同一行矢量。
在CSMG构建步骤中,构建各CSMG的CSM在全部CSM的分布阵列中的连线交叉最少。
如图6、7所示,其分别表示本发明提供的QC-LDPC码译码器按CSMG-H构建ZRAM-C块和LRAM-C块以及按CSMG-V构建ZRAM-C块和LRAM-C块两种方案的结构框图。
实施例
本实施例以组合系数F1=F2=2,并以按CSMG-H构建XRAM-C为例阐述本发明所述技术方案。
如图8所示,其表示一种简单的具有准循环结构的H矩阵,其并非为一实际的QC-LDPC码的H矩阵,仅用于对本发明提供的QC-LDPC码译码器及其实现方法的具体实施进行详细描述。该H矩阵由4个行矢量和6个列矢量组成,其中的带条纹块为CSM,无色块为ZSM,CSM按其行、列位置分别编号为i-j,i表示行,j表示列。
复用组构建步骤:首先构建HSG,将第1、2行矢量构建成HSG1,第3、4行矢量构建成HSG2;然后构建VSG,将第1、2列矢量构建成VSG1,第3、4列矢量构建成VSG2,第5、6列矢量构建成VSG3。
HSG或VSG可以按行矢量或列矢量的任意组合进行构建,但为使之后合并的RAM产生读取冲突的情况尽量少,以及复接单元的时序调整尽量简单,则可以按一定规则进行HSG和VSG的构建。优选地,若ZRAM-C块和LRAM-C块按CSMG-H进行构建,则要求组成HSG的各个行矢量中有尽量少的CSM属于同一列矢量;若ZRAM-C块和LRAM-C块按CSMG-V进行构建,则要求组成VSG的各个列矢量中有尽量少的CSM属于同一行矢量。此规则的目的是,方便构建CSMG,即,便于使组成CSMG-H的CSM在各列矢量上交错分布,或者使组成CSMG-V的CSM在各行矢量上交错分布。
CSMG构建步骤:首先按HSG将CSM进行组合,在一个HSG所包含的两个行矢量中,依次从每个行矢量取一个CSM组成一个CSMG-H,如此将全部CSM按各自所在的HSG分别进行组合,构建成CSMG-H;然后按VSG将CSM进行组合,将全部CSM按各自所在的VSG依次进行组合,构建CSMG-V。图9、10分别表示依照本发明方法的CSMG-H和CSMG-V的构建结果。
CSMG-H或CSMG-V可以按属于同一HSG或VSG的不同行矢量或列矢量的CSM的任意组合进行构建,但为使之后合并的RAM产生读取冲突的情况尽量少,以及复接单元的时序调整尽量简单,则可以按一定规则进行CSMG-H和CSMG-V的构建。优选地,一、若ZRAM-C块和LRAM-C块按CSMG-H进行构建,则要求组成CSMG-H的各CSM均不属于同一列矢量;若ZRAM-C块和LRAM-C块按CSMG-V进行构建,则要求组成CSMG-V的各CSM均不属于同一行矢量;二、在全部CSM的分布阵列中,要求构建成的各CSMG的CSM的连线交叉最少。上述CSMG-H的构建采用了上述两项规则,CSMG-V的构建采用了上述第二项规则。上述第一项规则的目的是,确保组成CSMG-H的CSM在各列矢量上交错分布,以确保组成同一CSMG-H的各CSM的校验信息必不会同时输入到同一VPU;或者确保组成CSMG-V的CSM在各行矢量上交错分布,以确保组成同一CSMG-V的各CSM的变量信息必不会同时输入到同一HPU。上述第二项规则的目的是,使组成同一CSMG的各CSM的信息同时输入到不同HPU或VPU的情况尽量少。故此,以上规则总的目的是使合并的RAM产生读取冲突的情况尽量少。
XRAM-C以及CRAM-C构建步骤:根据CSMG-H的构建结果,组成CSMG-H的两个CSM的信息分不同地址段存储于同一ZRAM-C和LRAM-C中;另外,根据VSG的构建结果,一个VSG的两个列矢量的外部接收软信息分不同地址段存储于同一CRAM-C块中。以LRAM-C块为例,设由两个CSM组成的CSMG-H所对应的LRAM-C分为A、B两个地址段,分别存储两个CSM的校验信息,而一个VSG中两个列矢量所对应的校验信息又按输入VPU的先后分为enter1和enter2两部分,则上述合并的RAM产生读取冲突的情况是指,同一个LRAM-C的两个地址段被CSMG-V分到VSG(可能是同一VSG也可能是不同VSG)的同时输入部分(即同为enter1或enter2),从而产生RAM读取冲突的问题。
图11表示上述的ZRAM-C阵列的实现结构。如图11所示,ZRAM-C的读出总是按地址段顺序进行,无需复接,只需用控制单元管理其读取地址在各地址段之间跳转并自加即可。与之对应,LRAM-C的写入也无需复接。所以本发明提供的译码器较文献[2]中所述的低复杂度译码器结构至少减少了一对读出和写入复接单元,相应地减少了复接单元所占的逻辑资源。
复接单元构建步骤:由于ZRAM-C和LRAM-C是按CSMG-H进行构建,则LRAM-C的读出和ZRAM-C的写入需要进行复接,根据VSG构建LRAM-C阵列的读出复接子单元和ZRAM-C阵列的写入复接子单元,并进行相应的时序调整。
图12表示在上述LRAM-C阵列以及读出复接子单元的实现结构。如图12所示,由于LRAM-C是按CSMG-H进行构建,所以LRAM-C需要通过读出复接子单元与VPU连接。图中enter1表示在第一个时钟周期输入VPU的CSM校验信息,enter2表示在第二个时钟周期输入VPU的CSM校验信息。由于在图9中出现CSMG-H的CSM连线交叉,故在图12中存储于同一LRAM-C的CSM3-4和CSM4-6的校验信息均被分配到enter2部分,即产生了RAM读取冲突的问题。本发明提出的时序调整的一种参考实施方式为,仍将CSM3-4的校验信息分配到enter2,而在第三个时钟周期再将CSM4-6的校验信息读出并输入VPU,同时将与CSM4-6同时参与VPU运算的其他CSM(图12中为CSM2-6)的校验信息做一级寄存,延时一个时钟周期,全部统一在第三个时钟周期输入VPU。ZRAM-C阵列的写入复接子单元与LRAM-C阵列的读出复接子单元对偶。由于在读出复接子单元已通过时序调整解决了RAM读取冲突的问题,故在写入复接子单元对应的位置无需再做调整。
由于QC-LDPC码H矩阵的稀疏性,同时又因本发明提出的尽量减少RAM块读取冲突的各项规则,故根据本发明提出的实现方法所获得的实际实现结果中,出现RAM读取冲突的情况非常少,即,为解决该问题而进行的时序调整简单,引入的复接资源很少。
控制单元构建步骤:根据各XRAM-C以及CRAM-C和复接单元的构建结果,构建控制单元,以控制各XRAM-C以及CRAM-C的读写地址,控制复接操作,以及根据每次迭代的校验结果和最大迭代次数等译码器参数管理译码启动及结束。
运算单元复用步骤:每一HSG内的两个行矢量时分复用一个HPU,每一VSG内的两个列矢量时分复用一个VPU。
译码运算步骤:在控制单元的控制下,完成迭代译码运算。
本发明充分利用QC-LDPC码半并行译码器结构的特性,深入挖掘其中的优化潜力,在引入水平、垂直复用组复用运算单元以降低硬件实现复杂度的基础上,还对存储资源进行了优化配置,通过RAM块合并,显著提高硬件实现中RAM单元的使用效率,减少所需RAM单元的数量,减少复接单元所占的逻辑资源,同时有效优化了硬件实现所需的布线资源。与传统实现方法相比,本发明的技术方案能够在逻辑资源、存储资源、布线资源以及吞吐率之间灵活折中,实现了更为灵活高效的QC-LDPC码低复杂度译码器结构。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (11)

1.一种准循环低密度奇偶校验码QC-LDPC码译码器,其特征在于,该译码器包括:
水平运算单元阵列,包括若干水平运算单元,每个所述水平运算单元分别对应一个水平复用组,由所述水平复用组的F1个行矢量时分复用,用于根据从合并的信息存储器读出的各循环行列式子矩阵的变量信息,完成水平复用组内变量节点到校验节点的水平运算,得到各循环行列式子矩阵的校验信息,并重新写入到合并的信息存储器,同时完成译码校验,并将校验结果反馈给控制单元,每个所述水平复用组由QC-LDPC码的校验矩阵中的每F1个行矢量组成,F1为任意正整数;
垂直运算单元阵列,包括若干垂直运算单元,每个所述垂直运算单元分别对应一个垂直复用组,由所述垂直复用组的F2个列矢量时分复用,用于根据从合并的信息存储器读出的各循环行列式子矩阵的校验信息,完成垂直复用组内校验节点到变量节点的垂直运算,得到各循环行列式子矩阵的变量信息,以及由变量节点经过本次迭代后的后验对数似然比译码得到所述变量节点对应比特的译码结果码字,并将其重新写入到合并的信息存储器,每个所述垂直复用组由QC-LDPC码的校验矩阵中的每F2个列矢量组成,F2为任意正整数;
合并的信息存储器阵列,包含若干合并的信息存储器,每个所述合并的信息存储器均用于写入并存储所述水平运算单元输出的校验信息以及所述垂直运算单元输出的变量信息和译码结果码字,全部校验信息更新之后,读出更新的校验信息,通过复接单元将其输入到所述垂直运算单元,全部变量信息和译码结果码字更新之后,读出更新的变量信息和译码结果码字,通过复接单元将其输入到所述水平运算单元,并在控制单元的控制下输出合法的译码结果码字;
合并的接收信息存储器阵列,包括若干合并的接收信息存储器,每个所述合并的接收信息存储器均用于分不同地址段存储一个垂直复用组内各个列矢量所对应从外部接收的软信息,并将其与所述合并的信息存储器存储的校验信息一起输入到所述垂直运算单元;
复接单元阵列,包括若干复接单元,连接所述合并的信息存储器与所述垂直运算单元或所述水平运算单元,每个复接单元用于完成所述合并的信息存储器的读出及写入复接操作,并进行相应的时序调整;
控制单元,控制各合并的信息存储器以及合并的接收信息存储器的读写地址、复接操作、以及译码启动与结束。
2.如权利要求1所述的QC-LDPC码译码器,其特征在于,所述合并的信息存储器阵列进一步包括两组存储器阵列:
合并的校验信息存储器阵列,包括若干合并的校验信息存储器,每个所述合并的校验信息存储器均用于写入并存储所述水平运算单元输出的校验信息,全部校验信息更新之后,读出更新的校验信息,并通过复接单元将其输入到所述垂直运算单元;
合并的变量信息存储器阵列,包括若干合并的变量信息存储器,每个所述合并的变量信息存储器均用于写入并存储所述垂直运算单元输出的变量信息和译码结果码字,全部变量信息和译码结果码字更新之后,读出更新的变量信息和译码结果码字,通过复接单元将其输入到所述水平运算单元,并在控制单元的控制下输出合法的译码结果码字。
3.如权利要求2所述的QC-LDPC码译码器,其特征在于,所述复接单元进一步包括:
读出复接单元,若所述合并的变量信息存储器和合并的校验信息存储器是按照水平循环行列式子矩阵复接组进行构建所得,则连接所述合并的校验信息存储器阵列与所述垂直运算单元阵列,用于完成所述合并的校验信息存储器的读出复接操作,并进行相应的时序调整;若所述合并的变量信息存储器和合并的校验信息存储器是按照垂直循环行列式子矩阵复接组进行构建所得,则连接所述合并的变量信息存储器阵列与所述水平运算单元阵列,用于完成所述合并的变量信息存储器的读出复接操作,并进行相应的时序调整;
写入复接单元,与所述读出复接单元对偶,若所述合并的变量信息存储器和合并的校验信息存储器是按照水平循环行列式子矩阵复接组进行构建所得,则连接所述垂直运算单元阵列与所述合并的变量信息存储器阵列,用于完成所述合并的变量信息存储器的写入复接操作;若所述合并的变量信息存储器和合并的校验信息存储器是按照垂直循环行列式子矩阵复接组进行构建所得,则连接所述水平运算单元阵列与所述合并的校验信息存储器阵列,用于完成所述合并的校验信息存储器的写入复接操作。
4.如权利要求1所述的QC-LDPC码译码器,其特征在于,所述合并的信息存储器阵列通过时分复用一组存储器阵列,实现合并的校验信息存储器阵列和合并的变量信息存储器阵列的功能,其中:
实现合并的校验信息存储器阵列的功能为:在校验信息存取阶段,每个所述合并的信息存储器均用于写入并存储所述水平运算单元输出的校验信息,全部校验信息更新之后,读出更新的校验信息,并通过复接单元将其输入到所述垂直运算单元;
实现合并的变量信息存储器阵列的功能为:在变量信息存取阶段,每个所述合并的信息存储器均用于写入并存储所述垂直运算单元输出的变量信息和译码结果码字,全部变量信息和译码结果码字更新之后,读出更新的变量信息和译码结果码字,并通过复接单元将其输入到所述水平运算单元,并在控制单元的控制下输出合法的译码结果码字。
5.如权利要求4所述的QC-LDPC码译码器,其特征在于,所述复接单元进一步包括:
读出复接单元,若所述合并的变量信息存储器和合并的校验信息存储器是按照水平循环行列式子矩阵复接组进行构建所得,则连接所述合并的信息存储器阵列与所述垂直运算单元阵列,用于完成所述合并的信息存储器的校验信息的读出复接操作,并进行相应的时序调整;若所述合并的变量信息存储器和合并的校验信息存储器是按照垂直循环行列式子矩阵复接组进行构建所得,则连接所述合并的信息存储器阵列与所述水平运算单元阵列,用于完成所述合并的信息存储器的变量信息的读出复接操作,并进行相应的时序调整;
写入复接单元,与所述读出复接单元对偶,若所述合并的变量信息存储器和合并的校验信息存储器是按照水平循环行列式子矩阵复接组进行构建所得,则连接所述垂直运算单元阵列与所述合并的信息存储器阵列,用于完成所述合并的信息存储器的变量信息的写入复接操作;若所述合并的变量信息存储器和合并的校验信息存储器是按照垂直循环行列式子矩阵复接组进行构建所得,则连接所述水平运算单元阵列与所述合并的信息存储器阵列,用于完成所述合并的信息存储器的校验信息的写入复接操作。
6.一种权利要求1-5任一项所述的QC-LDPC码译码器的实现方法,其特征在于,该方法包括步骤:
水平和垂直复用组构建步骤,将QC-LDPC码的校验矩阵中的每F1个行矢量组成一个水平复用组,每F2个列矢量组成一个垂直复用组,F1与F2为任意正整数;
循环行列式子矩阵复接组构建步骤,分别按第一构建方式以及第二构建方式将所有循环行列式子矩阵进行组合,所述第一构建方式为:对于每个所述水平复用组,依次从其每个行矢量中取一个循环行列式子矩阵组成一个水平循环行列式子矩阵复接组;所述第二构建方式为:对于每个所述垂直复用组,依次从其每个列矢量中取一个循环行列式子矩阵组成一个垂直循环行列式子矩阵复接组;
合并的信息存储器阵列构建步骤,根据所述循环行列式子矩阵复接组的构建结果,将组成所述循环行列式子矩阵复接组的循环行列式子矩阵的校验信息或变量信息分不同地址段存储于同一合并的信息存储器中,若干合并的信息存储器构成合并的信息存储器阵列;
合并的接收信息存储器阵列构建步骤,根据垂直复用组的构建结果,将组成同一垂直复用组的列矢量对应的外部接收软信息分不同地址段存储于同一合并的接收信息存储器中,若干合并的接收信息存储器构成合并的接收信息存储器阵列;
复接单元构建步骤,根据所述合并的信息存储器的构建方式,构建复接单元;
控制单元构建步骤,根据各合并的信息存储器、合并的接收信息存储器以及复接单元的构建结果,构建控制单元,用于控制各合并的信息存储器以及合并的接收信息存储器的读写地址、复接操作,以及根据译码参数控制译码的启动与结束;
运算单元复用步骤,使每一个所述水平复用组内的F1个行矢量时分复用一个水平运算单元,每一个所述垂直复用组内的F2个列矢量时分复用一个垂直运算单元;
译码运算步骤,在所述控制单元的控制下,完成迭代译码运算。
7.如权利要求6所述的QC-LDPC码译码器的实现方法,其特征在于,所述合并的信息存储器阵列构建步骤进一步包括:
根据所述水平循环行列式子矩阵复接组或所述垂直循环行列式子矩阵复接组构建结果,构建与各所述水平循环行列式子矩阵复接组或所述垂直循环行列式子矩阵复接组对应的合并的变量信息存储器及合并的校验信息存储器,将组成所述水平循环行列式子矩阵复接组或所述垂直循环行列式子矩阵复接组的F1或F2个循环行列式子矩阵的校验信息分不同地址段存储于同一合并的校验信息存储器中,将组成所述水平循环行列式子矩阵复接组或所述垂直循环行列式子矩阵复接组的F1或F2个循环行列式子矩阵的变量信息分不同地址段存储于同一合并的变量信息存储器中,将若干合并的变量信息存储器以及若干合并的校验信息存储器分别构成合并的变量信息存储器阵列以及合并的校验信息存储器阵列。
8.如权利要求7所述的QC-LDPC码译码器的实现方法,其特征在于,所述复接单元构建步骤进一步包括:
若所述合并的信息存储器阵列是按照所述水平循环行列式子矩阵复接组构建的,则根据所述垂直复用组构建所述合并的校验信息存储器阵列的读出复接单元以及所述合并的变量信息存储器阵列的写入复接单元;
若所述合并的信息存储器阵列是按照所述垂直循环行列式子矩阵复接组构建的,则根据所述水平复用组构建所述合并的变量信息存储器阵列的读出复接单元以及所述合并的校验信息存储器阵列的写入复接单元。
9.如权利要求6所述的QC-LDPC码译码器的实现方法,其特征在于,若所述合并的信息存储器阵列按照所述水平循环行列式子矩阵复接组构建,则在所述水平和垂直复用组构建步骤中,构建所述水平复用组的各行矢量中有尽量少的循环行列式子矩阵属于同一列矢量;
若所述合并的信息存储器阵列按照所述垂直循环行列式子矩阵复接组构建,则在所述水平和垂直复用组构建步骤中,构建所述垂直复用组的各列矢量中有尽量少的循环行列式子矩阵属于同一行矢量。
10.如权利要求6所述的QC-LDPC码译码器的实现方法,其特征在于,若所述合并的信息存储器阵列按照所述水平循环行列式子矩阵复接组构建,则在所述第一构建方式中,组成所述水平循环行列式子矩阵复接组的循环行列式子矩阵均不属于同一列矢量;
若所述合并的信息存储器阵列按照所述垂直循环行列式子矩阵复接组构建,则在所述第二构建方式中,组成所述垂直循环行列式子矩阵复接组的循环行列式子矩阵均不属于同一行矢量。
11.如权利要求6或10所述的QC-LDPC码译码器的实现方法,其特征在于,在所述循环行列式子矩阵复接组构建步骤中,组成各循环行列式子矩阵复接组的循环行列式子矩阵在全部循环行列式子矩阵的分布阵列中的连线交叉最少。
CN2010102389459A 2010-07-27 2010-07-27 Qc-ldpc码译码器及其实现方法 Active CN101917249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102389459A CN101917249B (zh) 2010-07-27 2010-07-27 Qc-ldpc码译码器及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102389459A CN101917249B (zh) 2010-07-27 2010-07-27 Qc-ldpc码译码器及其实现方法

Publications (2)

Publication Number Publication Date
CN101917249A CN101917249A (zh) 2010-12-15
CN101917249B true CN101917249B (zh) 2012-11-14

Family

ID=43324654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102389459A Active CN101917249B (zh) 2010-07-27 2010-07-27 Qc-ldpc码译码器及其实现方法

Country Status (1)

Country Link
CN (1) CN101917249B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102684707B (zh) * 2012-05-21 2015-02-25 电子科技大学 一种ldpc编码器
CN103618556A (zh) * 2013-12-11 2014-03-05 北京理工大学 基于rmp调度的部分并行qc-ldpc译码方法
CN104579576B (zh) * 2015-01-27 2018-02-09 清华大学 编码调制方法及系统
CN106209114B (zh) * 2015-04-29 2019-11-12 深圳忆联信息系统有限公司 译码方法及装置
CN106341137B (zh) * 2015-07-10 2019-05-31 扬智科技股份有限公司 环形储存器的空间管理方法及其译码装置
CN111384970B (zh) * 2018-12-29 2022-04-15 大唐移动通信设备有限公司 一种译码方法、装置及通信设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405981A (zh) * 2002-11-15 2003-03-26 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
CN1897511A (zh) * 2006-06-19 2007-01-17 北京邮电大学 准循环ldpc译码器中的边信息安排方法
CN101110593A (zh) * 2007-06-01 2008-01-23 清华大学 Qc-ldpc译码器水平运算单元快速流水线级联结构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8103931B2 (en) * 2008-08-27 2012-01-24 Mitsubishi Electric Research Laboratories, Inc. Method for constructing large-girth quasi-cyclic low-density parity-check codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405981A (zh) * 2002-11-15 2003-03-26 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
CN1897511A (zh) * 2006-06-19 2007-01-17 北京邮电大学 准循环ldpc译码器中的边信息安排方法
CN101110593A (zh) * 2007-06-01 2008-01-23 清华大学 Qc-ldpc译码器水平运算单元快速流水线级联结构

Also Published As

Publication number Publication date
CN101917249A (zh) 2010-12-15

Similar Documents

Publication Publication Date Title
Zhong et al. Block-LDPC: A practical LDPC coding system design approach
CN101159436B (zh) 解码设备及方法
CN101917249B (zh) Qc-ldpc码译码器及其实现方法
CN101079639B (zh) 基于节点存储器的低密度奇偶校验解码装置和方法
CN104868925B (zh) 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
CN101771421B (zh) 基于tdmp的超高速低功耗qc-ldpc码解码器
CN101499804B (zh) 准循环低密度校验码的多码率译码器
CN101800559B (zh) 一种基于tdmp的高速可配置qc-ldpc码解码器
CN103069720B (zh) 纠错解码装置及纠错解码方法
CN102664638A (zh) 基于分层nms算法的多码长ldpc码译码器的fpga实现方法
US9825650B2 (en) Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes
CN109802687B (zh) 一种基于fpga的qc-ldpc码的高速码率兼容ldpc编码器
CN103188035B (zh) 迭代解映射解码方法和系统
Ho et al. A 520k (18900, 17010) array dispersion LDPC decoder architectures for NAND flash memory
CN103618556A (zh) 基于rmp调度的部分并行qc-ldpc译码方法
CN101604975A (zh) 一种低功耗多模qc-ldpc码解码器及其工作方法
CN101420279B (zh) 用于移动多媒体广播中的高速ldpc译码器及译码方法
CN102412844B (zh) 一种ira类ldpc码的译码方法及译码装置
CN101262230A (zh) 一种低密度奇偶校验码矩阵的设计方法
CN102594369B (zh) 基于fpga的准循环低密度校验码译码器及译码方法
CN101958718B (zh) 用于ldpc码的改进型半并行译码器和译码方法
WO2007082626A2 (en) Method and apparatus for error correction decoding
CN113055025B (zh) 可重构的极化码与低密度奇偶校验码译码器
CN101777920A (zh) 低密度奇偶校验码的编码方法和编码译码装置
CN102811064B (zh) 一种多码率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