首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于FPGA的RS(255,239)编译码器设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于FPGA的RS(255,239)编译码器设计
发短消息
加为好友
Bazinga
当前离线
UID
1023230
帖子
5213
精华
0
积分
2607
阅读权限
70
在线时间
158 小时
注册时间
2013-12-20
最后登录
2015-10-22
金牌会员
UID
1023230
1
#
打印
字体大小:
t
T
Bazinga
发表于 2014-12-31 17:02
|
只看该作者
基于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 伴随式求解框图
初始化时,所有寄存器置零。经255个周期,接收完所有255个符号后,便可得到全部16个伴随式。因整个译码器采用流水线结构,所以在伴随式计算完后,产生一个时钟周期有效的“sc_done”信号,用以启动后续电路进行新的计算。由于在BM模块中,用到了A(x)与S的卷积求和,因此本模块将计算出的伴随式序列串行输出。
关键方程的计算采用BM算法,BM算法不仅在RS码的译码中起着关键作用,且也是目前已知的求序列线性复杂度最快且最佳的方法之一。该算法采用规整的脉动阵列,硬件实现更为方便。通过求解关键方程,得到A0~A8,其为后续的Chien搜索模块提供了参数。
图5 chien搜索模块框图
图6 译码的详细过程框图
该过程完全实现流水线结构,其中包括伴随式计算、关键方程求解、Chien搜索、Forney算法等模块并行工作。在经过295个固有延迟后,每个时钟周期均可连续输出经校正的码字。
4 RS译码的仿真结果及分析
因设计的译码器最大纠错能力为8个符号,该文设定错误情况是第140位到第147位全错,正确值为140,141,142,143,144,145,146,147,错误值为5,11,56,98,35,15,132,159,图7是输入到译码器中含8个连续错误码字的255位编码序列,图8是译码器输出全部纠错以后的编码序列,由ISim仿真波形图可知,Err_Indicator表示错误标志,设计的译码器能实现最大的纠错能力。
图7 译码器输入时序图
图8 译码器输出时序图
5结束语
文中阐述了RS(255,239)编译码器的设计原理,并对编码器给出了在ISim中的时序仿真结果,其结果证明了该编码器设计的正确性。而在对译码器的设计中,假定出现连续8个误码的情况,并用ISim对所设计的译码器进行验证,由时序仿真结果表明,设计的RS(255,239)译码器能实现最大的纠错能力。设计的RS(255,239)编译码器达到了预定的目标,且该编译码器可应用于数据通信和数据存储系统的差错控制中。
收藏
分享
评分
the king of nerds
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议