CN103501210B - 一种高性能多标准fec译码器 - Google Patents
一种高性能多标准fec译码器 Download PDFInfo
- Publication number
- CN103501210B CN103501210B CN201310461688.9A CN201310461688A CN103501210B CN 103501210 B CN103501210 B CN 103501210B CN 201310461688 A CN201310461688 A CN 201310461688A CN 103501210 B CN103501210 B CN 103501210B
- Authority
- CN
- China
- Prior art keywords
- information
- code
- turbo
- ldpc
- decoder
- 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
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明属于无线数字通信和广播技术领域,具体涉及一种高性能多标准FEC译码器。该译码器灵活可配置,能够同时兼容LDPC码和Turbo码多标准多模式。该译码器在满足当前通信系统高吞吐率、低功耗目的的同时还可以让设计的结构可配置性很高,能够很容易的应用到不同的通信标准中。该译码器能够支持WiMAX、无线城域网WLAN宽带接入技术以及4G移动通信的LTE标准。其中在WiMAX和WLAN中译码器工作的LDPC译码模式,而在LTE通信中译码器工作在Turbo译码模式。设计的纠错码能够对WiMAX中所有的114种模式、WLAN中所有的12种模式以及LTE中所有的188 种模式进行译码。
Description
技术领域
本发明属于无线数字通信和广播技术领域,具体涉及一种高性能多标准FEC译码器。
背景技术
自20世纪90年代以来,人类社会进入一个数字化、信息化快速发展的阶段。由于社会环境的各不相同,信息科学技术的迅速发展,使得社会各领域中不断涌现各种数字通信技术,而人们对高速可靠的通信系统追求也日益增长。这些通信标准按应用领域划分,有应用于移动通信的3GPP-LTE、GSM、TD-SCDMA等;有应用于宽带无线通信的IEEE 802.11n、IEEE802.16e等;也有应用于数字多媒体领域的DVB-S2、DTMB等。通信标准的种类如此繁多,而人们却又逐渐的追求能够随时、随地的接收来自不同通信标准的信号,那就要求一个用户终端能够灵活的支持各种通信标准。
鉴于LDPC码和Turbo码相比于其他纠错码具有编码增益高,性能好,译码吞吐率高等各种优点,现阶段的通信标准中几乎采用的都是这两种纠错码。LDPC和Turbo码相比,具有译码电路简单,并行度高等优点,它适用于高吞吐率,尤其是100Gbps等光通信系统中;而Turbo码具有编码电路简单,码长、码率灵活可调等优点,尤其是在近年发展出QPP、ARP等交织器结构后,Turbo码也变得易于并行实现,因此实际的通信标准往往根据需要选择这两种通信纠错码之一。一般移动通信的GSM,3G,以及4G等通信系统中采用的均是Turbo编解码,而无线接入的WiMAX、WLAN以及数字电视DVB-S2,DTMB等通信标准采用的是LDPC编解码。
通信系统虽然标准众多,但它们采用的纠错码却几乎都是LDPC码或者Turbo码。考虑到用户越来越希望能够在一个终端上支持多种通信标准。例如用户希望一个手机终端既能够接收4G通信LTE的标准,又能够接收无线通信的WiMAX、WLAN信号,传统的方法是直接采用多块不同的芯片分别支持不同的标准,这就造成面积的极大浪费,这就要求设计一款能够在一个架构下支持多种标准的结构。而就信道编解码的层面而言,就希望设计一种能够在一个架构下同时支持LDPC和Turbo码的译码器。
虽然各通信标准中纠错码的码长、码率等不尽相同,但实质上在纠错码译码的硬件结构上具有类似的结构,在硬件实现中它们采用的均是Log-MAP算法,或归一化的Log-MAP算法。而且无论是LDPC码还是Turbo码的译码器中,主要的模块均是存储器以及逻辑加减、比较单元,这就为设计一个同时支持LDPC和Turbo码的ASIC架构提供了可能性。因此设计一个灵活性高,模式可配置的多模FEC解码器成为了一个必然趋势。同时随着通信标准的发展,对硬件的功耗和吞吐率也提出了严格的要求,这就希望设计的结构在满足灵活性的同时要达到更低的功耗、更高的吞吐率。
支持单一类型纠错码的结构近些年已经发展的较为成熟,但目前国内外对于这种兼容两种纠错码的结构的研究还非常少,这种兼容多种纠错码的结构主要实现方式包括ASIP和多核映射,还有一些文献采用ASIC的实现方式。设计一个能够同时兼容多种纠错码的结构是一种势在必行的必然趋势,而目前这方面的研究还比较欠缺,设计一个能够同时支持多种标准、支持LDPC和Turbo码两种纠错码的结构,同时必须使得设计的结构吞吐率和功耗到要达到下一代通信标准的需求是一项长期有意义的研究。
发明内容
本发明的目的在于提供一种高性能多标准FEC译码器,可以同时支持LDPC码和Turbo码,并支持WiMax、WLAN和LTE三种不同的标准。
本发明提供的高性能多标准FEC译码器,可灵活配置,能够同时兼容 LDPC 码和Turbo码多标准多模式,包括WiMAX(Worldwide interoperability for MicrowaveAccess)、无线城域网 WLAN(Wireless Metropolitan Area Networks)宽带接入技术以及4G 移动通信的 LTE(Long Term Evolution)标准。其中,在WiMAX 和 WLAN 中译码器工作在 LDPC 译码模式,而在 LTE 通信中译码器工作在 Turbo 译码模式。设计的纠错码能够对 WiMAX 中所有的 114 种模式、 WLAN中所有的 12 种模式以及 LTE 中所有的 188 种模式进行译码。
本发明提供的高性能多标准FEC译码器,包括大量的存储器,一个非常灵活的置换网络,一个能够同时支持两种纠错码逻辑运算的可配置计算单元SISO(Soft-In Soft-Out),以及一个全局控制单元。其结构框图如图1所示,全局控制单元包括模式配置 3和控制单元 6,通过配置外部参数来决定整个芯片各个模块的工作模式,即全局控制单元链接所有其他的功能模块;存储器用于存储计算过程中所有使用到的数据;可配置计算单元SISO 8用于完成信息的更新;置换网络完成矩阵移位操作和数据交织功能,包括移位 5和移位 9。其中:
所述存储器,包括:用于存储中间节点信息的迭代所需的存储器阵列 1,用于存储信道信息的信道信息存储器 2,用于Turbo译码过程中防止存储器访问冲突的缓存 7,中间暂存单元 FIFO/LIFO 10(其中FIFO用于LDPC译码中存储后验信息,LIFO用于Turbo译码中用于存储前向更新信息);用于存储译码结果的硬判信息存储器11。LDPC和Turbo两种纠错码的存储器量化方案是非常类似的,均是本征信息5比特量化,外信息6比特量化。中间暂存单元设计中,LDPC需要一个FIFO,而Turbo码需要一个LIFO,它们可以完全复用。两种纠错码使用的存储器相似,Turbo译码存储器的总体比LDPC码大,原因在于LTE标准中最长码长为6144,而WiMAX、WLAN中最长码长仅为2304。因此,在存储器方面Turbo译码器基本上就能够覆盖LDPC译码所需要的存储器,同时将来LDPC码更长的码长也具有兼容性。设计的兼容,这两种码的解码器可以这两种纠错码的信道信息复用,外信息以及FIFO和LIFO之间都可以复用。两种纠错码存储器复用的主要难点在于他们译码的并行度不同导致的存储器位宽深度不一致,这个问题可以通过对存储器进行划块处理解决。即把一个较大的存储器分成一些较小快的存储器,在LDPC译码时,让这些存储器工作在并行模式,而在Turbo译码时则让它们工作在串行模式,从而解决它们并行度不一致的矛盾。
所述置换网络,支持 LDPC 可配置的循环移位,还支持 Turbo 码无冲突的QPP 交织。本发明的Turbo译码最高并行度P=8,采用三级MUX构成的网络(如图15所示),以完成交织移位功能。其中MEM表示存储器的块号,SISO则表示子译码电路的并行度编号。在需要支持的最大并行度P变大的情况下可以通过增加MUX的级数以达到相应的要求。所述置换网络结构非常简单,这种结构在最大并行度P=2n时,能在不改变电路结构的情况下同时支持并行度为0,1,2,4……2n-1的情况。采用这种灵活的交织器结构就能方便的进行所需并行度之间的相互切换,而又不用改变硬件结构。本发明的LDPC译码器最高并行度为96,因此每一个普通的移位器可以由一个7级MUX的阵列组成,移位器的硬件结构如11所示。
所述可配置计算单元SISO ,用于 Turbo 译码中的前后向更新和后验信息计算,还用于LDPC译码中的变量节点和校验节点的更新计算。
所述可配置计算单元SISO的结构包括LLR计算单元和M-ASC(Modified AddCompare Select)单元。
所述LLR计算单元采用Turbo码的LLR计算模块即可,如图9 所示。对于Turbo译码,每个加法器输入的是前向状态度量信息 和后向状态度量信息与分置状态度量信息之和。树形比较结构的上半部分计算后验信息为0的最大路径,下半部分计算后验信息为1的最大路径,再比较这两条路径确定该时刻的后验信息。整个树形比较器一共有16个加法器,而LDPC码的后验信息更新只需要一个加法器,即。因此该树形结构的比较器可以等效为16个LDPC译码的并行度。
所述M-ACS单元用于Turbo码前后向状态度量更新以及训练序列的更新计算。而LDPC码译码则需要完成外信息最小值、次小值搜索的过程。设计的结构在常用ACS单元的基础上进行改进,其结构如图7 所示,包括了加法单元821,选择单元822,比较单元823,取绝对值单元824,取次小值单元825。其中,所述取绝对值单元824就是根据有符号数补码表示法则进行取符号化操作;所述取次小值单元825的输入来自取绝对值单元824,将当前的不同绝对值进行比较,取较大者,与先前存储的绝对值进行比较,存储较小值,经过数个时钟周期即可得到次小值。所述M-ACS单元中各个元件的连接方式是根据下文所述算法来安排的。它在原有的ACS单元基础上只增加了绝对值操作和取次小值操作,大大提高了硬件的逻辑单元复用率。图7中另外需要注意的一点在于其中的虚线围起来的部分,由于LDPC译码这里额外多了一个取绝对值操作,而这条路径正好在关键路径上,因此译码器在LDPC译码的频率将比Turbo译码的频率低一些。
所述全局控制单元,其结构包括模式配置 3和控制单元 6,通过配置外部参数来决定整个芯片各个模块的工作模式,即全局控制单元链接所有其他的功能模块。在正常工作时,首先要把需要的工作模式输入到模式配置模块,需要配置的信息包括译码器所需要译码的纠错码类型、门控开关、译码的输入起始、译码开始、输出信号、并行度、窗长、子矩阵大小、码长、迭代次数、校验矩阵信息以及交织器的参数等诸多信息。在每个时钟配置一组输入信息,然后把这组输入信息再配置给内部译码器的每个参数。在所有的参数配置完毕后,译码器才可以进入正常译码状态。
所述高性能多标准FEC译码器,为了可以兼容LDPC 码和Turbo码的译码,采用新的算法,可以节省硬件资源,推导如下:
由于WiMAX和WLAN标准中的矩阵均是结构型的QC-LDPC码,因此为了加快LDPC译码的收敛速度,提高吞吐率和能量效率,常规LDPC译码时采用TDMP的译码算法,而且由于TDMP算法是根据Turbo译码算法的前后向迭代原理推导得到的,因此其本质上和Turbo译码是类似的,只是Turbo译码每次前后向信息更新时有8个状态需要更新,而LDPC游码只需要更新外信息即可。
先设定以下变量:
表示当前迭代次数;
表示码字的后验信息;
表示变量节点n传递给校验节点m的信息;
是指校验节点m传递给变量节点n的信息。
为归一化因子;
为k时刻s状态的前向更新信息;
为k时刻s状态的后向更新信息;
为从状态到状态的分支状态度量信息;
为第个节点的外信息;
为第个节点的先验信息;
为第个节点的后验信息。
在LDPC码的TDMP译码算法中,其校验节点更新算法如下:
不考虑计算中的符号求值操作,可知的更新就是一个持续寻找最小值的过程。而Turbo译码的前后向更新操作,其本质就是寻找一个最大值路径的过程,这里两种算法中虽然直观看上去不太相同,但由于本质上加法和减法是一样的,比较最大值和比较最小值也是一样的,因此实际上两种纠错码在这里进行信息更新时是一样的,它们所需要的都是类似的加法比较选择ACS单元。有所区别的地方在于Turbo译码的一个并行度前向更新有8个状态,它可以等效为LDPC译码的8个并行度。这就解决了原本存在的LDPC码和Turbo码并行度不一致造成译码硬件不容易复用的问题。
Turbo前后向更新如下:
在后验信息的更新中,LDPC码的计算过程如下所示,只需要一个加法器阵列就可以完成:
上式也就是LDPC码的变量节点更新公式。而Turbo码的后验信息计算为:
Turbo码后验信息计算虽然看上去结构比较复杂,与LDPC算法不太相同,但因为在Turbo译码的后向更新过程中的数值就已经计算完成,令
则Turbo码的后验信息计算公式可简化为:
上式可等效为LDPC译码的16个并行度的后验信息更新。LDPC码和Turbo码在整个译码算法上是及其类似的,不仅表现在两种纠错码所有信息的更新计算上,在流程上也都是迭代译码直到译码完成。
所述高性能多标准FEC译码器,根据LDPC 码和Turbo码算法的特性,设计了一个改进的ACS单元,它能够完成Turbo码的前后向状态更新操作以及LDPC码的最小值搜索操作,同时设计的LLR单元,如图 9所示,能完成这两种纠错码的后验信息更新操作。改进ACS单元,它只包含了一级的加法和一级的比较模块,如图 7所示。能够采用这种改进方法的原因有两个:一是把Log-MAP该进程MAX-Log-MAP算法后去除了因子,使得ACS单元中不在有这部分操作,取而代之的是把最后存回外信息的数值乘上一个常数的归一化因子,仿真表明这种方式带来的性能损失小于0.1dB,但其带来的收益是巨大的,即大幅较小了这部分查表的面积,又缩短了设计的关键路径。改进的ACS中能够把后面的归一化加法部分去掉是因为这里充分利用了补码的特性。
所述置换网络,能够支持1、2、4、8并行度可配置的Turbo译码器,如图15所示;并且具有桶形移位器功能,其循环移位大小以及移位值可变,使得LDPC码的并行度能够在1~96之间任意可变,如图11所示。
在并行度P较高的情况下,采用P个电路去实现交织器的功能是非常浪费面积的,也会增加电路的功耗。为未解决上述问题,可以产生一个置换网络控制信号,可经过下面过程推导:
对于不同的码长其交织器的计算公式形式是一样的,不同的是公式中的参数,其计算公式如下,
其中,和是由Turbo码的码长唯一决定的,表示交织需要取的第()个数,表示该数据经过交织操作后的存储器地址。在并行Turbo译码器中,若其并行度为P,则每个并行度对应的码块长度为M=N/P。
其中是一个和并行度k无关的参数,它仅与j有关,是一个替代参数。故可得
则每个并行度的MUX控制信号的值分别为,即:
则对于并行度k处,可得其第j+1和第j序列间的前后关系为:
其中是一个与并行度无关仅与译码块内序号j有关的数,它可以通过任何一个并行度计算出这个差值。因此在设计一个并行度为P的Turbo译码电路中,实际上只需要一个交织器地址计算单元。该地址计算单元实时计算并行度k=0处的块号值即为,则只需要在k=0,1,2……P-1时分别计算的数值即可得到所有MUX的控制信号。另外在电路MUX结构固定以后,对于最大并行度小于P的情况,MUX网络的也能正常完成移位功能。在MUX结构固定的情况下,对于所需并行度P取不同的数值,取模电路都是对电路支持的最大并行度Pmax取模的,一般设置Pmax为2n,故实际上不需要额外设计一个取模电路,加减法器在数据位宽为n时已经能直接完成2n的取模功能,从而在各个方面的大大缩小了交织器的面积,同时保证了设计交织器的灵活性。控制信号产生电路如图16所示。
所述置换网络还设置有地址产生电路,即交织器还需要设计一个电路计算,如图17所示。在并行度k=0处,的值即为该并行度所需的MEM块号值。从QPP交织器的原始公式出发,可以采用递归计算的方法计算交织地址,这样可以避免繁琐的乘法和取模电路,极大缩小电路面积,同时可以让电路工作在高速模式。推导过程如下:
其中,同理有
则可以用两重递归计算单元计算交织地址值。由前面的分析可知,只需要一个这样的递归计算单元用于计算第0个并行度的交织地址值即可,然后根据计算得到的交织地址值经过一个除法取整电路即可得到块号值。
所述高性能多标准FEC译码器,采用多阈值CMOS晶体管、门控时钟等技术降低芯片功耗。通过在结构的关键路径中采用低阈值的CMOS管提高电路速度,而在普通路径上采用高阈值CMOS管降低电路功耗以提高译码器的性能;同时设计的译码器采用了细致的门控技术,对于只需要在某一时刻工作的逻辑单元以及存储器在其余时刻都会把它的时钟关掉以降低译码器的功耗,整个结构中一共有 26 组门控时钟。
所述高性能多标准FEC译码器,设计中对于扇出大的信号LDPC_Turbo在不影响时序的情况下用多个触发器做了并行的挡一拍,然后再用之后的信号去分别驱动各个模块。
所述高性能多标准FEC译码器,译码器的量化方案如下:信道本征信息取5比特,其中小数部分2比特;外信息取6比特;LDPC与Turbo码中的归一化因子均取0.75;前后向更新以及后验信息更新的ACS单元取9比特;LDPC码的最大迭代次数为10,Turbo码的最大迭代次数为5.5;迭代次数也可根据实际的需要进行重新配置。
附图说明
图1为本发明所述高性能多标准FEC译码器结构框图。
图2为本发明所述高性能多标准FEC译码器性能仿真图。
图3为本发明所述高性能多模FEC译码器的顶层状态转换图。
图4为本发明所述LDPC译码模式时的状态转换图。
图5为本发明所述Turbo译码模式时的状态转换图。
图6为本发明所述存储器划块示意图。
图7为本发明所述的M-ACS单元。
图8为本发明所述M-ACS外围反馈图。
图9为本发明所述LLR计算单元。
图10为本发明所述桶形移位器的原理图。
图11为本发明所述桶形移位器的硬件结构图。
图12为本发明所述无冲突交织器对应的存储器访问关系图。
图13为本发明所述译码器工作在LDPC模式的结构图。
图14为本发明所述译码器工作在Turbo模式的结构图。
图15为本发明所述置换网络的结构图。
图16为本发明所述交织器置换网络的控制信号产生电路结构图。
图17为本发明所述递归交织地址计算单元。
具体实施方式
图1所示即为设计的兼容LDPC码和Turbo码两种码的多模可配置FEC译码器。其中深色部分表示的是存储器,其余部分是逻辑模块,虚线部分是整个译码器的控制部分。该译码器包含了大量的存储器,一个非常灵活的置换网络,一个能够同时支持两种纠错码逻辑运算的可配置计算单元SISO,以及一个全局控制单元。其中存储器又可以分为迭代所需的存储器阵列,信道信息存储器,防止存储器访问冲突的缓存器、中间暂存单元FIFO/LIFO,硬判信息存储器。而置换网络不仅需要支持LDPC可配置的循环移位情况,还需要支持Turbo码无冲突的QPP交织器。SISO模块需要完成Turbo译码前后向更新,后验信息计算或者LDPC变量节点和校验节点的更新。整个芯片各个模块的工作模式通过外部参数配置控制模块来决定。
译码器在正常工作时首先要把需要的工作模式输入到配置模块,需要配置的信息包括译码器所需要译码的纠错码类型、门控开关、译码的输入起始、译码开始、输出信号、并行度、窗长、子矩阵大小、码长、迭代次数、校验矩阵信息以及交织器的参数等诸多信息。但由于芯片设计的面积大小是固定的,也就意味着I/O pad的数目是有限的,为了能够正确的配置每个参数的信息,必须让译码器的I/O进行复用,即通过一种类似于串口的协议,在每个时钟配置一组输入信息,然后把这组输入信息再配置给内部译码器的每个参数。在所有的参数配置完毕后,译码器才可以进入正常译码状态。表1展示了所有参数的配置模式,其中模式选择为5比特位宽,配置信息也是5比特位宽。另外让设计的译码器能够支持所有的LDPC译码模式,校验矩阵是通过类似指令输入到译码器中的。
表1译码器的参数配置模式
模式 | 配置信息 | 模式 | 配置信息 |
00001 | 模式选择、门控、译码输入、起始、结束 | 01101 | 最大迭代次数 |
00010 | 子矩阵大小 | 01110 | 交织器参数 |
00011 | 子矩阵大小 | 01111 | 交织器参数 |
00100 | 码长 | 10000 | 交织器参数 |
00101 | 码长 | 10001 | 交织器参数 |
00110 | 码长 | 10010 | 交织器配置信息 |
00111 | Turbo译码并行度 | 10011 | 交织器配置信息 |
01000 | 窗长 | 10100 | 交织器配置信息 |
01001 | LDPC码校验矩阵信息 | 10101 | 交织器配置信息 |
01010 | LDPC码校验矩阵信息 | 10110 | 交织器配置信息 |
01011 | LDPC码校验矩阵信息 | 其他 | 冗余状态 |
01100 | LDPC码校验矩阵信息 |
本发明提出这种译码器目前能够支持WiMAX、WLAN以及LTE标准中所有的译码模式,提出的结构主要的特点有:
1)根据LDPC码和Turbo码算法的特性,设计了一个改进的ACS单元,它能够完成Turbo码的前后向状态更新操作以及LDPC码的最小值搜索操作,同时设计的LLR单元能完成这两种纠错码的后验信息更新操作。
2)合理的对存储器进行划块,通过把大块的存储器划分成小块的方法,一方面能够降低存储器的读写功耗,同时能够解决两种纠错码并行度、码长不同导致所需要的存储器位宽、深度不同的矛盾。
3)利用QPP交织器的特点,设计了一个能够支持1、2、4、8并行度可配置的Turbo译码器。同时利用桶形移位器设计了一个循环移位大小以及移位值可变的置换网络,使得LDPC码的并行度能够在1~96之间任意可变。
4)采用多阈值CMOS晶体管、门控时钟等技术降低芯片功耗。通过在结构的关键路径中采用低阈值的CMOS管提高电路速度,而在普通路径上采用高阈值CMOS管降低电路功耗以提高译码器的性能;同时设计的译码器采用了细致的门控技术,对于只需要在某一时刻工作的逻辑单元以及存储器在其余时刻都会把它的时钟关掉以降低译码器的功耗,整个结构中一共有26组门控时钟。
5)其他部分特点包括采用I/O pad复用技术解决了pad不够用的问题;设计中对于扇出大的信号LDPC_Turbo在不影响时序的情况下用多个触发器做了并行的挡一拍,然后再用之后的信号去分别驱动各个模块;同时为了芯片测试的需要,内部嵌入了一个压控振荡器VCO,这样芯片中有几个信号存在跨时钟域问题,它是一个快时钟域传给慢时钟域的过程,通过触发器挡两拍的方法减小亚稳态的发生。
进一步地,图3所示为设计的多模式FEC译码器的顶层状态转换图,其中一共包含有6个状态,初始状态中译码器首先完成基本参数配置,然后在检测到片外的输入信号din_start后进入输入模式,输入模式主要是输入待译码的信道信息,接着在输入完成后译码器再次进入等待模式直到检测到译码开始信号decode_start,此时译码器进入正常译码状态,否则译码一直进行直到译码完成,最后在dout_start下输出译码结果。当然在中间的几个译码环节中,若译码器需要重新输入新的信道信息,即din_start有效,则进入重新输入模式。
图4、图5所示为顶层状态转换图“译码”状态的子状态转换图,它显示了译码器在两种纠错码中的具体译码过程。若译码器工作在LDPC译码模式,则译码状态转换如图4所示,译码主要包含了行列的更新过程。图5所示为译码器工作在Turbo译码模式的状态转换图。其中Turbo码的奇数次迭代和偶数次迭代分表表示一次完整迭代过程中的需要交织器部分和不需要交织器部分。
进一步地,为了解决LDPC码与Turbo码译码并行度导致的存储器位宽与深度不同的矛盾,设计的译码器对存储器进行分块划分处理。把存储器分块的另一个好处在于可以降低存储器的读写电流,从而降低存储器的读写功耗。例如图6把一个位宽为w、深度为b的存储器划分成3块,编号分变为1、2、3,每个子块的位宽也是w、深度为b/3。则当读取存储器的地址在1号存储器时,2、3号存储器可以把片选和时钟信号关断,降低功耗,同理在读取2、3号时也可以有同样的操作。研究表明采用这种方法可以把存储器功耗降低20%~30%左右。
进一步地,由于Turbo码码长较长,它所需要的存储器比LDPC码多好多,因此设计的译码器主要考虑在Turbo码的基础上如何对存储器进行分块使得LDPC码也能够使用。在外信息存储方面,Turbo译码需要36864 bits。这里把它分成20个子块,编号分别为1~20,其中前18块子块的大小均为1536 bits,后两块大小为4608 bits。则设计的存储器在Turbo译码时,所有的子块串行依次读取,使得它类似于一个深度为768的存储器,而在LDPC译码时,所有的子块则同时读取,并行工作,其中一部分存储器用于存储LDPC码的后验信息,一部分存储器用于存储外信息中的符号位信息。对于译码器中的FIFO/LIFO存储器,它们的位宽完全一致,深度则取其中较大的LIFO。同样对于本征信道的存储器,两种纠错码也可以做到完全复用,而校验信息存储器在LDPC译码时可以完全关闭以达到降低功耗的目的,只有当LDPC码的码长比Turbo码更长时,才需要把校验信息存储器也用于存储LDPC码的本征信息,最终设计的译码器一共包含了61块存储器。
进一步地,由于Turbo码译码的每个并行度中有前向更新、后向更新和训练序列更新,同时每个状态更新中又有8个状态需要更新,而LDPC码的每个最小值搜索只需要其中的一个状态更新就可完成,故每个Turbo的并行度最多等效为24个LDPC译码的并行度。这里由于WiMAX和WLAN中最大的并行度只需要96,因此为了节省面积和功耗的需要,译码器中一半的后向更新和训练序列更新均采用普通的改进ACS单元,且在LDPC译码时把这部分逻辑电路时钟关掉以进一步降低功耗。这也说明设计的译码器在现有的结构下能够很容易的扩张译码的并行度以适应未来通信中跟高吞吐率的要求。图8所示的即为一个Turbo译码完整8个状态的外围反馈ACS回路,每个ACS单元的输入信息不仅包含了反馈的前一个时刻的最大/最小值,同时需要新输入的分置状态度量或后验信息、外信息以计算当前时刻的更新值。
图10所示为桶形移位器的原理图,设移位器最大支持并行度为,则它可以对任意的并行度进行循环移位,满足LDPC译码并行度可配置的要求。桶形移位器由两个普通移位器和一个选择器构成。例如需要对一个并行度为,且,移位值为a的LDPC子矩阵进行移位时,首先第一个移位器完成左移a的功能,第二个移位器完成左移(),然后用一个选择器对于位置小于b的的部分取第一个取第一个移位器的结果,对于移位值大于b的部分取第二个移位器的结果,而操作部分的移位值则可以不用关心,这样就完成一个并行度为,循环左移a的功能。本论文设计的LDPC译码器最高并行度为96,因此每一个普通的移位器可以由一个7级MUX的阵列组成,移位器的硬件结构如图11所示。
Turbo码能够无冲突并行译码的最关键之处就在于设计的交织器必须是访问无冲突的,同时为了让Turbo译码能够根据码长不同选择不同的并行度,还需要设计的的交织器结构能够适应不同的并行度。3GPP LTE标准中Turbo译码器根据码长的不同一共有188种模式。对于不同的码长其交织器的计算公式形式是一样的,不同的是公式中的参数,其计算公式如下。
其中,和是由Turbo码的码长唯一决定的,表示交织需要取的第()个数,表示该数据经过交织操作后的存储器地址。在并行Turbo译码器中,若其并行度为P,则每个并行度对应的码块长度为M=N/P,此时交织器的计算公式可经过下式推导。
其中,。由此可得到QPP交织器的两个重要性质:
(a)
(b)
从上述两个性质中可以推出:在采用QPP交织器时,Turbo译码器中不同并行度上块内地址均为j时,经过交织操作后所取的数据是从不同块存储器的同一个地址处取得的,并且对于不同的并行度他们取数据的块号值均是不同的,这样在一次读写存储器的过程当中就能保证每一个并行度都能取到相应的数据且不会产生数据冲突的问题。这一过程的地址对应关系可用图12来表示。
因此采用这种QPP的交织器,无论Turbo译码器的并行度和子块长度如何变化,都能够保证子译码器在存储器访问时不会产生数据冲突的问题,故需要解决的只是如何用一个简单易于控制的电路来实现这个可配置的结构。
Claims (7)
1.一种高性能多标准FEC译码器,其特征在于,同时兼容LDPC码和Turbo码多标准多模式,包括WiMAX、无线城域网WLAN宽带接入技术以及4G移动通信的LTE标准;其中在WiMAX和WLAN中译码器工作在LDPC译码模式,在LTE通信中译码器工作在Turbo译码模式;设计的纠错码能够对WiMAX中所有的114种模式、WLAN中所有的12种模式以及LTE中所有的188种模式进行译码;其结构包括:多种存储器,一个灵活的置换网络,一个能够同时支持两种纠错码逻辑运算的可配置计算单元SISO,以及一个全局控制单元;所述全局控制单元通过配置外部参数来决定整个芯片各个模块的工作模式,即全局控制单元链接所有其他的功能模块;所述存储器用于存储计算过程中所有使用到的数据;所述可配置计算单元SISO用于完成信息的更新;所述置换网络完成矩阵移位操作和数据交织功能,包括移位5和移位9;
其中,所述存储器,包括:用于存储中间节点信息的迭代所需的存储器阵列,用于存储信道信息的信道信息存储器,用于Turbo译码过程中防止存储器访问冲突的缓存,用于存储译码结果的硬判信息存储器,中间暂存单元FIFO/LIFO,其中FIFO用于LDPC译码中存储后验信息,LIFO用于Turbo译码中用于存储前向更新信息;
LDPC和Turbo两种纠错码的存储器量化方案相同,均是本征信息5比特量化,外信息6比特量化;中间暂存单元中,LDPC需要一个FIFO,而Turbo码需要一个LIFO,它们完全复用;两种纠错码使用的存储器相似,Turbo译码存储器的总体比LDPC译码存储器大,因此,在存储器方面Turbo译码器能够覆盖LDPC译码所需要的存储器;设计的兼容,使这两种码的解码器可以这两种纠错码的信道信息复用,外信息以及FIFO和LIFO之间都复用;
所述可配置计算单元SISO,用于Turbo译码中的前后向更新和后验信息计算,还用于LDPC译码中的变量节点和校验节点的更新计算;所述可配置计算单元SISO的结构包括LLR计算单元和M-ASC单元。
2.根据权利要求1所述的高性能多标准FEC译码器,其特征在于:所述置换网络,支持LDPC可配置的循环移位,还支持Turbo码无冲突的QPP交织;Turbo译码最高并行度P=8,采用三级MUX构成的网络,以完成交织移位功能;LDPC译码器最高并行度为96,每一个普通的移位器由一个7级MUX的阵列组成。
3.根据权利要求2所述的高性能多标准FEC译码器,其特征在于:
所述LLR计算单元采用Turbo码的LLR计算模块;采用树形比较结构,对于Turbo译码,每个加法器输入的是前向状态度量信息α,以及后向状态度量信息与分置状态度量信息之和β+γ;树形比较结构的上半部分计算后验信息为0的最大路径,下半部分计算后验信息为1的最大路径,再比较这两条路径确定该轮迭代的后验信息;整个树形比较结构一共有16个加法器,而LDPC码的后验信息更新只需要一个加法器;因此该树形比较结构等效为16个LDPC译码的并行度;
所述M-ACS单元用于Turbo码前后向状态度量更新以及训练序列的更新计算;由于LDPC码译码则需要完成外信息最小值、次小值搜索的过程,故M-ACS单元是在原有的ACS单元基础上增加了绝对值操作和取次小值操作,即包括加法单元,选择单元,比较单元,取绝对值单元,取次小值单元。
4.根据权利要求3所述的高性能多标准FEC译码器,其特征在于:所述全局控制单元包括模式配置和控制单元;在正常工作时,首先要把需要的工作模式输入到模式配置模块,需要配置的信息包括译码器所需要译码的纠错码类型、门控开关、译码的输入起始、译码开始、输出信号、并行度、窗长、子矩阵大小、码长、迭代次数、校验矩阵信息以及交织器的参数;在每个时钟配置一组输入信息,然后把这组输入信息再配置给内部译码器的每个参数;在所有的参数配置完毕后,译码器才进入正常译码状态。
5.根据权利要求4所述的高性能多标准FEC译码器,其特征在于:所述可配置计算单元SISO的具体计算内容如下:
所涉及的变量为:
i表示当前迭代次数;
γn表示码字的后验信息;
ρmn表示变量节点n传递给校验节点m的信息;
Λmn是指校验节点m传递给变量节点n的信息;
α为归一化因子;
αk(s)为k时刻s状态的前向更新信息;
βk(s)为k时刻s状态的后向更新信息;
γ(s',s)为从s'状态到s状态的分支状态度量信息;
Le(uk)为第uk个节点的外信息;
La(uk)为第uk个节点的先验信息;
Lp(uk)为第uk个节点的后验信息;
在LDPC码的TDMP译码算法中,其校验节点更新算法如下:
Turbo前后向更新算法如下:
在后验信息的更新中,LDPC码的计算过程如下所示,只需要一个加法器阵列就可以完成:
上式也是LDPC码的变量节点更新公式;而Turbo码的Lp(uk+1|y)后验信息计算为:
6.根据权利要求5所述的高性能多标准FEC译码器,其特征在于:所述置换网络中,设置有置换网络控制信号,该控制信号的计算如下:
对于不同的码长,其交织器的计算公式形式一样,不同的是公式中的参数,其计算公式如下:
π(i)=f1·i+f2i2 (mod N)
其中,f1和f2是由Turbo码的码长唯一决定的,i表示交织需要取的第i个数,0≤i<N,π(i)表示该数据经过交织操作后的存储器地址;在并行Turbo译码器中,若其并行度为P,则每个并行度对应的码块长度为M=N/P;
π(j+kM)=f1(j+kM)+f2(j+kM)2 mod(N)
=(f1j+f2j)+(f1k+2f2jk+f2k2M)M mod(N)
=π(j)+QkM mod(N)
QkM=f1kM+2f2jkM+f2k2M2+λjM mod(N)
其中λj是一个和并行度k无关的参数,它仅与j有关,Qk是一个替代参数;故得:
Qk=f1k+2f2jk+f2k2M+λj mod(P)
则每个并行度的MUX控制信号的值分别为Δk=Qk-k,即:
Δk=Qk-k=(f1-1)k+2f2jk+f2k2M+λj mod(P);
对于并行度k处,得其第j+1和第j序列间的前后关系为:
Δkj+1-Δkj=2f2k+λj+1-λj mod(P)
其中(λj+1-λj)mod(P)是一个与并行度无关仅与译码块内序号j有关的数,它通过任何一个并行度计算出这个差值;
因此在一个并行度为P的Turbo译码电路中,实际上只需要一个交织器地址计算单元,该地址计算单元实时计算并行度k=0处的块号值即为λj,则只需要在k=0,1,2……P-1时分别计算Δkj+1的数值即可得到所有MUX的控制信号。
7.根据权利要求6所述的高性能多标准FEC译码器,其特征在于:所述置换网络中,还设置有地址产生电路,即交织器还设计有一个电路计算λj;在并行度k=0处,λj的值即为该并行度所需的MEM块号值;从QPP交织器的原始公式出发,采用递归计算的方法计算交织地址,推导过程如下:
π(i+1)=f1·(i+1)+f2(i+1)2mod(N)=π(i)+δ(i) mod(N)
其中δ(i)=f1+f2+2f2i mod(N),同理有δ(i+1)=δ(i)+2f2 mod(N)
则用两重递归计算单元计算交织地址值π(i);然后根据计算得到的交织地址值经过一个除法取整电路即可得到块号值λj。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310461688.9A CN103501210B (zh) | 2013-09-30 | 2013-09-30 | 一种高性能多标准fec译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310461688.9A CN103501210B (zh) | 2013-09-30 | 2013-09-30 | 一种高性能多标准fec译码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103501210A CN103501210A (zh) | 2014-01-08 |
CN103501210B true CN103501210B (zh) | 2017-05-10 |
Family
ID=49866388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310461688.9A Active CN103501210B (zh) | 2013-09-30 | 2013-09-30 | 一种高性能多标准fec译码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103501210B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105337618B (zh) * | 2014-08-06 | 2018-11-20 | 上海明波通信技术股份有限公司 | 并行向下兼容的多模ira_ldpc译码器及其译码方法 |
CN104168032A (zh) * | 2014-08-16 | 2014-11-26 | 复旦大学 | 兼容LTE和WiMAX的4并行度、基-16高性能Turbo译码器 |
CN105515761B (zh) * | 2016-01-22 | 2018-07-20 | 成都三零嘉微电子有限公司 | 一种高速多模式循环移位的电路 |
CN106301390A (zh) * | 2016-08-11 | 2017-01-04 | 中国计量大学 | LDPC/Turbo码双模译码器 |
CN106951212B (zh) * | 2017-03-10 | 2019-11-26 | 南京大学 | 一种极化码解码器中f、g运算单元的硬件架构 |
CN107294656B (zh) * | 2017-06-06 | 2021-02-02 | 长安大学 | 一种基于深度优先的分布式算术码解码方法 |
CN111200481B (zh) * | 2019-12-18 | 2020-12-29 | 清华大学 | Polar码译码过程中提高计算单元通用性的方法 |
CN114584254A (zh) * | 2020-11-30 | 2022-06-03 | 华为技术有限公司 | 一种解码方法、网络设备、系统以及存储介质 |
CN117296252A (zh) * | 2021-02-25 | 2023-12-26 | 华为技术有限公司 | 共模解码电路、数字基带、射频收发机和解码方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692611A (zh) * | 2009-07-03 | 2010-04-07 | 复旦大学 | 一种基于simd结构的多标准ldpc译码器电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100487183B1 (ko) * | 2002-07-19 | 2005-05-03 | 삼성전자주식회사 | 터보 부호의 복호 장치 및 방법 |
-
2013
- 2013-09-30 CN CN201310461688.9A patent/CN103501210B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692611A (zh) * | 2009-07-03 | 2010-04-07 | 复旦大学 | 一种基于simd结构的多标准ldpc译码器电路 |
Non-Patent Citations (2)
Title |
---|
一种兼容Turbo码的LDPC解码器;蒋冶等;《信息与电子工程》;20120630;334-338 * |
基于SIMD结构的多标准LDPC译码器的VLSI实现;黄双渠等;《计算机研究与发展》;20100731;1313-1320 * |
Also Published As
Publication number | Publication date |
---|---|
CN103501210A (zh) | 2014-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103501210B (zh) | 一种高性能多标准fec译码器 | |
KR101504101B1 (ko) | 적어도 두 개의 디코딩 매소드를 디코딩하기 위한 asip 아키텍처 | |
CN101777924B (zh) | 一种Turbo码译码方法和装置 | |
CN101800559B (zh) | 一种基于tdmp的高速可配置qc-ldpc码解码器 | |
CN104092470B (zh) | 一种Turbo码译码装置及方法 | |
US7984368B2 (en) | Method and system for increasing decoder throughput | |
Fan et al. | Low-latency list decoding of polar codes with double thresholding | |
Boutillon et al. | Simplified check node processing in nonbinary LDPC decoders | |
CN102111162B (zh) | Turbo 分量译码方法、分量译码器、支路计算器及Turbo 译码器 | |
CN106936446A (zh) | 一种基于多进制ldpc码的高速译码器及其译码方法 | |
CN106330203A (zh) | 一种ldpc的解码方法 | |
CN1937413A (zh) | 双涡轮结构低密度奇偶校验码解码器 | |
CN104168032A (zh) | 兼容LTE和WiMAX的4并行度、基-16高性能Turbo译码器 | |
Yan et al. | High performance parallel turbo decoder with configurable interleaving network for LTE application | |
US20110087949A1 (en) | Reconfigurable turbo interleavers for multiple standards | |
CN102158235A (zh) | turbo译码的方法及装置 | |
CN107196666B (zh) | 一种通用Turbo编译码器快速验证方法 | |
Qiao et al. | QFEC ASIP: A flexible quad-mode FEC ASIP for polar, LDPC, turbo, and convolutional code decoding | |
US8032811B2 (en) | Efficient almost regular permutation (ARP) interleaver and method | |
CN105515588B (zh) | 一种ldpc‑cc高速译码器 | |
CN104242956B (zh) | 基于随机计算的高性能低复杂度ldpc译码器 | |
CN206099947U (zh) | 一种低资源消耗的多参数可配置Viterbi译码器 | |
Yue et al. | A unified forward error correction accelerator for multi-mode Turbo, LDPC, and polar decoding | |
Chen et al. | A 691 Mbps 1.392 mm 2 configurable radix-16 turbo decoder ASIC for 3GPP-LTE and WiMAX systems in 65nm CMOS | |
CN103701475B (zh) | 移动通信系统中8比特运算字长Turbo码的译码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |