文献标识码:A
DOI:10.16157/j.issn.0258-7998.2015.07.006
中文引用格式:江鹏刚,金德鹏. 面向60 GHz系统的多码率LDPC分层译码器的设计[J].电子技术应用,2015,41(7):23-25,29.
英文引用格式:Jiang Penggang,Jin Depeng. Multi-mode LDPC layered decoder architecture for 60 GHz system[J].Application of Electronic Technique,2015,41(7):23-25,29.
0 引言
60 GHz毫米波无线通信技术不仅拥有数吉比特的传输速率,也拥有着良好的抗干扰性以及高安全性的特点,在短距离无线通信系统中得到了越来越多的应用。IEEE 802.11ad[1]标准是目前被60 GHz毫米波通信领域广泛采纳的一种标准,其中使用的信道编码是低密度奇偶校验码(Low Density Parity Check Code,LDPC)[2]。LDPC码是由Gallarge提出的一种具有稀疏校验矩阵的线性分组码,和Turbo码一样拥有逼近香农极限的良好性能[3]。相比于Turbo码,LDPC码有着结构灵活、复杂度低以及适合多码率实现等优点。这些优点使得LDPC码近些年来在通信系统中得到广泛的应用。
本文基于传统的部分并行结构,设计并实现了一种符合IEEE 802.11ad标准的多码率LDPC分层译码器。通过对低码率校验矩阵进行双层同步更新,推荐译码器仅需一个4层的分层译码结构就可以实现对于多码率的支持。不仅减少了接近一半的译码迭代时间,也减少了储存单元。
1LDPC译码器算法
LDPC码有多种译码算法,其中最常用的算法是基于软判决的置信度传播译码算法(Belief Propagation,BP)。BP算法有着良好的性能,但是因为浮点运算的存在导致实现复杂。为了减少实现复杂度,基于BP算法Fossorier对其中的双曲双切函数及反双曲双切函数进行了简化,提出了最小和算法(Min-Sum Algorithm,MSA)[4]。
为了解决MSA算法收敛速度过慢的问题,Mansour 等人提出了Turbo译码置信传播(Turbo Decoding Messing Passing,TDMP)[5]算法。在TDMP算法中,分层进行节点更新,改进了算法的收敛速度。TDMP中的最小和算法如下,用V2C表示变量节点信息,用C2V表示检验节点信息,VN表示后验概率信息,σ2表示噪声方差,y表示接收到的信息序列:
(1)初始化
(2)判决译码
当k为最后一个分层时,若VNi<0,则ci=1;否则ci=0。
(3)如果译码结果满足校验方程或者达到了最大迭代次数,则停止译码;否则继续迭代。
2 多码率LDPC译码器设计
IEEE 802.11ad标准是目前60 GHz无线通信中广泛采用的标准之一。该标准使用的是编码后码长为672的LDPC码。码率有1/2、5/8、3/4以及13/16 4种。
推荐译码器采用输入数据5 bit量化,采用部分并行结构,按照矩阵的子块进行划分,块间并行块内串行处理。整体结构如图1所示。
2.1 输入缓存和输出缓存
本文采用部分并行的结构[6],需要将顺序输入的对数似然比按照每个矩阵的块内顺序并行地输出给V2C储存模块。按照本文采用的LDPC码的校验矩阵,采用16路并行输出。采用乒乓处理结构,提高系统的吞吐率。为了减少每一次迭代的时间,每次将3路信息合成一路输出给V2C储存模块,这样可以在一个时钟内处理3路数据。输入缓存的工作流程如图2所示。输出缓存则是做一个逆向调整。
2.2 V2C存储模块和C2V存储模块
每个块的校验矩阵为单位阵的位移阵,表明在同一个子块内只有一个V2C和C2V发生信息传递,所以使用RAM资源来进行V2C和C2V的信息存储。在分层译码器中,V2C存储信息只用于当前层的更新,所以V2C存储模块只需要存储单层信息。而C2V信息需要用于下一次迭代的更新,所以C2V存储模块需要存储全部层数的信息。在工作过程中,V2C存储模块和C2V存储模块顺序存储输入的数据,然后按照偏移控制单元获得的输出地址输出数据。
2.3 最小和模块
最小和模块需要求出16路输入信号中的最小值和次小值。考虑到多码率情况下存在矩阵压缩的情况,将计算过程分为两部分,首先分别计算奇数8路以及偶数8路的最小值和次小值,然后再计算这4个数据中的最小值以及次小值。根据不同码率中当前层是否为压缩层,选择是分别输出奇偶两路的最小值和次小值还是输出最终的最小值和次小值,如图3所示。
2.4 偏移控制单元
在偏移控制单元主要是根据码率和当前的层数,计算出V2C以及C2V的读取地址。假设当前子块偏移量为N,每个子块的长度为S。对于V2C存储模块,输出地址为从N开始,到S-1以后跳转到0,到N-1结束。对于C2V存储模块,输出地址为从S-1-N,到S以后跳到0,到S-N-2结束。在本文的实现情况中,子块长度为42,但是实际上是3路数据合成一路输出,所以S=14,N=N mod 14。地址计算单元可以使用一个循环累加器来实现,通过初始偏移值循环累加就可以得到输出地址。
2.5 双层同步更新结构
在实现多码率译码器的过程中,最大的问题在于硬件复杂度过高,可以看出R=1/2码率的校验矩阵比R=3/4码率的校验矩阵大了一倍,需要多一倍的C2V储存空间以及迭代时间。
从校验矩阵可以看出,在码率较大,行数较多的校验矩阵中,每一行存在的非0元素较少,比起低码率矩阵更具有稀疏性。也就是说如果使用相同于低码率校验矩阵的处理单元去处理高码率校验矩阵,同一行中会有大部分处理单元处于空闲状态。如在R=1/2的情况下第一行仅有5个处理单元处于工作状态,这种空闲也极大地降低了硬件运用效率。为了提高硬件利用率,在分层译码的基础上,通过合并分层来降低分层数。
可以看出在R=1/2中,每一层有效的块数少于一半,并且1、3层没有重叠的块,2、4层没有重叠的块,5-7、6-8亦然。可以考虑将1、3层的数据放在同一层进行更新,因为他们不存在重叠的位置,所以并不影响信息的传递,其余几层亦然,这样就可以把原本的8层数据变为4层。在802.11ad的其他码率中,也存在同样的稀疏性,也可以缩短为4层。这样对于所有的码率,使用不多于4层的分层就可以处理。为了可以同时处理一整层数据或者是分别处理两层数据,将两层数据分别移位到奇偶位上,然后根据控制信号选择最小值的输出。在R=1/2时,具体实现过程如图4所示。
如果不对矩阵进行压缩调整,则需要分8层来进行迭代,并且需要8层的C2V存储资源。分析各个码率的校验矩阵可以得到,经过压缩调整后,对于任何码率都可以使用不大于4层的分层方式来实现,这样最多可以减少一半的C2V存储单元以及迭代时间。对于不同的码率,通过控制信号控制数据块的移动位置以及读取地址的计算,就可以实现对多码率的支持。
2.6 存储器的流水线结构
在部分并行的结构中,整个迭代过程中耗时最长的部分是V2C存储读取耗时以及C2V存储读取耗时。由于V2C的C2V的读取顺序与存入顺序并不相同,所以需要在存入完毕之后,再进行读取。V2C和C2V在存入时,读取功能是空闲状态;读取时,存入功能也是空闲状态。从这点下手,可以同时进行两帧数据的译码工作。将V2C存储器和C2V存储器的深度扩大一倍,通过将地址分离,让第一帧的读取与第二帧的存储同时进行。这样通过只扩大C2V和V2C的深度,复用了其他的处理单元,使得整体的吞吐率提高了接近一倍,具体工作示意如图5所示。
3 实现与分析
基于Verilog HDL语言,本文完成了对以上结构的LDPC译码器的实现,并且通过导入数据对比,实现结果与MATLAB仿真结果完全一致。本文取5 bit量化,以3/4码率为例,不同迭代次数下的分层译码器的误码性能如图6所示。可以看出,3次迭代和10次迭代在BER为10-5时只有不到0.5 dB的性能损失。综合性能和吞吐率需求,本文选择了3次迭代。
本文选取Xilinx公司的Virtex6芯片,ISE综合结果如表1所示。
本文设计中,以码率R=1/2为例,输入码长为672,最终能达到的工作频率为212 MHz。每个核总共需要396个时钟周期完成译码,一次译码过程可以译码两帧的数据。在6个核共同工作的情况下,对于不同码率,最高静吞吐率可达到3.507 Gb/s,最低静吞吐率为2.158 Gb/s。需要指出,如果系统需要更高的吞吐率,可以通过增加译码器核的并行度的方式来实现。
与文献[7]中进行对比,本文在实现多码率的前提下,拥有着更高的吞吐率。而且,从归一化资源角度来看,本文拥有着更为优异的资源利用率。
4 结束语
本文设计了一种符合IEEE 802.11ad标准的多码率LDPC分层译码器。在Vertex6 FPGA开发板上实现了本文的结构,在R=13/16时最高可以达到3.507 Gb/s的净吞吐率。与已有的LDPC译码器相比,通过双层同步更新结构,以非常少量的硬件资源,实现了从单码率LDPC译码器向多码率的支持,不仅拥有吉比特吞吐率,而且在硬件资源花销上也有大幅度节省。
参考文献
[1] IEEE 802.11ad,Wireless LAN medium access control(MAC) and physical layer(PHY) specifications-Amendment 3:enhancements for very high throughput in the 60 GHz band[S].Dec.2012.
[2] GALLAGER R G.Low-density parity-check codes[J].IRE Trans.Inform.Theory,1962,8(1):21-28.
[3] MACKAY D J C,NEAL R M.Near Shannon limit performance of low density parity check codes[J].Electronic Lett.,1977,33(5):457-458.
[4] FOSSORIER M P C,MIHALJEVIC M,IMAI H.Reduced complexity iterative decoding of low-density parity-check codes based on belief propagation[C].IEEE Transactions on Communication May,1999,47(5):673-680.
[5] MANSOUR M M.A turbo-decoding message-passing algorithm for sparse parity-check matrix codes[C].IEEE Transaction on Signal Processing,2006,54(11):4376-4392.
[6] MARJAN,JOSEPH R C.Semi-parallel reconfigurable architectures for real-time LDPC decoding[C].International Conference on Information Technology:Coding and Computing,2004:579-585.
[7] SHEVCHENKO A,MASLENNIKOV R,MALTSEV A.Comparative analysis of different hardware decoder architectures for IEEE 802.11ad LDPC code[C].Mediterranean Electrotechnical Conference,2014,17:415-420.