基于FPGA的RS编码器的设计与实现 - 21IC中国电子网

基于FPGA的RS编码器的设计与实现

时间:2009-03-09 09:55:18 来源:电子科技 作者:何秋阳

1 RS编码原理

RS编码是一种线性的块编码,其表示形式为RS(N,K)。当编码器接收到一个数据信息序列,该数据信息序列被分割成若干长度为K的信息块,并通过运算将每个数据信息块编码成长度为N的编码数据块。在RS码中的码元符号不是二进制而是多进制符号,其中2m进制使用更为广泛。能纠正t个错的RS码具有,如表1参数所示。上述参数,t表明最多可以纠正t个随机错误符号。

由于RS码是对多进制符号纠错,RS码可用于纠正突发错误,比如能纠两个八进制符号错误的RS(7,3)码,每个符号可用3 bit二进制符号表示。八进制的RS(7,3)码相当于二进制的(21,9)码,因此纠两个符号就相当于纠连续6 bit二进制符号的突发错误,然而二进制的(2l,9)码却没有纠6 bit突发错误的能力,它能纠任何2个随机错误以及长度≤4的突发错误。

通用的RS编码的运算步骤:

(1)确定RS编码器的生成多项式g(x),这里选用了最为常用的生成多项式,如式(1)所示。

式中a定义为m阶初等多项式p(x)的根它可生成全部GF域的元素。(有关GF域的内容可参阅相关书籍)。

以RS(15,9)为例,RS(15,9)的生成多项式,如式(2)

(2)通过对取模运算产生校验信息多项式p(x)如式(3)

式中m(x)表示RS编码码字中的数据信息,它是K一1阶的线性多项式。

(3)通过加法运算生成最终的编码后的多项式c(x)如式(4)

RS码的编码主要是围绕码的生成多项式g(x)进行的,一旦生成多项式确定了,则码就完全确定了。

2 RS编码的设计实现

在一些特定应用域中,RS码的设计与实现是比较困难的。RS码是在有限域上进行的代数运算,不同于常用的二进制系统,实现相对复杂一些,其复杂度主要决定于有限域的大小、码字的长度、采用的编码算法等,编码器的实现方式主要有以下几种:

(1)微处理器实现的RS编码。

通用的微处理器采用查表(Table—lookup)方法可以实现RS编码,首先需要产生有限域运算中的系数,存于内存中,就可以通过查表的方法实现编码了。

(2)利用DSP实现的RS编码。

DSP早已成为传统微处理器的一种替代品,现在的DSP芯片已能对一些特定的应用提供并行的处理结构,可以在DSP芯片中完成RS编码,不过DSP不是专为实现纠错中需要的特定功能设计的,同样也可以采用查表的方法在DSP中实现快速有限域运算。

(3)ASIC实现的RS编码。

ASIC是专用集成电路,由LSI—Logic Corpera—tion设计的ASIC芯片,有3 kB的RAM和4 kB的ROM,是实现高速编码器的最佳选择。

(4)FPGA实现的RS编码。

FPGA能够快速和经济地将电路描述转化为硬件实现,而且对设计的修订也比较方便。而通常的ASIC需要的设计时间较长,制作费用也较高,也不便于调整。所以本设计是基于FPGA的RS编码设计。

如图1所示为本设计所采用的编码器的结构。

其工作原理如下:

(1)寄存器R0~R2t-1全部清零。开关接通A点,然后信息位分为两路送电路中,一路直接送入C(x),一路送入除法电路并进行移位。每一个时钟移一个字节;

(2)在k个时钟结束的时候,信息位全部输入,完成除法功能。此时移位寄存器里保留了余式r(x)的系数,这就是RS码的校验位;

(3)在k+1个时钟到来的时候,开关接通B点。寄存器中的数据依次移出,送入信道。在经过2t个时钟后数据全部移出,得到2t个校验位。这2t个校验位跟在原先的尼个信息位的后面,组成(n,k)码输出。这样就完成了RS码的编码;

(4)寄存器R0~R2t-1全部清零,重复步骤(1)、(2)、(3),完成对下一组RS码的编码。

3 RS编码乘法器的Verilog语言描述

下面以RS(15,9)为例描述有限域的乘法实现思路如下:

根据上面的式子可以写出RS(15,9)的6个乘法器。如:与g0相乘的结果

其余乘法器的描述方法与此类似。完成对乘法域的语言描述,剩下的工作就是对加法器的描述了,由于加法实现比较简单,这里就不做介绍了。接下来就是控制输出信息位还是校验位的开关都是比较好设计的。

4 RS编码器的仿真

本设计是实现了RS(15,9)的编码,本设计编码器的模块框图,如图2所示。

各信号说明如下:

本设计信号时钟clk周期是40 ns,clrn是复位号,data表示信息输入有效,enable表示启动编码器,开始编码,x是4 bit信息符号,y是编码生成的4 bit码字。由下图编码图形可知,一次编码周期需要590.0 ns,最大编码速率为l700 MHz。因此,一次编码需要15个时钟周期。在25 MHz的时钟下,RS编码器仿真时序图,如图3和图4所示,并由仿真图可看出,本算法的编码速度高时延间隔不到半个周期。

RS编码测试数据如下:

输入信息:0,1,2,3,4,5,6,7,8;

编码器输出:0,1,2,3,4,5,6,7,8,B,C,0,5,7。

5 结束语

RS编码的所有运算都是建立在有限域的基础上的,其中乘法器的设计是其编码技术的关键。本设计实现了RS(15,9)的编码设计和仿真,仿真输出结果与理论分析一致,基于相同的原理,可以实现任意数据块长度的RS编码器设计。

基于FPGA的RS编码器的设计与实现

时间:2009-03-09 09:55:18 来源:电子科技 作者:何秋阳

1 RS编码原理

RS编码是一种线性的块编码,其表示形式为RS(N,K)。当编码器接收到一个数据信息序列,该数据信息序列被分割成若干长度为K的信息块,并通过运算将每个数据信息块编码成长度为N的编码数据块。在RS码中的码元符号不是二进制而是多进制符号,其中2m进制使用更为广泛。能纠正t个错的RS码具有,如表1参数所示。上述参数,t表明最多可以纠正t个随机错误符号。

由于RS码是对多进制符号纠错,RS码可用于纠正突发错误,比如能纠两个八进制符号错误的RS(7,3)码,每个符号可用3 bit二进制符号表示。八进制的RS(7,3)码相当于二进制的(21,9)码,因此纠两个符号就相当于纠连续6 bit二进制符号的突发错误,然而二进制的(2l,9)码却没有纠6 bit突发错误的能力,它能纠任何2个随机错误以及长度≤4的突发错误。

通用的RS编码的运算步骤:

(1)确定RS编码器的生成多项式g(x),这里选用了最为常用的生成多项式,如式(1)所示。

式中a定义为m阶初等多项式p(x)的根它可生成全部GF域的元素。(有关GF域的内容可参阅相关书籍)。

以RS(15,9)为例,RS(15,9)的生成多项式,如式(2)

(2)通过对取模运算产生校验信息多项式p(x)如式(3)

式中m(x)表示RS编码码字中的数据信息,它是K一1阶的线性多项式。

(3)通过加法运算生成最终的编码后的多项式c(x)如式(4)

RS码的编码主要是围绕码的生成多项式g(x)进行的,一旦生成多项式确定了,则码就完全确定了。

2 RS编码的设计实现

在一些特定应用域中,RS码的设计与实现是比较困难的。RS码是在有限域上进行的代数运算,不同于常用的二进制系统,实现相对复杂一些,其复杂度主要决定于有限域的大小、码字的长度、采用的编码算法等,编码器的实现方式主要有以下几种:

(1)微处理器实现的RS编码。

通用的微处理器采用查表(Table—lookup)方法可以实现RS编码,首先需要产生有限域运算中的系数,存于内存中,就可以通过查表的方法实现编码了。

(2)利用DSP实现的RS编码。

DSP早已成为传统微处理器的一种替代品,现在的DSP芯片已能对一些特定的应用提供并行的处理结构,可以在DSP芯片中完成RS编码,不过DSP不是专为实现纠错中需要的特定功能设计的,同样也可以采用查表的方法在DSP中实现快速有限域运算。

(3)ASIC实现的RS编码。

ASIC是专用集成电路,由LSI—Logic Corpera—tion设计的ASIC芯片,有3 kB的RAM和4 kB的ROM,是实现高速编码器的最佳选择。

(4)FPGA实现的RS编码。

FPGA能够快速和经济地将电路描述转化为硬件实现,而且对设计的修订也比较方便。而通常的ASIC需要的设计时间较长,制作费用也较高,也不便于调整。所以本设计是基于FPGA的RS编码设计。

如图1所示为本设计所采用的编码器的结构。

其工作原理如下:

(1)寄存器R0~R2t-1全部清零。开关接通A点,然后信息位分为两路送电路中,一路直接送入C(x),一路送入除法电路并进行移位。每一个时钟移一个字节;

(2)在k个时钟结束的时候,信息位全部输入,完成除法功能。此时移位寄存器里保留了余式r(x)的系数,这就是RS码的校验位;

(3)在k+1个时钟到来的时候,开关接通B点。寄存器中的数据依次移出,送入信道。在经过2t个时钟后数据全部移出,得到2t个校验位。这2t个校验位跟在原先的尼个信息位的后面,组成(n,k)码输出。这样就完成了RS码的编码;

(4)寄存器R0~R2t-1全部清零,重复步骤(1)、(2)、(3),完成对下一组RS码的编码。

3 RS编码乘法器的Verilog语言描述

下面以RS(15,9)为例描述有限域的乘法实现思路如下:

根据上面的式子可以写出RS(15,9)的6个乘法器。如:与g0相乘的结果

其余乘法器的描述方法与此类似。完成对乘法域的语言描述,剩下的工作就是对加法器的描述了,由于加法实现比较简单,这里就不做介绍了。接下来就是控制输出信息位还是校验位的开关都是比较好设计的。

4 RS编码器的仿真

本设计是实现了RS(15,9)的编码,本设计编码器的模块框图,如图2所示。

各信号说明如下:

本设计信号时钟clk周期是40 ns,clrn是复位号,data表示信息输入有效,enable表示启动编码器,开始编码,x是4 bit信息符号,y是编码生成的4 bit码字。由下图编码图形可知,一次编码周期需要590.0 ns,最大编码速率为l700 MHz。因此,一次编码需要15个时钟周期。在25 MHz的时钟下,RS编码器仿真时序图,如图3和图4所示,并由仿真图可看出,本算法的编码速度高时延间隔不到半个周期。

RS编码测试数据如下:

输入信息:0,1,2,3,4,5,6,7,8;

编码器输出:0,1,2,3,4,5,6,7,8,B,C,0,5,7。

5 结束语

RS编码的所有运算都是建立在有限域的基础上的,其中乘法器的设计是其编码技术的关键。本设计实现了RS(15,9)的编码设计和仿真,仿真输出结果与理论分析一致,基于相同的原理,可以实现任意数据块长度的RS编码器设计。


相关文章

  • 基于FPGA和VHDL的电子秒表设计
  • 摘 要 本文利用Spartan3A and Spartan3AN系列的XC3S200A FT256的FPGA作为开发硬件,ISE软件和ModelSim软件作为开发软件,设计制作了一款计数长度为一小时,计数精度为0.01秒,六位数码管显示的电 ...查看


  • 电子信息工程毕业设计题目大全
  • 1 压力容器液位测量 2 多功能遥控小车 3基于RS232的仓库多点温度.湿度.气 4压检测系统 5自动控制升降旗系统 6基于RS485的温度报警系统 7基于模糊算法的水温控制系统的设计 8多分机电话交换机 9简易火灾自动报警系统 10基于 ...查看


  • 可重构计算技术及其发展趋势
  • .14. 计算机应用研究 2004年 可重构计算技术及其发展趋势 段然,樊晓桠,高德远,沈戈 (西北工业大学计算机科学与工程系,陕西西安710072) 摘要:可重构计算技术结合了通用处理器和AsIC两者的优点,能够提供硬件功能的效率和软件的 ...查看


  • 机电一体化论文题目一览表
  • 1 毕 业 论 文(设计)题 目 2 基于AD9851的跳频控制电路设计 3 基于伪随机序列噪声发生器设计 4 基于FPGA的延时倍频电路PLL设计 5 基于FPGA的无线搜寻系统设计 6 基于FPGA的电机测速显示设计 7 基于FPGA的 ...查看


  • 华为招基于FPGA工程师笔试简答题(本科)
  • FPGA 大公司面试笔试数电部分,看看你会多少 已有 569 次阅读2011-12-22 08:13 |系统分类:EDA/PLD| FPGA , 笔试, 数电 1:什么是同步逻辑和异步逻辑?(汉王) 同步逻辑是时钟之间有固定的因果关系.异步 ...查看


  • 电工电子基本知识
  • 目录 1 同步计数器&异步异步计数器 ................................................................................................. ...查看


  • 高速图像采集系统的研究及FPGA实现
  • 第30卷第11期 2010年11月 文章编号:1001-9081(2010) 11-3094-03 计算机应用 Journal o f Computer A pp licati ons V o. l 30N o . 11 N ov . 20 ...查看


  • IC 集成电路电子元器件的选型规律
  • IC 集成电路电子元器件的选型规律 说到元器件选型,大家头脑中是不是蹦出一大堆"???"如果是,你就out啦!在这个人人都可以成为创客的时代,各种元器件早已进入我们的生活,甚至进入幼儿园了呢!还不懂元器件的小白,Mark ...查看


  • 硬件电路设计说明书范文
  • 项目名称:E-DMR数字对讲机芯片 文件编号:HR3.002.8008.-- 项目编号:HR3.002 秘 密 硬件电路设计说明书V3 文档版本号3.0 编 写 人:赵 华 编写时间:2009-9-17 部 门:系统部 审 核 人:陈沪东. ...查看


热门内容