基于fpga的bch编译码器的设计与实现内容摘要:
中的 t个或更少个错误的任意组合,称之为能纠正t个错误的二元本原 BCH码。 BCH码是循环码的一类,因此,它具有分组码、循环码的一切性质。 但它明确界定了码长,校验位数目,码的最小距离之间的关系。 可以看出它的性能较好,在同样的编码效率下,纠错能力均较强,故可在无线通信系统中获得广泛应用。 根据 BCH码的定义,若 a是 ( )中的本原元,又码长为 ,能纠正 t个错误的二元 BCH码的生成多项式 g(x)是 ( )上的次数最低的多项式,它以 为根,即对于 1≦ i≦ 2t,有 ( )。 根据 ( )域的性质,这些根的共轭元也是 ( ) 的根。 基于 FPGA 的 BCH 码编 /译码器的设计与实现 6 令 ( )是 的最小多项式,则必有 ( ) * ( ) ( ) ( ) ( ) + 式中 LCM表示最小公倍数。 对于偶数的 j, 可以写成 (其中 i为奇数, , ),此时,因为 ( ) 是 的共轭元,所以 和 有相同的最小多项式 ( ) ( ),从而可知 BCH码的生成多项式 g(x)可写成 ( ) * ( ) ( ) ( ) ( ) + 因为每个最小多项式的次数为 m,所以 ( )次数至多为 ,即码元的校验位数目为 nk,至多等于。 由于 a为本原元 (它生成 ( )中所有非零元素 ),也由于是由 a和 a的共轭元的最小多项式生成 BCH码的生成多项式,故称上述方法生成的 BCH码为本原 BCH码。 BCH 译码原理 我们知道, BCH码是一种特殊的循环码,所以,循环码和线性分组码的译码方法对于 BCH码是完全适用的。 但 BCH码在译码上也有特殊性,因为 BCH码有它的特殊结构,即生成多项式的根与校验矩阵 H有很好的联系。 设 BCH码的码字多项式为 : ( ) 若 ( )( )是生成多项式 g(x)的根,由于生成多项式 g(x)能除尽码字多项式 v(x),则 必然也是 v(x)的根,故有: ( ) ( ) ( ) (31) 写成矩阵形式为: 由式 (31)和校验矩阵 H的定义可得到: (33) 其中 ( )是码字矢量,而 是校验矩阵 H的转置矩阵。 基于 FPGA 的 BCH 码编 /译码器的设计与实现 7 若 是 的共轭元,则当且仅当 ( ) 时,也有 ( )。 即若 ( )与校验矩阵 H的第 i行的内积为零,则它与 H的第 j行的内积也为零。 因此,可以省去矩阵 H的第 i行的内积为零,则它与 H的第 j行的内积也为零。 因此,可以省去矩阵 H的第 j行。 对于 BCH码,可省去偶数项,校验矩阵 H可写成如下形式: 例如,对于 (15,7)BCH码的生成多项式 ( ) ,其根为 , , , ,但只有 , 是独立的,所以校验矩阵 H为 在对 BCH码进行译码时,如果发生 t个错误,那么一般要找出这 t个错误的位置,同时求出这些错误的值 (即错误大小 )。 在二进制中,不是“ 1”错成“ 0”,就是“ 0”错成 “ 1”,所以,错误值总是等于 ,只要求出错误位置就够了。 可以从伴随方程来得到错误位置多项式。 如,对于上述 (15,7)BCH码,若错误除在第 i, j位,则伴随式为 其中 s有两个分量,即 组合上面两式可得 所以 和 都是 基于 FPGA 的 BCH 码编 /译码器的设计与实现 8 (34) 的根。 式 (34)被称为错误多项式。 通过试探法可以解出根 和。 3 BCH(57,44,6)编码器的设计与实现 BCH(57,44,6)编码器设计 BCH码的结构完全建立在有限域的基础上,可以通过近世代数的方法来精确描述。 BCH(57,44,6)是一个系统循环码,可以通过如下步骤实现: ○ 1 用 乘以消息多项式 m(x); 基于 FPGA 的 BCH 码编 /译码器的设计与实现 9 ○ 2 用生成多项式 g(x)除 ( )得到余式 b(x)(校验位多项式 ); ○ 3 构成码字多项式 ( ) ( ) ( )。 实现 BCH(57,44,6)编码的关键是要找出改码的生成多项式 g(x)。 给定了码长和纠错能力可以通过如下方法来构造此码的生成多项式 g(x): 由于 BCH(57,44,6)代码是以二元扩域 ( )到二元域 ( )的变换为基础的,故首先找到一个 6次本原多项式 ( ) ,产生一个 ( )扩域;然后在 ( )上找到一个本原元,利用本原多项式 p(x)的根 计算 2t个连续幂次根 a, , 所对应的 GF(2)域上的最小多项式 ( ) , ( ) , ( ) ,这里 t为 BCH代码能纠正差错的个数, BCH(57,44,6)码可以纠正两个错误,即t=: ( ) * ( ) ( ) ( ) + 通过上式的生成多项式 g(x),就可以构成 BCH(57,44,6)编码器。 通过 g(x)可以获得该 BCH系统码编码电路图如下图所示: 图 31 BCH(57,44,6)编码电路图 基于 FPGA 的 BCH 码编 /译码器的设计与实现 10 上图中当门 1闭合,门 2开时,编码器接收信息的输入,并且直接将信息作为编码信息输出。 44次移位后信息位全部送入如上电路,完成出发作用,此时移位寄存器内保留了余式的系数,在二进制情况下就是校验元。 此时,门 1关,门 2开,在经过 13次移位后,把移位器中的校验码元全部输出,与原先 44位信息元组成了一个长为 57位的码字。 从而完成 BCH编码器的输出。 VHDL 实现及仿真结果 下面 举例说明 ( 57,44,6) BCH编码器的编码过程,假定输入消息序列为: data_in=(11101101110010111010100110000111011001010100),因为 ( 57,44,6)BCH码是系统码,故控制电路在输入数据 din的前 44拍时发控制信号给输出电路使编码器输出码元 data_out 等于 din; 44拍结束时,除法电路的内容就是余式,在接下来的 13拍,输出电路在控制电路的控制下依次输出余数 1100111010011,至此 57拍对一个输入数据的编码完成。 ( 57, 44, 6) BCH编码器的完整编码输出序列为: data_out=111011011100101110101001100001110110010101001100111010011 其 VHDL部分 代码如下: process(clk) begin if(clk39。 event and clk=39。 139。 ) then if(count_state=56) then count_state=1。 register_state=divide。 else count_state=count_state+1。 if(count_state=44) then register_state=shift。 end if。 end if。 基于 FPGA 的 BCH 码编 /译码器的设计与实现 11 end if。 end process。 process(clk) begin if(clk39。 event and clk=39。 039。 ) then case register_state is when divide = register_shift(0) = data_in xor register_shift(12)。 register_shift(1) = data_in xor register_shift(12) xor register_shift(0)。 register_shift(2) = register_shift(1)。 register_shift(3) = data_in xor register_shift(12) xor register_shift(2)。 register_shift(4) = register_shift(3)。 register_shift(5) = register_shift(4)。 register_shift(6) = data_in xor register_。基于fpga的bch编译码器的设计与实现
相关推荐
)直到门级电路逐层进行描述。 另外,高层次的行为描述可以与底层次的寄存器描述和结构描述混合使用。 采用 VHDL 语言设计硬件电路时,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺。 在工艺更新时无须 原设计程序,只需改变相应的映射工具。 由此可见,修改电路和修改工艺相互之间不会产生影响。 作为 IEEE 标准的 VHDL 语言,语法严格,设计成果便于复用和交流
data_high_3 状态,将数据线拉高,等待鼠标返回应答信号。 若 PS/2 时钟信号下降沿来临时,数据线仍未变为高电平,则进入m2_error_no_ack 状态,此时握手失败,系统将保持 m2_error_no_ack 状态直到下一次复位,否则进入 m2_await_response 状态接收应答字,接收完成进入 m2_verify 数据校验,然后进入 m2_use 状态,锁存输出数据
辨率较差。 FPGA器件通过 频率合成的方法做成的信号发生器。 由于合成信号发生器具有较高的频率稳定度,很容易实现数字显示频率,因此,频率分辨率高和频率的置定重复性好,以及能方便实现频率的程序控制是合成信号发生 8 器的重要特点。 由此可见通过设计频率合成器 是整个信号发生器的最为关键的部分。 根据上文提到的课题要求,特列出以下论证方案,为了显出该设计的优
when 0111 =b:=0001110000010100。 when 1000 =b:=0001101000011110。 when 1001 =b:=0010100111110000。 when 1010 =b:=0010100000010000。 when 1011 =b:=0100100000010000。 when 1100 =b:=1000100000010000。 when
器件通过硬件电路来实现所有的算法 ,提高 了 系统的可靠保密性。 FPGA 数 万 次的 重写 ,与 基于单片机的电子密码锁 相比, FPGA 构成系统设备 的可靠安全性得到提高 ,而且 更新 和升级 更加方便。 经过 设计 了解 FPGA 系统设计的 构想 ,并 学习 FPGA 设计 所用到的 软件 ,以及 Verilog 硬件语言的使用 ,掌握 电子密码 的设计步骤 ,增强 专业知识 ,
对其编程。 第 3 页 西华大学 课程 设计说明书 2 智力抢答器设计方案 Verilog HDL 的设计流程 1)文本编辑:用任何文本编辑器都可以进行,也可以用专用的 HDL 编辑环境。 通常 Verilog HDL 文件保存 为 .v 文件。 2) 功能仿真:将文件调入 HDL 仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只有在布线完成之后