您的位置  > 互联网

FPGA平台开发出一种RS译码器,实现有限域乘法运算

0 前言

G3-PLC是G3-PLC联盟于2009年推出的窄带电力线通信规范,已获得多个国际标准体系的认可,并被国际几大电表制造商采用。 电力线信道条件较差,存在各种干扰,导致电力线数据传输误码率较高。 RS码可以有效地纠正随机错误和突发错误。 在G3-PLC信道编码系统中,在10-4 BER(误码率)的条件下,添加RS模块比不添加RS模块至少多提供1dB的编码量。 增益[1],充分说明了RS码在G3-PLC系统中的重要性,可以有效提高系统通信的可靠性。

RS解码过程的运算是在有限域中定义的,因此有限域运算的设计对于解码器的整体性能具有重要意义。 有限域运算的主要难点在于有限域乘法运算和有限域求逆(除法)运算的硬件设计。 目前有限域乘法器的电路实现主要有位串行结构和位并行结构[2]。 位串行结构采用时序电路设计,优点是占用资源少,但运算速度慢。 位并行结构采用组合逻辑结构实现,运算速度快,但接线复杂。 根据伽罗瓦域的性质,可以将有限域求逆运算转化为乘法运算[3],因此可以使用有限域乘法器来实现求逆运算,但仍难以避免其缺点。有限域乘法器本身。 为了避免反演操作过于复杂,人们提出了一种改进的BM算法,消除了BM迭代过程中的反演操作[4-5]。 无需求逆的BM算法可以有效避免求逆操作,但算法的证明比较复杂。 针对上述问题,本文提出一种查表方法来实现有限域乘法和求逆运算,简化了有限域求逆运算的硬件实现复杂度,使得传统的BM迭代可以高效地实现RS解码。

1基于G3-PLC的RS代码结构

RS码是非二进制BCH码的一个重要子类。 RS码的最小距离等于其奇偶校验符号的个数加1,是GF上最小距离最大(2m)的线性分组码。 基于G3-PLC的RS代码的生成多项式为:

其中,α为 GF(28)上的本原元,t=8为可校正符号数[6~7]。 相应的本原多项式为:

在G3-PLC系统中,根据不同的通信速率和信道环境,物理层选择不同的符号数量和调制方式,从而产生不同的码字长度。 当调制方式为DQPSK时,共有6种可选码字长度,分别为:(251/235)、(233/217)、(179/163)、(143/127)、(89/73)和( 53/37)。 这些码字都是RS(255/239)的缩短码,具有相同的译码结构和纠错能力。 因此,本文以RS(251/235)为例进行设计和实现。

2RS解码原理及实现

基于BM迭代的译码算法由于其实现过程相对简单、译码速度快,是最常用的RS译码算法。 解码的一般步骤是:

(1)计算接收到的码字R(X)的2t个伴随表达式Si,i=l,2,...2t;

(2)利用BM迭代算法求出错误位置多项式;

(3)利用Chien搜索(Chien)求解错误位置多项式的根以确定错误位置;

(4)利用算法求出错误位置处的误差值;

(5) 通过上述步骤得到误差多项式E(X),则纠错码字多项式为:

从上述步骤可以看出,RS解码器必须包含4个模块,即伴随解模块、BM迭代模块、根模块、算法求误差位置系数模块。 相应的解码流程如图1所示。

2.1 有限域查找表的构建

RS解码算法中的四种算术运算都是在相应的伽罗瓦域中进行的。 传统的有限域乘法和除法运算实现起来相对复杂。 使用查表法可以简化有限域乘法运算和求逆运算。

伽罗瓦域元素通常有向量表示和幂表示。 例如,GF(28)中元素α1的向量表示为()。 向量表示有利于有限域加法运算,而幂表示有利于乘法和除法运算。 查表运算的过程是通过查表实现伽罗瓦元素的向量表示和幂表示之间的相互转换,从而可以根据相应的运算要求切换伽罗瓦域元素的表示,以简化运算。 目的。 构造两个如图2所示的存储空间,分别用于存储GF(28)域中元素的幂形式和向量形式。

在进行伽罗瓦元乘法时,首先将向量形式转换为幂形式。 幂加法对应于乘法运算,幂减法对应于除法运算。 然后判断向量形式的元素是否有0变量,如果存在则向量域地址为0,如果不存在则将幂域和模255加1的值作为向量域的地址。 最后,将运算结果转换回向量形式。

计算a×b的伪代码如下:

y1=Men_a(a);

y2=Men_a(b);

y3=y1+y2;

如果(y1==||y2==)

y4=;

别的

y4=Men_b(mod(y3,255)+1);

计算a÷b,即a×b-1对应的伪代码为:

y3=y1-y2;

2.2 伴随计算

假设接收多项式为:

R(X)=r0+r1X+r2X2+…+rn-1Xn-1

然后由

Si=R(αi),1i2t

必须:

Si=r0+r1αi+r2α2i+…+rn-1αi(n-1)

直接使用该公式进行硬件实现时,需要对码字的长度进行相应配置,实现过程中相对繁琐,因为在G3-PLC系统中,使用DQPSK调制时有6种可选的码字长度,这就需要配置 6 种不同的伴随计算模式。 将伴随的计算公式稍微变形一下,我们可以得到:

因此,伴随计算的硬件结构如图3所示。

在计算伴随数的过程中,只需配置αi的值即可得到对应的伴随数,可以适应不同的码字长度。 基于G3-PLC系统的RS码解码器的输入需要进行串并转换,因此每个符号的输入将维持8个时钟周期,时钟内i的值配置为1每个符号输入的周期。 2、3...8。 当输入所有符号时,将得到8个对应的伴随词S1、S2、S3…S8。 将图3所示的结构单元复用一次,在每个符号输入的时钟周期内将i的值配置为9,10,11…16,即可得到S9,S10,S11…S16。

2.3BM迭代

将误差位置多项式 σ(X) 定义为:

其中,βi表示误差位置,BM迭代的具体过程如下:

(1)初始化。 令k=1,σ(1)(X)=1,d1=S1,T(1)(X)=X,N1=0。 其中,N表示该时刻对应的误差位置多项式的最高次方,T表示修正项。

(2) 判断校正系数dk是否等于0。若dk≠0,则σ(k+1)(X)=σ(k)(X)+dkT(k)(X),则计算T( k+1)(X),首先判断2Nk是否大于等于k if 2Nk

(3) 计算下一步的修正系数:

dk+1=Sk+1+Σ°σ(k+1)(X)i=1Sk+1-iσi

其中,°σ(k+1)(X)表示σ(k+1)(X)的最高次数。 更新Nk+1的值,即Nk+1=kN。

(4)更新k的值,即k=k+1。

(5)判断k是否小于2t。 如果 k

步骤(2)中出现的反转操作是使用2.1节中介绍的查表操作来实现的,因此可以使用传统的BM迭代来有效地实现RS解码。

2.4 钱搜索和福尼算法

求解 σ(X) 的根。 由于 σ0=1,因此 0 元素不是 σ(X) 的根。 因此,将伽罗瓦域GF(28)中的所有非零元素一一代入到错误位置多项式σ(X)中。 ,通过对得到的根进行乘法逆运算就可以得到误差位置。 最后采用图4的结构来实现。 第一个时钟周期不进行乘法,相当于判断σ(α0)是否等于0。从第二个时钟周期开始,先进行乘法,再判断求和。 255个时钟周期后,GF(28)的所有非零元素都可以被遍历。

由关键方程可知:

可见(X)的最大度为2t-1,故定义:

因此存在误差值多项式:

根据图5的结构得到误差位置多项式的2t个系数后,通过算法得到误差位置βk处的误差值δk:

2.5 纠错

经过上述操作,就可以得到错误位置以及错误位置处的错误值。 通过查σ的根即可得到错误位置(将更新后的值重写回原来的地址,从而纠正错误码字。具体结构如图6所示。

3RS解码器仿真与综合结果

3.1 仿真结果

为了方便观察结果,将第一帧中待编码的字设置为[235:1],编码后的前8个位置为错误位置,这样接收到的值为[8 7 6 5 4 3 2 1],即 [8 (235) 7(234) 6(233) 5(232) 4(231) 3(230) 2(229) 1(228) 227…206 122 61] 作为第一个输入到解码器的帧,其中括号是正确的值。 该公司的NC-用于模拟设计。 从仿真图7和图8可以看出,8个错误全部被纠正。

3.2 综合结果

通过综合和实现,并采用1块FPGA进行硬件实现。 实现过程中使用的RAM和ROM由Zhong IP生成[8]。 最终,BM迭代模块、纠错模块、求根模块、误差值计算和伴随计算模块分别使用了517、721、413、572和525个LUT单元。 在100 MHz时钟约束下,建立时间和保持时间都有余量,表明解码器的工作频率至少可以达到100 MHz。

4。结论

本文阐述了基于G3-PLC的RS解码器的解码原理和实现结构。 提出一种查表操作来实现有限域上的乘除运算,提高了运算速度且实现简单。 利用NC对所设计的解码器进行仿真验证,给出了仿真时序图。 结果表明,所设计的RS译码器可以纠正8个符号错误。 最后综合设计,采用1块FPGA进行硬件实现。 本设计占用资源较少,不到总资源的3%。

参考

[1] K,UMARI M,A. [C]新型G3PLC中的错误。 电力线及其 (ISPLC),2010 IEEE。 IEEE,2010:5055.[2]聂鹏。 OFDM系统中高速RS码的研究与实现[D]. 武汉:华中科技大学,2012。

[3]林纾. 差错控制编码[M]. 北京:机械工业出版社,2007。

[4]RS(255, 251)的DAS AS,DAS S,J.和FPGA中的研究[J]. 软科学与技术, 2013, 2(6):391394.

[5]石宇,黑勇,乔树山. 一种适用于PLC系统的多码率

RS码译码器[J]. 微电子与计算机,2014(2):5761。

[6] K,UMARI M,A,等。 G3PLC的: ,及现场试验[C]. IEEE 电力线与智能交通系统,2010:313318。

[7]. G3PLC层[Z].2009.

[8] 孟宪元. 新一代FPGA设计套件应用指南[M]. 北京:清华大学出版社,2014。