RS编译码的一种硬件解决方案
3.2 利用伴随式确定关键方式
Euclidean算法的难点主工在于迭代计算过程中存在的被除数多项式和除数多项式长度的不确定性,使每次计算中产生的商序列的长度不等,
以及因此可能涉及到的不定长多项式的相乘和相加问题,增加了硬件设计的难度。系统采用了嵌套双循环的方法,利用'时钟产生2'控制外循,'时钟产生1'控制内循环,从而优化了算法,得到了问题的解决方案。在获得伴随式的基础上,图3电路可具体完成Euclidean算法对关键方程的求解σ(x)=σtxt+σt-1xt-1+…+σ1x+1。
3.3 利用最短线性移位寄存器综合和离散傅氏变换获取错误图样
在得到关键方程后,首先应进行错误位置(关键方程的根)的确定,这样可减小电路的规模;利用钱搜索[1](工程上求解σ(x)根的实用方法)的方法可以简捷的确定错误位置。然后,启动最短线性移位寄存器综合和离散傅氏逆变换,经过N次(运算所在域的长度)迭代,即可求得对应各个错误位置的错误图样,如图4所示。用错误图样对接收码字进行纠错,就可得到正确的信息序列。
3.4 RS编译码在FPGA上的实现
有限域的乘法、加法运算单元和各模块的控制逻辑设计是系统成功的关键。涉及有限域的各个运算单元的运算速度制约了译码器的速度,而控制逻辑引导了译码的流程。硬件电路的软件开发工具给设计复杂电路提供了简捷思路。系统采用了QUARTUS与第三方软件相结合的方法,用VHDL语言设计了大部分功能模块。特别是在乘法器设计中,乘数确定、被乘数不定的有限域乘法器,经逻辑综合和优化设计后,运算速度可分别在6.8ns和11.6ns内完成,完全可以满足系统符号速率50Mbps的要求。应该指出,系统速度的进一步提高受到求逆运算的限制,求逆运算没有明确的数学结构(通常采用查表的方法),这是制约运算速度的瓶颈。但针对流式译码算法,上述结构已能满足要求。
4 仿真结果
4.1 编码器的仿真
仿真的时钟频率为50MHz,在EN为高电平时输入信息有效。为简单起见,采用系统码的缩短型,即信息为(00,00,…,00,02,01,02).编码器的仿真结果如图5所示。其中,IN为输入信息,CLK为系统时钟,C为编码输出(输入和输出均为16进制)。
4.2 译码器的仿真
首先,给出系统的仿真全貌,如图6所示。其中C为接收到的RS码,SP为伴随式S15,shang为运用欧氏算法得到的商序列,SeryDA为S序列,anssd和ERTD分别对应码字可能存在的第四个错误位置和错误值,仿真中的接收码在位置(105,106,107,108,109,110,111,112)上错误均为(01)HEX。
伴随式的计算结果:S15,S14,…,S1,S0为(FD,8D),CE,4A,51,B2,A1,CA,C4,0D,73,56,A6,F5,01),图6和图7中的sp即为S15。
这里重点给出利用伴随式计算关键方程的电路仿真结果,如图7所示。当输入伴随式结果以后,运算电路启动,在计算商序列的同时进行联接多项式的迭代运算。欧氏算法的商序列shang为:(FF,58),(37,92),(50,45),(E9,C7),(F4,B9),(5D,33),(87,8F)。当满足终止条件以后显示标志QQC,同时,给出关键方程系数如图7中(AI,AH,
《RS编译码的一种硬件解决方案(第2页)》