基于FPGA的循环编码系统设计与实现

(整期优先)网络出版时间:2023-04-18
/ 2

基于FPGA的循环编码系统设计与实现

黄海荣

湖北孝感美珈职业学院 432100

摘要:循环码能有效地改善数据的传递,因此在实际通信中得到了广泛的应用。由于 FPGA芯片的应用越来越广泛,它已经被应用于各种行业。文章从理论上对 FPGA中的循环代码进行了详细的阐述。

关键词:循环码FPGA编码译码

引言: 现场可编程序门阵列(FPGA)是一种包含可编辑器件的半导体器件,它可以被用户在现场进行程式化。当前由 Verilog或 VHDL的硬件描述语言实现的电路设计,可以通过简单的集成和布局,迅速地将其烧录到 FPGA上进行测试,是当今 IC设计验证的主要技术。要提高信号的抗干扰性,必须对其进行改进,使其内部结构更加规则、更加紧密,从而使得当噪声对其结构造成损害时,仍然能够通过信号本身固有的规律和相关性,找到并纠正其缺陷,并将其还原。其基本方法是:根据一定的规则,在原有代码中加入新的符号,即被命名为“监管符号”,而原始代码群中的符号被称作“信息符号”。监控符号的功能是监控代码在发送时有没有出错,甚至可以指出哪个符号出错,从而改正,而加入监管符号的方式(法则或规则)也会产生不同的编码方式。

一、循环码编码理论

循环代码又称为循环冗余码,英文简称 ORC,是一种在早期通讯中被广泛使用的一种校验代码。由于早期通讯技术不可靠(不可靠的根源在于通讯技术,例如在电磁通讯中受到闪电等干扰),而不可靠的通讯则会造成“证实讯息”的混乱。对通讯的可靠性检验要求进行“检验”,检验是根据某种数学上的惯例来检验,检验的结果是否可靠,可靠的话,就进行处理,不可靠的话,就放弃重新发送,或者进行修正。在线性分组编码中,循环编码是最主要的一种,其编码电路相对简单,采用带反馈的移位寄存器即可完成。由于其具有很好的检测和校正性能,因此已经被广泛地用于误差控制。

1.2循环编码原理

在编码时,首先需要根据循环码的参数确定生成多项式g(x).也就是从x*+1的因子中选出一个(n-k)次多项式作为g(x);然后,利用循环码的编码特性,即所有循环码多项式A(x)都可以被g(x)整除,来定义生成多项式g(x).根据上述原理可以得到一个较简单的系统循环码编码方法:假设要产生(n,k)循环.码,m(x)表示信息多项式,则其次数比小于k,而x*m(x)的次数比小于n,用x*m(x)除以g(x),可得余数r(x),r(x)的次数比小于(n-k),将r(x)加到信息位后作监督位,就得到了系统循环码。

二、循环码的编码方法

2.1用生成多项式编码

a.选择一个能除尽Xn+I的n-k=r次生成多项式如g(x)。

b.由g(x)生成各码多项式。

c.找出与码多项式相对应的循环码字。

2.2用生成矩阵编码

有两种求生成矩阵的方法:

a.因为g(x)是最低次数的码多项式。且xg(x),x2g(x),....xk-1g(x)皆为码多项式。用它们构成G,再用行变换把G变换为典型生成矩阵,然后用其编码。

b.用g(x)除xn-k(0,1...k-1)得:;Xn-k+i=qi(x)g(x)+ri(x)

于是Xn-k+ri(x)是g(x)的倍式,且次数小于等于n-1.所以为码多项式。用此方法可得到七个码多项式,可以直接构成典型生成矩阵,用以编码。

2.3用余式确定校验位

a.用xn-k乘信息多项式m(xI)

b.用gG)除xn—k-m(x)得到余式r(x)。

生成码多项式xn-k-m(x)+r(x)。

第一种方法可用乘法来完成,第二种方法用生成矩阵G编码是-一般线性分组编码的通用方法,利用这一种方法编循环码,体现不出循环码的优点,第三种方法可用除法电路来完成,应用比较广泛。

三、FPGA及其设计原理简介

3.1FPGA介绍

FPGA (FieldProgramableGateArray)全称为现场可编程门阵列,它是美国 Xilinic公司于1984年开发的一种新型的可编程逻辑装置(PLD),它是以 SRAM工艺为基础,以查询表(UT)为基础。PLD是指用户在设备制造完成后,根据用户的要求设置操作功能,从而将其与常规的功能设备区分开来。PPGA可以根据使用者的需要自行设定其内部逻辑与功能,并且可以进行多次的再配置,再配合电脑 CAD的辅助设计及强大的模拟工具,让使用者可以在办公室或实验室中自行设计出符合使用者要求的 ASIC元件,并可根据使用者设定的不同用途,为电子设计提供更多的弹性。FPGA在通信、移动设备、航天、自动控制等方面得到了广泛的应用。

3.2FPGA设计流程

(1)设计输入

在 EDA的基础上, FPGA首先将电路系统以-定格式输入到计算机中。EDA的输入通常分为两种:一种是图像输入,另一种是高清文本。HDL文本包括 VHDL.和 Verilog两种源代码。

(2)合并

整合是将电路中的高级语言(如行为描述)转换成低级的,这样就能生成相应于 FPGA底层结构的 Web表单文件或程序。

(3)适配

该适配器又称为结构综合器,其作用是把综合器生成的网络表格文件配置 f指定的目标设备中,从而生成一个最终的下载文件,例如 JEDEC. JAM。

(4)时间模拟与函数模拟

时序模拟是模拟实际设备的工作性能,其中包括了设备的硬件性能参数,因此,模拟结果具有较高的准确性。功能仿真是指通过对 VHDL、原理图描述等描述方式,对逻辑函数进行直接的测试,以确定所实现的功能是否达到原始设计的要求,而仿真过程中不需要考虑特定设备的硬件性能。

四、循环码编码器设计与实现

在进行编码时,首先要根据给定的循环代码的参数来决定产生多项式 g (x),即从X~1的系数中选择一个(N- K)次多项式;然后,根据循环码的编码特性,定义了多项式的产生。由以上理论推导出了一种较为简便的系统循环码的编码方法:若要生成(N、 K)的循环码,则它的次数必小于 k,而次数必然比 n少,用 g (x)除以 g (x),所得余数为,重复的次数必小于(N— K),将心加到信息位后作监督位,就得到了系统循环码。

下面就将以上各步以(7,4)循环码为例给出设计步骤。

第一个步骤:当门选通时,第三个移位寄存器初始值是000。该信息群按顺序为u0、…、u0,分别从两个方向输入,一条是直接输出,一条是 g (x)除法。

第二步:四次移动后,所有的信息都被传送到除法电路中,然后进行除法。此时,在移位寄存器中的状态为代码的监督单元(C0、C1、C2)。

第三个步骤:输出开关反转到第2分支经过3次位移,然后再将代码 C输出。

第四步:对下一组信息符号的编码重复以上步骤。

结束语:随着电子线路技术的不断发展,循环码编码和解码技术已经被广泛地应用于各个通讯领域,而随着 FPGA的不断普及,这将是一种非常普遍的技术。根据软件的实际设计原则,基于(7、4)循环代码的一些基本原理,提出了软件开发的具体思想。按照这种思想,编制的程序具有工作原理清晰、逻辑简洁、 FPGA资源消耗小等特点。在实践中有很高的实用价值。

参考文献:

[1]王新梅,肖国镇.纠错码-原理与方法[M].西安:西安电子科技大学出版社,2009.

[2]惠高潮,王辉.基于单片机(7,4)循环码编码与译码的研究[J].单片机开发与应用,2009(25):107-108.

[3]边巴格罗,格桑卓玛,拉巴次仁.线性码和循环码的编码与译码[J].西藏科技,2009(194):77-80.