CN106603082A - 通用型高速ldpc码编码方法及编码器 - Google Patents
通用型高速ldpc码编码方法及编码器 Download PDFInfo
- 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
Links
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
-
- 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized 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码是一种线性分组码,由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为编码获得的校验序列,则上式可以写成:
可以得到:
pT=BsTA-1 (5)
编码过程其实质就是求校验序列p的过程,通过对校验矩阵H进行高斯消元,可以将上述矩阵A转化为单位矩阵,消元后的矩阵H'可以表示为:
H'=[I|B']; (6)
经过预处理之后获得的矩阵B'即是编码需要的矩阵,其具有稀疏特性,存储资源需求校少,且利于分块并行编码;
步骤二、利用预处理后的校验矩阵进行编码:
在高斯消元中,仅仅对校验矩阵进行了初等变换,不影响矩阵H'与码字c的正交性,即码空间不变,因此,式(5)可以化为:
pT=B'sTI-1 (7)
根据式(7),即可得到求解第i个校验位pi的方程:
其中,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比特数据。
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)
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)
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 |
-
2016
- 2016-12-12 CN CN201611136149.8A patent/CN106603082A/zh active Pending
Patent Citations (5)
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)
Title |
---|
陈全坤等: ""通用型高速LDPC码编码器设计与FPGA实现"", 《数字技术与应用》 * |
Cited By (7)
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 |