首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的RS(255,239)编译码器设计

基于FPGA的RS(255,239)编译码器设计

RS(Reed-Solomon)编码是一种具有较强纠错能力的多进制BCH编码,其既可纠正随机错误,又可纠正突发错误。RS编译码器广泛应用于通信和存储系统,为解决高速存储器中数据可靠性的问题,文中提出了RS编码的实现方法,并对编码进行了时序仿真。仿真结果表明,该译码器可实现良好的纠错功能。

RS(Reed-Solomon)码是差错控制领域中的一种重要线性分组码,既能纠正随机错误,又能纠正突发错误,且由于其出色的纠错能力,已被NASA、ESA、CCSDS等空间组织接受,用于空间信道纠错。本文研究了RS码的实现方法,并基于Xilinx的FPGA芯片Spartan-6 XC6SLX45完成了RS编译码器的设计,同时对其进行了仿真和在线调试,并给出了功能仿真图和测试结果。时序仿真结果表明,该编译码器能实现预期功能。

1 RS编码的实现方法

RS码是一种多进制BCH(Bose-Chaudhuri-Hocquenghem)码,在给定每个码字所具有多少冗余量的情况下,RS码具有极大的最小距离。即RS码的最小距离d、信息长度k以及码字长度n满足d=n-k+1.而RS(255 239)码是在伽罗华(Galois Field)GF(28)中运算得到的,编码器实现的关键是伽罗华域乘法器的设计。设计中的乘法是2个有限域中元素的指数相加与255取模。GF(28)编码参数如下:码长n=255;信息位个数k=239;校验位r=n-k=16;纠错能力t=8;码距d=17.生成多项式为




根据式(3)画出RS编码的电路图,如图1所示。



图1 RS编码的电路图


n-k级RS编码器主要由一组线性反馈移位寄存器和控制电路组成,其是n-k=16级编码器,亦是线性反馈寄存器的反馈系数,reg16寄存器的值与当前输入的信息码元异或得到的结果即为feedback寄存器的值。

编码步骤:

步骤1将所有寄存器清零,开关放到1上,则239个信息码元一边依次进入除法电路,一边依次输出。

步骤2当最后一个信息码进入电路后,将开关放到2上,第一个校验位输出。

步骤3校验码按时钟节拍载入寄存器,并依次输出。当最后一个校验位输出时,编码结束。

2 RS编码的仿真结果及分析

设计的RS(255 239)编码器使用Verilog HDL对整个模型进行描述,以Xilinx FPGA芯片Spartan-6XC6SLX45为硬件平台进行实现,并利用ISim仿真工具对RS编码进行仿真。



图2 RS编码器的 波形仿真图


设计的RS(255,239)编码器,信息位239位编码为0,1,2,…,238,则16位校验位的值为58,236,152,44,88,31,20,168,121,60,32,10,191,166,4,101.设计的RS(255,239)编码器的仿真图如图2所示,当DI_VAL=0时,输出239个信息位;当DI_VAL=1时,输出16个校验位。该编码器实现了预期的编码功能。

3 RS译码的实现方法

RS译码主要有时域译码和频域译码,时域译码一般采用BM迭代算法或欧式算法(Euclid's Algorithm)。RS译码中最重要的环节是求解关键方程,欧式算法在求解关键方程时需进行多项式次数的判断,因此造成硬件电路复杂,译码速度下降,BM迭代算法具有快速、消耗资源少、控制电路较为简单等优点。文中改进后的BM迭代原理及以该算法为基础的RS译码器的FPGA实现。RS译码可分为4步:(1)由接收到的码组计算伴随式。(2)求关键方程。(3)计算出错误图样。(4)由错误图样和接收码组计算出可能发送的码字。图3给出了RS译码器的一般步骤框图。



图3 RS译码器的一般步骤框图


以上运算均可用流水线结构硬件实现。



图4 伴随式求解框图
返回列表