CN104052500A - Ldpc码译码器及实现方法 - Google Patents
Ldpc码译码器及实现方法 Download PDFInfo
- Publication number
- CN104052500A CN104052500A CN201410289338.3A CN201410289338A CN104052500A CN 104052500 A CN104052500 A CN 104052500A CN 201410289338 A CN201410289338 A CN 201410289338A CN 104052500 A CN104052500 A CN 104052500A
- Authority
- CN
- China
- Prior art keywords
- decoding
- subelement
- decoding subelement
- decode results
- computing
- 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.)
- Granted
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明提供了一种LDPC码译码器结构及实现方法,该译码器包括:译码单元、中心控制单元和地址生成单元。本发明提供的译码器,采用多个级联的译码单元复用中心控制单元以及地址生成单元,有效地节约了逻辑资源,提高了资源的利用率;该译码器采用级联结构,布线简单,提高了译码器的工作频率;该译码器通过流水线结构,同时处理多个码字,可以根据实际系统的吞吐率需求合理选择译码单元的数目,具有相当大的灵活性。
Description
技术领域
本发明涉及计算机和数字通信技术领域,具体涉及LDPC码译码器及实现方法。
背景技术
低密度奇偶校验码(Low Density Parity Check Code,简称LDPC码),是由Robert G.Gallager于1962年提出的一类基于稀疏校验矩阵的特殊线性分组码。它通常由校验矩阵H进行描述,主要特点是H具有稀疏性。LDPC码由于具有逼近香农限的优良性能,以及译码复杂度较低,结构灵活的特别,成为近年来信道编码领域的研究热点。
LDPC码译码器的研究是LDPC码得到广泛应用的关键问题。LDPC码可以被描述为:一个LDPC码比特被表示成为一个变量节点,一个校验关系被表示成一个校验节点,如果一个比特参与了一个校验关系,则相应的变量节点与校验节点之间有一条边线进行连接。在译码过程中,所有的中间结果都存储在边线上,等待对应的校验节点读取和计算。理论上,只要硬件实现所有节点和边,就可以实现全并行结构的LDPC码译码器,但是有优越性能的LDPC码的码长会急剧增加,全并行结构很难实现,所以只能通过降低数据吞吐率,换取译码器复杂度降低的半并行结构LDPC译码器,而此结构只适用于特殊结构的Block-LDPC码。
以QC-LDPC码为例,QC-LDPC码中循环行列式矩阵对应的非零元素,即相应变量节点与检验节点之间的边线是平行的。半并行译码器正是利用QC-LDPC码的这一特性来实现运算单元的复用。利用QC-LDPC码的准循环性质,半并行译码器以行或列矢量为单位进行水平或垂直运算单元的复用,即一个行矢量的所有校验节点共用一个水平运算单元,一个列矢量的所有变量节点共用一个垂直运算单元在半并行译码器结构中,可以为一个行矢量或一个列矢量配置多个运算单元,提高并行度。但伴随吞吐率的提高,运算单元和存储器的数目也相应增加。
以上方案存在的问题是很难同时满足系统高吞吐能力和低硬件实现复杂度的要求。一旦译码器确定,很难根据用户的实际需求对译码器进行修改。
发明内容
针对现有技术的缺陷,本发明提供的LDPC码译码器,能够有效地节约逻辑资源,提高系统的吞吐率和灵活性,且能够根据实际系统的吞吐率需求合理选择译码单元的个数。
第一方面,本发明提供一种LDPC码译码器,该译码器包括:译码单元、中心控制单元及地址生成单元;
所述译码单元,包括第一译码子单元和第二译码子单元,所述第一译码子单元和所述第二译码子单元级联;
所述中心控制单元,根据外部时钟信号及外部控制信号输出中心控制信号至所述译码单元,以使所述译码单元根据中心控制信号对初始信息进行译码;以及根据外部时钟信号及外部控制信号输出地址生成信号至所述地址生成单元;
所述地址生成单元,用于根据所述地址生成信号生成读写地址,所述读写地址用于使所述译码单元进行读写操作。
优选地,所述译码单元还包括一个以上的第三译码子单元,所述第一译码子单元、所述一个以上的第三译码子单元及所述第二译码子单元依次级联。
优选地,所述第一译码子单元包括存储模块、译码运算模块及复接模块;
所述存储模块,用于存储所述初始信息及所述第一译码子单元的中间运算结果;
所述译码运算模块,用于初始化所述第一译码子单元的中间运算结果,并对所述初始信息及所述初始化后第一译码子单元的中间运算结果进行译码运算,根据译码运算的结果更新所述第一译码子单元的中间运算结果,将更新后的第一译码子单元的中间运算结果写入所述存储模块,结束译码运算时,将所述存储模块中更新后的中间运算结果作为所述第一译码子单元的中间译码结果输出;
所述复接模块连接所述译码运算模块和所述存储模块,以完成所述存储模块的写入复接操作。
优选地,所述第三译码子单元包括存储模块、译码运算模块及复接模块;
所述存储模块,用于存储所述初始信息、前一级译码子单元的中间译码结果及所述第三译码子单元的中间运算结果;
所述译码运算模块,用于将所述前一级译码子单元的中间译码结果作为所述第三译码子单元的中间运算结果,并对所述初始信息和所述第三译码子单元的中间运算结果进行译码运算,根据译码运算的结果更新所述第三译码子单元的中间运算结果,将更新后的第三译码子单元的中间运算结果写入所述存储模块,结束译码运算时,将所述存储模块中更新后的中间运算结果作为所述第三译码子单元的中间译码结果输出;
所述复接模块连接所述译码运算模块和所述存储模块,以完成所述存储模块的写入复接操作。
优选地,所述第二译码子单元包括存储模块、译码运算模块及复接模块;
所述存储模块,用于存储所述初始信息、前一级译码子单元的中间译码结果和所述第二译码子单元的中间运算结果;
所述译码运算模块,用于将所述前一级译码子单元的中间译码结果作为所述第二译码子单元的中间运算结果,并对所述初始信息和所述第二译码子单元的中间运算结果进行译码运算,根据译码运算的结果更新所述第二译码子单元的中间运算结果,将更新后的第二译码子单元的中间运算结果写入所述存储模块,结束译码运算时,将所述存储模块中更新后的中间运算结果作为所述第二译码子单元的中间译码结果读出,对所述第二译码子单元的中间译码结果进行判决,得到判决后的译码结果,输出判决后的译码结果;
所述复接模块连接所述译码运算模块和所述存储模块,以完成所述存储模块的写入复接操作。
优选地,所述中心控制单元包括译码控制单元及地址生成控制单元;
所述译码控制单元,根据外部时钟信号及外部控制信号输出中心控制信号至多个译码子单元,用于控制多个译码子单元的时序,控制多个译码子单元的启动和结束,控制多个译码子单元的译码运算过程,控制相邻译码子单元之间的信息传递,控制所述第二译码子单元的判决运算及译码输出;其中,多个译码子单元包括所述第一译码子单元、第二译码子单元及第三译码子单元;
所述地址生成控制单元,根据外部时钟信号及外部控制信号,输出地址生成信号至地址生成单元,用于控制所述地址生成单元输出地址信号至所述译码单元。
优选地,所述中心控制单元对所述译码单元的控制机制为:
控制译码单元的启动时,对于第一译码子单元,接收到外部的初始信息后,开始译码;对于第二译码子单元和第三译码子单元,在上一次译码结束并输出结果后,指示空状态,并等待接收上一级译码子单元的初始信息和中间译码结果,在接收到上一级译码子单元的初始信息和中间译码结果后,开始译码;
控制译码单元的结束时,对于第一译码子单元和第三译码子单元,在每次译码迭代结束后,如果下一级译码子单元指示空状态,则输出初始信息和中间译码结果至下一级译码子单元;对于第二译码子单元,在第二译码子单元的译码运算模块校验成功或译码达到最大迭代次数后,对本级的中间译码结果进行判决,输出译码结果。
第二方面,本发明提供一种LDPC码译码器的实现方法,该方法具体包括:
S1:第一译码子单元接收初始信息,中心控制单元根据外部时钟信号及外部控制信号输出中心控制信号控制第一译码子单元的译码运算模块对所述初始信息进行译码运算,得到所述第一译码子单元的中间译码结果,并输出所述第一译码子单元的中间译码结果及所述初始信息;
S2:与所述第一译码子单元连接的第一个第三译码子单元接收所述第一译码子单元的中间译码结果及所述初始信息,中心控制单元根据外部时钟信号及外部控制信号输出中心控制信号控制第一个第三译码子单元的译码运算模块对所述初始信息及所述第一译码子单元的中间译码结果进行译码运算,得到所述第一个第三译码子单元的中间译码结果;
S3:每一个第三译码子单元重复步骤S2的译码过程,获得最后一个第三译码子单元的中间译码结果,并输出所述最后一个第三译码子单元的中间译码结果及所述初始信息;
S4:第二译码子单元接收所述初始信息及所述最后一个第三译码子单元的中间译码结果,中心控制单元根据外部时钟信号及外部控制信号输出中心控制信号控制第二译码子单元的译码运算模块对所述初始信息及所述最后一个第三译码子单元的中间译码结果进行译码运算,得到所述第二译码子单元的中间译码结果,中间控制单元控制第二译码子单元的译码运算模块对所述第二译码子单元的中间译码结果进行判决运算,输出译码结果。
由上述技术方案可知,本发明提供的LDPC码译码器,采用多个级联的译码单元复用中心控制单元以及地址生成单元,有效地节约了逻辑资源,提高了资源的利用率;该译码器采用级联结构,布线简单,提高了译码器的工作频率;且该译码器通过流水线结构,同时处理多个码字,可以根据实际系统的吞吐率需求合理选择译码单元的数目,具有相当大的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1是本发明第一实施例提供的LDPC码译码器的结构图;
图2是本发明第二实施例提供的LDPC码译码器的结构图;
图3是本发明第三实施例提供的半并行级联译码器的结构图;
图4是本发明第三实施例提供的半并行级联译码器的初级半并行译码器的结构图;
图5为本发明第三实施例提供的半并行级联译码器的中间级半并行译码器的结构图;
图6为本发明第三实施例提供的半并行级联译码器的末级半并行译码器的结构图;
图7为本发明第四实施例提供的通用级联译码器的结构图;
图8为本发明第四实施例提供的通用级联译码器的初级半并行译码器的结构图;
图9为本发明第四实施例提供的通用级联译码器的中间级半并行译码器的结构图;
图10为本发明第四实施例提供的通用级联译码器的末级半并行译码器的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明第一实施例提供的LDPC码译码器的结果示意图,如图1所示,本实施例的译码器包括:译码单元、中心控制单元及地址生成单元;
所述译码单元,包括第一译码子单元和第二译码子单元,所述第一译码子单元和所述第二译码子单元级联。
所述中心控制单元,根据外部时钟信号及外部控制信号输出中心控制信号至所述译码单元,以使所述译码单元根据中心控制信号对初始信息进行译码;以及根据外部时钟信号及外部控制信号输出地址生成信号至所述地址生成单元。
所述地址生成单元,用于根据所述地址生成信号生成读写地址,所述读写地址用于使所述译码单元进行读写操作。
如图2所示,图2示出了本发明第二实施例提供的LDPC码译码器,本实施例的译码器包括译码单元、中心控制单元及地址生成单元;
所述译码单元包括第一译码子单元、第二译码子单元和一个以上的第三译码子单元,所述第一译码子单元、所述一个以上的第三译码子单元及所述第二译码子单元依次级联。
所述中心控制单元,根据外部时钟信号及外部控制信号输出中心控制信号至所述译码单元,以使所述译码单元根据中心控制信号对初始信息进行译码;以及根据外部时钟信号及外部控制信号输出地址生成信号至所述地址生成单元。
所述地址生成单元,用于根据所述地址生成信号生成读写地址,所述读写地址用于使所述译码单元进行读写操作。
优选地,所述第一译码子单元为半并行译码器,所述第二译码子单元为半并行译码器,且所述第三译码子单元为半并行译码器;或所述第一译码子单元为通用译码器,所述第二译码子单元为通用译码器,且所述第三译码子单元为通用译码器。
具体来说,所述第一译码子单元包括存储模块、译码运算模块及复接模块。
其中,所述存储模块,用于存储所述初始信息及所述第一译码子单元的中间运算结果;
所述译码运算模块,用于初始化所述第一译码子单元的中间运算结果,并对所述初始信息及所述初始化后第一译码子单元的中间运算结果进行译码运算,根据译码运算的结果更新所述第一译码子单元的中间运算结果,将更新后的第一译码子单元的中间运算结果写入所述存储模块,结束译码运算时,将所述存储模块中更新后的中间运算结果作为所述第一译码子单元的中间译码结果输出;所述复接模块连接所述译码运算模块和所述存储模块,以完成所述存储模块的写入复接操作。
具体来说,所述第三译码子单元包括存储模块、译码运算模块及复接模块。
其中,所述存储模块,用于存储所述初始信息、前一级译码子单元的中间译码结果及所述第三译码子单元的中间运算结果;所述译码运算模块,用于将所述前一级译码子单元的中间译码结果作为所述第三译码子单元的中间运算结果,并对所述初始信息和所述第三译码子单元的中间运算结果进行译码运算,根据译码运算的结果更新所述第三译码子单元的中间运算结果,将更新后的第三译码子单元的中间运算结果写入所述存储模块,结束译码运算时,将所述存储模块中更新后的中间运算结果作为所述第三译码子单元的中间译码结果输出;所述复接模块连接所述译码运算模块和所述存储模块,以完成所述存储模块的写入复接操作。
具体来说,所述第二译码子单元包括存储模块、译码运算模块及复接模块。
其中,所述存储模块,用于存储所述初始信息、前一级译码子单元的中间译码结果和所述第二译码子单元的中间运算结果;所述译码运算模块,用于将所述前一级译码子单元的中间译码结果作为所述第二译码子单元的中间运算结果,并对所述初始信息和所述第二译码子单元的中间运算结果进行译码运算,根据译码运算的结果更新所述第二译码子单元的中间运算结果,将更新后的第二译码子单元的中间运算结果写入所述存储模块,结束译码运算时,将所述存储模块中更新后的中间运算结果作为所述第二译码子单元的中间译码结果读出,对所述第二译码子单元的中间译码结果进行判决,得到判决后的译码结果,输出判决后的译码结果;所述复接模块连接所述译码运算模块和所述存储模块,以完成所述存储模块的写入复接操作。
应说明的是,所述中心控制单元包括译码控制单元及地址生成控制单元。
其中,所述译码控制单元,根据外部时钟信号及外部控制信号输出中心控制信号至多个译码子单元,用于控制多个译码子单元的时序,控制多个译码子单元的启动和结束,控制多个译码子单元的译码运算过程,控制相邻译码子单元之间的信息传递,控制所述第二译码子单元的判决运算及译码输出;其中,多个译码子单元包括所述第一译码子单元、第二译码子单元及第三译码子单元;所述地址生成控制单元,根据外部时钟信号及外部控制信号,输出地址生成信号至地址生成单元,用于控制所述地址生成单元输出地址信号至所述译码单元。
应说明的是,所述中心控制单元对所述译码单元的控制机制为:
控制所述译码单元的启动时,对于所述第一译码子单元,接收所述初始信息后,开始译码;对于所述第二译码子单元和所述第三译码子单元,在上一次译码结束并输出结果后,指示空状态,并等待接收前一级译码子单元的初始信息和中间译码结果,在接收到所述前一级译码子单元的初始信息和中间译码结果后,开始译码;
而控制所述译码单元的结束时,对于所述第一译码子单元和所述第三译码子单元,在每次译码迭代结束后,若与其相连的下一级译码子单元指示空状态,则输出初始信息和中间译码结果至与其相连的下一级译码子单元;对于所述第二译码子单元,在所述第二译码子单元的译码运算模块校验成功或译码达到最大迭代次数后,对所述第二译码单元的中间译码结果进行判决运算,输出所述最终的译码结果。
本发明实施例还提供一种LDPC码译码器的实现方法,该方法具体包括:
S1:第一译码子单元接收初始信息,中心控制单元根据外部时钟信号及外部控制信号输出中心控制信号控制第一译码子单元的译码运算模块对所述初始信息进行译码运算,得到所述第一译码子单元的中间译码结果,并输出所述第一译码子单元的中间译码结果及所述初始信息;
S2:与所述第一译码子单元连接的第一个第三译码子单元接收所述第一译码子单元的中间译码结果及所述初始信息,中心控制单元根据外部时钟信号及外部控制信号输出中心控制信号控制第一个第三译码子单元的译码运算模块对所述初始信息及所述第一译码子单元的中间译码结果进行译码运算,得到所述第一个第三译码子单元的中间译码结果;
S3:每一个第三译码子单元重复步骤S2的译码过程,获得最后一个第三译码子单元的中间译码结果,并输出所述最后一个第三译码子单元的中间译码结果及所述初始信息;
S4:第二译码子单元接收所述初始信息及所述最后一个第三译码子单元的中间译码结果,中心控制单元根据外部时钟信号及外部控制信号输出中心控制信号控制第二译码子单元的译码运算模块对所述初始信息及所述最后一个第三译码子单元的中间译码结果进行译码运算,得到所述第二译码子单元的中间译码结果,中间控制单元控制第二译码子单元的译码运算模块对所述第二译码子单元的中间译码结果进行判决运算,输出译码结果。
如图3所示,图3示出了本发明第三实施例提出的采用半并行译码器作为第一译码子单元、第二译码子单元及第三译码子单元的LDPC码级联译码器。本实施例的级联译码器包括:初级半并行译码单元,末级半并行译码单元,0~N个中间级半并行译码单元,中心控制单元和地址生成器。其中,N表示正整数。
如图4所示,初级半并行译码单元具体包括:译码运算单元、译码存储单元和复接单元。
在具体应用中,译码运算单元包括水平运算单元(HorizontalArithmetic Unit,简称HPU阵列)和垂直运算单元(Vertical ArithmeticUnit,简称VPU阵列);存储单元包括两种存储器阵列,存储初始信息(即编码比特的软信息)的存储器阵列(CRAM阵列)和存储中间运算结果的存储器阵列(XRAM阵列)。XRAM存储的中间运算结果包括VPU阵列输出的变量信息和HPU阵列输出的校验信息。复接单元连接译码存储单元与译码运算单元,用于完成译码存储单元的读出及写入复接操作。
初级译码单元中的译码步骤:
步骤1:中心控制单元控制地址生成单元产生CRAM阵列的读写地址,CRAM阵列根据中心控制单元的指示,在相应地址存储初始信息。
步骤2:中心控制单元控制VPU阵列以及HPU阵列进行译码运算,HPU阵列完成变量节点到校验节点的水平运算,得到的校验信息通过复接单元写入XRAM阵列,VPU阵列通过复接单元从XRAM阵列读出校验信息完成校验结点到变量节点的垂直运算,得到的变量信息通过复接单元写入XRAM阵列。
步骤3:中心控制单元控制本级译码的结束,将XRAM阵列存储的中间运算结果作为本级中间译码结果传递至下一级译码单元,同时传递CRAM中存储的初始信息。
如图5所示,中间级半并行译码单元具体包括:译码运算单元、译码存储单元和复接单元。
在具体应用中,译码运算单元包括水平运算单元(HPU阵列)和垂直运算单元(VPU阵列);存储单元包括两种存储器阵列,存储输入初始信息的存储器阵列(CRAM阵列)和存储中间运算结果的存储器阵列(XRAM阵列)。CRAM阵列存储上一级译码单元传递的输入的初始信息;XRAM存储信息包括来自上一级的中间译码结果、VPU阵列输出的变量信息和HPU阵列输出的校验信息。复接单元连接译码存储单元与译码运算单元,用于完成译码存储单元的读出及写入复接操作。
中间级译码单元中的译码步骤:
步骤1:CRAM阵列与初级译码单元共享读写地址,CRAM阵列根据中心控制单元的指示,在相应地址存储上一级译码单元传递的初始信息,XRAM阵列根据中心控制单元的指示,在相应地址存储上一级译码单元产生的中间译码结果,作为本级的中间运算结果。
步骤2:中心控制单元控制VPU阵列以及HPU阵列进行译码运算,HPU阵列完成变量节点到校验节点的水平运算,得到的校验信息通过复接单元写入XRAM阵列,VPU阵列通过复接单元从XRAM阵列读出校验信息完成校验结点到变量节点的垂直运算,得到的变量信息通过复接单元写入XRAM阵列。
步骤3中心控制单元控制本级译码的结束,将XRAM阵列存储的中间运算结果作为本级中间译码结果传递至下一级译码单元,同时传递CRAM中存储的初始信息。
如图6所示,末级半并行译码单元具体包括:译码运算单元、译码存储单元、复接单元。
在具体应用中,译码运算单元包括水平运算单元(HPU阵列)和垂直运算单元(VPU阵列);存储单元包括两种存储器阵列,存储初始信息的存储器阵列(CRAM阵列)和存储中间运算结果的存储器阵列(XRAM阵列)。CRAM阵列存储上一级译码单元传递的初始信息。XRAM存储信息包括来自上一级译码单元产生的中间译码结果,VPU阵列输出的变量信息和HPU阵列输出的校验信息。复接单元连接译码存储单元与译码运算单元,用于完成译码存储单元的读出及写入复接操作。
末级译码单元中的译码步骤:
步骤1:CRAM阵列与初级译码单元共享读写地址,CRAM阵列根据中心控制单元的指示,在相应地址存储上一级译码单元传递的初始信息;XRAM阵列根据中心控制单元的指示,在相应地址存储上一级译码单元产生的中间译码结果,作为本级的中间运算结果。
步骤2:中心控制单元控制VPU阵列以及HPU阵列进行译码运算,HPU阵列完成变量节点到校验节点的水平运算,得到的校验信息通过复接单元写入XRAM阵列,VPU阵列通过复接单元从XRAM阵列读出校验信息完成校验结点到变量节点的垂直运算,得到的变量信息通过复接单元写入XRAM阵列。
步骤3:中心控制单元控制本级译码的结束,在结束译码运算时,读出XRAM阵列存储的中间运算结果,作为本级的中间译码结果,对中间译码结果进行判决,得到判决后的译码结果并输出。
中心控制单元对半并行结构的LDPC码级联译码器的多个译码单元的控制机制为:
控制译码单元的启动时,对于初级译码单元,接收到外部的初始信息后,开始译码;对于中间级译码单元和末级译码单元,在上一次译码结束并输出结果后,指示空状态,并等待接收上一级的初始信息和中间译码结果,在接收到上一级译码单元的初始信息和中间译码结果后,开始译码;
控制译码单元的结束时,对于初级译码单元和中间级译码单元,在每次译码迭代结束后,如果下一级译码单元指示空状态,则输出初始信息和中间译码结果给下一级译码单元;对于末级译码单元,在末级译码运算单元校验成功或译码达到最大迭代次数后,对本级的中间译码结果进行判决,输出译码结果。
如图7所示,图7示出了本发明第四实施例提供的采用通用级联译码器作为第一译码子单元、第二译码子单元及第三译码子单元的LDPC码级联译码器,本实施例的译码器包括:指令存储单元、中心控制单元、地址生成单元以及初级通用译码单元,末级通用译码单元,0~N个中间级通用译码单元。其中,N表示正整数。
指令存储单元存储LDPC码校验矩阵信息以及各级译码单元的译码状态。中心控制单元由指令存储单元控制,直接控制地址生成单元和各级通用译码单元。
初级通用译码单元接收初始信息,中心控制信号以及地址信号,经过译码运算后传递中间译码结果至下一级通用译码单元。中间译码结果经后续通用译码单元处理和更新后,逐级传递至末级通用译码单元,中心控制单元控制末级通用译码单元进行译码,得到本级中间译码结果,在译码结束时,对本级中间译码结果进行判决得到判决后的译码结果并输出。
如图8所示,初级通用译码器的结构如下:
S-RAM:存储输入的编码比特软信息;存储处理单元计算得到的编码比特后验信息。
R-RAM:存储处理单元计算得到的编码比特外信息。
处理单元:受中心控制单元控制进行译码运算,得到中间编码比特后验信息和外信息分别存储至S-RAM和R-RAM。
译码过程:
步骤1:输入的初始信息通过写入复接单元写入S-RAM.
步骤2:处理单元读出S-RAM中数据,根据中心控制信号进行译码运算,将编码比特外信息写入R-RAM。
步骤3:根据中心控制信号,处理单元读出S-RAM和R-RAM中数据进行译码运算,将编码比特后验信息写入S-RAM。
步骤4:根据中心控制信号,重复2-3的步骤最终将R-RAM中的编码比特外信息等中间译码结果输出至下一级通用译码单元。
如图9所示,中间级通用译码器的结构如下:
S-RAM:存储上一级通用译码单元的初始信息和中间译码结果;存储处理单元计算得到的编码比特后验信息。
R-RAM:存储处理单元计算得到的编码比特外信息。
处理单元:受中心控制单元控制进行译码运算,得到中间编码比特后验信息和外信息分别存储至S-RAM和R-RAM。
译码过程:
步骤1:输入上一级通用译码单元传递的初始信息和中间译码结果通过写入复接单元写入S-RAM;
步骤2:根据中心控制信号,处理单元读出S-RAM中数据,进行译码运算,将编码比特外信息写入R-RAM。
步骤3:根据中心控制信号,处理单元读出S-RAM和R-RAM中数据进行译码运算,将编码比特后验信息写入S-RAM;
步骤4:根据中心控制信号,重复2-3的步骤最终将R-RAM中的编码比特外信息等作为中间译码结果输出至下一级通用译码单元。
如图10所示,末级通用译码器的结构如下:
S-RAM:存储上一级通用译码单元传递的初始信息和中间译码结果;存储处理单元计算得到的编码比特后验信息。
R-RAM:存储处理单元计算得到的编码比特外信息。
处理单元:受中心控制单元控制进行译码运算,得到中间编码比特后验信息和外信息分别存储至S-RAM和R-RAM。
译码过程:
步骤1:输入上一级通用译码单元传递的初始信息和中间译码结果通过写入复接单元写入S-RAM.
步骤2:根据中心控制信号,处理单元读出S-RAM中数据,进行译码运算,将编码比特外信息写入R-RAM。
步骤3:根据中心控制信号,处理单元读出S-RAM和R-RAM中数据,并进行译码运算,将编码比特后验信息写入S-RAM。
步骤4:根据中心控制信号,重复2-3的步骤,并对S-RAM中编码比特外信息进行判决,得到最终的译码结果。
本发明实施例提供的LDPC码译码器,采用多个级联的译码单元复用中心控制单元以及地址生成单元,有效地节约了逻辑资源,提高了资源的利用率;该译码器采用级联结构,布线简单,提高了译码器的工作频率;该译码器通过流水线结构,同时处理多个码字,可以根据实际系统的吞吐率需求合理选择译码单元的数目,具有相当大的灵活性。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种LDPC码译码器,其特征在于,该译码器包括:译码单元、中心控制单元及地址生成单元;
所述译码单元,包括第一译码子单元和第二译码子单元,所述第一译码子单元和所述第二译码子单元级联;
所述中心控制单元,根据外部时钟信号及外部控制信号输出中心控制信号至所述译码单元,以使所述译码单元根据中心控制信号对初始信息进行译码;以及根据外部时钟信号及外部控制信号输出地址生成信号至所述地址生成单元;
所述地址生成单元,用于根据所述地址生成信号生成读写地址,所述读写地址用于使所述译码单元进行读写操作。
2.根据权利要求1所述的译码器,其特征在于,所述译码单元还包括一个以上的第三译码子单元,所述第一译码子单元、所述一个以上的第三译码子单元及所述第二译码子单元依次级联。
3.根据权利要求2所述的译码器,其特征在于,所述第一译码子单元包括存储模块、译码运算模块及复接模块;
所述存储模块,用于存储所述初始信息及所述第一译码子单元的中间运算结果;
所述译码运算模块,用于初始化所述第一译码子单元的中间运算结果,并对所述初始信息及所述初始化后第一译码子单元的中间运算结果进行译码运算,根据译码运算的结果更新所述第一译码子单元的中间运算结果,将更新后的第一译码子单元的中间运算结果写入所述存储模块,结束译码运算时,将所述存储模块中更新后的中间运算结果作为所述第一译码子单元的中间译码结果输出;
所述复接模块连接所述译码运算模块和所述存储模块,以完成所述存储模块的写入复接操作。
4.根据权利要求2所述的译码器,其特征在于,所述第三译码子单元包括存储模块、译码运算模块及复接模块;
所述存储模块,用于存储所述初始信息、前一级译码子单元的中间译码结果及所述第三译码子单元的中间运算结果;
所述译码运算模块,用于将所述前一级译码子单元的中间译码结果作为所述第三译码子单元的中间运算结果,并对所述初始信息和所述第三译码子单元的中间运算结果进行译码运算,根据译码运算的结果更新所述第三译码子单元的中间运算结果,将更新后的第三译码子单元的中间运算结果写入所述存储模块,结束译码运算时,将所述存储模块中更新后的中间运算结果作为所述第三译码子单元的中间译码结果输出;
所述复接模块连接所述译码运算模块和所述存储模块,以完成所述存储模块的写入复接操作。
5.根据权利要求2所述的译码器,其特征在于,所述第二译码子单元包括存储模块、译码运算模块及复接模块;
所述存储模块,用于存储所述初始信息、前一级译码子单元的中间译码结果和所述第二译码子单元的中间运算结果;
所述译码运算模块,用于将所述前一级译码子单元的中间译码结果作为所述第二译码子单元的中间运算结果,并对所述初始信息和所述第二译码子单元的中间运算结果进行译码运算,根据译码运算的结果更新所述第二译码子单元的中间运算结果,将更新后的第二译码子单元的中间运算结果写入所述存储模块,结束译码运算时,将所述存储模块中更新后的中间运算结果作为所述第二译码子单元的中间译码结果读出,对所述第二译码子单元的中间译码结果进行判决,得到判决后的译码结果,输出判决后的译码结果;
所述复接模块连接所述译码运算模块和所述存储模块,以完成所述存储模块的写入复接操作。
6.根据权利要求2所述的译码器,其特征在于,所述中心控制单元包括译码控制单元及地址生成控制单元;
所述译码控制单元,根据外部时钟信号及外部控制信号输出中心控制信号至多个译码子单元,用于控制多个译码子单元的时序,控制多个译码子单元的启动和结束,控制多个译码子单元的译码运算模块的译码运算过程,控制相邻译码子单元之间的信息传递,控制所述第二译码子单元的译码输出;其中,多个译码子单元包括所述第一译码子单元、第二译码子单元及第三译码子单元;
所述地址生成控制单元,根据外部时钟信号及外部控制信号,输出地址生成信号至地址生成单元,用于控制所述地址生成单元输出地址信号至所述译码单元。
7.根据权利要求6所述的译码器,其特征在于,所述中心控制单元对所述译码单元的控制机制为:
控制所述译码单元的启动时,对于所述第一译码子单元,接收所述初始信息后,开始译码;对于所述第二译码子单元和所述第三译码子单元,在上一次译码结束并输出结果后,指示空状态,并等待接收前一级译码子单元的初始信息和中间译码结果,在接收到前一级译码子单元的初始信息和中间译码结果后,开始译码;
控制所述译码单元的结束时,对于所述第一译码子单元和所述第三译码子单元,在每次译码迭代结束后,如果下一级译码子单元指示空状态,则输出初始信息和中间译码结果至下一级译码子单元;对于所述第二译码子单元,在所述第二译码子单元的译码运算模块校验成功或译码达到最大迭代次数后,对本级的中间译码结果进行判决,输出译码结果。
8.一种LDPC码译码器的实现方法,其特征在于,该方法具体包括:
S1:第一译码子单元接收初始信息,中心控制单元根据外部时钟信号及外部控制信号输出中心控制信号控制第一译码子单元的译码运算模块对所述初始信息进行译码运算,得到所述第一译码子单元的中间译码结果,并输出所述第一译码子单元的中间译码结果及所述初始信息;
S2:与所述第一译码子单元连接的第一个第三译码子单元接收所述第一译码子单元的中间译码结果及所述初始信息,中心控制单元根据外部时钟信号及外部控制信号输出中心控制信号控制第一个第三译码子单元的译码运算模块对所述初始信息及所述第一译码子单元的中间译码结果进行译码运算,得到所述第一个第三译码子单元的中间译码结果;
S3:每一个第三译码子单元重复步骤S2的译码过程,获得最后一个第三译码子单元的中间译码结果,并输出所述最后一个第三译码子单元的中间译码结果及所述初始信息;
S4:第二译码子单元接收所述初始信息及所述最后一个第三译码子单元的中间译码结果,中心控制单元根据外部时钟信号及外部控制信号输出中心控制信号控制第二译码子单元的译码运算模块对所述初始信息及所述最后一个第三译码子单元的中间译码结果进行译码运算,得到所述第二译码子单元的中间译码结果,中间控制单元控制第二译码子单元的译码运算模块对所述第二译码子单元的中间译码结果进行判决运算,输出译码结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410289338.3A CN104052500B (zh) | 2014-06-24 | 2014-06-24 | Ldpc码译码器及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410289338.3A CN104052500B (zh) | 2014-06-24 | 2014-06-24 | Ldpc码译码器及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104052500A true CN104052500A (zh) | 2014-09-17 |
CN104052500B CN104052500B (zh) | 2017-07-07 |
Family
ID=51504908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410289338.3A Active CN104052500B (zh) | 2014-06-24 | 2014-06-24 | Ldpc码译码器及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104052500B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767536A (zh) * | 2015-03-19 | 2015-07-08 | 深圳市力合微电子股份有限公司 | 基于ofdm电力线通信系统的qc-ldpc译码方法和译码器 |
CN106849957A (zh) * | 2016-12-30 | 2017-06-13 | 北京联想核芯科技有限公司 | 编码方法和装置 |
CN108809324A (zh) * | 2017-05-05 | 2018-11-13 | 上海数字电视国家工程研究中心有限公司 | Ldpc译码方法 |
CN110322523A (zh) * | 2018-03-31 | 2019-10-11 | 深圳忆联信息系统有限公司 | 编码方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101449463A (zh) * | 2004-07-21 | 2009-06-03 | 高通股份有限公司 | Ldpc解码方法和装置 |
CN101931416A (zh) * | 2009-06-24 | 2010-12-29 | 中国科学院微电子研究所 | 移动数字多媒体广播系统中的ldpc码的并行分层译码器 |
US20130091399A1 (en) * | 2011-10-05 | 2013-04-11 | Nec Laboratories America, Inc. | High-speed long codeword qc-ldpc soft decision decoder |
CN103188038A (zh) * | 2011-12-30 | 2013-07-03 | 清华大学 | 解映射解码方法和系统 |
-
2014
- 2014-06-24 CN CN201410289338.3A patent/CN104052500B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101449463A (zh) * | 2004-07-21 | 2009-06-03 | 高通股份有限公司 | Ldpc解码方法和装置 |
CN101931416A (zh) * | 2009-06-24 | 2010-12-29 | 中国科学院微电子研究所 | 移动数字多媒体广播系统中的ldpc码的并行分层译码器 |
US20130091399A1 (en) * | 2011-10-05 | 2013-04-11 | Nec Laboratories America, Inc. | High-speed long codeword qc-ldpc soft decision decoder |
CN103188038A (zh) * | 2011-12-30 | 2013-07-03 | 清华大学 | 解映射解码方法和系统 |
Non-Patent Citations (1)
Title |
---|
李晋 等: "PCGC码低复杂度译码算法的研究", 《应用科学学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767536A (zh) * | 2015-03-19 | 2015-07-08 | 深圳市力合微电子股份有限公司 | 基于ofdm电力线通信系统的qc-ldpc译码方法和译码器 |
CN104767536B (zh) * | 2015-03-19 | 2018-05-25 | 深圳市力合微电子股份有限公司 | 基于ofdm电力线通信系统的qc-ldpc译码方法和译码器 |
CN106849957A (zh) * | 2016-12-30 | 2017-06-13 | 北京联想核芯科技有限公司 | 编码方法和装置 |
CN108809324A (zh) * | 2017-05-05 | 2018-11-13 | 上海数字电视国家工程研究中心有限公司 | Ldpc译码方法 |
CN108809324B (zh) * | 2017-05-05 | 2022-01-28 | 上海数字电视国家工程研究中心有限公司 | Ldpc译码方法 |
CN110322523A (zh) * | 2018-03-31 | 2019-10-11 | 深圳忆联信息系统有限公司 | 编码方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104052500B (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9996420B2 (en) | Error-correction encoding and decoding | |
Wang et al. | High throughput low latency LDPC decoding on GPU for SDR systems | |
US8453034B2 (en) | Error detection/correction circuit, memory controller and semiconductor memory apparatus | |
US7631241B2 (en) | Apparatus and method for decoding low density parity check codes | |
US20150058692A1 (en) | Low-density parity-check decoding method and low-density parity-check decoder using the same | |
EP1407420A4 (en) | CONDUCTIVE METHODS AND APPARATUS FOR DECODING LDPC CODES | |
EP2559036A1 (en) | Multiple programming of flash memory without erase | |
CN104052500A (zh) | Ldpc码译码器及实现方法 | |
US9250996B2 (en) | Multicore type error correction processing system and error correction processing apparatus | |
US11128315B2 (en) | Error correction decoder | |
CN101232288A (zh) | 一种基于奇偶校验矩阵的ldpc码的译码方法及译码器 | |
US8484547B2 (en) | System and method for reducing memory in a multi-channel parallel encoder system | |
KR102355082B1 (ko) | 채널 편파 코드의 연속 제거 리스트 디코딩을 위한 효율적인 생존 메모리 아키텍처 | |
TW201351892A (zh) | 記憶體控制器 | |
KR102058499B1 (ko) | 리드-솔로몬 저밀도 패리티 검사 디코더를 포함하는 반도체 메모리 시스템 및 그것의 읽기 방법 | |
CN101692611A (zh) | 一种基于simd结构的多标准ldpc译码器电路 | |
JP5488472B2 (ja) | 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 | |
CN103137213A (zh) | 具有低密度奇偶校验码译码能力的存储器控制装置及方法 | |
CN102594369B (zh) | 基于fpga的准循环低密度校验码译码器及译码方法 | |
CN102201817B (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
CN111384970B (zh) | 一种译码方法、装置及通信设备 | |
CN115694513A (zh) | 一种基于移位型基图的超高吞吐率ldpc译码器 | |
US20230037965A1 (en) | Layered semi parallel ldpc decoder system having single permutation network | |
CN102315899A (zh) | 一种低密度奇偶校验码的准循环译码方法 | |
CN113055025B (zh) | 可重构的极化码与低密度奇偶校验码译码器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |