CN117081606A - 一种面向qc-ldpc译码器的动态可配置译码方法和装置 - Google Patents
一种面向qc-ldpc译码器的动态可配置译码方法和装置 Download PDFInfo
- Publication number
- CN117081606A CN117081606A CN202310967850.8A CN202310967850A CN117081606A CN 117081606 A CN117081606 A CN 117081606A CN 202310967850 A CN202310967850 A CN 202310967850A CN 117081606 A CN117081606 A CN 117081606A
- Authority
- CN
- China
- Prior art keywords
- node
- check
- cyclic shift
- module
- iteration
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 125000004122 cyclic group Chemical group 0.000 claims description 69
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 8
- 230000008014 freezing Effects 0.000 claims description 4
- 238000007710 freezing Methods 0.000 claims description 4
- 230000006872 improvement Effects 0.000 claims description 4
- 238000003780 insertion Methods 0.000 claims description 4
- 230000037431 insertion Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1125—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及无线通信技术领域,数字电路设计领域,特别是涉及一种面向QC‑LDPC译码器的动态可配置译码装置和方法,现有的译码器不够灵活,仅支持单帧译码,对短码的资源利用率不足,而且在硬件实现中流水线结构带来的流水冲突会大幅度降低译码器吞吐率和硬件资源利用率,针对上述问题,本发明提出了一种面向QC‑LDPC译码器动态可配置译码装置和方法,并将其封装成IP核,用户只需配置相应的校验矩阵信息,输入译码的信息、译码器就可以根据用户输入的校验矩阵等信息对用户指定的QC‑LDPC进行译码能够同时对于不同码长的数据进行译码,从而提高短码时的资源利用率和吞吐率。
Description
技术领域
本发明涉及无线通信技术领域,数字电路设计领域,特别是涉及一种面向QC-LDPC译码器的动态可配置译码的装置和方法。
背景技术
在线性分组码中,最能逼近香农极限的码是低密度奇偶校验(LDPC)码,LDPC码的译码器一般采用基于节点置信度更新迭代算法,该算法是一种基于置信度传播逼近香农极限的有效方法,准循环低密度奇偶校验(QC-LDPC)码作为一种特殊的LDPC码,可以通过引入少量的额外硬件来实现并行译码提高吞吐率,由于上述优点,QC-LDPC码在通信和存储领域得到了广泛的应用,这些应用要求QC-LDPC译码器能够适用于各种码字长度,其中码字长度与提升因子(Z)成线性关系,5G标准中Z有51个取值(范围为2~384),有2个基图可供选择,然而,现有译码器没有考虑不同长度码字的同时并行译码,对短码的资源利用不足,导致译码器处理速率和资源利用率不高,同时实际实现中为了提高吞吐率通常采用流水线设计,而流水线设计必不可免会带来内存访问冲突的问题。
发明内容
本发明为解决上述现有技术所述的现有译码器没有考虑不同长度码字的同时并行译码,对短码的资源利用不足,导致译码器处理速率和资源利用率不高,同时实际实现中为了提高吞吐率通常采用流水线设计,而流水线设计必不可免会带来内存访问冲突的问题,提供一种面向QC-LDPC译码器的动态可配置译码的装置和方法。
本发明旨在至少在一定程度上解决上述技术问题。
为解决上述技术问题,本发明的技术方案如下:
一种面向QC-LDPC译码器的动态可配置译码的装置,包括:
所述装置包括可重构循环移位模块、节点运算单元、全局控制器、校验模块、输入/输出接口、LLR存储模块、校验信息存储模块和变量信息存储模块,其中:
所述输入/输出接口接收LLR值/输出译码结果,将接收的LLR值传输至LLR存储模块,由全局控制器生成循环移位系数,所述可重构循环移位模块对多个LLR值进行循环移位,所述节点运算单元对循环移位之后的LLR值进行计算,校验信息存储模块、变量信息存储模块对节点运算模块的输出进行存储,所述节点运算模块的输出经过寄存器到所述校验模块,所述校验模块对寄存器输出的LLR值进行校验,输出译码结果。
进一步,所述校验模块采用乒乓存储对LLR值的符号位在校验信息存储模块进行预缓存。
进一步,可重构循环移位模块由左移位器、右移位器和组合器组成,所述组合器把左移位器和右移位器的输出组合。
进一步,所述动态可配置译码方法应用于权利要求1或2任一项所述的一种面向QC-LDPC译码器的动态可配置译码的装置,所述动态可配置译码方法包括如下步骤:
S1:读出多个LLR值;
S2:可重构的循环移位模块根据并行译码帧数,对多个LLR值同时进行循环移位;
S3:节点运算单元能对循环移位后的多个LLR值并行计算;
S4:对步骤S3得到的结果进行判决,将满足判决条件的结果分段进行冻结,未满足的结果分段返回步骤S2,当所有结果分段判决满足判决条件则结束迭代,完成译码。
进一步,可重构循环移位模块对多个LLR值进行循环移位,具体为:
由全局控制器同步提供多个循环移位系数,不同码字的LLR根据对应循环移位系数对应进行移位,然后输出循环移位之后的LLR值。
进一步,所述节点运算模块对循环移位之后的输入进行计算,具体为:
S3.1:计算得到当前层上次迭代的校验节点传递给变量节点的消息和变量节点传递给校验节点的消息,并存储在变量节点消息存储模块和校验信息存储模块;
S3.2:对后验概率进行更新时,会优先更新当前层与下一层共享的节点,将其输出写回LLR存储模块。
进一步,步骤S3.1中,计算得到当前层上次迭代的校验节点传递给变量节点的消息和变量节点传递给校验节点的消息,具体为:
其中,为第t次迭代时从变量节点j传递到校验节点i的消息,/>为在第t-1次迭代时从校验节点i传递到变量节点j的消息,/>为第l-1层变量节点j在第t次迭代时的后验概率。
进一步,步骤S3.2中,利用校验节点传递给变量节点的消息和变量节点传递给校验节点的消息计算校验信息和后验概率信息,具体为:
其中,为第t次迭代时从变量节点j传递到校验节点i的消息,/>为在第t次迭代时从校验节点i传递到变量节点j的消息,α为常数,/>第t次迭代中,第i层更新后第j个节点的后验概率信息,/>为与校验节点i相连但未与变量节点j相连的变量节点的集合,/>为在第t次迭代时从校验节点i传递到变量节点j的消息,/>为在第t次迭代时从变量节点b传递到校验节点i的消息。
进一步,步骤S3.2还包括对后验概率进行判决,具体为:
为第t层变量节点j在第i次迭代时的后验概率。
进一步,步骤S3还包括对吞吐率提升的分析,具体为:
其中Fclk是译码器的工作频率,n是码字长度,nc表示读取全部节点需要的周期,也即校验矩阵基矩阵的非零元素,nidle表示所需插入的空闲周期,nc+nidle表示一次迭代所需要的周期,Thnorm表示迭代次数为1的情况下的吞吐率。与现有技术相比,本发明技术方案的有益效果是:
本发明通过对译码器进行可重构设计使得译码器能支持广泛的码长、码率以及多个码字并行译码,并且通过利用乒乓机制和动态数据调度机制可以更好地解决内存冲突问题,提高吞吐率性能。
附图说明
图1为本发明所述的一种面向QC-LDPC译码器的动态可配置译码装置;
图2为本发明所述的一种面向QC-LDPC译码器的动态可配置译码方法;
图3为本发明所述循环移位器结构图;
图4为本发明所述节点运算单元结构图;
图5为本发明所述硬件时序图;
图6为本发明所述译码器结构图;
图7为本发明所述译码器IP核。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
本实施例提供一种面向QC-LDPC译码器的动态可配置译码的装置,包括:
如图1所示,所述装置包括可重构循环移位模块、节点运算单元、全局控制器、校验模块、输入/输出接口、LLR存储模块、寄存器、校验信息存储模块和变量信息存储模块,其中:
所述输入/输出接口接收LLR值/输出译码结果,将接收的LLR值传输至LLR存储模块,由全局控制器生成循环移位系数,所述可重构循环移位模块对多个LLR值进行循环移位,可重构循环移位模块由左移位器、右移位器和组合器组成,所述组合器把左移位器和右移位器的输出组合,所述节点运算单元对循环移位之后的输入进行计算,校验信息存储模块、变量信息存储模块对节点运算模块的输出进行存储,所述节点运算模块的输出经过寄存器到所述校验模块,所述校验模块对寄存器的输出进行校验,输出译码结果。
在具体实施过程中,首先将外部输入的LLR值缓存,缓存结束后根据全局控制单元提供的地址读出并行读出Zmax个LLR值,然后可重构循环移位模块能在一定时钟周期对Zmax个输入同时进行循环移位,节点运算单元能对Zmax个循环移位后的LLR值并行计算,当更新最后一层时会进行校验和判决,若是满足奇偶校验或达到最大迭代次数,则输出译码结果,反之重复上面过程继续迭代。
所述装置里的各个模块具体为:输入/输出接口,接收外部译码参数并将其存储到对应的寄存器,完成译码器的初始化、多码字并行译码时LLR值需要在外部完成拼接。
LLR数据初始化完成后,开始迭代译码,全局控制器开始计数,并根据内部寄存器存储的校验矩阵信息生成循环移位系数、同步变量节点地址信号,根据地址信号从LLR缓存模块读取的后验概率消息和循环移位系数同步送入循环移位模块进行循环移位。
输入/输出接口,与外部信息进行信息交互,如将信道LLR值写入LLR存储模块,并在译码正确或达到最大迭代次数时读取解码位。
全局控制器通过控制总线与其他模块之间进行信息交互,提供点地址、循环移位系数和控制信号。
循环移位模块输出的后验概率信息和校验节点存储模块输出的校验节点信息相应送入节点运算单元进行计算。
节点更新过程中产生的数据对应的存储在校验节点消息存储模块和变量节点消息存储模块。
节点更新完成后,根据全局控制单元产生的变量节点地址,将更新后的数据重新存储在LLR缓存模块中,同时校验模块将更新后的数据的符号位存储。
校验矩阵最后一层节点更新完成后,校验模块开始对存储的符号位进行分段校验。
若是全部分段校验通过则将符号位判决结果通过输入/输出接口输出,之后等待新的数据译码信号,若不通过,则重复上述步骤,直至校验通过或达到最大迭代次数。
所述校验模块采用乒乓存储对LLR值的符号位在在校验模块内部的BRAM(BlockRamdom Access Memory,块随机存取存储器)进行预缓存,校验模块的原理具体为:根据校验矩阵对译码结果进行奇偶校验,若校验通过,则提前终止当前译码,当多码字并行译码时该校验模块需要提前识别触发终止条件的码字,将其冻结,因此,以下相互连接的块是必不可少的,采用乒乓机制对LLR的符号位进行预缓存,在校验模块内部使用BRAM(BlockRamdom Access Memory,块随机存取存储器)对读取的LLR符号位进行存储,在进行奇偶校验的同时不中断下一次迭代的处理。
检验模块内部存在一个早期终止识别单元,根据校验矩阵对LLR值符号位进行异或操作,如果奇偶校验通过,最终结果将全部为0,若结果不全为0,则继续迭代译码,多码字并行时为了检测哪些码字能够译码通过,异或操作将与循环模块类似根据分段独立执行。
多码字并行译码时,若某个码字校验通过后继续迭代译码,下次译码可能出错,所以校验模块内部有一个寄存器来冻结译码完成段的判决输出,让其他未完成的片段继续下一轮的解码,即当更新到最后一层节点时根据并行译码帧数,分段进行奇偶校验,若某段满足奇偶校验,则将其判决结果存储到寄存器冻结,冻结段后续迭代译码的结果将不会被存储到寄存器,当所有段已经满足过奇偶校验则输出寄存器中的译码结果,或达最大迭代次数时直接输出判决结果。
实施例2
本实施例在实施例1的基础上,继续公开以下内容:
所述动态可配置译码方法包括如下步骤:
S1:读出多个LLR值;
S2:可重构循环移位模块对多个LLR值同时进行循环移位;
S3:节点运算单元能对循环移位后的多个LLR值并行计算;
S4:对步骤S3得到的结果进行判决,将满足判决条件的结果分段进行冻结,未满足的结果分段返回步骤S2,当所有结果分段判决满足判决条件则结束迭代,完成译码。
在具体实施过程中,如图2所示,在进行译码迭代前,根据输入的译码参数,配置校验矩阵信息,对LLR值进行初始化;根据配置信息配置可重构结构;
开始进行译码迭代,首先更新第一帧第一层的节点信息,再依次更新后续帧的后续层的节点信息,直到完成全部帧的全部层节点信息更新;
对各段译码结果进行判决,将满足判决条件的分段进行冻结,未满足的分段继续进行下一次迭代,当所有分段判决成功则结束迭代,完成译码。
实施例3
本实施例在实施例1和2的基础上,继续公开以下内容:
可重构循环移位模块对多个LLR值进行循环移位,具体为:
由全局控制器提供多个循环移位系数,根据每个循环移位系数对应的LLR值进行移位,然后输出,在具体实施过程中,所述节点运算模块对循环移位之后的输入进行计算,具体为:如图3所示,循环移位器由左移位器、右移位器和组合器组成,左移位器与右移位器的结构相同只是数据移位方向不同,右移位器将数据向右移位。左移位器将数据移到左边。组合器将两个移位器的输出组合起来,形成任意输入数据大小的循环移位输出,假设一个循环移位网络,支持最大的输入数据量Zmax=12,即支持取模后的循环移位系数(CS[3:0]=RV%Z)最大值为12,可以将右移位器,以CS为控制信号,若控制信号为0则该级的输出选择来自同一路径的输入,反之选择实线的输入,左移位器结构与右移位器对称,其中控制信号变为左移位系数(LS=Z-CS);与将移位器所有路径的控制信号纳入一组的传统设计不同,本发明实施例提出的结构将每条路径的控制信号分离,并将同一段内所有路径的控制信号纳入一组,假设输入的数据大小(Z[3:0])等于6,则将6条路径归为同一控制信号控制,并且将其作为一个基础段,将输入的数据[IN[5:0]]连接到路径X[5:0],根据对应的循环移位系数独立的进行移位,由于该网络支持大的输入数据量Zmax=12,因此还存在另一基础段可以同时独立的对其他(Z<6)的输入数据进行移位,若是当前输入的数据大小(Z=4<6),则选择一基础段,将输入数据IN[3:0]与X[3:0]连接,该段中的X[5:4]则被忽略处于空闲状态,整个网络可以分成两部分,每一部分都可以单独工作而不受另一部分的影响,但每个输入数据的大小必须等于或小于6,当输入的数据大小(6<Z<=12)处于(6,12]时,两段路径则会重新组合,归为同一控制信号控制,注意,由于Zmax=12,循环移位网络最多只能同时对两个输入执行循环移位,组合器的控制信号为S[i],控制信号S[i]为1时选择右移位器输出值RD[i],反之选择左移位器的输出LD[i],从而实现循环移位:
S[i]=1if i<(LS+segment)
LS为左循环移位系数,segment为是该段所属的段的最低路径的索引,假设输入的数据大小为Z[3:0]=10,循环移位系数为RV=12,则
CS=RV%Z=2
LS=Z-CS=8
segment=0
S[i]=1if i<(LS+segment)
由于6<Z<12,所以需要两段路径进行组合,其中segment为组合之后该段所属的段的最低路径的索引,当输入Z1=4,Z2=6,2个不同大小的数据,对应循环移位系数RV1=10,RV2=5时,
CS1=RV1%Z1=2
CS2=RV2%Z2=5
LS1=Z1-CS1=2
LS2=Z2-CS2=1
segment1=0
segment2=6
S[i]=1if i<(LS1+segment1)||segment2<i<(LS2+segment2)
由于输入的数据大小均小于6,所以两段路径可以根据其移位系数独立的进行移位,其中segment为该段所属的段的最低路径的索引。
在具体实施过程中,使用偏移置换技术,避免将更新后的LLR值旋转回其原始位置,从而提高了吞吐率,当Zmax=512时,它需要一个9阶段的路径,这比传统的循环移位寄存器需要更多的时钟周期,在冲突发生时会引入了更多的空闲时钟周期,因此吞吐率的性能会降低,为了解决这个问题,我们将整个可编程循环移位器分为四个阶段进行流水线,此外,在流水线中,将计算输入的循环移位系数的取模操作向前移动。
实施例4
本实施例在实施例1、2和3的基础上,继续公开以下内容:
所述节点运算模块对循环移位之后的输入进行计算,具体为:
S3.1:计算得到当前层上次迭代的校验节点传递给变量节点的消息和变量节点传递给校验节点的消息,并存储在变量节点消息存储模块和校验信息存储模块;
S3.2:利用校验节点传递给变量节点的消息和变量节点传递给校验节点的消息计算校验信息和后验概率信息,并进行校验。
步骤S3.1中,计算得到当前层上次迭代的校验节点传递给变量节点的消息和变量节点传递给校验节点的消息,具体为:
其中,为第t次迭代时从变量节点j传递到校验节点i的消息,/>为在第t-1次迭代时从校验节点i传递到变量节点j的消息,/>为第l-1层变量节点j在第t次迭代时的后验概率。
步骤S3.2中,利用校验节点传递给变量节点的消息和变量节点传递给校验节点的消息计算校验信息和后验概率信息,具体为:
其中,为第t次迭代时从变量节点j传递到校验节点i的消息,/>为在第t次迭代时从校验节点i传递到变量节点j的消息,α为常数,/>第t次迭代中,第i层更新后第j个节点的后验概率信息,/>为与校验节点i相连但未与变量节点j相连的变量节点的集合,/>为在第t次迭代时从校验节点i传递到变量节点j的消息,/>为在第t次迭代时从变量节点b传递到校验节点i的消息。
步骤S3.2还包括对后验概率进行校验,具体为:
为第t层变量节点j在第i次迭代时的后验概率。
在具体实施过程中,节点运算单元是整个译码框架的核心,LLR存储模块根据接收到的控制信号,将当前层节点的LLR值串行输出,输出数据通过循环移位模块后,作为节点运算模块的输入,在节点运算模块中数据依次通过数选器、减法器、比较器和加法器。
节点运算单元结构如图4所示,整个节点运算单元结构由两级流水构成,第一级流水有2大操作组成,首先通过数选器、异或门对存储在校验节点消息存储单元中的消息进行重组,得到当前层上次迭代的校验节点传递给变量节点的消息,具体过程如下:
首先,通过数据选择器对vn_index和min_index进行比较,若是相等另一数据选择器输出次小值,若是不等则输出最小值:
vn_index==min_indexsecond_min_value:min_value;
然后,通过vn_index选择在gsign中对应索引的符号位并与sign做异或操作得到的符号位:
对符号为和幅值进行拼接得到;
利用减法器计算变量节点传递给校验节点消息,公式如下所述:
最后将计算的到的存储在变量节点消息存储模块;
对节点运算单元第一级流水在得到进行比较得到其中最小值、次小值、符号积、全局符号、对应索引等,具体过程如下:
通过比较器,依次计算变量节点传递给校验节点消息的最小值和次小值,并将求得最小值和次小值存储在寄存器中,其中变量节点传递给校验节点的消息串行输入比较器。
记录每个变量节点传递给校验节点消息的符号位作为gsign,其中gsign以变量节点传递给校验节点消息的顺序为索引,利用异或电路求符号积,公式描述如下:
利用右移位寄存器,对最小值和次小值进行移位,实现α的修正功能;
将所有变量节点传递给检验节点消息中的sign、global_sign、min_value、second_min_value、min_index输出存储在校验节点消息存储单元替换当前存储的值,以便下一次迭代使用;
第二级对校验信息和后验概率信息进行更新,具体流程如下:
从变量节点存储模块中串行读出变量节点传递给校验节点的消息。
利用数据选择器,对最小值和次小值进行选择,得到利用异或电路得到与校验节点i相连但未与变量节点j相连的变量节点的集合的符号积/>计算得到校验节传递给变量节点的消息:
利用加法器对变量节点传递给校验节点的消息和校验节点传递给变量节点的消息相加得到后验概率,完成下式计算,最后输出并存储到LLR存储模块。
实施例5
本实施例在实施例1、2、3和4的基础上,继续公开以下内容:
步骤S3还包括对吞吐率提升的分析,具体为:
其中Fclk是译码器的工作频率,n是码字长度,nc表示读取全部节点需要的周期,也即校验矩阵基矩阵的非零元素,nidle表示所需插入的空闲周期,nc+nidle表示一次迭代所需要的周期,Thnorm表示迭代次数为1的情况下的吞吐率。
基矩阵元素是确定的,因此吞吐率与空闲周期相关,传统结构需要插入大量的空闲周期来避免内存访问冲突,为了方便节点动态规划方法的阐述,将连续两层共享的节点定义为共享节点,本发明充分利用校验矩阵的特点动态的进行数据调度,当发生内存冲突时,在节点运算单元的第一阶流水中能跳过冲突节点优先对未冲突节点进行处理,并且在第二阶流水写校验节点和后验概率更新时优先更新共享节点,这能有效的减少空闲周期插入,从而实现更高的吞吐率。
实施例6
本实施例在实施例1、2、3、4和5的基础上,继续公开以下内容:
如图5所列举的校验矩阵,共有17个节点,在传统译码架构中,完成一次译码迭代共需要插入10个空闲周期,而本发明提出的译码装置,能跳过冲突节点优先对未冲突节点进行处理,只需插入3个空闲周期,并且由于采用了可重构模块的设计,在对短码进行译码时,能够同时对不同码长的码字并行译码,使得译码器保持较高的资源利用率和吞吐率。
实施例7
本实施例在实施例1、2、3、4、5和6的基础上,继续公开以下内容:
基于上述的设计对译码器进行了封装,此模块示意图如图6所示:外部需要输入校验矩阵的数据和地址、译码参数和译码数据,并指定同时译码帧数、对应Z和LLR值,通过外部输入的译码参数中的配置信息,可重构模块将会根据不同的码长动态的配置,然后一种面向QC-LDPC译码器的动态可配置译码装置会根据输入的校验矩阵信息中的节点地址、循环移位系数等信息读取存储在内部缓存单元中的LLR值进行分层最小和译码,在译码成功或达到最大迭代次数后会输出译码结果。
封装后的IP核示意图如图7所示,IP核的配置信息和输入的参数含义如表1所示:
表1IP核接口及配置信息示意图
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种面向QC-LDPC译码器的动态可配置译码的装置,包括:
所述装置包括可重构循环移位模块、节点运算单元、全局控制器、校验模块、输入/输出接口、LLR存储模块、校验信息存储模块和变量信息存储模块,其中:
所述输入/输出接口接收LLR值/输出译码结果,将接收的LLR值传输至LLR存储模块,由全局控制器生成循环移位系数,所述可重构循环移位模块对多个LLR值进行循环移位,所述节点运算单元对循环移位之后的LLR值进行计算,校验信息存储模块、变量信息存储模块对节点运算模块的输出进行存储,所述节点运算模块的输出经过寄存器到所述校验模块,所述校验模块对寄存器输出的LLR值进行校验,输出译码结果。
2.根据权利要求1所述的一种面向QC-LDPC译码器的动态可配置译码的装置,其特征在于,所述校验模块采用乒乓存储对LLR值的符号位在校验信息存储模块进行预缓存。
3.根据权利要求1所述的一种面向QC-LDPC译码器的动态可配置译码的装置,其特征在于,可重构循环移位模块由左移位器、右移位器和组合器组成,所述组合器把左移位器和右移位器的输出组合。
4.一种面向QC-LDPC译码器的动态可配置译码方法,其特征在于,所述动态可配置译码方法应用于权利要求1至3任一项所述的一种面向QC-LDPC译码器的动态可配置译码的装置,所述动态可配置译码方法包括如下步骤:
S1:读出多个LLR值;
S2:可重构的循环移位模块根据并行译码帧数,对多个LLR值同时进行循环移位;
S3:节点运算单元能对循环移位后的多个LLR值并行计算;
S4:对步骤S3得到的结果进行判决,将满足判决条件的结果分段进行冻结,未满足的结果分段返回步骤S2,当所有结果分段判决满足判决条件则结束迭代,完成译码。
5.根据权利要求4所述的一种面向QC-LDPC译码器的动态可配置译码方法,其特征在于,可重构循环移位模块对多个LLR值进行循环移位,具体为:
由全局控制器同步提供多个循环移位系数,不同码字的LLR根据对应循环移位系数对应进行移位,然后输出循环移位之后的LLR值。
6.根据权利要求4所述的一种面向QC-LDPC译码器的动态可配置译码方法,其特征在于,所述节点运算模块对循环移位之后的输入进行计算,具体为:
S3.1:计算得到当前层上次迭代的校验节点传递给变量节点的消息和变量节点传递给校验节点的消息,并存储在变量节点消息存储模块和校验信息存储模块;
S3.2:对后验概率进行更新时,会优先更新当前层与下一层共享的节点,将其输出写回LLR存储模块。
7.根据权利要求6所述的一种面向QC-LDPC译码器的动态可配置译码方法,其特征在于,步骤S3.1中,计算得到当前层上次迭代的校验节点传递给变量节点的消息和变量节点传递给校验节点的消息,具体为:
其中,为第t次迭代时从变量节点j传递到校验节点i的消息,/>为在第t-1次迭代时从校验节点i传递到变量节点j的消息,/>为第l-1层变量节点j在第t次迭代时的后验概率。
8.根据权利要求7所述的一种面向QC-LDPC译码器的动态可配置译码方法,其特征在于,步骤S3.2中,利用校验节点传递给变量节点的消息和变量节点传递给校验节点的消息计算校验信息和后验概率信息,具体为:
其中,为第t次迭代时从变量节点j传递到校验节点i的消息,/>为在第t次迭代时从校验节点i传递到变量节点j的消息,α为常数,/>第t次迭代中,第i层更新后第j个节点的后验概率信息,/>为与校验节点i相连但未与变量节点j相连的变量节点的集合,/>为在第t次迭代时从校验节点i传递到变量节点j的消息,/>为在第t次迭代时从变量节点b传递到校验节点i的消息。
9.根据权利要求8所述的一种面向QC-LDPC译码器的动态可配置译码方法,其特征在于,步骤S3.2还包括对后验概率进行判决,具体为:
为第t层变量节点j在第i次迭代时的后验概率。
10.根据权利要求4至9任一项所述的一种面向QC-LDPC译码器的动态可配置译码方法,其特征在于,步骤S3还包括对吞吐率提升的分析,具体为:
其中Fclk是译码器的工作频率,n是码字长度,nc表示读取全部节点需要的周期,也即校验矩阵基矩阵的非零元素,nidle表示所需插入的空闲周期,nc+nidle表示一次迭代所需要的周期,Thnorm表示迭代次数为1的情况下的吞吐率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310967850.8A CN117081606A (zh) | 2023-08-02 | 2023-08-02 | 一种面向qc-ldpc译码器的动态可配置译码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310967850.8A CN117081606A (zh) | 2023-08-02 | 2023-08-02 | 一种面向qc-ldpc译码器的动态可配置译码方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117081606A true CN117081606A (zh) | 2023-11-17 |
Family
ID=88714413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310967850.8A Pending CN117081606A (zh) | 2023-08-02 | 2023-08-02 | 一种面向qc-ldpc译码器的动态可配置译码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117081606A (zh) |
-
2023
- 2023-08-02 CN CN202310967850.8A patent/CN117081606A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7941737B2 (en) | Low density parity check code decoder | |
CN111162797B (zh) | 一种速率兼容的5g ldpc码的编码装置及编码方法 | |
JP4221503B2 (ja) | パリティチェックデコーダで使用するノードプロセサ | |
RU2395902C2 (ru) | Способы и устройство ldpc-кодирования | |
KR100703271B1 (ko) | 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치 | |
EP1102408B1 (en) | Viterbi decoder | |
KR100727316B1 (ko) | 저밀도채리티체크 채널 디코딩 방법 및 장치 | |
KR20060032464A (ko) | 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치 | |
JPWO2007132656A1 (ja) | 誤り訂正符号化方法及び装置 | |
US20060265635A1 (en) | Method of maximum a posterior probability decoding and decoding apparatus | |
CN112134570A (zh) | 一种应用于深空通信的多模式ldpc译码器 | |
US20230037965A1 (en) | Layered semi parallel ldpc decoder system having single permutation network | |
JP2007510337A (ja) | 移動通信システムのビタビ/ターボ統合デコーダ | |
US7277507B2 (en) | Viterbi decoder | |
JP5333233B2 (ja) | 復号装置、データ蓄積装置、データ通信システム、および復号方法 | |
US8234536B1 (en) | Iterative decoder using input data pipelining and time-interleaved processing | |
US20130007568A1 (en) | Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program | |
JP5488472B2 (ja) | 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 | |
US8261163B2 (en) | Soft output decoder, iterative decoder, and soft decision value calculating method | |
US7756224B2 (en) | Viterbi decoding circuit and wireless device | |
US7035356B1 (en) | Efficient method for traceback decoding of trellis (Viterbi) codes | |
CN117081606A (zh) | 一种面向qc-ldpc译码器的动态可配置译码方法和装置 | |
JP3888135B2 (ja) | 誤り訂正符号復号装置 | |
CN115694513A (zh) | 一种基于移位型基图的超高吞吐率ldpc译码器 | |
CN1198409C (zh) | 在解码设备中用于确定最大似然状态的设备和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |