0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在编码电路中实现RS码编码器IP核的应用设计

电子设计 来源:固体电子学研究与进展学 作者:董怀玉,余宁梅, 2021-05-28 11:40 次阅读

作者:董怀玉,余宁梅,高勇,刘高辉,牛兰奇,陈静瑾

数字信号在传输过程中可能受到各种干扰及信道传输特性不理想的影响而使信号发生错误, 从而接收到错误的信息。为了实现数字系统在传输过程中的可靠性, 几乎所有的现代通信系统都把纠错编码作为一个基本组成部分。Reed-So lomon (RS)码是目前最有效、应用最广的差错控制编码之一,是一类具有很强纠错能力的多进制BCH 码, 它既可以纠正突发错误, 也可以纠正随机错误。RS 码主要应用于实时性较高的移动通信系统、深空通信、数字卫星电视、磁记录系统等方面。

目前对RS 编码器的设计主要局限于单一码长和固定纠错能力的RS 码编码器设计。本文提出的这种码长可变、纠错能力可调的RS 编码器是把常用的RS (7, 3) 码、RS (15, 11) 码、RS (15, 9) 码在一个编码电路中实现, 把它做成IP 核, 这样既可以大大地减少了芯片的面积而且给用户提供了方便,又有很大的选择空间。该编码电路采用基于多项式乘法理论GF (2m ) 上的m 位快速有限域乘法的方法, 使电路的编码速度有了很大的提高。本文设计的编码器的最高工作频率可达到100MHz, 完全满足无线通信中,语音通信和数据通信的数据传输速率为几百kbp s 的要求。

编码算法选取

一般来说, RS 码可以用(n, k , t) 三个参数来表示, 其中n 表示码字长度, k 表示信息位长度, t 为纠错能力, 满足关系: t= (n- k )/2。RS 码的所有元素都是定义在GF (2m ) 上, 其中有:m = log2n。对于不同的m 对应着一个本原多项式, 从本原多项式就可以得到有限域各元素。

RS (7, 3) 码的有限域见表1。

o4YBAGCwZqKAEUxGAAFz_IsISLQ695.png

RS 编码的生成多项式定义为:

pIYBAGCwZq-APJP_AAASjmf1mQQ493.png

所以可以得到各码的生成多项式:

RS (7, 3) 码:

g (x ) = x 4 + a3x 3 + x 2 + ax + a3

RS (15, 11) 码:

g (x ) = x 4 + a13x 3 + a6x 2 + a3x + a10

RS (15, 9) 码:

g (x ) = x 6 + a10x 5 + a14x 4 + a4x 3 +a6x 2 + a9x + a6

用m (x ) 表示信息码字多项式, c (x ) 表示编码后的码字多项式, 则RS 码的编码过程可以用下面编码多项式来表示:

c (x ) = m (x ) x n- k + [m (x ) x n- k ]modg (x )

上式中, [m (x ) x n- k ]modg (x ) 是求余运算, 得到是校验位。

RS 编码器的硬件实现过程, 就是运用电路来完成上述编码多项式中信息位多项式k (x ) 与x n- k的乘法运算及k (x ) x n- kmodg (x ) 的求余运算的过程。下面将详细讨论编码电路的构成及工作原理

编码电路的实现

RS编码电路的求余运算可以用n- k 级的移位寄存器来实现, 因此可以选取6 级的移位寄存器; 信息位的输入个数用计数器来控制, 可以加一选择端来控制计数器是对哪一种码字进行编码计数; 信息位与校验位的输出可以用选择器来切换。因此我们可以得到编码电路的原理框图如图1。

o4YBAGCwZtaAGyWZAADDAD2lDvs313.png

在图1 的电路中, 所有的信息数据传输均采用4 位比特宽的传输。Reset 是系统复位信号。电路的工作原理描述如下:

(1) 当sel 置为01 时, 编码电路处于RS (7, 3)码的编码状态。因为RS (7, 3) 码的信息用3 位的二进制表示, 所以数据线的最高位为零, 只有低3 位起作用。

A 编码前首先给电路一个reset 复位信号,使计数器和移位寄存器中的触发器处于零状态, 复位采用异步复位。

B 输入信息(m 2, …,m 0 ) , 计数器开始计数,每输入一个信息位, 计数器计一次数, 然后输出。此时, selecto r2 的输出与计数器的输出端相接, 因此信息位一方面从编码电路的输出端输出, 另一方面送入移位寄存器电路进行求余运算。

C当3 位信息位输入完后, 计数器输出一个控制信号ct r, 它是控制信息位与校验位的输出, 此时selcto r2 的输出与selecto r1 的输出端相接,add5 的两个输入端均为selecto r1 的输出端, 由于有限域加法不考虑各位之间的进位, 因此add5 的输出为0, 从而各乘法器m u l 的输出为0, 所以移位寄存器中的校验位会一次输出。所以校验位(D 3,…,D 0) 一次输出。校验位输出后寄存器和计数器回到零状态。因而得到编码后的码字为(m 2, 。,m 0,D 3, …,D 0)。

D 因为RS (7, 3) 码编码电路的求余运算只需要4 级的移位寄存器来实现, 因此开关K 断开,后面两级移位寄存器不工作, 这样就降低了电路的功耗。A dd5 的输入端接D3 的输出端。

(2) 当sel 置为10 时, 编码电路处于RS (15,11) 码的编码状态, 在编码前要给电路一个复位信号。过程与上面一样, 编码后得到码字为(m 10, …,m 0, D 3, …,D 0)。同样RS (15, 11) 码编码电路的求余运算只需要4 级的移位寄存器来实现, 因此K断开, add5 的输入端接D3 的输出端。

(3) 当sel 置为11 时编码电路处于RS (15, 9)码的编码状态, 编码前, 给电路一个复位信号。编码后便可得到码字为(m 8, …, m 0, D 3, …, D 0 )。RS(15, 9) 码编码电路的求余运算要6 级的移位寄存器来实现。因此K 开通, add5 的输入端接D5 的输出端。

在编码电路中乘法器采用了基于多项式乘法理论GF (2m ) 上的m 位有限域乘法的方法, 大大地提高了电路的运算速度。

快速有限域乘法器实现:

快速有限域乘法的实现思路如下, 以RS (7, 3)码为例:

因此就可以实现快速有限域乘法器, 这样对电路的运算速度将会有很大的提高。由于RS (15,11) 码和RS (15, 9) 码基于同一个有限域GF (24 ) ,因此它们的乘法器一样。当sel 置为01 时, 乘法器工作在GF (23 ) 的乘法状态, 当sel 置为10 或11时, 乘法器工作在GF (24) 的乘法状态。只不过工作在GF (23 ) 状态时乘法器输入输出端的第4 位为0。

pIYBAGCwZt2AYxw9AAA6wZ3-lM0811.png

电路仿真及测试

编码电路模块可以表示为:

sel 是编码电路的选择端, clk 是时钟输入端,reset 是系统复位端, in 是信息输入端, ou t 是码字输出端。

用V erilog HDL 语言编写电路的代码后, 再用Cadence 公司的NC V erilog HDL 仿真工具进行仿真, 得到各种编码的仿真结果。

A ) 给reset 一个复位信号, 使电路处于零状态, sel 置为01 时, 输入信息电路开始编码。输入信息位为(0, 1, 2) , 编码后得到校验位(2, 3, 1, 3) , 因此输出端输出码字为(0, 1, 2, 2, 3, 1, 3)。然后再输入信息位, 循环进行编码。

B) 给reset 一个复位信号, sel 置为10 时, 输入信息电路开始编码。输入信息为(0, 1, 2, 3, 4, 5, 6,7, 8, 9,A ) , 编码后得到校验位(C, E, 8, 3) , 所以输出端输出码字为(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,A , C, E,8, 3)。输入端再次输入信息, 循环进行编码。输出波形如图4 所示。

o4YBAGCwZwKAIxk3AACnngIT8ZU089.png

C) 给reset 一个复位信号, sel 置为11 时, 输入信息电路开始编码。输入信息为(0, 1, 2, 3, 4, 5,6, 7, 8) , 编码后得到校验位(B, C, 0, 5, 7, 8) , 所以输出端输出码字为(0, 1, 2, 3, 4, 5, 6, 7, 8,B, C, 0,5, 7, 8)。输入端再次输入信息, 循环进行编码。

仿真完成后, 采用Xilinx 的FPGA 板, 主芯片为SPARTAN II XC2SPQ 208 进行验证, 输入信息与仿真输入的信息一致, 然后用逻辑分析仪观测输出结果。

A ) 给reset 一个复位信号后, 使电路工作在RS (7, 3) 码的编码状态。用逻辑分析仪观测输入与输出的结果如下图6 所示, 虚线圈起来的(0, 1, 2,2, 3, 1, 3) 表示一个完整的输出码字。

o4YBAGCwZwqAZBXsAAB5HD20dOA250.png

B) 先使电路复位, 然后让电路工作在RS (15,11) 码的编码状态, 用逻辑分析仪观测输入与输出结果如下图7 所示, 虚线圈起来的(0, 1, 2, 3, 4, 5,6, 7, 8, 9,A , C, E, 8, 3) 表示一个完整的输出码字。

o4YBAGCwZySAPciAAAB_EW3PCRQ080.png

C) 电路复位后, 使它工作在RS (15, 9) 码的编码状态, 用逻辑分析仪观测结果如下图8 所示, 虚线圈起来的(0, 1, 2, 3, 4, 5, 6, 7, 8,B, C, 0, 5, 7, 8)表示一个完整的输出码字。

o4YBAGCwZzWABBBAAAB7HAjr4BI298.png

从上面的仿真波形和测试结果可以看到他们的输出结果一致, 验证了设计的正确性。

电路参数

用Xilinx 公司的Pro ject Navigator 综合工具对电路代码进行综合后, 得到电路的等效门单元数1339; 测得电路的静态功耗为12.50 mW , 最高作频率为100MHz。

结论

提出了一种码长可变、纠错能力可调的RS 码编码器, 它解决了以往RS 编码器只能对单一码长和固定纠错能力编码的局限, 同时采用快速有限域乘法的方法提高了电路的运算速度。设计后通过在FPGA 上测试, 验证了设计的正确性。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    41

    文章

    3360

    浏览量

    131509
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117712
  • IP核
    +关注

    关注

    4

    文章

    317

    浏览量

    49040
收藏 人收藏

    评论

    相关推荐

    采用路径搜索的并行RS编码器IP自动生成方法

    基于并行计算数据路径的自动搜索求得编码矩阵,生成有限域运算电路,从而使得编码器所有HDL代码可以由软件自动生成。设计了一款9倍并行RS(2
    发表于 04-22 11:46

    编码器实现

    编码器实现  H.264视频编码器实现有多种方法,不过大部分都是进行移植、优化的操作。H.264代要在DSP的软件平台CCS环境下运
    发表于 08-10 14:54

    800Mbps准循环LDPC编码器的FPGA实现

    800Mbps准循环LDPC编码器的FPGA实现引言低密度校验肠 , 由于其接近香农限的纠错性能,使得其成为当前信道
    发表于 08-11 11:44

    编码器扫盲,带你了解编码器的原理和应用

    8421BCD,同时也把它们作为逻辑变量,ABCD为输出代码(A为最高位),GS为控制使能标志。对功能表和逻辑电路进行分析,都可得知:①该编码器为输入低电平有效;②在按下S0~S9
    发表于 10-13 08:00

    基于RU算法的编码器是如何设计并实现的?

    编码器实现指标分析LDPC编码器实现编码器方案验证与优缺点分析
    发表于 04-30 06:08

    RS通信编码器怎么进行优化设计?

    本文以战术军用通信系统的首选RS(31,15)为例,对生成多项式进行了优化,并采用查表法的原理极大地提高了编码器运算数据的能力,缩短了运算周期,最终利用VHDL语言编译,在FPGA
    发表于 05-06 09:27

    编码器的定义

    )称为编码。具有编码功能的逻辑电路称为编码器编码器有若干个输入,在某一时刻只有一个输入信号被转换成为二进制
    发表于 09-03 06:35

    光电编码器原理及应用电路

    光电编码器原理及应用电路 1.光电编码器原理
    发表于 09-26 17:05 9135次阅读

    增量型编码器与绝对型编码器的区别

    增量型编码器与绝对型编码器的区别 编码器如以信号原理来分,有增量型编码器,绝对型编码器。   增 量 型 编 码 器 (旋转
    发表于 09-26 17:36 2409次阅读

    编码器,编码器是什么意思

    编码器,编码器是什么意思 编码器 编码器(encoder)是将信号
    发表于 03-08 15:04 2892次阅读

    PCM编码器,PCM编码器是什么意思

    PCM编码器,PCM编码器是什么意思 优先编码器: 上述机械式按键编码电路虽然比较简单,但当同时按下两个或更多个键时,其输出将是
    发表于 03-08 16:27 2262次阅读

    RS连续编码器的FPGA设计与实现

    介绍了Virtex2Ⅱ系列FPGA (现场可编程门阵列)的时钟管理模块DCM (数字时钟管理器)的结构和功能,详细分析了RS(Reed2Solomon)码编码器的工作过程,提出了一种连续RS
    发表于 09-02 16:25 83次下载
    <b class='flag-5'>RS</b>连续<b class='flag-5'>编码器</b>的FPGA设计与<b class='flag-5'>实现</b>

    基于增量式编码器的去毛刺算法实现

    分析机械式增量型编码器的毛刺产生机理,结合编码器有效旋转波形和几种毛刺波形的特点,提出一种新的去毛刺算法,在编码器的相位超前输出端的下降沿,判断一次相位滞后端的输
    发表于 09-07 14:59 80次下载
    基于增量式<b class='flag-5'>编码器</b>的去毛刺算法<b class='flag-5'>实现</b>

    RS-1FMR编码器资料下载

    RS-1FMR编码器资料下载
    发表于 12-13 17:05 1次下载

    编码器零点位置怎么看 | 编码器零位怎样确定

    。这些标记点通常很显眼且容易识别。 2. 编码器数据:通过读取编码器的输出数据,可以观察到编码器相对于其零点位置的编码计数值。在编码器的规格
    的头像 发表于 02-18 18:28 959次阅读
    <b class='flag-5'>编码器</b>零点位置怎么看 | <b class='flag-5'>编码器</b>零位怎样确定