CN106603082A - 通用型高速ldpc码编码方法及编码器 - Google Patents

通用型高速ldpc码编码方法及编码器 Download PDF

Info

Publication number
CN106603082A
CN106603082A CN201611136149.8A CN201611136149A CN106603082A CN 106603082 A CN106603082 A CN 106603082A CN 201611136149 A CN201611136149 A CN 201611136149A CN 106603082 A CN106603082 A CN 106603082A
Authority
CN
China
Prior art keywords
matrix
check
module
input
check matrix
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
Application number
CN201611136149.8A
Other languages
English (en)
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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201611136149.8A priority Critical patent/CN106603082A/zh
Publication of CN106603082A publication Critical patent/CN106603082A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明涉及无线通信领域,其针对发送端信道编码器大吞吐量的需求,设计和实现了一种通用型高速低密度奇偶校验码(LDPC码)编码方法及编码器。本发明通过先对LDPC码的校验矩阵进行预处理,然后利用预处理后的校验矩阵进行编码这两个步骤将LDPC码的校验矩阵通过行列置换和高斯消元,使每个校验位的运算只与预处理后矩阵的对应行相关,具备了可以灵活并行处理的结构;在编码器的硬件设计上,本发明提出了一种校验位并行分步运算的编码器架构,通过同时计算所有校验位,分步处理单个校验位,有效地降低了硬件实现复杂度,缩短了关键路径时延,实现了编码速率的极大提高。

Description

通用型高速LDPC码编码方法及编码器
技术领域
本发明涉及无线通信领域,其针对发送端信道编码器大吞吐量的需求,设计和实现了一种通用型高速低密度奇偶校验码(LDPC码)编码方法及编码器。
背景技术
随着高速数据传输业务的快速发展,人们对信息传输的质量和速率要求越来越高,高速LDPC码编译码器在通信系统中的应用需求更加强烈。在固有的信道环境下,如何既满足越来越高的数据传输速率要求,又保证信息传输的可靠性,是信道编码技术研究的主要任务和目标。
LDPC码是一种线性分组码,由Gallager博士于1963年在其博士论文中首次提出。作为一种性能优良的信道编码,LDPC码校验矩阵具有稀疏特性,不仅描述简单、编译码复杂度比较低,而且错误平台较低,后被证明距香农限仅0.0045dB,编译码可以实现硬件并行处理,在现行通信标准中得到了广泛应用。LDPC码是Turbo码的强有力竞争者,并且性能逐渐优于Turbo码。
人们对LDPC码的批评主要集中在高编码复杂度上,如何实现快速编码一直是LDPC码的一个研究热点。具有代表性的主要有以下几种:(1)基于LU分解的编码,即对校验矩阵进行LU分解,利用前后迭代进行编码,其优点是能够保持校验矩阵的稀疏特性,运算复杂度与码长成线性关系;缺点是预处理复杂度较高,需要寻找优良的分解方法以保持矩阵的稀疏性,前后迭代运算时延较大。(2)基于近似下三角矩阵的编码,对校验矩阵不作高斯消元,而是进行行列置换,得到近似下三角的矩阵结构,从而通过对检验矩阵进行分解,对编码过程分步计算,降低编码复杂度。Richardson给出了将检验矩阵通过行列置换变的贪心算法,但此算法对长码进行置换时复杂度仍然较高。(3)基于准循环LDPC码的编码。准循环LDPC码具有一定简单编码结构,不但可以釆用循环移位寄存器的进行存储,还可以采取并行译码的结构进行译码,降低了存储资源和硬件实现的复杂度,不足之处是对校验矩阵具有更加特殊的要求,对一般LDPC码、特别是随机构造的LDPC码不具备通用性。
上述编码算法都对编码复杂度进行了一定优化,但同时也有一定的局限性,后两种方法的缺陷是对码的结构具有一定要求,对一般LDPC码、特别是随机构造的LDPC码的适用性不强;在硬件电路的设计上,三种编码方案都是用迭代的方式处理,逻辑电路的并行度不够高,一定程度上增大了编码延时。
发明内容
在节约硬件资源的前提下,为最大限度的降低编码时延、提高编码器速率,本发明从编码算法的通用性出发,提出一种通用型高速LDPC码编码方法及编码器,该方法将LDPC码的校验矩阵通过行列置换和高斯消元,使每个校验位的运算只与预处理后矩阵的对应行相关,具备了可以灵活并行处理的结构;在编码器的硬件设计上,本发明提出了一种校验位并行分步运算的编码器架构,通过同时计算所有校验位,分步处理单个校验位,有效地降低了硬件实现复杂度,缩短了关键路径时延,实现了编码速率的极大提高。此外,本发明所述装置采用(4480,3920)LDPC码,基于Xilinx公司的Virtext-7系列芯片,实现了通用型的高速LDPC码编码器,可以应用在速率为15.1Gbps的高速数据传输系统中。
本发明采用的技术方案为:一种基于高斯消元的通用型高速LDPC码编码方法,主要包括以下步骤:
步骤一、对LDPC码的校验矩阵进行预处理:
对于一个(n,k)LDPC码,设码字空间为C,校验序列用p表示,信息序列用s表示,则其码长为n,信息位个数为k,校验位个数为m,m=n-k,则LDPC码可以由校验矩阵H唯一确定和描述,矩阵大小为m×n。
校验矩阵H的每一行对应一个校验方程,每一列对应码字中的一个比特。例如,对于一个(12,6)LDPC码的校验矩阵H,设向量c=[c1,c2,c3,…,c12],当且仅当满足:
H×cT=0 (1)
时,c是该码的一个码字,下式表示该码的校验矩阵和对应的校验方程。
线性分组码通过校验矩阵进行编码,是利用的码字空间C与校验矩阵H的正交性来求得码字:
c×HT=0 (3)
对于LDPC码,因其码长过长,且生成矩阵G是非稀疏性的,因此一般的编码方法都是通过校验矩阵进行编码。为了便于编码进行,在本发明中首先对校验矩阵进行预处理,对于任意校验矩阵H,可分为(A,B)两部分,对应的将码字c写成(p,s)的形式,其中矩阵A的大小为m×m,矩阵B的大小为m×k,p为编码获得的校验序列,则式(3)可以写成:
可以得到:
pT=BsTA-1 (5)
编码过程其实质就是求校验序列p的过程。本发明中通过对校验矩阵H进行高斯消元,可以将上述矩阵A转化为单位矩阵,同时B矩阵转换成B'矩阵,消元后的矩阵H'可以表示为:
H'=[I|B']; (6)
经过预处理之后获得的矩阵B'即是编码需要的矩阵,其具有稀疏特性,存储资源需求校,且利于分块并行编码。
步骤二、利用预处理后的校验矩阵进行编码
在高斯消元中,仅仅对校验矩阵进行了初等变换,不影响矩阵H'与码字c的正交性,即码空间不变,因此,式(5)可以化为:
pT=B'sTI-1 (7)
根据式(7),即可得到求解第i个校验位pi的方程:
其中,b'ij为矩阵B'对应i行j列的元素,sj表示信息序列s中第j位的信息位。在消元过程中,少数列变换对生成码字的顺序有一定影响,需将列变换的顺序记录下来,计算出校验位pi后,根据变换顺序重新调整编码序列,即可得出正确的码字。这样,求解校验位pi的过程只与预处理后的校验矩阵B'相关,并且每个校验位的计算只与矩阵B'中对应的行相关,便于实现灵活的、行间高度并行的运算。获得线性分组码的校验序列再结合信息序列即可完成LDPC码的编码。
本发明还提供一种基于以上编码方法的LDPC码编码器,所述编码器主要由输入缓存模块、校验矩阵存储模块、逻辑运算模块、控制模块和输出缓存模块五个部分组成,共有56个输入端口,每个周期并行输入56个信息位,分别被传递给输入缓存模块与逻辑运算模块;同时,每个周期读取出矩阵B'的560行、56列元素,在逻辑运算模块中与输入的信息位执行运算,70个周期后一帧完整码字的560个校验位计算完成,与3920个信息位传递给输出缓存模块,转换成64路并行数据,通过64个输出端口输出,每个模块的设计与功能如下:
(1)输入缓存模块
输入缓存模块主要由56个串/并转换模块组成,当信息序列输入后,该模块每个串/并转换模块对应一路输入信号,将一帧56路并行、每路串行输入70个信息位的信息序列,经70个时钟周期,转换成3920路并行输出。当一帧码字的560个校验位计算完成后,560个校验位计算完成,与3920路并行输出的信息位组合成完整的编码码字,传递到输出缓存模块;
(2)逻辑运算电路
逻辑运算电路由560个相同的逻辑运算子电路组成,每个时钟周期,56个信息位分别在560个逻辑运算电路内,同时与对应的校验矩阵中560行、56列元素进行运算;经过70个时钟周期,3920个信息位与校验矩阵中的560行、3920列元素运算完毕,即可得560个校验位;
(3)校验矩阵存储模块
预处理后的校验矩阵B'中的元素在编码过程中将重复使用,为节约逻辑资源,便于硬件实现,本发明将矩阵B'中的元素存储到FPGA芯片的BRAM中。由于逻辑运算在70个周期内完成,校验矩阵中所有元素的什么也要在70个周期内读取,其中每个周期要读出560×56个元素,因此对校验矩阵进行分层存储。具体方法如下:
将矩阵B'按每80行为1层分为7层,分别存储到7个相同BRAM块中,其中,每个ROM块都有70个存储单元,每个存储单元位宽为4480比特。同时,将矩阵B'中的每层分为70个大小为80×56的矩阵块,每个ROM块的一个存储单元对应存储一个矩阵块的4480个元素。
7个ROM块的每个地址,各自对应矩阵B'中的80行、56列元素,运算时,可以对7个ROM块可以同步寻址。因此,在同一个周期,可以读取矩阵B'第1层到第7层中的560行、56列元素,与输入的56个信息位进行运算。例如,在第i个计算周期上升沿,就可以同时对7个ROM块的第i个存储单元进行寻址,非常方便的将矩阵B'中第i个56列数据一次性全部读出,输送到逻辑运算电路;而矩阵B'全部数据读出需70个周期,与一帧数据的输入同时完成,可以实现同步处理。
(4)控制模块
该模块主要包括使能产生器、地址控制器和计数器,其作用是产生使能信号,开始对ROM块进行寻址,控制逻辑运算模块开始工作。每个工作时钟周期,计数器自动加1。当70个周期时结束,一帧完整码字计算完成,启动输出缓存模块,经并/串转换后输出编码码字。
(5)输出缓存模块
输出缓存模块与输入缓存原理相似,而功能相逆,由64个并/串转换模块组成。组合后的4480路并行输入的码字传递到输出缓存模块后,通过输出缓存模块转换成64路并行信号,每路串行输出70比特数据。
本发明的有益效果是:
本发明提出的LDPC编码方法及编码器主要有以下特点和优势:
(1)提出和采用了一种基于优化的高斯消元算法的编码方法,该方法通用性强,一般的LDPC码都能采用该方法进行处理,对于随机构造的LDPC码同样适用,因此适用于对纠错性能要求较高的通信系统。
(2)对校验矩阵进行预处理后,求解每个校验位的过程仅与校验矩阵对应的行相关,编码过程更加灵活,可以在硬件上实现高度并行的运算,提高了编码速率。
(3)优化了预处理后的校验矩阵的存储方法,提高了数据读取的并行度。
(4)本发明设计的并行分步运算的编码器,一帧数据校验位的运算可以同时进行,70个周期内即可得出全部校验位,并完成一帧数据的输出,减小了编码时延,并且逻辑运算电路没有复杂的布线。
(5)编码器工作时钟频率最高可达270MHz,最大估算吞吐量可达15.1Gbps,能够在200MHz以上的工作时钟频率下稳定工作。
附图说明
图1是编码器结构框图,
图2是编码器外部接口示意图,
图3是校验位分步并行运算示意图,
图4是第k个校验位的运算过程,
图5是预处理后的校验矩阵B'的存储示意图,
图6是单个ROM块存储示意图,
图7是控制模块的工作流程示意图,
具体实施方式
下面结合附图对本发明进行详细说明。
图1是编码器结构框图,表示了编码器的工作流程。其中,ROM1至ROM7表示7个ROM存储块,用来存储预处理后的校验矩阵B'。编码器工作流程为:每个时钟周期并行输入56个信息位,分别被传递给输入缓存模块与逻辑运算模块;同时,从7个ROM块中读取出矩阵B'的560行、56列元素,并送入逻辑运算模块;逻辑运算模块接收到两类数据后,开始执行校验位运算。此过程重复执行70个时钟周期后,逻辑运算模块计算出560个检验位,输送至输出缓存模块;此时,输入缓存模块恰好将缓存的3920个信息位传递给输出缓存模块;560个校验位和3920个信息位经输出缓存模块重新排序后,转化成64路并行输出。
图2是编码器外部接口示意图,图中分别标示出输入、输出信号的种类和名称:输入信号包括系统工作时钟(Sys_Clk),系统复位信号(Sys_Rst),数据接收使能信号(Rx_Data_En),数据接收有效信号(Rx_Data_Valid),56路并行输入的信道消息输入信号(CMin-1至CMin-56)。伴随着消息一起输入的有使能信号Rx_Data_En和标志信号Rx_Data_Valid。Rx_Data_En信号仅在输入第一个时钟周期内有效(高电平有效),其他时刻无效,其作用是通知编码器消息输入开始;Rx_Data_Valid信号在消息输入的70个时钟周期内均有效。
输出信号包括数据输出使能信号(Tx_Data_En),数据输出有效信号(Tx_Data_Valid),编码码字分64路输出(DWordout-1至DWordout-64)。输出一帧4480比特的编码码字,需要70个时钟周期。伴随着编码码字输出的有使能信号Tx_Data_En和标志信号Tx_Data_Valid。Tx_Data_En信号仅在码字输出第一个时钟周期有效,其他时刻无效,作用是通知外部接收设备输出开始;Tx_Data_Valid信号在码字输出的70个时钟周期内均有效。
图3是校验位分步并行运算示意图,表示560个校验位分布并行运算的过程。由于每个校验位的计算只与矩阵H1'中的对应行相关,因此,逻辑运算模块的设计采用了校验位并行分步计算方案,其基本思想是,每个时钟周期,56个信息位分别输送到560个逻辑运算电路内,与对应的子矩阵中560行、56列元素进行运算,经过70个时钟周期,即可同时计算出560个校验位。具体过程为:将矩阵H1'按列划分为70个大小为560×56的子矩阵,每个子矩阵用H1'(i)表示,把一帧3920比特信息序列S写成形式,Ti表示逻辑运算的周期数,每个分向量每个周期进行一步运算,每一步运算需1个子矩阵H1'(i)和1个信息序列的分向量参与其中,560个校验位的运算在circuit1,circuit2,…,circuit560共560个逻辑电路中同时进行,经70步运算全部完成。
图4描述了第k个校验位的逻辑运算过程:第1个时钟周期,信息序列的第1个分向量的56个信息码元(s1,s2,…,s56)并行输入,与矩阵H1'中第k行的第1到56列元素(bk,1,bk,2,…,bk,56)一一对应,分别进行逻辑与运算,得出的56个中间变量与预设的变量ak(初始值为0)执行异或运算,得出的结果更新到ak,并作为反馈信号参与到下一周期运算;第2个时钟周期,信息序列的第2个分向量的56个信息码元(s57,s58,…,s112),与矩阵H1'中第k行第57到112列元素(bk,57,bk,58,…,bk,112)执行相同运算,而后与上一周期得出的ak进行异或运算;依次类推,直到第70个周期运算结束,得出结果更新到ak中,即作为对应的校验位pk输送到输出缓存。
图5是矩阵B'的分层存储示意图。将矩阵B'按每80行为1层,共分为7层,每层含80×3920个元素;定义7个ROM块,分别把矩阵B'的第1层至第7层存储到ROM1到ROM7中。矩阵H1'的每层,按每56列分成70个矩阵块,第i层第j个矩阵块用B'i-j表示,每个矩阵块B'i-j大小为80×56,含4480个元素;对应的,定义每个ROM块深度为70,宽度为4480比特,即ROM1到ROM7都有70个存储单元,每个存储单元位宽为4480比特。7个ROM块的每一存储单元,对应存储一个80×56大小的B'i-j,即第i个ROM块ROMi的第j个存储单元对应存储矩阵H1'第i层第j个矩阵块B'i-j中的元素。
图6是单个ROM块存储的元素示意图,每个矩阵块B'i-j中的元素在对应的存储单元中是按行分布的。图中以ROM1为例,对矩阵中第1层元素的存储顺序和方法进行了描述。设矩阵B'第1层的元素可以用bm_n表示(m=1,2,3,......,80;n=1,2,3,......,3920),则ROM1中第1个存储单元相应存储b1_1......b1_56,b2_1......b2_56,......,b80_1......b80_56;第2个存储单元对应存储b1_1......b1_56,b2_1......b2_56,......,b80_1......b80_56;依次类推,第70个存储单元对应存储b70_1......b70_56,......,b70_1......b70_56。这样,7个ROM块的70个存储单元的地址,各自对应矩阵H1'中的80行、56列元素。在第k个计算周期上升沿,就可以同时对7个ROM块的第k个存储单元进行寻址,非常方便的将矩阵H1'中第k个56列数据一次性全部读出,输送到逻辑运算电路;而矩阵H1'全部数据读出需70个周期,与一帧消息数据的输入同时完成。
图7是控制模块的工作流程示意图。编码器控制模块由状态机控制模块(SCM)和使能产生模块(EGM)组成。SCM为核心部分,主要由有限状态机和计数控制器、地址控制器组成,作用是控制编码流程中各状态之间的转换,使EGM在不同状态下产生相应的控制信号。具体控制流程为:当检测到使能信号Rx_Data_en有效时,编码器初始化,存储模块地址Addr_Rom初始化为零,同时SCM中的计数器归零,地址控制模块从零开始同时对7个ROM块进行寻址,逻辑运算模块开始工作。随后,每经过一个时钟周期,地址Addr_Rom和计数器自动加1,编码器重复执行编码过程。当第70个时钟周期结束,一帧数据运算完成,计数器Count达到预定值,产生一个使能信号Tx_Data_en,启动输出缓存模块,输出编码码字。
根据以上步骤方案,编码器的实现过程包括将硬件结构用硬件语言编程,并通过仿真、综合、布局布线等对功能进行验证,最后完成芯片级测试。本设计应用的开发环境为Xilinx Vivado 15.3开发工具,编程的语言为Verilog硬件语言,硬件平台为Xilinx公司的Virter-7系列FPGA芯片产品。验证的过程为:使用VC++6.0软件编写生成测试输入数据C程序以及相应的编码验证C程序。通过生成测试输入数据C程序产生5帧译码测试数据,并将测试数据分别导入到编码验证C程序中以及xc7vx690t FPGA芯片的ROM IP核内进行功能仿真测试和在线调试。利用Xilinx Vivado 15.3开发工具内嵌的Vivado逻辑分析仪(ILA)捕获需要探测的关键数据作为硬件输出结果输入至计算机上,并与相同算法处理过的软件测试结果进行对比,查看实现的LDPC编码器的硬件输出结果与编码验证C程序输出的结果是否一致。
表1列出了资源消耗情况,LUT资源使用仅占FPGA芯片的5.29%,BRAM存储资源使用也仅占FPGA芯片的29.76%,布局布线后的工作时钟频率可以达到270MHz,估算吞吐量可达15.1Gbps。
表1芯片资源使用情况和吞吐量

Claims (2)

1.一种通用型高速LDPC码编码方法,其特征在于,该方法主要包括以下步骤:
步骤一、对LDPC码的校验矩阵进行预处理:
对于一个(n,k)LDPC码,设码字空间为C,校验序列用p表示,信息序列用s表示,则其码长为n,信息位个数为k,校验位个数为m,m=n-k,则LDPC码可以由校验矩阵H唯一确定和描述,矩阵大小为m×n;
校验矩阵H的每一行对应一个校验方程,每一列对应码字中的一个比特;
线性分组码通过校验矩阵进行编码,是利用的码字空间C与校验矩阵H的正交性来求得码字:
c×HT=0 (3)
对于任意校验矩阵H,可分为(A,B)两部分,对应的将码字c写成(p,s)的形式,其中矩阵A的大小为m×m,矩阵B的大小为m×k,p为编码获得的校验序列,则上式可以写成:
( A , B ) × p T s T = 0 - - - ( 4 )
可以得到:
pT=BsTA-1 (5)
编码过程其实质就是求校验序列p的过程,通过对校验矩阵H进行高斯消元,可以将上述矩阵A转化为单位矩阵,消元后的矩阵H'可以表示为:
H'=[I|B']; (6)
经过预处理之后获得的矩阵B'即是编码需要的矩阵,其具有稀疏特性,存储资源需求校少,且利于分块并行编码;
步骤二、利用预处理后的校验矩阵进行编码:
在高斯消元中,仅仅对校验矩阵进行了初等变换,不影响矩阵H'与码字c的正交性,即码空间不变,因此,式(5)可以化为:
pT=B'sTI-1 (7)
根据式(7),即可得到求解第i个校验位pi的方程:
p i = Σ j = 1 k ( b ′ i j × s j ) - - - ( 8 )
其中,b'ij为矩阵B'对应i行j列的元素,sj表示信息序列中第j位的信息位;在消元过程中,少数列变换对生成码字的顺序有一定影响,需将列变换的顺序记录下来,计算出校验位pi后,根据变换顺序重新调整编码序列,即可得出正确的码字;获得线性分组码的校验序列再结合信息序列即可完成LDPC码的编码。
2.一种基于权利要求1所述编码方法的LDPC码编码器,其特征在于:所述编码器主要由输入缓存模块、校验矩阵存储模块、逻辑运算模块、控制模块和输出缓存模块五个部分组成,共有56个输入端口,每个周期并行输入56个信息位,分别被传递给输入缓存模块与逻辑运算模块;同时,每个周期读取出矩阵B'的560行、56列元素,在逻辑运算模块中与输入的信息位执行运算,70个周期后一帧完整码字的560个校验位计算完成,与3920个信息位传递给输出缓存模块,转换成64路并行数据,通过64个输出端口输出,每个模块的设计与功能如下:
(1)输入缓存模块
输入缓存模块主要由56个串/并转换模块组成,当信息序列输入后,该模块每个串/并转换模块对应一路输入信号,将一帧56路并行、每路串行输入70个信息位的信息序列,经70个时钟周期,转换成3920路并行输出;当一帧码字的560个校验位计算完成后,560个校验位计算完成,与3920路并行输出的信息位组合成完整的编码码字,传递到输出缓存模块;
(2)逻辑运算电路
逻辑运算电路由560个相同的逻辑运算子电路组成,每个时钟周期,56个信息位分别在560个逻辑运算电路内,同时与对应的校验矩阵中560行、56列元素进行运算;经过70个时钟周期,3920个信息位与校验矩阵中的560行、3920列元素运算完毕,即可得出560个校验位;
(3)校验矩阵存储模块
预处理后的校验矩阵B'中的元素在编码过程中将重复使用,为节约逻辑资源,便于硬件实现,本发明将矩阵B'中的元素存储到FPGA芯片的BRAM中;由于逻辑运算在70个周期内完成,校验矩阵中所有元素的什么也要在70个周期内读取,其中每个周期要读出560×56个元素,因此对校验矩阵进行分层存储;具体方法如下:
将矩阵B'按每80行为1层分为7层,分别存储到7个相同BRAM块中,其中,每个ROM块都有70个存储单元,每个存储单元位宽为4480比特;同时,将矩阵B'中的每层分为70个大小为80×56的矩阵块,每个ROM块的一个存储单元对应存储一个矩阵块的4480个元素;
7个ROM块的每个地址,各自对应矩阵B'中的80行、56列元素,运算时,可以对7个ROM块可以同步寻址;因此,在同一个周期,可以读取矩阵B'第1层到第7层中的560行、56列元素,与输入的56个信息位进行运算;例如,在第i个计算周期上升沿,就可以同时对7个ROM块的第i个存储单元进行寻址,非常方便的将矩阵B'中第i个56列数据一次性全部读出,输送到逻辑运算电路;而矩阵B'全部数据读出需70个周期,与一帧数据的输入同时完成,可以实现同步处理;
(4)控制模块
在控制模块中,主要包括使能产生器、地址控制器和计数器,其作用是产生使能信号,开始对ROM块进行寻址,控制逻辑运算模块开始工作;每个工作时钟周期,计数器自动加1;当70个周期时结束,一帧完整码字计算完成,启动输出缓存模块,经并/串转换后输出编码码字;
(5)输出缓存模块
输出缓存模块与输入缓存原理相似,而功能相逆,由64个并/串转换模块组成;组合后的4480路并行输入的码字传递到输出缓存模块后,通过输出缓存模块转换成64路并行信号,每路串行输出70比特数据。
CN201611136149.8A 2016-12-12 2016-12-12 通用型高速ldpc码编码方法及编码器 Pending CN106603082A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611136149.8A CN106603082A (zh) 2016-12-12 2016-12-12 通用型高速ldpc码编码方法及编码器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611136149.8A CN106603082A (zh) 2016-12-12 2016-12-12 通用型高速ldpc码编码方法及编码器

Publications (1)

Publication Number Publication Date
CN106603082A true CN106603082A (zh) 2017-04-26

Family

ID=58598347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611136149.8A Pending CN106603082A (zh) 2016-12-12 2016-12-12 通用型高速ldpc码编码方法及编码器

Country Status (1)

Country Link
CN (1) CN106603082A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111181691A (zh) * 2019-12-31 2020-05-19 上海微波技术研究所(中国电子科技集团公司第五十研究所) 毫米波系统高速Raptor编译码方法及系统
CN112204889A (zh) * 2018-03-30 2021-01-08 高通股份有限公司 用于低密度奇偶校验(ldpc)码的分层解码的调度
CN113422611A (zh) * 2021-05-19 2021-09-21 上海大学 一种qc-ldpc编码器的高度并行编码方法
CN114298890A (zh) * 2021-12-02 2022-04-08 格兰菲智能科技有限公司 数据处理装置及其方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162907A (zh) * 2006-10-10 2008-04-16 华为技术有限公司 一种构造低密度奇偶校验码校验矩阵的方法及装置
CN101340193A (zh) * 2008-08-12 2009-01-07 普天信息技术研究院有限公司 一种低密度校验码的构造方法、编码器和译码器
CN101902227A (zh) * 2009-05-31 2010-12-01 中兴通讯股份有限公司 一种ldpc码的分层编码方法和装置
WO2015141903A1 (ko) * 2014-03-17 2015-09-24 엘지전자 주식회사 무선 통신 시스템에서의 순방향 에러 정정을 위한 저밀도 패리티 체크 코드의 디코딩 방법 및 장치
US20150333767A1 (en) * 2014-05-15 2015-11-19 Samsung Electronics Co., Ltd. Encoding apparatus and encoding method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162907A (zh) * 2006-10-10 2008-04-16 华为技术有限公司 一种构造低密度奇偶校验码校验矩阵的方法及装置
CN101340193A (zh) * 2008-08-12 2009-01-07 普天信息技术研究院有限公司 一种低密度校验码的构造方法、编码器和译码器
CN101902227A (zh) * 2009-05-31 2010-12-01 中兴通讯股份有限公司 一种ldpc码的分层编码方法和装置
WO2015141903A1 (ko) * 2014-03-17 2015-09-24 엘지전자 주식회사 무선 통신 시스템에서의 순방향 에러 정정을 위한 저밀도 패리티 체크 코드의 디코딩 방법 및 장치
US20150333767A1 (en) * 2014-05-15 2015-11-19 Samsung Electronics Co., Ltd. Encoding apparatus and encoding method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈全坤等: ""通用型高速LDPC码编码器设计与FPGA实现"", 《数字技术与应用》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112204889A (zh) * 2018-03-30 2021-01-08 高通股份有限公司 用于低密度奇偶校验(ldpc)码的分层解码的调度
CN112204889B (zh) * 2018-03-30 2024-03-22 高通股份有限公司 用于低密度奇偶校验(ldpc)码的分层解码的调度
CN111181691A (zh) * 2019-12-31 2020-05-19 上海微波技术研究所(中国电子科技集团公司第五十研究所) 毫米波系统高速Raptor编译码方法及系统
CN111181691B (zh) * 2019-12-31 2022-08-16 上海微波技术研究所(中国电子科技集团公司第五十研究所) 毫米波系统高速Raptor编译码方法及系统
CN113422611A (zh) * 2021-05-19 2021-09-21 上海大学 一种qc-ldpc编码器的高度并行编码方法
CN114298890A (zh) * 2021-12-02 2022-04-08 格兰菲智能科技有限公司 数据处理装置及其方法
CN114298890B (zh) * 2021-12-02 2024-01-30 格兰菲智能科技有限公司 数据处理装置及其方法

Similar Documents

Publication Publication Date Title
CN109379086A (zh) 低复杂度的码率兼容的5g ldpc编码方法和编码器
CN101820288B (zh) 低密度校验码的信息处理方法
CN106603082A (zh) 通用型高速ldpc码编码方法及编码器
CN102075198B (zh) 准循环低密度奇偶校验卷积码编译码系统及其编译码方法
US8078933B2 (en) Decoder for low-density parity-check convolutional codes
CN107786211B (zh) 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器
CN101388674B (zh) 一种译码的方法、译码器以及Turbo码译码器
CN108540139B (zh) 一种通用的准循环ldpc码编码器的fpga实现方法及装置
CN104639181A (zh) 基于格式结构方法的并行执行
US8661308B2 (en) Method and device for fast cyclic redundancy check coding
CN108462496B (zh) 一种基于随机比特流更新的ldpc译码器
Krainyk et al. Hardware-oriented turbo-product codes decoder architecture
CN107204782A (zh) 一种bch译码器及生成该译码器的编译器的实现方法
CN113222150A (zh) 一种量子态的变换方法及装置
KR100669152B1 (ko) 저밀도 패리티 검사 코드의 부호화 장치 및 방법
Xia et al. An implementation of list successive cancellation decoder with large list size for polar codes
CN113222153A (zh) 一种量子态的模拟方法、装置、存储介质和电子装置
Mousavi et al. Efficient partial-sum network architectures for list successive-cancellation decoding of polar codes
CN110519004A (zh) 一种编码方法及相关设备
US11290129B2 (en) Polar encoder, communication unit, integrated circuit and method therefor
CN110166060A (zh) 高吞吐流水线型极化码bp译码器及其实现方法
CN113381769B (zh) 一种基于fpga的译码器
CN104796158A (zh) 一种针对固定信息长度的ldpc编译码系统平台
CN114629507A (zh) 一种Turbo和LDPC码速率匹配和交织器共享存储设计方法
CN102571107A (zh) LTE系统中高速并行Turbo码的解码系统及方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170426