欢迎来到人人文库网! | 帮助中心 人人文库renrendoc.com美如初恋!
人人文库网
首页 人人文库网 > 资源分类 > DOC文档下载

RS系列编译码器的设计与FPGA实现.doc

  • 资源大小:32.00KB        全文页数:10页
  • 资源格式: DOC        下载权限:游客/注册会员/VIP会员    下载费用:5
游客快捷下载 游客一键下载
会员登录下载
下载资源需要5

邮箱/手机号:
您支付成功后,系统会自动为您创建此邮箱/手机号的账号,密码跟您输入的邮箱/手机号一致,以方便您下次登录下载和查看订单。注:支付完成后需要自己下载文件,并不会自动发送文件哦!

支付方式: 微信支付    支付宝   
验证码:   换一换

友情提示
2、本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器)
3、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

RS系列编译码器的设计与FPGA实现.doc

RS系列编译码器的设计与FPGA实现摘要本文介绍了RS255,223编译码器的实现,其中RS编码器的设计中,利用有限域常数乘法器的特性对编码电路进行优化,将所有的乘法器转化为加法器。RS译码器采用欧几里德算法,同时考虑到并行结构所需的硬件资源较多,译码器均采用串行结构实现。这些技术的采用大大提高了RS编译码器的效率,在保证速度的同时最大限度地减少了资源占用。关键词RS码;卷积码;欧几里德算法;FPGA1引言RS码是一种有很强纠错能力的多进制BCH码,也是一类典型的代数几何码。它首先由里德REED和索洛蒙SOLOMON应用MS多项式于1960年构造出来的。它不但可以纠正随机差错,而且对突发错误的纠错能力也很强,因此广泛用于差错控制系统中,以提高数据传输的可靠性。如今,RS255,223已被美国航天局和欧洲空间站在太空卫星通信的级联码系统中作为标准的外码以采用。2RS255,223编码器设计21RS255,223编码原理RSN,K码是一种非二进制的BCH码,工程上的RS纠错编码方式为RS255,223,该码的基本特性如下码类型系统码,非透明码字长度每个RS码字中包含N2J1255个RS符号2558BIT;检验位数NK2T纠错能力可纠任一个RS码字中的T16个RS符号差错;码最小距离DMIN2T1码的符号有限域GF(2J)中的元素,每个RS符号由J8BIT构成,即GF(2)上的8维行向量;码字中信息符号数目KN2T223个;码字格式D1D2D3DID223P1P2PKP32,其中DI为第I个数据符号,PK为第K个校验符号;域生成多项式有限域GF28在其特征域GF2上的生成多项式为F(X)X8X4X3X21其中F(X)为域生成多项式,X为多项式变量;码生成多项式GXXAXA2XA32式中,GX是码生成多项式;AI是GFA8中一个元素。22RS255,223编码的FPGA实现应用MATLAB中的符号乘法,得到RS(255,223)生成多项式中的32项乘法系数。结合域生成多项式生成的监督矩阵表A0,A1,A2A254,通过查表得到32项码生成多项式的系数A18,A251,A215A11,即因此,RS(255,223)编码器示意图如图1所示。图1RS(255,223)编码器示意图由于GF28上的RS码是2M进制码,GF28中的每个元素均可表示成它的自然基底1,的线性组合以乘A8为例可以表示为A8A0A1AA2A2A3A3A4A4A5A5A6A6A7A7A7A5A2AA6A4A1A5A7A2A1A4A7A6A3A21A3A7A6A5A3A2A6A5A4A2A1A5A4A3AA0A4A3A21A7A5A4A3A6A4A3A2A5A7A3A2A1A4A6A2A1A0A3A4A3A1A0A2A7A5A4A2A0A1A7A6A5A1A0A6A5A4A0综上推导,我们可以把所有的乘法器变化为加法器,即模二和的形式。如图2所示。用输入数据信息实例进行了仿真。即输入信息为0,1,2222,时,32个校验位输出为102,212,116,164,159,61,229,39,17,244,245,67,253,18,156,217,115,73,31,174,27,140,69,159,104,219,254,187,173,169,10,116。图2的加法器表示3RS255,223译码器设计译码器的实现主要包括下面四个流程伴随式计算、关键方程求解、钱搜索计算错误位置、福尼算法计算错误值。原理参考文献14。31伴随式计算定义伴随多项式为其系数为其中,N255,I132,Α为X8X4X3X210所生成的GF28中的本原元。32关键方程求解定义错误位置多项式为错位值多项式为结合上一步求出的伴随多项式,根据RS码的性质,我们有称它为关键方程。上式可写成由EUCLID算法3可以知道ΩX是SX与X2T1的最大公因子。同时,由简单的证明可知,只要假设U11,U00,V10,V01,即可利用每一次求到的QJX,来求出当前时刻的UJX和VJX,因此可以得到EUCLID译码算法流程图如图3所示。当求出ΣX和ΩX后,利用它们可以求出错误值,从而利用钱搜索,可找出错误位置,求出错误图样,从而实现译码。33钱搜索计算错误位置在上一步关键方程中求得ΣX后,接下来的问题是从工程观点看,如何简单地求出它的根即错误位置。1964年钱闻天提出了一个求ΣX根的使用方法,解决了这个问题。解ΣX的根,就是确定RX中哪几位产生了错误。设RXRN1XN1RN2XN2R1XR0,为了要检验第K位RNK是否错误,相当于译码器要确定ΑNK是否是错误位置数,这等于检验ΑNK是否是ΣX的根。若ΑNK是ΣX的根,则这样依此对每一个RNKK1,2,,N进行检验,就求得了ΣX的根,这个过程称为钱搜索。图3EUCLID译码算法流程34福尼算法计算错误值RS译码的最后一步就是求错误值YI。设实际产生的错误个数Γ≤T,则由可知所以由于恒等式左边最高次数为2Γ,故上式成为求ΣX的导数形式另XXI1,则上式成为所以令XXI1,则上式成为所以错误值注意上式可写成其中XI是错误位置对应的本原形式,ΣX和ΩX分别是错误位置多项式和错误值多项式,Σ’X为ΣX的一次导数。其中,Σ1,Σ3为错误位置多项式奇数项系数35RS255,223译码的FPGA实现351伴随式计算的实现伴随式计算电路结构如图4所示。图4中R0R254为译码输入。为了节省硬件资源,同时考虑到每个伴随式系数在计算上相互没有关系,故采用串行计算得到SI。具体做法为首先将译码输入R0R254写入到一个片内RAM,每计算一个伴随式,将其从RAM中串行读出,并进行迭代运算。图4伴随式计算电路352关键方程求解的实现在欧几里德EUCLID算法3中,用到了多项式的除法和乘法运算,为了节省资源,必须利用一个有效的刷新办法对该除法器和乘法器进行实时刷新,使得每进行一次迭代后,除法器和乘法器中的内容及时更新,我们把3中的算法结构上做如下的改进在做多项式除法和乘法之前,先进行数据的并串转换。这样只要一个多项式除法器和一个乘法器就可完成该算法,在保证运算速度的同时也最大限度地节省了硬件资源。在下面的部分给出这两个模块的实现。1多项式除法器假设多项式AX除以BX的商为QX,余数为RX。若某次迭代时AX的阶数为M,BX的阶数为N,M≥N。由多项式除法原理可知,QXBN1AMXMN,每次同MN一起输出;而RXAXBXQX是一个降次的过程,每降一次都需要将AX用RX刷新,直到它的阶数小于BX的阶数时,表明此次除法运算结束,用BX和RX分别对AX和BX进行同步刷新,继续进行下一次除法运算。当RX的阶数小于或等于T时,算法中的除法迭代运算结束。在实现中有两点需要注意第一点是我们用两组固定长度的寄存器来存放AX和BX的系数,除了第一次初始化的时候需要给出它们的阶数外,以后每次它们的阶数都是由RX或上一次的BX的阶数直接赋值,而由于每次RX是串行得到的,其阶数能通过判断每次的值是否为零累加得到;第二点是每次在对存放BX系数的寄存器进行更新时,应将BX的最高位和AX的最高位对齐,从而方便RX的求解,同时在用BX对存放AX系数的寄存器进行更新时应注意该操作带来的影响。整个多项式除法器的实现如图5所示。2多项式乘法器多项式乘法器将多项式除法运算的结果Q和DEGQ实时输入多项式乘法器,AX赋初值1,BX赋初值0,每完成一次除法运算,多项式除法器模块给此模块一个控制信号,AX与BX互换。迭代运算时代门关闭,输出无效;当除法迭代结束时,多项式除法器模块的控制信号控制门打开,输出有效。多项式乘法器如图6所示。353钱搜索计算错误位置的实现在工程上,钱搜索过程可用图7所示的电路实现,它的工作过程如下1T个寄存器寄存Σ1,Σ2,,ΣT,当错误个数ΓLT;T,则ΣΓ1ΣΓ2ΣT0。2RN1正要从缓冲存储器读出之前,T个乘法器由移位脉冲控制乘法运算,且Σ1Α,Σ2Α2,,ΣTΑT存在Σ寄存器中,并送入A中进行运算和检验。若等于1,则A输出一个信号,控制门打开,把错误值YN1与缓存器输出的RN1相减,得到RN1YN1CN1。3RN1译完后,再进行一次相乘,此时Σ1Α2,Σ2Α22,,ΣTΑT2存在Σ寄存器中,并在A中进行相加运算和检验,对RN2进行纠错。4其余码元同2一样纠错。图5多项式除法器流程图图6多项式乘法器流程图图7CHIEN搜索电路并行以上的计算是并行计算的,我们在处理中,为了节省硬件资源而采用串行计算,需要把每次迭代的数储存起来,在这里使用了一个片内RAM,实时更新里面的内容,同时RAM的数据地址表示移位次数。当Σ1Σ16都移位完成之后,输出RAM数据为0的数据地址即移位次数表示错误位置。改进的串行计算部分电路图如图8所示。图8CHIEN搜索部分电路354福尼算法计算错误值的实现福尼算法计算错误值可以采用与钱搜索类似的电路实现。同样,在计算错误值多项式时,我们也采用串行计算,刷新片内RAM并累加得到,整个福尼算法的电路如图9所示。图9福尼算法电路4编解码性能测试与仿真(1)选取具有代表性的测试数据序列,把编码结果与MATLAB计算结果比较完全正确。(2)把编码器与译码器级联,确认译码器输出结果完全正确。(3)将编码器一组输出码字的任意16位出错作为译码器的输入,经过仿真16位均被纠正。(4)实现卷积4,3,3与RS255,223级联,确认输出结果正确。如图10所示,为卷积4,3,3与RS255,223级联的仿真图。图中RSIN为RS编码器输入,RSOUT为编码器输出,JLIANOUT为RS255,223卷积4,3,3级联编码输出,CORR_CODE为RS255,223卷积4,3,3级联译码输出。图10RS255,223卷积4,3,3级联编码输出时序5FPGA资源分析本文RS255,223编译码器的设计通过ALTERA公司的QUARTUSⅡ软件开发平台上完成了功能仿真、编译综合并优化、布局布线、时序仿真等工作。本文选用CYCLONEⅡ系列器件的EP2C8T144C8,分别将上述译码器实际占用FPGA资源情况如表1所示。表1编译码器片内资源占用情况6结论本文介绍了RS255,223编译码器的设计以及FPGA实现,并通过了QUARTUSⅡ的功能仿真,布局布线和时序仿真。在30MHZ的时钟频率下编译码器的数据吞吐率为240MBPS,译出一桢数据255BYTE需12MS,相比与目前的一些文献,占用的硬件资源较少且速度较快。FPGA的仿真测试表明译码的技术指标均符合要求,该设计不仅可以和别的FEC技术结合,提供强大的纠错能力,而且也可以专门用于ASIC设计中。

注意事项

本文(RS系列编译码器的设计与FPGA实现.doc)为本站会员(abingge)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(发送邮件至[email protected]或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

网站客服QQ:2846424093    人人文库上传用户QQ群:460291265   

[email protected] 2016-2018  renrendoc.com 网站版权所有   南天在线技术支持

经营许可证编号:苏ICP备12009002号-5