符合DTMB标准的非规则码LDPC解码器VLSI设计.doc_第1页
符合DTMB标准的非规则码LDPC解码器VLSI设计.doc_第2页
符合DTMB标准的非规则码LDPC解码器VLSI设计.doc_第3页
符合DTMB标准的非规则码LDPC解码器VLSI设计.doc_第4页
符合DTMB标准的非规则码LDPC解码器VLSI设计.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8期陈赟等:符合DTMB标准的非规则码LDPC解码器VLSI设计65符合DTMB标准的非规则码LDPC解码器VLSI设计陈赟,曾晓洋,林一帆,向波,邓运松(复旦大学 专用集成电路与系统国家重点实验室,上海 201203)摘 要:在完全符合数字电视地面传输中国国家标准(DTMB)的芯片系统中,实现了一个码长为7 493bit,同时支持3种码率(0.4, 0.6, 0.8)的非规则LDPC码解码器。在该设计中,使用了一种新的存储器调用的控制策略,在只比单码率最多增加不到5%的存储器的情况下,实现了3种码率存储器的复用。在最大迭代次数为15次的情况下,可以达到150Mbit/s的高吞吐率,而在DTMB中所需的50Mbit/s数据率要求下,迭代次数可高达45次。还给出了FPGA的综合报告和基于SMIC 0.13m CMOS工艺下的解码器版图。关键词:数字电视;VLSI;LDPC;非规则码 中图分类号:TN911 文献标识码:A 文章编号:1000-436X(2007)08-0061-06VLSI design of an irregular LDPC decoder in DTMBCHEN Yun, ZENG Xiao-yang, LIN Yi-fan, XIANG Bo, DENG Yun-song(State Key Lab. of ASIC and System, Fudan University, Shanghai 201203, China)Abstract: An irregular LDPC decoder with a code length of 7 493 bits for DTMB system was implemented based on SMIC 0.13mm CMOS process. A new method to control memories was proposed, which can reuse memories for three different code rates only by increasing 5% memory usage. The throughput of the LDPC decoder is up to 150Mbit/s with the max iterative number of 15. While keeping the throughout of 50Mbit/s, its max iterative number can reach 45. The FPGA synthesis reports and the decoder layout in SMIC 0.13m CMOS technology are given.Key words: HDTV; VLSI; LDPC; irregular code1 引言收稿日期:2007-01-24;修回日期:2007-06-21基金项目:上海市经委资助项目中国标准数字电视地面传输芯片 Foundation Item: The Chip Design of the Digital Terrestrial Media Broadcasting Standard of China现代通信系统中,纠错码是提高信道传输可靠性和功率利用率的重要手段,低密度奇偶校验码(LDPC码)是目前最逼近香农极限的一类纠错码。1962年,Gallager首次提出了LDPC码的古典模型1,即规则(regular)的LDPC码:(n, j, k),在规则的LDPC码中,校验矩阵H具有恒定的行重和列重。LDPC译码实际是一种迭代概率译码,每一轮迭代都需要对码字中各比特关于接收码字和信道参数的后验概率进行估算,整个迭代过程可以看成在由校验矩阵决定的Tanner图上进行的消息传递过程。针对LDPC码,目前的研究工作主要集中以下几个方面:较短码长LDPC解码算法的硬件设计的优化研究2,高数据吞吐率LDPC的硬件实现研究3,低功耗LDPC解码器的硬件实现研究4等。但是,目前通常的研究中,码长通常没有超过2 048bit,在较长码长情况下的成功硬件设计比较少;在全并行结构下能达到很高的解码速度,比如:一个1 024bit,码率1/2的全并行LDPC解码器数据吞吐率能达到1Gbit/s5。但是,全并行结构也有缺点,随着码长的增加,硬件复杂度将大大增加,在特定系统中的应用将受到制约。比如在文献5中,1kbit的码长就消耗了1.7M门。而且,在LDPC码IC的后端设计中,布线将随着码长的增大和tanner图的随机化变得很难完成。另外,非规则LDPC解码器的设计比规则LDPC码难度更大,理论上,融合多种码率的LDPC解码器的存储器容量将成倍增加,从而致使芯片面积成倍增加,布线难度加剧,也将导致芯片功耗大大增加。在数字电视地面传输中国国家标准中6(DTMB,digital terrestrial media broadcasting,以下简称国标),采用了BCH和LDPC级联作为信道的纠错码。要求码长为7 493bit,支持0.4, 0.6, 0.8 3种码率,数据的吞吐率要求达到50Mbit/s。本文提出了一种新的控制存储器调用的策略,为了降低布线的难度,实现3种码率的硬件结构复用,同时使用了存储器复用,两级流水线结构和部分并行的实现方式,以牺牲一部分RAM为代价,成功实现了吞吐率达到150Mbit/s的非规则LDPC解码器的VLSI实现,不仅完成了与DTMB国标系统的FPGA系统联调,还在SMIC0.13m CMOS工艺进行了MPW试流片。相比单码率的实现,存储器的代价最多只增加了不到5%。2 DTMB标准中的LDPC解码算法2.1 DTMB中LDPC码特征在DTMB国标中,3种码率的LDPC较验矩阵被分割为127127的子矩阵(1)每个子矩阵皆为零阵或A阵,其中为行重为1的矩阵,如果n,则表示此矩阵第一行的第n列为1,其余列为0,其余各行均是上一行的循环移位。DTMB中0.4(7493, 3048)码率LDPC码的校验矩阵(H矩阵)为一个44457493的矩阵,进一步可划分成由3559个子矩阵。对于子矩阵的一行,其行重为7或8即每行子矩阵中有7或8个A阵,其他皆为零阵。同理0.6(7493, 4572)码率的H矩阵可以分为2359个子矩阵,每行子矩阵行重12或13,0.8(7493, 6096)码率的H矩阵可以划分为1159个子矩阵,每行子矩阵行重26或27。从国标规定的校验矩阵的特征可以看出,只要存储器能保存每个子矩阵中的非零元素,并且能让这些元素在需要的时候准确调用即可。另外,每个矩阵中A阵的个数相差不多,子矩阵的列数一样使我们复用一些RAM同时满足三种码率的需要成为可能。2.2 非规则LDPC码解码器算法基于上面的分析,采用了最小和乘校正因子的算法,它针对横向更新过程(HPU, horizontal process unit)和纵向更新过程(VPU, vertical process unit)。其中,HPU更新过程最为复杂。2.2.1 HPU的算法流程假设校验矩阵的某行行重为8,定义输入8 bit概率域的似然信息比(LLR, log likelihood ratio)信息分别是:Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7。输出8bit LLR信息分别为:R0、R1、R2、R3、R4、R5、R6、R7。那么输出可以表示为(2)其中,sign(i)表示符号校正,除去本身输入LLR信息符号位其他所有符号位的异或和。当i0时,(3)其他依次类推。min(i)表示最小和项,除去本身输入LLR信息其他所有LLR信息绝对值的最小值。当i0时,(4)2.2.2 VPU的算法流程纵向更新过程就是一个求和运算。假设校验矩阵某列列重为7,输入该比特的初始LLR信息和该比特分别属于7个校验方程的LLR迭代信息,表示为:V、R0、R1、R2、R3、R4、R5、R6。输出该比特分别属于7个校验方程的更新LLR迭代信息(5)(6)(7)(8)(9)(10)(11)3 非规则LDPC的VLSI结构在多次仿真之后,本文采用8bit进行量化。下面我们先给出本文设计的LDPC解码器的VLSI结构,如图1所示,HPU的过程和VPU的过程通过互连网络来控制。再分HPU、VPU和总控状态机三个部分具体说明本文提出的控制的存储器调用的策略是如何工作来满足存储器复用、吞吐率、面积等设计要求的。现有的LDPC解码器的VLSI设计中,为了得到比较高的吞吐率,很多都采用了全并行结构5。全并行延时最短,但是布线最困难;而全串行译码虽然可以把面积做到很小,但是只对单块存储器进行连续不断的访问,延时不能忍受;所以考虑用部分并行的LDPC译码结构。如图1所示的LDPC译码器VLSI结构,该解码器采用了部分并行结构,其中折叠因子是127。在实现时,采用双口RAM,每块RAM由一个控制器控制实现不同码率的地址初始化、读RAM、写RAM。互连网络(interconnection network)由一些开关组成,依据不同的码率来实现不同的连接。由于要支持三种码率,布线难度大大增加,因此在实际硬件实现上做了一些修改,尽量减少全局连线。3.1 HPU的硬件结构HPU模块只输出所有输入的最小绝对值、次小绝对值以及符号,HPU其余的计算放在每块RAM的控制单元里完成。这样可以大大减少了全局连线,从而降低布线难度。对RAM输出到HPU的数据进行锁存后,根据HPU输入的最小和次小绝对值和符号做校正,求出不包括本身的最小绝对值和符号,然后乘以校正因子,送入到RAM相应地址单元。所有的VPU模块只输出所有输入的累加值,VPU其余的工作同样放在每块RAM的控制单元里完成。图1 部分并行的LDPC解码器结构为了降低布线难度和实现三种码率硬件复用,以牺牲一部分RAM为代价。在DTMB的规定中,三种码率校验方程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的利用率比三组更低,如图2所示。图2 HPU硬件结构图2为一个32输入的HPU结构图,3种码率复用,当码率为0.4,3个8输入HPU同时工作;当码率为0.6,2个16输入的HPU同时工作;当码率为0.8,一个32输入的HPU工作。不做4个8输入的HPU是为了保证整个模块接相同个数的存储器块(27个)。码率为0.4时连接3824个存储器块,码率为0.6时连接21326个存储器块,码率为0.8时连接12727个存储器块。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.2 VPU硬件结构3种码率下,VPU的个数都是59个。每个VPU的输入端口也都是各不相同。输入端口个数的分布如图3所示。图3 59个VPU的输入端口数分配不同码率情况下没有用到的端口都置0。比如第一个VPU,输入端口取3种码率的最大值4,当码率为0.6、0.8时,只需要3个端口,所以第4个端口置0,不影响VPU的输出结果。VPU的时序与加入一级流水HPU一致,写地址比对地址延时三个周期。3.3 控制状态机的设计整个解码运算以输入缓存模块被解映射单元写满为开始;以解码成功,或解码迭代次数超过预设值,解码失败为结束。控制状态机如图4所示。图4 总控状态机的设计系统初始处于IDLE状态;等待输入缓存写满后进入LOAD状态;在将初始比特信息写入各个RAM之后(花费128个周期)进入水平过程和硬判决状态;在129或130个时钟周期之后(对0.4码率,花费129个周期,对其他码率花费130个周期)进入垂直过程状态;在经历130个周期后返回水平过程和硬判决状态;如此往复迭代直至解码成功或超时出错。为了提高速度,充分利用每帧的有效时钟周期,输入到LDPC的初始化数据先存入59个缓冲器,然后用127个时钟周期进行并行初始化。这样做的目的是,将LDPC初始化时间减少至127个时钟周期,节省时间用以LDPC迭代译码。而写59个缓冲器是独立控制的,只要初始化操作完成缓冲器被清空,就可以由解映射模块写入下一帧LDPC数据。同理,输出也是并行输出,但只输出信息比特丢弃校验比特,以节省输出缓存占用的面积。如图5所示。图5 LDPC输入输出缓冲结构每次迭代的硬判决结果实际上只需要1bit存放,所有存放Lq、Lr信息的双口RAM扩展一位,存放硬判决结果。这样减少了RAM的个数,有利于面积的优化。硬判是在横向更新里做的,所以当迭代处于VOPE状态时,送入到VPU的Lr信息舍去了最高位,如图6所示。图6 双口RAM传送数据到VPU和HPU4 非规则LDPC解码器的VLSI实现4.1 解码器的FPGA硬件验证根据非规则LDPC解码器结构,本文选择在Altera Stratix II EP2S130器件上进行LDPC解码器的FPGA硬件验证,用Quatus 6.0进行综合。该解码器的单码率和多码率的硬件资源利用情况如表1所示。可以看出使用本文提出的复用策略Memory的数量增加了不到5%。表1 非规则解码器和单码率解码器的FPGA资源利用比较资源名称占用数量利用率非规则单码率非规则单码率ALUMemory bitsDSP block 9bit elements68 864611 0721528 896575 200264.95%9.06%2.97%27.25%852%0.4%4.2 解码器芯片的MPW的流片结果为了方便后端走线,在物理实现流程中做了以下的优化:每行放置0.8码率解码器所需的RAM个数;对于0.4码率的解码应用,每行RAM对应0.4码率解码器的三行;对于0.6码率的应用,每行对应两行。其结构如图7所示。对应此种设计结构每行放置的RAM块数最多27块,最少16块。一共12行。每块RAM可以使用1块127深度的双口RAM或2块同等深度的单口RAM实现。这种设计所需要的RAM一共是310块,而单独码率的设计,0.4码率的需要RAM 275块,0.8码率的需要296块,而0.8码率的需要294块。相比0.4码率的而言,本文提出的方案只增加了5%左右的存储器的个数,就完成了所有3种码率设计在一个芯片中的任务。图7 存储器摆放情况基于SMIC 0.13m CMOS工艺,本文的LDPC解码器的最高时钟频率为80MHz,每次迭代需要260个时钟,最大迭代次数为15次,码长为7 493bit,可以得出解码器的吞吐率为图8所示为符合DTMB标准的数字电视信道解码芯片版图和应用芯片的照片,其中灰色部分的版图为LDPC解码器,其面积约为。图8 DTMB数字电视信道解码芯片版图及应用芯片照片5 结束语本文基于软判决译码规则,采用部分并行结构的译码结构,设计出帧长为7 493bit,融合0.4、0.6、0.8 3种码率的非规则LDPC解码器,在Altera Stratix II的器件上对其FPGA硬件硬件,并且基于SMIC 0.13m CMOS工艺进行了解码芯片的物理实现,即MPW的流片,已经获得了测试的成功。与整个DTMB信道解码芯片一起,成功完成了信道解码功能。LDPC解码器的最大迭代次数为15次,传输速率达到150Mbit/s。本文的下一步工作将集中在面积更小、功耗更低的LDPC解码器的设计,并且将进一步提高传输速率,降低误码率,使整个信道解码芯片的性能更优。参考文献:1GALLAGER R G. Low-density parity-check codes EB/OL. http:/ /people/gallager.html.2YEO E, PAKZAD P, NIKOLI B, et al. High throughput low-density parity-check decoder architecturesA. Proc IEEE ICCT2001 C. 2001. 3019-3024.3MANSOUR M M, SHANBHAG N R. A 1.6Gbit/s 2048-bit programmable and code-rate tunable LDPC decoder chipA. Proc International Symposium on Turbo Codes and Related Topics (ISTC03) C. Brest, France, 2003.137-140.4SHIMIZU K, IS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论