CN118138057A - 一种ccsds标准中ldpc译码器的码字存储方法 - Google Patents
一种ccsds标准中ldpc译码器的码字存储方法 Download PDFInfo
- Publication number
- CN118138057A CN118138057A CN202410106616.0A CN202410106616A CN118138057A CN 118138057 A CN118138057 A CN 118138057A CN 202410106616 A CN202410106616 A CN 202410106616A CN 118138057 A CN118138057 A CN 118138057A
- Authority
- CN
- China
- Prior art keywords
- information
- variable
- processing unit
- node processing
- check
- 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 24
- 238000012545 processing Methods 0.000 claims abstract description 41
- 239000011159 matrix material Substances 0.000 claims description 51
- 230000015654 memory Effects 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 10
- 230000001934 delay Effects 0.000 claims description 6
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 claims description 4
- 101150046378 RAM1 gene Proteins 0.000 claims description 4
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 2
- 125000004122 cyclic group Chemical group 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 1
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 description 1
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- 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
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种CCSDS标准中LDPC译码器的码字存储方法,涉及数字信息数据传输技术领域。LDPC译码器的结构包括多个级联的深度为32的存储单元RAM1~RAMx,变量节点处理单元VNU,校验节点处理单元CNU,多个存储单元RAM级联可以满足不同码率下不同维数子循环矩阵的存储;另外考虑到FPGA硬件资源有限,在迭代译码的过程中,由于变量节点与校验节点交替更新,本发明将中间结果信息交替写入RAM中,节省了一半的存储资源;变量节点处理单元VNU通过采用流水线架构来减少路径时延,本发明可以有效地降低硬件复杂度和提高吞吐量,同时能够实现码率可调。
Description
技术领域
本发明涉及数字信息数据传输技术领域,具体涉及一种CCSDS标准中LDPC译码器的码字存储方法。
背景技术
LDPC码是Gallager在1963年提出的,由于复杂度高,LDPC码在提出后的很长时间内没有得到进一步的研究,直到1996年由D.C.MacKay等人重新发现。随后,LDPC码得到了极大的关注,并在DVB-S2、WLAN(IEEE802.11)、CMMB、CCSDS等标准中得到应用,结合近地与深空的信道特点,CCSDS提出了一种多码率(1/2、2/3、4/5)的LDPC码,因其译码性能优异,被广泛应用。已有的LDPC译码算法中曾被广泛使用的是基于软判决的置信度传播迭代译码算法(Belief Propagation),它的特点是比较低的译码复杂度和和比较好的性能。在之后Fossorier提出了最小和译码算法(Min-sum Algorithm, MSA),可以达到简化BP算法的效果。J.Chen提出了改进算法:修正最小和算法(NormalizedMSA)以改善最小和算法因校验节点上的简化处理而造成的性能损失。
在应用中LDPC译码一般都选择最小和或者修正的最小和算法,其译码器的结构比较固定,即初始换单元、变量节点更新单元、校验节点更新单元以及存储单元。首先,译码是一个迭代的过程,如果对误码率要求较高,那么必定要提高迭代次数,设置合适的定点方案。如果迭代次数增加,每次迭代的时间就会减少,相应的并行度就要提高,所以要精细地设计好每个运算单元,以减少每次迭代所占用的时间和硬件资源。其次,校验矩阵虽然是稀疏矩阵但是要存储的信息都并非单比特数据,而且要保证存储的信息在变量节点更新单元和校验节点更新单元之间有效的流转,所以存储方案的设计也至关重要。因此,现有技术的主要缺点是需要设计人员花费大量精力完善运算单元和稀疏矩阵的存储方案。
发明内容
本发明的目的在于克服现有技术的不足,提供一种CCSDS标准中LDPC译码器的码字存储方法。
本发明的目的是通过以下技术方案来实现的:
一种CCSDS标准中LDPC译码器的码字存储方法,所述的LDPC译码器的结构包括多个级联的深度为32的存储单元RAM1~RAMx,变量节点处理单元VNU,校验节点处理单元CNU;方法步骤如下:
S1根据CCSDS标准下校验矩阵H的码率和子循环矩阵维数,确定所述存储单元的数量;
S2将校验矩阵的每个非零子循环矩阵的1线按列的顺序依次存入多个存储单元RAM1~RAMx中;
S3变量节点更新时,从存储单元RAM1的地址0开始读取变量信息,直到读完存储单元RAMx,将读取到的变量信息输入到变量节点处理单元VNU;变量节点处理单元VNU对输入的信息进行处理后得到更新后的变量信息;将更新后的变量信息按原变量信息读出的位置重新存储到对应的存储单元;
S4校验节点更新时,首先确定读取校验信息的起始存储单元m和对应地址a,读完当前存储单元后转入下一个存储单元的地址0开始读,直到读完所有的存储单元,将读取到的变量信息输入到校验节点处理单元CNU;校验节点处理单元CNU,对输入的信息进行处理后得到更新后的校验信息;将更新后的校验信息按原校验信息读出的位置重新存储到对应的存储单元。
进一步地,所述的步骤S1中存储单元的数量通过计算所述的子循环矩阵维数除以存储单元的深度的整数值结果得到。
进一步地,所述的变量节点处理单元VNU对输入的信息进行处理后得到更新后的变量信息的步骤为:
S21将更新前的多个变量信息与其对应的初始化信息读入到寄存器;
S22将多个变量信息进行逐级的并行累加,在进行每一级的累加操作的同时将初始化信息读入到寄存器;
S23将并行累加运算后的判决信息做硬判决得到判决结果;
S24通过用累加后得到的判决消息减去每路数据延时后的的自信息进行变量信息修正,得到更新后的变量信息。
进一步地,所述的变量节点处理单元VNU采用两级流水线操作,第一级流水线将输入的变量节点信息逐级两两求和,并将变量节点信息和初始化信息延迟;第二级流水线将累加后得到的判决消息减去每路数据延时后的的自信息,并将判决消息延迟。
进一步地,所述的确定读取校验信息的起始存储单元m和对应地址a包括:
查询所述CCSDS标准中非零子循环矩阵中首行“1”元素的位置列坐标n;
起始存储单元m为列坐标n除以存储单元的深度的向下取整结果;
地址a为列坐标n与存储单元的深度的取余结果。
本发明的有益效果是:
(1)采用多个存储单元RAM级联以满足CCSDS标准中不同码率下不同维数子循环矩阵的有效存储;
(2)由于FPGA硬件资源有限,在迭代译码的过程中,变量节点与校验节点交替更新,本发明将中间结果信息交替写入RAM中并共用同一译码结构和校验矩阵的存储方式,节省了一半的存储资源;
(3)变量节点处理单元VNU通过采用流水线架构来减少路径时延,本发明可以有效地降低硬件复杂度和提高吞吐量,同时能够实现码率可调。
附图说明
图1为CCSDS标准中码率为0.5的LDPC码校验矩阵非零元素的分布图;
图2为校验节点处理单元CNU读取校验信息示意图;
图3为校验节点处理单元CNU与存储单元信息交互示意图;
图4为变量节点处理单元VNU工作流程图;
图5为本发明变量节点处理单元VNU流水操作结构示意图。
具体实施方式
下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1-图5,本发明提供一种技术方案:
CCSDS标准中4种码率10种码字的LDPC码校验矩阵特征如表1所示,其中,子矩阵维数是指每一个子循环矩阵的行数或列数,超行数乘以子矩阵维数为整个校验矩阵的行数,超列数乘以子矩阵维数为整个校验矩阵的列数。由表1可知不同码率下,子循环矩阵的维数并不一致。
CCSDS标准下的LDPC码是一种特殊的LDPC码(QC-LDPC码)。QC-LDPC码的生成矩阵G和校验矩阵H都是由循环矩阵构成的阵列,具有分块循环的特点,故被称为准循环LDPC码。循环矩阵的首行是末行循环右移1位的结果,其余各行都是其上一行循环右移1位的结果,因此,循环矩阵完全由其首行来表征。循环矩阵的行重和列重相同,记作w。如果w=0,那么该循环矩阵是全零矩阵。如果 w=1,那么该循环矩阵是可置换的,称为置换矩阵,它可通过对单位矩阵I循环右移若干位得到。
实施例1:
一种CCSDS标准中LDPC译码器的码字存储方法,所述的LDPC译码器的结构包括多个级联的深度为32的存储单元RAM1~RAMx,变量节点处理单元VNU,校验节点处理单元CNU;多个存储单元RAM级联可以满足不同码率下不同维数子循环矩阵的存储。
存储方法步骤如下:
S1根据CCSDS标准下校验矩阵H的码率和子循环矩阵维数,确定所述存储单元的数量。
上述存储单元的数量通过计算所述的子循环矩阵维数除以存储单元的深度的整数值结果得到;由表1可知,在不同码率下所述的子循环矩阵的维数不同,但都刚好是32的整数倍。
为了适用于多码率,设计中构建最小的RAM存储单元深度为32,因此可以多个RAM级联来满足不同码率下不同大小子循环矩阵的存储。
如图1所示,本实施例针对码率为1/2、子循环矩阵维数为128、超行数为12、超列数为20的校验矩阵H,其中包括60个非零子循环矩阵,本实施例的LDPC译码器的结构包括4个级联的深度为32的存储单元RAM1~RAM4。
S2将校验矩阵的每个非零子循环矩阵的1线按列的顺序依次存入多个存储单元RAM1~RAMx中。
本实施例所涉及的CCSDS标准下的LDPC码,行列重≤N(N=0,1)。子循环矩阵是一个只具有数字0与1的矩阵,且矩阵具有稀疏特性,矩阵中的大部分元素为0。当子循环矩阵的行列重为0时,即该子矩阵元素全为0。为了节省存储空间,在进行存储时,只存储非零的循环子矩阵,所以需要存储的非零循环矩阵的行列重为1,行列重为1的子循环矩阵是一个置换矩阵,具有循环特性,因此我们只需记录每个子矩阵的首先元素为1的位置信息即可。在信道译码领域内,将循环子矩阵中为1的元素,称为“1线”。
CCSDS标准中不同码长、速率下给出的的H矩阵均是标准的且唯一的,根据对应的块大小划分原则,每一个非0 子循环矩阵的首行为1的位置就确定下来了。并且在CCSDS标准标准中给出了不同码长的每个循环子矩阵首行“1”元素的位置信息,按列或行存储时,通过记录子循环矩阵的首“1”的位置即可实现对应非零子循环矩阵的存储。
S3变量节点更新时,从存储单元RAM1的地址0开始读取变量信息,直到读完存储单元RAMx,将读取到的变量信息输入到变量节点处理单元VNU;变量节点处理单元VNU对输入的信息进行处理后得到更新后的变量信息;将更新后的变量信息按原变量信息读出的位置重新存储到对应的存储单元。
变量节点处理单元VNU对输入的信息进行处理后得到更新后的变量信息的步骤为:
S31将更新前的多个变量信息与其对应的初始化信息读入到寄存器;
S32将多个变量信息进行逐级的并行累加,在进行每一级的累加操作的同时将初始化信息读入到寄存器;
S33将并行累加运算后的判决信息做硬判决得到判决结果;
S34通过用累加后得到的判决消息减去每路数据延时后的的自信息进行变量信息修正,得到更新后的变量信息。
上述变量节点处理单元VNU更新变量信息的工作流程如图4所示。
进一步地,所述的变量节点处理单元VNU采用两级流水线操作,第一级流水线将输入的变量节点信息逐级两两求和,并将变量节点信息和初始化信息延迟;第二级流水线将累加后得到的判决消息减去每路数据延时后的的自信息,并将判决消息延迟。
在一些实施例中,由于已知列重最大为6,因此针对6个变量节点(Lc0~Lc5)设计的变量节点处理单元VNU两级流水线架构如图5所示,目的是为了较少路径时延,因为变量节点处理单元VNU的数据来自于中间信息存储器,由于译码器耗用了较多的存储器,各个存储器的相对位置可能会比较远,寄存一次减少了路径时延,这样可以保证每次加法操作时延主要来自于逻辑时延。对列重小于6的变量节点处理单元VNU,输入数据补零即可。
其中,累加采用两级流水线操作,每级最多3个数相加,目的为减少组合延时。延时功能主要是为了实现不同列重情况下的,在同一时刻输出计算结果。判决功能完成变量节点的硬判决,决定当前迭代后本变量节点是1还是0。
S4校验节点更新时,首先确定读取校验信息的起始存储单元m和对应地址a,读完当前存储单元后转入下一个存储单元的地址0开始读,直到读完所有的存储单元,将读取到的变量信息输入到校验节点处理单元CNU;校验节点处理单元CNU,对输入的信息进行处理后得到更新后的校验信息;将更新后的校验信息按原校验信息读出的位置重新存储到对应的存储单元。
进一步地,所述的确定读取校验信息的起始存储单元m和对应地址a包括:
查询所述CCSDS标准中非零子循环矩阵中首行“1”元素的位置列坐标n;
起始存储单元m为列坐标n除以存储单元的深度的向下取整结果;
地址a为列坐标n与存储单元的深度的取余结果。
上述步骤S3和S4在每一次变量信息和校验信息的迭代更新中,每个存储单元RAM的读地址与写地址一致,方便了并行处理的控制操作。
校验节点处理单元CNU读取校验信息示意图如图2所示,校验节点处理单元CNU与四个存储单元RAM1~RAM4进行信息交互的示意图如图3所示,先从存储单元RAM2的地址a处读取校验数据,然后依次读取RAM3、RAM4、RAM1,再到RAM2的地址a-1处,即可完整读取到一个子循环矩阵的校验信息。
考虑到FPGA硬件资源有限,在迭代译码的过程中,由于变量节点与校验节点交替更新,本发明将中间结果信息交替写入RAM中,节省了一半的存储资源,本发明提出一种CCSDS标准中LDPC译码器的码字存储方法,可以有效地降低硬件复杂度和提高吞吐量,同时能够实现码率和迭代次数可调。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (5)
1.一种CCSDS标准中LDPC译码器的码字存储方法,其特征在于:所述的LDPC译码器的结构包括多个级联的深度为32的存储单元RAM1~RAMx,变量节点处理单元VNU,校验节点处理单元CNU;方法步骤如下:
S1根据CCSDS标准下校验矩阵H的码率和子循环矩阵维数,确定所述存储单元的数量;
S2将校验矩阵的每个非零子循环矩阵的1线按列的顺序依次存入多个存储单元RAM1~RAMx中;
S3变量节点更新时,从存储单元RAM1的地址0开始读取变量信息,直到读完存储单元RAMx,将读取到的变量信息输入到变量节点处理单元VNU;变量节点处理单元VNU对输入的信息进行处理后得到更新后的变量信息;将更新后的变量信息按原变量信息读出的位置重新存储到对应的存储单元;
S4校验节点更新时,首先确定读取校验信息的起始存储单元m和对应地址a,读完当前存储单元后转入下一个存储单元的地址0开始读,直到读完所有的存储单元,将读取到的变量信息输入到校验节点处理单元CNU;校验节点处理单元CNU,对输入的信息进行处理后得到更新后的校验信息;将更新后的校验信息按原校验信息读出的位置重新存储到对应的存储单元。
2.根据权利要求1所述的一种CCSDS标准中LDPC译码器的码字存储方法,其特征在于:所述的步骤S1中存储单元的数量通过计算所述的子循环矩阵维数除以存储单元的深度的整数值结果得到。
3.根据权利要求1所述的一种CCSDS标准中LDPC译码器的码字存储方法,其特征在于:所述的变量节点处理单元VNU对输入的信息进行处理后得到更新后的变量信息的步骤为:
S21将更新前的多个变量信息与其对应的初始化信息读入到寄存器;
S22将多个变量信息进行逐级的并行累加,在进行每一级的累加操作的同时将初始化信息读入到寄存器;
S23将并行累加运算后的判决信息做硬判决得到判决结果;
S24通过用累加后得到的判决消息减去每路数据延时后的的自信息进行变量信息修正,得到更新后的变量信息。
4.根据权利要求3所述的一种CCSDS标准中LDPC译码器的码字存储方法,其特征在于:所述的变量节点处理单元VNU采用两级流水线操作,第一级流水线将输入的变量节点信息逐级两两求和,并将变量节点信息和初始化信息延迟;第二级流水线将累加后得到的判决消息减去每路数据延时后的的自信息,并将判决消息延迟。
5.根据权利要求1所述的一种CCSDS标准中LDPC译码器的码字存储方法,其特征在于:所述的确定读取校验信息的起始存储单元m和对应地址a包括:
查询所述CCSDS标准中非零子循环矩阵中首行“1”元素的位置列坐标n;
起始存储单元m为列坐标n除以存储单元的深度的向下取整结果;
地址a为列坐标n与存储单元的深度的取余结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410106616.0A CN118138057A (zh) | 2024-01-25 | 2024-01-25 | 一种ccsds标准中ldpc译码器的码字存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410106616.0A CN118138057A (zh) | 2024-01-25 | 2024-01-25 | 一种ccsds标准中ldpc译码器的码字存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118138057A true CN118138057A (zh) | 2024-06-04 |
Family
ID=91244922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410106616.0A Pending CN118138057A (zh) | 2024-01-25 | 2024-01-25 | 一种ccsds标准中ldpc译码器的码字存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118138057A (zh) |
-
2024
- 2024-01-25 CN CN202410106616.0A patent/CN118138057A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11323134B2 (en) | Encoding method and device and decoding method and device for structured LDPC | |
KR101789959B1 (ko) | 구조적 ldpc의 인코딩 방법, 디코딩 방법, 인코딩 장치 및 디코딩 장치 | |
US9544090B2 (en) | Hard input low density parity check decoder | |
Wang et al. | Low-complexity high-speed decoder design for quasi-cyclic LDPC codes | |
US8392795B2 (en) | Low density parity check codec and method of the same | |
US8869003B2 (en) | Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix | |
US9473175B1 (en) | Forward error correction decoder system | |
US20140149820A1 (en) | Efficient ldpc codes | |
US11258460B2 (en) | Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes built from clusters of circulant permutation matrices | |
Liao et al. | A (21150, 19050) GC-LDPC decoder for NAND flash applications | |
JP2009152655A (ja) | 復号装置、復号方法、受信装置、および記憶媒体再生装置 | |
Shimizu et al. | Partially-parallel LDPC decoder based on high-efficiency message-passing algorithm | |
Esfahanizadeh et al. | Spatially-coupled codes for channels with SNR variation | |
Wang et al. | Low complexity, high speed decoder architecture for quasi-cyclic LDPC codes | |
US10727869B1 (en) | Efficient method for packing low-density parity-check (LDPC) decode operations | |
Boncalo et al. | Cost-efficient FPGA layered LDPC decoder with serial AP-LLR processing | |
CN118138057A (zh) | 一种ccsds标准中ldpc译码器的码字存储方法 | |
US11075650B1 (en) | Sub-matrix reduction for quasi-cyclic LDPC codes | |
Jun et al. | An improved min-sum based column-layered decoding algorithm for LDPC codes | |
US11411583B2 (en) | Deinterleaving method and deinterleaving system performing the same | |
Sułek et al. | QC-LDPC codes with fast encoding for error control in NAND flash memories | |
Ghaffari et al. | An Enhanced Check-Node Architecture for 5G New Radio LDPC Decoders | |
KR100678521B1 (ko) | 비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법 | |
KR20230029168A (ko) | 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템 | |
Nagashima et al. | Dynamically reconfigurable architecture for multi-rate compatible regular LDPC decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |