CN112636767B - 一种具有单置换网络的分层半并行ldpc译码器系统 - Google Patents
一种具有单置换网络的分层半并行ldpc译码器系统 Download PDFInfo
- Publication number
- CN112636767B CN112636767B CN202011411615.5A CN202011411615A CN112636767B CN 112636767 B CN112636767 B CN 112636767B CN 202011411615 A CN202011411615 A CN 202011411615A CN 112636767 B CN112636767 B CN 112636767B
- Authority
- CN
- China
- Prior art keywords
- module
- probability information
- network
- posterior probability
- check node
- 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
Links
Images
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/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1134—Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
-
- 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
-
- 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
-
- 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/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- 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/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- 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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1177—Regular LDPC codes with parity-check matrices wherein all rows and columns have the same row weight and column weight, respectively
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本发明涉及一种具有单置换网络的分层半并行LDPC译码器系统,属于译码器硬件设计领域。该系统包括单置换网络的分层译码架构、单置换网络的分层半并行译码架构、分层半并行译码的流水线设计、分层半并行LDPC译码器的硬件构架。本发明通过更改从变量节点传递到校验节点的每个信息块的循环移位值,去掉了校验节点和变量节点之间的置换网络模块,即通过单置换网络就可以完成译码器的循环移位操作,从而减小了译码器的硬件资源。采用半并行的译码结构,同时在半层之间加入流水线。与分层全并行结构的译码器相比,半并行结构的译码器的变量节点并行度仅为码长的一半,但可以实现其3/4的吞吐量,同时将硬件资源减少了一半。
Description
技术领域
本发明属于译码器硬件设计领域,涉及一种具有单置换网络的分层半并行LDPC译码器系统。
背景技术
无线通信一个最明显的特征就是信道,对所有发射机而言信道是共享的,而共享的信道会带来非常严重的干扰,所以设计者们所思考的一个核心问题就是如何在无线信道中使得信息能够尽量可靠的传输,以减少我们信息传输中的差错,同时又能不降低收发系统整体的信息传输效率,以期望兼顾整个系统的可靠性和有效性。信道纠错码在发射端待传输的信源中加入一些额外比特,再把信源比特上承载的信息拓展到这些额外比特上,最终在接收端译出和纠正接收数据中的错误,增强数据在传输过程中抵御各种干扰能力,提高系统的可靠性。
LDPC(Low Density Parity Check Code)码就是属于纠错码的一种,是一种稀疏校验矩阵的分组纠错码。主要优点有:是性能接近香农极限的一种纠错码,可以引入并行的处理方式,译码相对简单,因容易描述所以硬件设计难度不高。1997年,D.MacKay从现代编码理论观点出发,重新研究LDPC码,这种优秀的编码理论开始复兴。如今,随着计算机技术的增强和相关理论的发展,LDPC码又重新引起了人们的兴趣,并且成为主流的纠错方案之一。LDPC码尤其是码长相对较长的LDPC码,以其优异的误码纠错能力已经被各大的通信标准组织纳入到其发布的各类通信标准中,如IEEE802.11、CCSDS、DVB-S2等。在3G和4G时代,Turbo码一直被确定为其信道编码,而在5G时代,LDPC码作为5G增强移动宽带(eMBB,Enhance Mobile Broadband)场景的信道编码。
随着现代通信技术的不断进步,通信系统逐渐向呑吐量更高、容量更大及可靠性更高的方向发展,信道纠错码也因而得到了广泛的应用。同时LDPC码由于校验矩阵的结构性,而具有固有的译码并行性,可以满足高速高呑吐量的要求。因而在扩展新一代无线通信系统服务范围、提高视频广播系统呑吐量等方面,LDPC码表现出了优异的性能和应用前景。
为了满足人们对于通信日益增加的使用需求,各种通信标准在传输数据方面吞吐量的要求也不断增加,即在传输数据方面提出了高速高呑吐量的要求。要满足各种通信技术标准在传输数据方面的高吞吐量,就需要高吞吐量的LDPC译码器,传统高吞吐量的译码器一般采用全并行的方式实现译码,全并行译码结构中所有校验节点和变量节点的更新是在同一个时钟周期内同时进行的,其译码速率快、吞吐率高,但是以牺牲译码复杂度为代价的,且随着码长的增加其译码复杂度成指数倍的增加。而且,全并行译码的方式消耗大量的硬件资源,同时电路的功耗还高。不仅如此,全并行结构的电路还存在走线阻塞问题和长的互连问题,这些导致译码器的时序差,还降低了电路的最高时钟频率。
发明内容
有鉴于此,本发明的目的在于提供一种具有单置换网络的分层半并行LDPC译码器系统。
为达到上述目的,提供如下技术方案:
一种具有单置换网络的分层半并行LDPC译码器系统,该系统采用最小和译码算法,包括单置换网络的分层译码架构、单置换网络的分层半并行译码架构、分层半并行译码的流水线设计模块、分层半并行LDPC译码器的硬件构架。
可选地,单置换网络的分层译码架构用于完成分层译码中的循环移位操作,该架构包括后验信息存储模块、变量节点处理模块、置换网络模块和校验节点处理模块,通过修改校验矩阵中的循环移位值,单置换网络模块就可以完成分层译码中的两次循环移位操作;
后验信息存储模块一端与变量节点处理模块连接,另一端与校验节点处理模块连接;
变量节点处理模块一端与后验信息存储模块连接,另一端与单置换网络模块连接;
单置换网络模块一端与变量节点处理模块连接,另一端与校验节点处理模块连接;
校验节点处理模块一端与单置换网络模块连接,另一端与后验信息存储模块连接;
单置换网络模块的循环移位值等于基校验矩阵Hb中两个连续层循环移位值的差值。循环移位值Shift(m,n)表示为公式1所示,其中λn(k)表示基矩阵Hb中第n列中非零元素的第k行索引。
可选地,单置换网络的分层半并行译码架构包括后验概率信息存储APP RAM单元,变量节点功能单元VFU,校验节点功能单元CFU和置换网络PN单元;
后验概率信息存储APP RAM单元一端与变量节点功能单元VFU信号连接,另一端与置换网络PN单元连接;
变量节点功能单元VFU一端与后验概率信息存储APP RAM单元连接,另一端与置换网络PN单元连接;
置换网络PN单元一端与变量节点功能单元VFU信号连接,另一端与校验节点功能单元CFU连接;
校验节点功能单元CFU一端与置换网络PN单元连接,另一端与后验概率信息存储APP RAM模块连接;
校验节点功能单元CFU更新分为两个阶段:
在第一阶段,前一半后验概率信息通过置换网络被送到每个校验节点功能单元CFU中,并且使用前i个输入来计算最小值,次小值和符号信息,分别称为m1_p1,m2_p1和sg_p1,如公式2所示,其中,sign()表示对i个后验证概率信息的符号求积,min1()表示求i个后验证概率信息中的最小值,min2()表示求i个后验证概率信息中的次小值;
在第二阶段,后一半后验概率信息通过置换网络送到每个校验节点功能单元CFU中,校验节点功能单元CFU用后i个输入的后验概率信息计算最小值,次小值和符号信息,分别称为m1_p2,m2_p2和sg_p2,最终的校验节点更新只能在第二阶段中通过将前一阶段和当前阶段的结果相结合来实现,如公式3所示;
其中,sg_final,m1_final和m2_final分别为后验概率信息计算的最终符号信息,最终最小值和最终次小值;
变量节点的更新分为两个阶段,属于前i个LLR块中的后验概率信息在第一阶段被新,后i个LLR块中的后验概率信息在第二阶段被更新;
可选地,分层半并行译码的流水线设计采用半并行的译码结构,该流水线设计的译码时序中一层包括第一个半层和第二个半层,每层包括State_1、State_2、State_3和State_4状态;
第一个半层包括VC阶段、RP阶段和CT阶段;所述第二个半层包括VC阶段、RP阶段CF阶段和CF2阶段;
其中,State_1状态对应VC阶段和CF2阶段,State_2状态对应RP阶段和VC阶段,State_3状态对应CT阶段和RP阶段,State_4状态对应CF阶段;
在每个子迭代期间,在CT和CF中执行校验节点跟新的两个阶段,在CF和CF2中执行变量节点跟新的两个阶段。
可选地,分层半并行LDPC译码器的硬件构架包括顶层控制模块、MUX2_1模块、置换网络模块、后验概率信息存储模块、MUX3_1模块、校验节点功能CFU模块和顺序输出模块;
顶层控制模块通过控制信号的状态转移控制其他模块的时序;
mux2_1模块为二选一模块,用来选择译码第一次输入的LLR信息和校验节点更新的后验概率信息,并且与后验概率信息存储模块连接;
mux3_1模块为三选一模块,用来选择译码第一次输入的LLR信息、校验节点更新的后验概率信息以及当校验矩阵为负数时的全零信息,并且一端与后验概率信息存储模块信号连接,另一端与置换网络模块信号连接;
置换网络模块用来对并行数据进行循环移位操作,并且一端与mux2_1模块信号连接,另一端与后验概率信息存储模块信号连接;
后验概率信息存储模块对前半部分后验概率信息和后半部分后验概率信息进行存储,并且分别与置换网络模块、mux3_1模块和顺序输出模块信号连接;
校验节点功能CFU模块用来计算输入中的最小值和次小值以更新外部信息和后验概率信息;
顺序输出模块用来译码判决输出,当译码达到最大译码次数或者满足奇偶校验矩阵时,译码器停止译码,取后验概率信息的最高位作为硬判决结果输出。
本发明的有益效果在于:通过更改从变量节点传递到校验节点的每个信息块的循环移位值,去掉了校验节点和变量节点之间的置换网络模块,即通过单置换网络就可以完成译码器的循环移位操作,从而减小了译码器的硬件资源,半并行结构的译码器的变量节点并行度仅为码长的一半,同时在半层之间加入流水线,可以实现分层全并行LDPC译码器近3/4的吞吐量,同时将硬件资源几乎减少了一半。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
图1为传统分层译码的架构图;
图2为单置换网络的分层译码架构图;
图3为基校验矩阵和修改后的校验矩阵;
图4为分层全并行译码架构图;
图5为半层流水线结构的译码时序图;
图6为单置换网络的分层半并行译码架构图;
图7为控制模块状态转移图;
图8为译码器的整体结构框图;
图9为最小值、次小值运算单元的结构图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
请参阅图1~图9,为一种具有单置换网络的分层半并行LDPC译码器系统。
1、单置换网络的分层译码架构
传统的分层译码器在校验节点处理前后都使用置换网络来进行循环移位操作,如图1所示。在每层译码的迭代过程中,后验概率信息在校验节点处理之前先通过置换网络进行循环移位操作,然后,校验节点更新的后验概率信息再由置换网络以相反的顺序进行循环移位操作,进行两次循环移位操作的目的是校验节点可以按适当的顺序读取和存储后验概率信息。
分层译码是每一层更新完后将本层的迭代信息传递给下一层,又根据LDPC校验矩阵的特点,本设计提出了一种只通过单置换网络就可以完成传统分层译码中的两次循环移位操作,如图2所示。
图3(a)是LDPC基校验矩阵的一部分,当在进行第一层更新时,每个后验概率信息块以基校验矩阵中第一行的值进行循环移位操作。如果是传统的分层译码器,更新后的每个后验概率信息块还会以基校验矩阵中第一行的值进行相反的循环移位操作。本设计用第二行与第一行循环移位值的差值来代替原来基校验矩阵中第二行的值,从而去掉了第一层更新时的第二次循环移位操作。如图3(b)所示,第一个后验概率信息块在进行第一层更新时循环移位值为5,在第二层更新时原本的循环移位值为12,将第二层更新时的循环移位值用第二行与第一行的差值7代替,就可以去掉第一层更新时相反的循环移位操作,其它层更新的循环移位值也与此相同。
在只使用单置换网络的情况下,存储的后验概率信息不需要按照初始顺序排列。在校验节点处理前,置换网络的循环移位值等于基校验矩阵Hb中两个连续层循环移位值的差值,循环移位值Shift(m,n)表示为公式1所示,其中λn(k)表示基矩阵Hb中第n列中非零元素的第k行索引。
2、单置换网络的分层半并行译码架构
传统的分层全并行LDPC译码器架构如图4所示。主要模块有变量节点功能单元(VFU,Variable-Node Function Unit),后验概率信息存储(APP RAM,A PosterioriProbability),校验节点功能单元(CFU,Check-Node Function Unit)和置换网络(PN,Permutation Network)。一次译码输入的N个LLR信息先经过变量节点功能单元进行分组和排序,N个LLR信息一共分为N/z组,每组z个信息。每组z个后验概率信息先通过一个置换网络进行循环移位操作,然后送入不同的校验节点功能单元。z个校验节点功能单元并行工作,每个校验节点功能单元具有N/z个输入和N/z个输出;校验节点功能单元计算有效输入中的最小值和次小值,以更新外部信息和N/z个后验信息;z个校验节点功能单元的N/z个输出中的每一个形成一组后验概率信息向量。然后更新后的z个后验概率信息再通过一个置换网络进行反向循环移位操作,然后被写回到APP RAM。其中,N是LDPC码的信息码长,z是扩展因子。
为了满足LDPC译码器硬件资源和吞吐量之间的平衡,提出了一种单置换网络的分层半并行的架构,如图5所示。相比于全并行的架构,半并行的架构仅实例化了i个后验概率信息存储模块和i个变量节点功能单元,因此置换网络模块数也减少到i个。变量节点处理的并行度从N降低到N/2,而校验节点处理器的并行度保持为z。其中,
分层译码中每层译码的校验节点更新分为两个阶段。在校验节点更新的第一阶段,前一半后验概率信息通过置换网络被送到每个CFU中,同时,将奇偶校验矩阵中的空子矩阵设置为正大数,以避免将错误的信息带给校验节点处理器。一个CFU具有i个后验概率信息输入,CFU使用前i个输入来计算最小值,次小值和符号信息,分别称为m1_p1,m2_p1和sg_p1,如公式2所示。其中,sign()表示对i个后验证概率信息的符号求积,min1()表示求i个后验证概率信息中的最小值,min2()表示求i个后验证概率信息中的次小值。
在校验节点更新的第二阶段,后一半后验概率信息通过置换网络并送到每个CFU中。CFU用后i个输入的后验概率信息计算最小值,次小值和符号信息,分别称为m1_p2,m2_p2和sg_p2。最终的校验节点更新只能在第二阶段中通过将前一阶段和当前阶段的结果相结合来实现,如公式3所示。
变量节点的更新也分为两个阶段。属于前i个LLR块中的后验概率信息在第一阶段被更新,然后,后i个LLR块中的后验概率信息的更新。
3、分层半并行译码的流水线设计
传统的分层全并行译码的一个缺点是在每一层之间存在数据依赖性,即当前层的后验概率信息更新必须在上一层中的相应后验概率信息更新之后才开始,这使得分层全并行译码器在每一层之间不能建立流水线结构,从而限制了译码器的吞吐量。
本设计考虑了硬件资源和吞吐量之间的平衡,采用半并行的译码结构。由于上半层和下半层之间有数据相关性,为了实现更高的吞吐量,可以在两个半层之间加入流水线设计。具有半层流水线结构的译码时序图如图6所示,时序图和控制模块的状态转移图相对应,状态转移图如图7所示。其中,State_1状态对应VC阶段和CF2阶段,State_2状态对应RP阶段和VC阶段,State_3状态对应CT阶段和RP阶段,State_4状态仅对应CF阶段。在每个子迭代期间,在CT和CF中执行校验节点跟新的两个阶段,在CF和CF2中执行变量节点跟新的两个阶段。
总控制模块主要包含一个有限状态机FSM以完成对各个子模块的输入输出和时序控制,协调译码器的迭代,保证迭代的顺利进行,译码器状态机的状态转移图如图7所示。
(1)状态S_Start为初始化状态,主要将输入的码率参数配置到控制模块的各个寄存器当中,同时将第一次迭代译码LLR信息输入指令first_time_on拉高并跳转到Start_Reset状态;状态Start_Reset为重置状态,此时控制模块中所有的信号被重置,重置完成后将第一次迭代译码LLR信息输入指令first_time_on拉低并跳转到Matrix_Calculation状态。状态Matrix_Calculation为校验矩阵配置寄存器转态,主要将校验矩阵参数配置到控制模块的各个寄存器当中,配置完成后跳转到State_1状态。
(2)状态State_1对应时序图中的VC和CF2阶段,在进行第一次迭代中的第一层译码时,仅执行VC阶段。在循环VC期间,通过置换网络从APP RAM中读取前i个后验概率信息。同时,读出以行顺序存储的外部信息的符号和校验节点信息:最小值,次小值,最小值的索引和总符号,并将其送入到CFU中。当没有达到最大迭代次数时,跳转到State_2状态,当达到最大迭代次数或者满足奇偶校验矩阵时,将完成迭代指令finish_iter拉高,然后跳转到S_Finish状态。
(3)状态State_2对应时序图中的RP和VC阶段,在循环RP期间,CFU生成外部信息和先验信息。先验信息的符号和绝对值被记录。同时,还会通过置换网络从APP RAM中读取另一半i个后验概率信息,也就是对另外一半循环VC阶段。完成运算后跳转到State_3状态。
(4)状态State_3对应时序图中的CT和RP阶段,在循环CT期间,CFU计算i个输入中的最小值,第二最小值,相应的索引和i个先验信息的符号的总和,该信息被称为当前校验节点信息并被存储在RAM中。同时,还会对另外一半循环RP阶段。完成运算后跳转到State_4状态。
(5)状态State_4对应时序图中的CF阶段,在循环CF期间,CFU获取后i个输入的当前校验节点信息,该信息与前i个输入属于同一层。然后,基于循环CT阶段中存储的值和当前周期中的计算值来计算最终校验节点信息。后验概率信息更新过程被压缩到此循环中,因为可以直接写回RAM。在循环CF2阶段中仅进行后验概率信息更新和存储过程。完成运算后跳转到State_1状态进行下一层的跟新,当完成所有层的计算后跳转到State_1状态进行下一迭代的计算。
(6)状态S_Finish为完成所有迭代状态,完成所有迭代后,将完成迭代指令finish_iter拉高,finish_iter拉高后就可以进行译码输出了,并跳转到Start_Reset状态进行下一帧数据的译码。
4、分层半并行LDPC译码器的硬件构架
译码器主要分为顶层控制模块、MUX2_1模块、置换网络模块、后验概率信息存储模块、MUX3_1模块、校验节点功能(CFU)模块。图8为译码器的整体结构框图。
译码器各个功能模块的详细介绍如下:
(1)控制模块产生控制信号通过状态转移完成对各个模块的时序控制,使整个译码过程有序进行,控制模块状态转移图如图7所示。
(2)mux2_1模块为二选一模块,用来选择译码第一次输入的LLR信息和校验节点更新的后验概率信息;mux3_1模块为三选一模块,用来选择译码第一次输入的LLR信息、校验节点更新的后验概率信息以及当校验矩阵为负数时的全零信息。
(3)后验概率信息存储模块对前半部分后验概率信息和后半部分后验概率信息进行存储。置换网络模块用来对z路并行数据进行循环移位操作,一共需要i个置换网络模块。顺序输出模块是对一帧数据进行译码的最后一个环节,当LDPC译码达到最大译码次数或者满足奇偶校验矩阵时,译码器停止译码,取后验概率信息的最高位作为硬判决结果输出。
(4)校验节点功能(CFU)模块主要是计算有效输入中的最小值和次小值,以更新外部信息和N/z个后验概率信息;当后验概率信息完成循环移位操作后,开始校验节点更新的流程,校验节点功能模块一次可以并行输入i个后验概率信息,对先输入的i个后验概率信息先求最小值、次小值、最小值的地址值以及所有信息符号的乘积,将求得的数据先寄存起来,然后再对后输入的i个后验概率信息进行同样的操作。最后对两次的结果再求一次最小值、次小值、最小值的地址值以及所有信息符号的乘积。
整个CFU模块的核心部分是在所有输入信息中寻找出最小的两个值,并且确定最小值的应对地址值。图9为最小值、次小值运算单元的结构图,该单元输入为8个变量节点传递给校验节点的信息,这些信息值都是取绝对值之后的非负数。
当求得N/z个后验概率信息中的最小值、次小值和最小值的地址值以及所有信息符号的乘积后,再将后验概率信息与求得的最小值、次小值和所有信息符号的乘积进行相应的加法运算,就得到校验节点更新后的后验概率信息。
5、系统测试
本设计以IEEE802.11ad标准中码长为672、码率为1/2的LDPC码为例子,进行具有单置换网络的分层半并行LDPC译码器的设计和实现。在IEEE802.11ad标准中,N=672,z=42,一次迭代译码需要进行8层更新,一层更新需要4个时钟周期,即对应状态机的4个转移状态(State_1,State_2,State_3,State_4),所以一次迭代译码需要32个时钟周期;上一次迭代译码的更新是在下一次迭代译码的第三个时钟周期(State_3)跟新。当LDPC译码器仿真一帧数据时,output_tb数据每改变一次,表示一次迭代译码完成后译码数据的更新。仿真时后验概率信息经过了6次迭代译码后就满足了奇偶校验矩阵,在第七次进行奇偶校验后将valid_output拉高,表示译码输出有效,然后进行译码输出。由于本次译码还没有达到最大迭代次数就满足了奇偶校验矩阵,表示此次译码全部正确。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (4)
1.一种具有单置换网络的分层半并行LDPC译码器系统,其特征在于:包括单置换网络的分层译码架构、单置换网络的分层半并行译码架构、分层半并行译码的流水线设计、分层半并行LDPC译码器的硬件构架;
单置换网络的分层译码架构,分层译码在校验节点处理前后都使用置换网络来进行循环移位操作,通过更改从变量节点传递到校验节点的每个信息块的循环移位值,只通过单置换网络就可以完成译码器的循环移位操作;
单置换网络的分层半并行译码架构,全并行结构的译码器消耗大量的硬件资源,采用半并行的译码结构来减少译码器的硬件资源;
分层半并行译码的流水线设计,采用分层半并行译码结构,同时在半层之间加入流水线,增大译码器硬件实现的工作频率;
分层半并行LDPC译码器的硬件构架,用来详细描述译码硬件实现的各个模块,该硬件架构包括顶层控制模块、MUX2_1模块、后验概率信息存储模块、MUX3_1模块、置换网络模块、校验节点功能CFU模块和顺序输出模块;
所述顶层控制模块通过控制信号的状态转移控制其他模块的时序;
所述mux2_1模块为二选一模块,用来选择译码第一次输入的LLR信息和校验节点更新的后验概率信息,并且与后验概率信息存储模块连接;
所述后验概率信息存储模块对前半部分后验概率信息和后半部分后验概率信息进行存储,并且分别与mux2_1模块、mux3_1模块和顺序输出模块连接;
所述mux3_1模块为三选一模块,用来选择译码第一次输入的LLR信息、校验节点更新的后验概率信息以及当校验矩阵为负数时的全零信息,并且一端与后验概率信息存储模块连接,另一端与置换网络模块连接;
所述置换网络模块用来对并行数据进行循环移位操作,并且一端与mux3_1模块信号连接,另一端与后验概率信息存储模块信号连接;
所述校验节点功能CFU模块用来计算输入中的最小值和次小值以更新外部信息和后验概率信息,并且一端与置换网络模块连接,另一端与mux2_1模块信号连接;
所述顺序输出模块用来译码判决输出,并且与后验概率信息存储模块连接。
2.根据权利要求1所述的一种具有单置换网络的分层半并行LDPC译码器系统,其特征在于:所述单置换网络的分层译码架构包括后验信息存储模块、变量节点处理模块、单置换网络模块和校验节点处理模块,通过修改校验矩阵中的循环移位值,所述单置换网络模块就可以完成分层译码中的两次循环移位操作;
所述后验信息存储模块一端与变量节点处理模块连接,另一端与校验节点处理模块连接;
所述变量节点处理模块一端与后验信息存储模块连接,另一端与单置换网络模块连接;
所述单置换网络模块一端与变量节点处理模块连接,另一端与校验节点处理模块连接;
所述校验节点处理模块一端与单置换网络模块连接,另一端与后验信息存储模块连接;
所述单置换网络模块的循环移位值等于基校验矩阵Hb中两个连续层循环移位值的差值。
3.根据权利要求1所述的一种具有单置换网络的分层半并行LDPC译码器系统,其特征在于:所述单置换网络的分层半并行译码架构包括后验概率信息存储APP RAM单元,变量节点功能单元VFU,校验节点功能单元CFU和置换网络PN单元;
所述后验概率信息存储APP RAM单元一端与变量节点功能单元VFU信号连接,另一端与置换网络PN单元连接;
所述变量节点功能单元VFU一端与后验概率信息存储APP RAM单元连接,另一端与置换网络PN单元连接;
所述置换网络PN单元一端与变量节点功能单元VFU连接,另一端与校验节点功能单元CFU连接;
所述校验节点功能单元CFU一端与置换网络PN单元连接,另一端与后验概率信息存储APP RAM单元连接;
所述校验节点功能单元CFU更新分为两个阶段:
在第一阶段,前一半后验概率信息通过置换网络被送到每个校验节点功能单元CFU中,并且使用前i个输入来计算最小值,次小值和符号信息,分别称为m1_p1,m2_p1和sg_p1,如公式1所示,其中,sign()表示对i个后验证概率信息的符号求积,min1()表示求i个后验证概率信息中的最小值,min2()表示求i个后验证概率信息中的次小值;
在第二阶段,后一半后验概率信息通过置换网络送到每个校验节点功能单元CFU中,校验节点功能单元CFU用后i个输入的后验概率信息计算最小值,次小值和符号信息,分别称为m1_p2,m2_p2和sg_p2,最终的校验节点更新只能在第二阶段中通过将前一阶段和当前阶段的结果相结合来实现,如公式3所示;
其中,sg_final,m1_final和m2_final分别为后验概率信息计算的最终符号信息,最终最小值和最终次小值;
所述变量节点的更新分为两个阶段,属于前i个LLR块中的后验概率信息在第一阶段被新,后i个LLR块中的后验概率信息在第二阶段被更新。
4.根据权利要求1所述的一种具有单置换网络的分层半并行LDPC译码器系统,其特征在于:所述分层半并行译码的流水线设计采用半并行的译码结构,并在两个半层之间加入流水线设计,该流水线设计的译码时序中一层包括第一个半层和第二个半层,每层包括State_1、State_2、State_3和State_4状态;
所述第一个半层包括VC阶段、RP阶段和CT阶段;所述第二个半层包括VC阶段、RP阶段CF阶段和CF2阶段;
其中,State_1状态对应VC阶段和CF2阶段,State_2状态对应RP阶段和VC阶段,State_3状态对应CT阶段和RP阶段,State_4状态对应CF阶段;
在每个子迭代期间,在CT和CF中执行校验节点跟新的两个阶段,在CF和CF2中执行变量节点跟新的两个阶段。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011411615.5A CN112636767B (zh) | 2020-12-03 | 2020-12-03 | 一种具有单置换网络的分层半并行ldpc译码器系统 |
PCT/CN2021/130546 WO2022116799A1 (zh) | 2020-12-03 | 2021-11-15 | 一种具有单置换网络的分层半并行ldpc译码器系统 |
US17/792,601 US20230037965A1 (en) | 2020-12-03 | 2021-11-15 | Layered semi parallel ldpc decoder system having single permutation network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011411615.5A CN112636767B (zh) | 2020-12-03 | 2020-12-03 | 一种具有单置换网络的分层半并行ldpc译码器系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112636767A CN112636767A (zh) | 2021-04-09 |
CN112636767B true CN112636767B (zh) | 2023-04-07 |
Family
ID=75308058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011411615.5A Active CN112636767B (zh) | 2020-12-03 | 2020-12-03 | 一种具有单置换网络的分层半并行ldpc译码器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230037965A1 (zh) |
CN (1) | CN112636767B (zh) |
WO (1) | WO2022116799A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112636767B (zh) * | 2020-12-03 | 2023-04-07 | 重庆邮电大学 | 一种具有单置换网络的分层半并行ldpc译码器系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692611A (zh) * | 2009-07-03 | 2010-04-07 | 复旦大学 | 一种基于simd结构的多标准ldpc译码器电路 |
CN101803210A (zh) * | 2007-10-24 | 2010-08-11 | 诺基亚公司 | 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置、计算机程序产品和设备 |
CN102281125A (zh) * | 2011-07-29 | 2011-12-14 | 上海交通大学 | 分层分块非规则低密度校验码译码器及译码方法 |
CN103916134A (zh) * | 2014-03-24 | 2014-07-09 | 清华大学 | 低密度奇偶校验码的混叠译码方法及多核协同混叠译码器 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260763B2 (en) * | 2004-03-11 | 2007-08-21 | Nortel Networks Limited | Algebraic low-density parity check code design for variable block sizes and code rates |
US7730377B2 (en) * | 2004-07-22 | 2010-06-01 | Texas Instruments Incorporated | Layered decoding of low density parity check (LDPC) codes |
US20070089019A1 (en) * | 2005-10-18 | 2007-04-19 | Nokia Corporation | Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages |
FR2915641B1 (fr) * | 2007-04-30 | 2009-08-07 | St Microelectronics Sa | Procede et dispositif d'entrelacement de donnees |
US8181083B2 (en) * | 2007-08-27 | 2012-05-15 | Stmicroelectronics S.R.L. | Methods and architectures for layered decoding of LDPC codes with minimum latency |
US20090113256A1 (en) * | 2007-10-24 | 2009-04-30 | Nokia Corporation | Method, computer program product, apparatus and device providing scalable structured high throughput LDPC decoding |
US8140932B2 (en) * | 2007-11-26 | 2012-03-20 | Motorola Mobility, Inc. | Data interleaving circuit and method for vectorized turbo decoder |
CN101854177B (zh) * | 2009-04-01 | 2013-01-02 | 中国科学院微电子研究所 | 一种高吞吐率的ldpc译码器 |
CN101931416A (zh) * | 2009-06-24 | 2010-12-29 | 中国科学院微电子研究所 | 移动数字多媒体广播系统中的ldpc码的并行分层译码器 |
EP2525496A1 (en) * | 2011-05-18 | 2012-11-21 | Panasonic Corporation | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
CN102291153B (zh) * | 2011-06-13 | 2014-04-02 | 电子科技大学 | Cmmb中ldpc码的译码方法及部分并行译码器 |
CN102394661B (zh) * | 2011-11-08 | 2015-05-06 | 北京邮电大学 | 基于层译码处理的ldpc译码器及译码方法 |
US8713399B1 (en) * | 2013-10-10 | 2014-04-29 | Antcor S.A. | Reconfigurable barrel shifter and rotator |
CN103618556A (zh) * | 2013-12-11 | 2014-03-05 | 北京理工大学 | 基于rmp调度的部分并行qc-ldpc译码方法 |
CN103746709B (zh) * | 2013-12-17 | 2017-01-25 | 记忆科技(深圳)有限公司 | 准循环低密度奇偶校验的装置 |
US9748973B2 (en) * | 2014-04-22 | 2017-08-29 | Sandisk Technologies Llc | Interleaved layered decoder for low-density parity check codes |
US10193578B2 (en) * | 2014-07-10 | 2019-01-29 | The Royal Institution For The Advancement Of Learning / Mcgill University | Flexible polar encoders and decoders |
CN110868225B (zh) * | 2019-11-29 | 2023-06-06 | 中科南京移动通信与计算创新研究院 | Ldpc码译码器 |
CN112636767B (zh) * | 2020-12-03 | 2023-04-07 | 重庆邮电大学 | 一种具有单置换网络的分层半并行ldpc译码器系统 |
-
2020
- 2020-12-03 CN CN202011411615.5A patent/CN112636767B/zh active Active
-
2021
- 2021-11-15 WO PCT/CN2021/130546 patent/WO2022116799A1/zh active Application Filing
- 2021-11-15 US US17/792,601 patent/US20230037965A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101803210A (zh) * | 2007-10-24 | 2010-08-11 | 诺基亚公司 | 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置、计算机程序产品和设备 |
CN101692611A (zh) * | 2009-07-03 | 2010-04-07 | 复旦大学 | 一种基于simd结构的多标准ldpc译码器电路 |
CN102281125A (zh) * | 2011-07-29 | 2011-12-14 | 上海交通大学 | 分层分块非规则低密度校验码译码器及译码方法 |
CN103916134A (zh) * | 2014-03-24 | 2014-07-09 | 清华大学 | 低密度奇偶校验码的混叠译码方法及多核协同混叠译码器 |
Non-Patent Citations (2)
Title |
---|
An area and energy efficient half-row-paralleled layer LDPC decoder for the 802.11AD standard;Meng Li 等;《SiPS 2013 Proceedings》;20131202;第112-117页 * |
分层部分并行LDPC编译码器研究及FPGA实现;丁太云;《中国优秀硕士学位论文全文数据库 信息科技辑》;20220315;I136-304 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022116799A1 (zh) | 2022-06-09 |
US20230037965A1 (en) | 2023-02-09 |
CN112636767A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111162797B (zh) | 一种速率兼容的5g ldpc码的编码装置及编码方法 | |
CN107846261B (zh) | 用于并行连续取消解码和连续取消列表解码的设备和方法 | |
US7343548B2 (en) | Method and apparatus for encoding and decoding data | |
Zhang et al. | Reduced-latency SC polar decoder architectures | |
US20170093429A1 (en) | Low density parity check decoder | |
CN102804609B (zh) | 基于格式结构方法的并行执行 | |
CN101951264B (zh) | 一种多码率准循环低密度奇偶校验码解码器 | |
CN102281125B (zh) | 分层分块非规则低密度校验码译码器及译码方法 | |
WO2017080249A1 (zh) | 生成用于在信道中传输的低密度奇偶校验码的方法及设备 | |
CN110741557B (zh) | 通过合并极化码图的级的低延迟极化编码和解码 | |
CN103208995B (zh) | 一种低密度奇偶校验码译码的提前终止方法 | |
WO2007034870A1 (ja) | 復号装置および受信装置 | |
CN101478314A (zh) | 一种里德-所罗门编码译码器及其译码的方法 | |
CN108462496B (zh) | 一种基于随机比特流更新的ldpc译码器 | |
CN112636767B (zh) | 一种具有单置换网络的分层半并行ldpc译码器系统 | |
CN112134570A (zh) | 一种应用于深空通信的多模式ldpc译码器 | |
WO2010053152A1 (ja) | 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 | |
CN101777920B (zh) | 低密度奇偶校验码的编码方法和编码译码装置 | |
CN111384970B (zh) | 一种译码方法、装置及通信设备 | |
CN101958718B (zh) | 用于ldpc码的改进型半并行译码器和译码方法 | |
Liang et al. | Efficient stochastic successive cancellation list decoder for polar codes | |
CN102611462A (zh) | 一种ldpc-cc译码算法及译码器 | |
CN115694513A (zh) | 一种基于移位型基图的超高吞吐率ldpc译码器 | |
CN102164023A (zh) | 自适应动态量化ldpc码译码方法 | |
CN102347774A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |