CN101136638A - 一种多码率非规则ldpc码解码器 - Google Patents
一种多码率非规则ldpc码解码器 Download PDFInfo
- Publication number
- CN101136638A CN101136638A CNA2007100447157A CN200710044715A CN101136638A CN 101136638 A CN101136638 A CN 101136638A CN A2007100447157 A CNA2007100447157 A CN A2007100447157A CN 200710044715 A CN200710044715 A CN 200710044715A CN 101136638 A CN101136638 A CN 101136638A
- Authority
- CN
- China
- Prior art keywords
- hpu
- code
- vpu
- code rate
- irregular ldpc
- 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
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明属于高速无线数字通信、光纤通信和磁光学存储技术领域,具体涉及一种多码率非规则LDPC码的解码器,可直接应用于前向纠错信道编码的解码中。该解码器主要包括输入输出缓存、中间数据存储器、运算逻辑、控制逻辑等部分;通过对信道信息或者其它前级模块输出信息(如解映射输出信息)进行软判决译码,获得解码比特流输出。这种设计方法适用于多种码率和可变权重(校验矩阵行重或者列重)信道编码的解码。本发明设计的解码器具有的优异的信道解码性能,相应的专用芯片已通过测试。
Description
技术领域
本发明属于高速无线数字通信、光纤通信和磁光学存储技术领域,具体涉及一种多码率非规则LDPC码的解码器,可直接应用于前向纠错信道编码的解码中。
背景技术
随着现代通信系统向着高数据速率、大容量、高可靠性的方向发展,前向纠错编码得到了广泛应用。在各种前向纠错编码方案中,LDPC码(Low Density Parity Check Codes低密度奇偶校验码)是一种编码性能最接近香农极限的编码技术,符合现代通信系统苛刻的性能要求。在扩展无线通信系统的极限和服务范围、提高远距离视频广播系统的吞吐率和磁光刻录/存储系统的容量等方面,LDPC码表现出优异的性能和应用前景。相对于规则LDPC码,非规则LDPC码具有更加优异的性能。为了灵活地进行无差错解码,就需要提高LDPC码解码器的灵活性,实现多种码率下的实时解码。
LDPC码的性能和码长有关,码长越大,编码性能越好;同时,非规则LDPC码的性能要优于规则LDPC码,因而在要求高性能的应用中,非规则、长LDPC码是更适合的选择,而且为了使整个系统更加灵活,码率必须可变。但是,理论上,融合多种码率的LDPC解码器的存储器容量将成倍增加,从而致使芯片面积成倍增加,布线难度加剧,也将导致芯片功耗大大增加。于是,长码、多码率和非规则性等因素给LDPC解码器的VLSI(超大规模集成电路)硬件实现带来了挑战,造成了芯片内部互连和存储器实现的困难。
发明内容
本发明的目的在于提供一种可变码率非规则LDPC码的解码器,以实现LDPC码实时、灵活地解码,并且能以单码率的硬件资源使用量实现多种码率的解码。
本发明提出的多码率非规则LDPC码解码器,由输入缓存、运算逻辑(包括横向处理单元HPU和纵向处理单元VPU)、中间数据存储器、输出缓存、控制逻辑和互连网络组成,系统整体架构以多种码率融合、可变权重、数据吞吐率、芯片低功耗和芯片成本控制(芯片面积)为设计目标。为了保证数据吞吐量(解码速度),本发明的解码器采用部分并行的VLSI系统整体架构,如图1所示。共使用12组横向处理单元HPU、59个纵向处理单元VPU、1个输入缓存、1个输出缓存和2组中间数据存储器。每个HPU由3个子横向处理单元(sub_HPU)组成,图1示出了总数为r=36的sub_HPU;在图1中,H1、H2、Hr分别表示第1、2、r个横向处理模块,每个横向处理模块包含1个sub_HPU、1个控制单元、行重个存储单元;在图1中,V1、V2、Vi、Vc分别表示第1、2、i、c(值为59)个纵向处理模块,每个纵向处理模块包含1个VPU、1个控制单元、列重个存储单元。
横向处理单元。横向处理单元HPU结构是一种适合硬件复用的方案,HPU以连接8块RAM的sub_HPU为一个单元。多种码率系统使用同一个HPU,如图8所示,IN-1、IN-2、…、IN-32表示32个输入端,OUT-1、OUT-2、…、OUT-32表示32个输出端。一个32输入的HPU可以实现码率为0.4时的3行译码,或者可以实现码率为0.6时的2行译码,或者可以实现码率为0.8的一行译码。对于0.4码率的解码器单级sub_HPU单时钟周期即可完成一次HPU运算。对于0.8和0.6码率的应用,在sub_HPU的基础上增加一级流水线,花费2个时钟周期来完成一次HPU的操作。
纵向处理单元。纵向处理单元VPU实现加法运算,VPU结构是一种适合硬件复用的方案,多种码率系统使用同一种VPU。59个VPU的输入端口与码率对应的关系见表1。其中,用竖线将输入端口数作了分类,需要的VPU端口类型有3端、4端、7端、11端和16端,共5种。不同码率情况下,没有用到的端口都置0。比如第1个VPU,输入端口取三种码率的最大值4,当码率为0.6、0.8时,只需要三个端口,所以第4个端口置0,不影响VPU的输出结果。
输入缓存和输出缓存。输入缓存和输出缓存如图6所示,模块6a表示解码器核心模块;6b表示输入缓存,共59块;6c表示输出缓存,共48块。输入缓冲存储器存储一帧信道数据,然后进行译码初始化,输出缓冲存储器存储一帧判决结果数据,然后按时钟节拍输出。
中间数据存储器。中间数据存储器共两组,一组用于存储HPU结果,一组用于存储VPU结果,分别配置给HPU和VPU。不同码率、不同权重数据的存储与读取使用同一组存储器。根据校验矩阵的特点,存储器采用计数寻址。
解码运算以输入缓存模块被解映射单元写满为开始;以解码成功,或解码迭代次数超过预设值,解码失败为结束。在实现时,采用双口RAM,每块RAM由一个控制器控制实现不同码率的地址初始化、读RAM、写RAM。互连网络(interconnection network)由开关组成,依据不同的码率来实现不同的连接。HPU模块只输出所有输入的最小绝对值、次小绝对值以及符号,HPU其余的计算放在每块RAM的控制单元里完成,以大大减少全局连线,从而降低布线难度。对RAM输出到HPU的数据进行锁存后,根据HPU输入的最小和次小绝对值和符号做校正,求出不包括本身的最小绝对值和符号,然后乘以校正因子α,送入到RAM相应地址单元。VPU的时序与加入一级流水HPU一致,写地址比读地址延时三个周期。数据通过双口RAM(中间数据存储器)传导,HPU存储器的最高位(第9位)存储判决结果,当作为VPU的操作数时,舍弃该位即可。解码输出时,只输出判决结果的信息位,将校验位舍弃。
有益效果
使用该方案实现LDPC解码器的优点在于,在无额外硬件开销的情况下,实现了多种码率非规则LDPC码的解码,并且可以直接移植到规则码的解码中,因此,方案实用性和灵活性强,可以应用于多种标准对LDPC码解码的不同要求,如DTMB,DVB-S2等标准,并且可以融合多种码率。因而,可以大大加快数字通信系统的系统设计和提高系统性能。
附图说明
图1部分并行的LDPC解码器架构。
图2 VPU基本单元。
图3 HPU基本单元。
图4 解码器状态控制。
图5 LDPC输入输出缓冲器结构。
图6 VPU和HPU数据传导机制。
图7 HPU硬件结构。
具体实施方式
该方案用于DTMB“高清数字电视接收芯片”的设计中,通过了流片,在解码性能、芯片面积、数据吞吐率和多码率融合等方面都取得了良好的效果。下面给出具体实施方法:
非规则LDPC码的特点是:校验矩阵中每一行的行重(每一行中1的个数)不相等,每一列的列重(每一列中1的个数)也不相等;同时,码率可变则是体现在校验矩阵的行数不同,对应于解码器内运算单元操作数的彼此不同。这需要硬件实现的可配置性和复用,以减少硬件资源使用量,同时减少了互连线和算法内在要求的中间数据存储空间。为了保证数据吞吐量,使用部分并行的数据通路架构,在硬件实现代价(芯片面积)和实时处理能力上达到了有效保证。图1给出了LDPC解码器的VLSI结构,该结构满足解码性能、存储器复用、吞吐率和芯片面积的要求。
HPU模块只输出所有输入的最小绝对值、次小绝对值以及符号,HPU其余的计算放在每块RAM的控制单元里完成,以大大减少全局连线,从而降低布线难度。对RAM输出到HPU的数据进行锁存后,根据HPU输入的最小和次小绝对值和符号做校正,求出不包括本身的最小绝对值和符号,然后乘以校正因子α,送入到RAM相应地址单元。图7给出了HPU的硬件结构。一个HPU模块在不同码率下最多可实现3行的解码,具体如下:三种码率校验方程H的行重大概成8、16、32分布。在本文提出的方法中,当码率为0.4时,把三行的HPU合成一块,做一个32输入的HPU,每次迭代只用到3组八输入端口;当码率为0.6时,把两行的HPU合成一块,也是一个32输入的HPU,每次迭代用2组16输入端口;当码率为0.8时,一行就对应一个HPU,最多用到HPU的27个输入端。这样,不论哪种码率,一个32输入端口的HPU最多用到了27个端口,所以每块HPU只需对应27块RAM,而这种情况是在0.8码率下出现。当码率为0.4时,最多只用到24个输入端口,所以只用到了27块RAM中的24块,三块完全没有利用;当码率为0.6时,最多只用到26个输入端口,所以只用到了27块RAM中的26块,一块完全没有利用。0.4码率不用四组8输入端口,因为RAM的利用率比三组更低。在进一步减少全局互连上,使用了优化的数据存储局部化方法。
HPU以连接8块RAM的sub_HPU为一个单元。对于0.4码率的解码器单级sub_HPU单时钟周期即可完成一次HPU运算。对于0.8和0.6码率的应用,在sub_HPU的基础上增加一级流水线,花费2个时钟周期来完成一次HPU的操作。由于HPU结构是高度流水的,因此完成一次水平过程只比0.4码率增加一个时钟周期的延时。整个单元对于0.4码率花费129个时钟周期完成运算,对于0.6和0.8码率花费130个时钟周期完成运算。执行运算共花费127个周期,由于运算结果需经寄存器锁存之后再重新写入RAM,写地址相对于读地址有两个周期的延时,因此共花费128个周期。这一过程见图3所示的sub_HPU与控制单元、存储单元和互连网络结构图。
三种码率下,VPU的个数都是59个。VPU实现加法。不同码率下,每个VPU的输入端口各不相同。输入端口个数的分布如表1所示。不同码率情况下,没有用到的端口都置0。比如第一个VPU,输入端口取三种码率的最大值4,当码率为0.6、0.8时,只需要三个端口,所以第4个端口置0,不影响VPU的输出结果。VPU的时序与加入一级流水HPU一致,写地址比读地址延时三个周期。这一过程见图2所示的VPU与控制单元、存储单元和互连网络结构图。在进一步减少全局互连上,使用了优化的数据存储局部化方法。
采用双口RAM,每块RAM由一个控制器控制实现不同码率的地址初始化、读RAM、写RAM。互连网络(interconnection network)由开关组成,依据不同的码率来实现不同的连接。
整个解码运算以输入缓存模块被解映射单元写满为开始;以解码成功,或解码迭代次数超过预设值,解码失败为结束。控制状态机如下图4所示。系统初始处于空闲状态;等待输入缓存写满后进入加载状态;在将初始比特信息写入各个RAM之后(花费128个周期)进入HPU和硬判决操作;在129或130个时钟周期之后(对0.4码率,花费129个周期,对其他码率花费130个周期)进入VPU;在经历130个周期后返回HPU和硬判决状态;如此往复迭代直至解码成功或超时出错。
为了提高速度,充分利用每帧的有效时钟周期,输入到LDPC的初始化数据先存入59个缓冲器,然后用127个时钟周期进行并行初始化。这样做的目的是,将LDPC初始化时间减少至127个时钟周期,节省时间用以LDPC迭代译码。而写59个缓冲器是独立控制的,只要初始化操作完成缓冲器被清空,就可以由解映射模块写入下一帧LDPC数据。同理,输出也是并行输出,但只输出信息比特丢弃校验比特,以节省输出缓存占用的面积。输入输出结构如图5所示。
每次迭代的硬判决结果实际上只需要lbit存放,所有存放信息的双口RAM扩展一位,存放硬判决结果。这样减少了RAM的个数,有利于面积的优化。硬判是在横向操作里做的,所以当迭代处于VPU状态时,送入到VPU的信息舍去了最高位,这种VPU和HPU数据传导机制如图6所示。
表1:59个VPU的输入端口数分配表
0.4码率4 | 3 3 3 3 3 3 3 3 3 3 3 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 | 3 3 3 3 3 | 4 4 4 4 4 4 4 4 4 4 4 4 4 | 4 4 4 4 | 111111111 | 111111111 |
0.6码率3 | 3 3 3 3 3 3 3 3 3 3 3 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 | 4 4 4 4 4 | 4 4 4 4 4 4 4 4 4 4 4 4 4 | 7 7 7 7 | 7 7 7 7 7 | 16161616 |
0.8码率3 | 3 3 3 3 3 3 3 3 3 3 3 | 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 | 4 4 4 4 4 | 4 4 4 4 4 4 4 4 4 4 4 4 4 | 4 4 4 4 | 111111111 | 111111111 |
VPU端口4 | 3 3 3 3 3 3 3 3 3 3 3 | 4 4 4 4 4 4 4 4 4 4 4 4 4 4 | 4 4 4 4 4 | 4 4 4 4 4 4 4 4 4 4 4 4 4 | 7 7 7 7 | 111111111 | 161616161 |
Claims (8)
1.一种多码率非规则LDPC码解码器,其特征在于由输入缓存、运算逻辑、中间存储器、输出缓存、控制逻辑和互连网络组成,采用部分并行的VLSI系统整体架构,其中,运算逻辑包括横向处理单元和纵向处理单元,分别记为HPU和VPU;系统采用12组HPU、59个VPU、1个输入缓存、1个输出缓存和2组中间数据存储器;每个HPU由3个子横向处理单元组成,子横向处理单元记为sub_HPU;共分为12个横向处理模块和59个纵向处理模块,每个横向处理模块包含1个sub_HPU、1个控制单元、行重个存储单元;每个纵向处理模块包含1个VPU、1个控制单元、列重个存储单元。
2.根据权利要求1所述的多码率非规则LDPC码解码器,其特征在于所述的横向处理单元采用适合硬件复用的方案,它以连接8块RAM的sub_HPU为一个单元,多种码率系统使用同一个HPU。
3.根据权利要求1所述的多码率非规则LDPC码解码器,其特征在于所述的纵向处理单元实现加法运算,其结构采用适合硬件复用的方案,多种码率系统使用同一种VPU。
4.根据权利要求1所述的多码率非规则LDPC码解码器,其特征在于所述的输入缓存共有59块,输出缓存共有48块;输入缓冲存储器存储一帧信道数据,然后进行译码初始化,输出缓冲存储器存储一帧判决结果数据,然后按时钟节拍输出。
5.根据权利要求1所述的多码率非规则LDPC码解码器,其特征在于所述的中间数据存储器共有两组,一组用于存储HPU结果,一组用于存储VPU结果,分别配置给HPU和VPU;不同码率、不同权重数据的存储与读取使用同一组存储器。
6.根据权利要求2所述的多码率非规则LDPC码解码器,其特征在于所述多码率系统使用同一个HPU,对于具有32个输出端和32个的输出端的系统,一个32输入的HPU实现码率为0.4时的3行译码,或者实现码率为0.6时的2行译码,或者实现码率为0.8的一行译码。
7.根据权利要求3所述的多码率非规则LDPC码解码器,其特征在于所述多码率系统使用同一个VPU,其59个的VPU的输入端口与码率对应的关系如下所示:
8.根据权利要求1所述的多码率非规则LDPC码解码器,其特征在于所述的互连网络由开关组成,依据不同的码率实现不同的连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100447157A CN101136638A (zh) | 2007-08-09 | 2007-08-09 | 一种多码率非规则ldpc码解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100447157A CN101136638A (zh) | 2007-08-09 | 2007-08-09 | 一种多码率非规则ldpc码解码器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101136638A true CN101136638A (zh) | 2008-03-05 |
Family
ID=39160516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100447157A Pending CN101136638A (zh) | 2007-08-09 | 2007-08-09 | 一种多码率非规则ldpc码解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101136638A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771421A (zh) * | 2010-03-11 | 2010-07-07 | 复旦大学 | 基于tdmp的超高速低功耗qc-ldpc码解码器 |
CN101355406B (zh) * | 2008-09-18 | 2011-08-31 | 上海交通大学 | 分层的非规则低密度校验码译码器及译码处理方法 |
CN101854178B (zh) * | 2009-04-01 | 2013-01-30 | 中国科学院微电子研究所 | 一种低功耗的ldpc译码器 |
CN104837078A (zh) * | 2015-03-31 | 2015-08-12 | 北京交通大学 | 基于非匹配度量的光通信信道解映射方法和装置 |
US10574264B2 (en) | 2014-03-11 | 2020-02-25 | Zte Corporation | Method and apparatus for supporting low bit rate coding, and computer storage medium |
-
2007
- 2007-08-09 CN CNA2007100447157A patent/CN101136638A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101355406B (zh) * | 2008-09-18 | 2011-08-31 | 上海交通大学 | 分层的非规则低密度校验码译码器及译码处理方法 |
CN101854178B (zh) * | 2009-04-01 | 2013-01-30 | 中国科学院微电子研究所 | 一种低功耗的ldpc译码器 |
CN101771421A (zh) * | 2010-03-11 | 2010-07-07 | 复旦大学 | 基于tdmp的超高速低功耗qc-ldpc码解码器 |
CN101771421B (zh) * | 2010-03-11 | 2012-10-17 | 复旦大学 | 基于tdmp的超高速低功耗qc-ldpc码解码器 |
US10574264B2 (en) | 2014-03-11 | 2020-02-25 | Zte Corporation | Method and apparatus for supporting low bit rate coding, and computer storage medium |
CN104837078A (zh) * | 2015-03-31 | 2015-08-12 | 北京交通大学 | 基于非匹配度量的光通信信道解映射方法和装置 |
CN104837078B (zh) * | 2015-03-31 | 2019-04-30 | 北京交通大学 | 基于非匹配度量的光通信信道解映射方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101777921B (zh) | 用于显式存储片上系统的结构化ldpc码译码方法及装置 | |
CN101252694B (zh) | 基于块的视频解码的帧存储压缩和地址映射系统 | |
CN101527849B (zh) | 集成视频解码器的存储系统 | |
CN101136638A (zh) | 一种多码率非规则ldpc码解码器 | |
CN102075198B (zh) | 准循环低密度奇偶校验卷积码编译码系统及其编译码方法 | |
CN101800619B (zh) | 一种基于块交织的交织或解交织方法及其装置 | |
CN100566183C (zh) | 分层准循环扩展构造的ldpc码的编码器 | |
CN101667887A (zh) | 编码方法及其装置、解码方法及其装置 | |
CN102208005A (zh) | 一种2-d卷积器 | |
CN101604975A (zh) | 一种低功耗多模qc-ldpc码解码器及其工作方法 | |
CN100555879C (zh) | 一种ldpc码的编码器装置及编码方法 | |
CN101489135B (zh) | 一种方便ldpc长码在fpga实现的编码器及编码方法 | |
CN104092615A (zh) | 具有网络编码功能的片上网络及其网络拓扑和路由算法 | |
CN105975251A (zh) | 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 | |
CN102857756A (zh) | 适于hevc标准的变换编码器 | |
CN103369326A (zh) | 适于高性能视频编码标准hevc的变换编码器 | |
CN102075197A (zh) | 一种ldpc译码方法 | |
CN110555512B (zh) | 一种二值卷积神经网络数据重用方法及装置 | |
CN101938330A (zh) | 一种多码率Turbo码译码器及其存储资源优化方法 | |
CN102340317A (zh) | 结构化ldpc码的高吞吐率译码器结构及方法 | |
CN101707510A (zh) | 一种高速Turbo译码方法和装置 | |
CN101640791A (zh) | 一种解码方法、装置和解码器 | |
CN111030780A (zh) | 一种可配置并行比特分组交织器及交织方法 | |
CN1118033C (zh) | 3780点离散傅里叶变换处理器系统 | |
CN1166134C (zh) | 用于atm交换结构中的流水线式共享存储器读写方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080305 |