NiosSoC系统中的BCH编解码IP核的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

N i os SoC 系统中的BCH 编解码I P 核的设计
苏 勇,张剑峰,尹廷辉
(解放军理工大学通信工程学院,江苏省南京市210007)
摘 要:在编码理论中,BCH 码是一种得到深入研究的循环纠错码。

SoC (片上系统)设计是电子设计的发展方向。

BCH 码的SoC 实现方法和传统的多片实现方法相比,在工程上具有便捷、小型化及高速等特点。

文中分析了使用SoC 设计方法完成BCH 编解码的设计思路;给出了BCH 编码、Berleka 2mp 译码以及CP U 接口的实现细节;同时给出了重要模块的仿真结果。

关键词:BCH;SoC;Berleka mp 译码;伴随式中图分类号:T N914.53
收稿日期:2006210220;修回日期:2006212225。

0 引 言
循环码是最重要的一类线性分组纠错码,而BCH ,它具有严格的代数理论,对它的理论研究也非常透彻。

BCH 码的实现途径有软件和硬件两种。

软件实现方法灵活性强且较易实现,但硬件实现方法的工作速度快,在高数据速率和长帧应用场合时具有优势。

FPG A (现场可编程门阵列)为DSP 算法的硬件实现提供了很好的平台,但如果单独使用一片FPG A 实现BCH 编解码,对成本、功耗和交互速度都不利。

最新的SoC (片上系统)设计方法可以很好地解决这个问题。

本文基于A ltera 公司的N i os 软核+可编程资源的SoC 平台设计了BCH 编解码I P 核,这样,在N i os 系统中可以将BCH 码作为一种片内资源进行调用,在工程设计上具有积极的意义。

1 BCH 码
BCH 码于1960年前后发明,可以纠检多个错误。

通常的二进制BCH 码元是取自加罗瓦域[1]GF (2m
)。

对于参数m 和可纠错码元数目t ,BCH 码的码长为n
=2m -1,对于m ≥3,t <2m -1
的BCH 码,监督码元数目n -k =m t ;d m in ≥2t +1。

同时,BCH 码元多项式的
根为GF (2m )中的元素α,α3,…,α2t-1。

例如一个m =
6,t =3的BCH 码,其参数为:n =63,n -k =18,d m in =7。

这就构成了可以纠正3个错误的(63,45)BCH 码。

BCH 码基于加罗瓦域,BCH 编解码的运算也是域
内的闭合运算。

加罗瓦有限域产生于一个本原多项
式,GF (2m )有限域内有2m 个元素。

以GF (23
)域为
例,它的本原多项式p (x )假定为p (x )=x 3
+x +1,基
本元素α定义为p (x )=0的根,GF (23
)中的元素可以计算如下:
0:模(α3
+α+1)=0α0:模(α3+α+1)=α0=1α1:模(α3+α+1)=α1α2:模(α3+α+1)=α2α3:模(α3+α+1)=α+1α4:模(α3+α+1)=α2+αα5:模(α3+α+1)=α2+α1+1α6:模(α3+α+1)=α2+1α7:模(α3+α+1)=α0α8:模(α3+α+1)=α
1……
BCH 码的编码取决于其生成多项式,令<2i-1(x )是加罗瓦域元素α2i -1
的最小多项式,则可以纠正t 个错误的BCH 码的生成多项式为:
g (x )=lcm {<1(x ),<3(x ),…,<2t-1(x )} 有了生成多项式,BCH 编码与普通的循环码编码相同,使用除法电路可以实现。

一个复杂度较低的BCH 译码算法对于BCH 码的应用有着重要的意义。

BCH 译码可以分为伴随式计算和Berleka mp 迭代译码两部分。

设接收码元多项式为r (x ),由于生成多项式的性质,如果传输过程中信
道没有引入错误,α,α2,α3,…,α2t
应是r (x )的根。

因此,伴随式计算即将加罗瓦域中的元素代入接收码元多项式,如果所有伴随式结果都为0,则说明没有错误,否则就有错误。

如果只使用BCH 码进行检错,则译码过程就结束了。

伴随式计算结束后,如果有错,首先需要计算错误位置多项式δ(x ),译码的核心主要集中在这一步上。


81・第33卷第5期2007年5月 电子工程师 E LECTRON I C E NGI N EER Vol .33No .5
May
2007
Berleka mp 迭代算法不仅求解了错误位置多项式的关
键方程
[2]
,而且运算速度快,可以说它解决了BCH 码
译码的工程实用问题。

其次,使用钱搜索[1]
找出δ(x )的根,即错误位置。

最后,由于是二进制编码,只需把相应位置的码元取反就完成了整个译码过程。

2 BCH 编解码I P 核的设计
2.1 整体设计及CPU 接口
在N i os Ⅱ系统[3]
中,平台免费提供了各种常用接口I P 核以及对这些外设的驱动程序包,例如UART 接口、Flash 接口等。

作为一个自行设计的I P 核,需要挂接在N i os Ⅱ系统的Aval on 总线上。

这个过程使用Sopc Builder 工具中的I nterface t o user l ogic 模块可以
方便地进行设计。

N i os Ⅱ处理器和BCH I P 核之间通过Aval on 总线使用寄存器映射方式进行交互。

图1是整个I P 核的实现方框图。

图1 BCH 码I P 核实现方框图
其中与N i os Ⅱ的接口分为控制接口和数据接口两部分。

控制接口包括复位、编解码控制、存储器状态报告和编解码状态报告等。

数据接口为FPG A 内部的RAM ,分为发送和接收两部分,它在N i os Ⅱ中映射成
存储空间。

在N i os Ⅱ和BCH 码I P 核之间设置简单的数据协议,控制寄存器的起始控制位设置后,写入数据缓存的第1个字节为编解码输入数据的长度字节。

BCH 编解码模块从数据缓存中读入数据进行相应处理。

其中,加罗瓦域的运算主要通过对域元素的查表得到。

2.2 BCH 编码
BCH 码属于系统码,其编码与一般循环码的编码形式基本相同,即为信息码元多项式与生成多项式之间的除法电路实现。

除法电路采用带反馈的移位寄存器完成。

信息码元发送完后,寄存器内存储的就是监督码元,再接着发送即可。

其中反馈抽头连接为生成多项式控制。

其基本结构见图
2。

图2 BCH 编码器结构
信息码元首先从数据缓存中被读出,然后通过并/
串变换进入编码器后,一方面直接输出,同时送入除法电路,当信息码元输入结束后,开关进行相应的变换,存在寄存器中的监督码元输出。

图3为(31,16)BCH 编码的RT L (寄存器传输级)仿真结果。

图3 BCH 编码RT L 仿真结果
2.3 BCH 译码
前面已经介绍了BCH 迭代译码的基本步骤。

译码过程中的运算都为有限域运算,在运算过程中经常计算加罗瓦域的元素是不明智的,查表实现是通用的
方法。

例如GF (23
)中,可以设计表1所示的表格来实现域元素的查找,同时,运算中还经常需要通过元素值反查元素类型,因此需要设计两张表格来正向和反向查找。

图1中的GF 域查表RAM 模块就完成了这个功能。

通过以上查表方法可以轻松实现有限域的加、减和乘运算。

表1 有限域中的域元素
GF (23
)
域元素二进制对代码
GF (23
)域元素
二进制对代码
(000)α3(011)α0(001)α4(110)α1(010)α5(111)α2
(100)
α6
(101)
首先进行伴随式计算,在设计中利用片内较高的工作频率和FPG A 的并发实现优势,同时完成所有伴随式的计算。

图4为伴随式计算的RT L 仿真结果,当传输引入错误后,伴随式相或的结果Data_Out 输出高电平,表示需要进行纠错。

图4 伴随式计算RT L 仿真结果

91・第33卷第5期苏 勇,等:N i os SoC 系统中的BCH 编解码I P 核的设计・通信技术・
然后进行迭代译码,迭代过程可以通过表2表示。

其中μ为算法迭代的次数,第1次为了表示方便,可以
认为初始值是0。

δμ
(x )就是错误位置多项式。

d μ是一种差值,用于运算。

l μ是第μ次运算时δμ
(x )的多
项式阶数,2μ-l μ是运算中应用的变量。

表2 迭代译码初始化表
μ
δu
(x )
d μl μ
2μ-l
μ-1/21s 0=10-101
s 1
123
算法流程步骤如下:
a )按如上μ为0和-1/2时初始化各个变量。

b )如果d μ=0,此时,
δu +1(x )=δu
(x )
则往下进行。

c )如果
d μ≠0,则寻找以前运算的某一行ρ,其具有2μ-l μ最大(正值),且d ρ≠0。

此时,
δμ+1(x )=δμ(x )+d μd -1ρx
2(μ-ρ)δρ(x ) 如果μ=t -1,则算法结束。

d )l μ+1=deg (δμ+1(x )),即δμ
+1
(x )的多项式阶
数。

e )d μ+1=s 2μ+3+δ1
μ+1
s 2μ+2+δ2
μ+1
s 2μ+1+…+
δL
μ+1
s 2μ+3-L ,其中,L 为l μ+1,δi 是δu
(x )的第i 阶系数。

f )增加μ,从步骤b 开始。

得到错误多项式后,通过钱搜索和取反即可完成
整个译码工作。

3 结束语
SoC 技术以其低成本、低功耗和小体积已经成为
电子设计领域的一个重要发展方向。

BCH 码是一种经典的分组纠错码,在通信系统中应用较为广泛。


过这两者的结合,本文设计的BCH 码I P 核嵌入N i os SoC 中,使得BCH 编解码在单片系统中可以自由调用,对SoC 中的应用软件而言,调用接口简单,I P 核屏蔽了所有算法细节。

同时,由于采用硬件实现,具有高速、稳定的特点。

参 考 文 献
[1]王新梅.纠错码原理与方法[M ].西安:西安电子科技大
学出版社,1991.
[2]MOORE T G R,G ULL I V ER T A.Tree Decoding of BCH
Codes[C ]//Pr oceedings of I EEE Gl obal Telecommunicati ons Conference:Vol 6,Nov 8212,1998,Sydney,Australia .Pis 2cataway,NJ,US A:I EEE,1998:352123524.
[3]N i os µ
Ⅱs oft w are devel opment .A ltera Cor porati on,2005.
苏 勇(19752),男,讲师,研究方向为第三代移动通信。

Desi gn of BCH Code I P Core i n Ni os SoC Syste m
SU Y ong,ZHANG J i a nfeng,Y I N T i n ghu i
(I nstitute of Co mmunicati ons Engineering,P LA University of Science and Technol ogy,Nanjing 210007,China )
Abstract:The BCH codes are the much studied codes within the study of coding theory and BCH codes are cyclic err or 2correcting codes .The syste m on chi p (SoC )design is the devel opment directi on of the electri 2cal design .Co mpared t o the traditi onal realizati on method,the SoC realizati on method of the BCH codes is convenient,s mall scaled and high s peed on the engineering .The paper analyzes the design idea of SoC design method;gives the realizati on detail of BCH encoding,Berleka mp decoding and CP U interface;gives the si m u 2lati on result of i m portant l ogic module .
Keywords:BCH;SoC;Berleka mp decoding;syndr o me
欢迎刊登广告
编辑部电话:025********* 传真:025*********

02・・通信技术・电子工程师2007年5月。

相关文档
最新文档