基于对偶基的比特并行算法实现RS 编码

作者: 刘昌银   发布日期:2006-10-11 14:28   查看数:0
中文摘要:

  以DVB2C 系统中的RS 编码为例,参照Berlekamp 比特串行乘法器,提出了一种基于对偶基的比特并行乘法器的方法来实现RS 编码器,可以达到较高的吞吐率,从而可以采用FPGA/ CPLD实现高速RS 编码


引 言
     RS(Reed-Solomon) 码是一类具有很强纠错能 力的多进制BCH 码,广泛应用于卫星通信、移动 通信和数据存储等领域中。RS 码是定义在伽罗 华有限域( Galois Fields) 上的,其编码译码运算都 是有限域上的算术运算。在有限域的各种算术运 算中,乘法是研究较多的,其中Berlekamp 比特串 行乘法器的硬件较为简单[ 1 ] ,适合用于RS 码编 码器。但是Berlekamp 乘法器的问题是,比特串 行的工作时钟频率较高,当编码器的吞吐率要求 较高时,比特串行的运算不易达到速度的要求。 利用Matlab 工具采用Berlekamp 乘法器的思想, 可以用简单门电路实现基的转换,和比特并行速 率工作的有限域乘法。
6  仿真测试结果
     笔者使用Max + plusII 编写了用于DVB2C 的RS(204 , 188) 编码器,采用Altera 的FL EX 器 件EPF10 K10LC8423 就可实现,仅消耗233LCs。 根据Max + plusII 的分析,输入到输出最大的时 延1315ns ,最小的时钟周期2817ns ,工作频率可 以达到34184MHz。 而在本系统中,工作时钟等于MPEG22 传送 层码率。需要说明的一点,输入信号已经加入了 用于纠错字节的位,这样不用进行更改时钟频率 的操作。 为了使用matlab 进行辅助分析方便,设定测 试中的时钟周期为100ns ,即10MHz 频率。 波形仿真结果如图3 。这里采用matlab 编写 了Max + plusII 格式的向量文件vec ,写入matlab 仿真的结果,然后在Max + plusII 中调入,这样就 可以比较波形来判断结果是否一致;同样,可以将 波形仿真结果存为向量文件,使用Matlab 读取, 判断结果是否一致。这个方法这里就不细述了。
7  小结
     本设计将复杂和消耗资源的工作由计算工具 处理(可以使用C/ C + + 程序,Matlab 是最方便 的) ,而实际设计的硬件电路最后形式是非常简单 的组合逻辑门电路,对于在FPGA/ CPLD 上实现 高速RS 编码是最好的方法之一。只要根据生成 多项式系数( 主要在于乘法器的乘数) 改变 Matlab 程序的入口参数即可得到,对组合逻辑相 应的进行修改,就可以实现相对应的高速RS 编 码。而采用工具来进行数学运算,取得对应与生 成多项式系数的组合逻辑是比较简单,而且可以 采用通用程序。 RS 编码,有限域乘法器,FPGA