-
课
程
设
计
课程名称
现代通信原理与技术课程设计
题目名称
CRC16
、扰码
/
解扰码器并行方
案原理和
Verilog
HDL
程序设计
201
3
年
10
月
2
5
日
目录
一、
CRC16
并行算法原理
二、
CRC16
并行算法的
Verilog
HDL
程序设计
< br>三、扰码
/
解扰码器并行算法原理
四、扰码
/
解扰码器并行算法的
Verilog
HDL
程序设计
五、参考文献
1
一、
CRC16
并行算法原理
1
、
CRC
编码原理
在数字通
信中,
可能会因为各种原因导致数据在传输过程中或接收时发生错误,
< br>为了保
证数据传输的可靠性和数据校验的高效性,常常采用一些差错控制方法。冗
余校验(
CRC
)
就是一种被广泛采用
的差错控制方法和数据编码方法。
它具有编码和解码方法简单
,
剪错和纠错能力强等特点,
能有效地对数据进行编码,
并
可以显著的提高系统的剪错能力,
从而保证
数据的可靠性和正确性,
因此在大多数的以太网
协议中都采用了
CRC
的校验来进行差错控制。
p>
CRC
主要有两种,
即非标准的由用户定义
的
CRC
的生成多项式和国际标准化组织规定的
标准的生成多项式。
其中第二中应用广泛,
国际标准化
组织规定的几种主要常见的
CRC
如表
所示。
CRC
编码是根据
CRC
检验原理得出的一种编码方法,
其基本思想是:
利用线性编码理论,
在发送方向
根据要传输的
K
位二进制序列,
以一定
的规则产生
r
位校验用的监督吗
(
p>
CRC
码)
,
并附
在信息位之后,
构成一个新的二进制代码序列共
n=k+r
p>
位。
在接收方,
则根据信息码和
CRC
码之间的规则进行校验,以确定传输中是否出现错误。
对一个数据进行编码,
就是原始数据通过某种算法
,
得到一个新的数据。
而这个新的数
据
与原始数据有着固定的内在联系。通过把原始数据和新的数据组合在一起形成新的数据,
因此这个数据具有自我校验的能力。
将原始数据表示为
P
(
x
)
,
它是一个
n
阶多项式表示为;
式子中,
为数据位;
x
为伪变量,用
指明各位间的排列位置。
在对这个数据进行编码的时,
CRC
生成多项式
G
(
x<
/p>
)
,
并在带编码的二进制多项式
P
(
x
)
的末尾添加
r
个
0
,这样对应的二进制多项式升幂为
。再用生成多项式
G
(
x
)去除
,求得余数为
r-1
阶的二进制多项式
R
(
x
)
。
R
(
x
)即
为所求的
CRC
校验码多项式。
最后用
以模
2
的方法减去
R
(
x
)
,
则对应的二进制序列就是包含了
CRC
校验码的待发
送字符串,也就是编码后的数据。
2
式中:
Q(x
)是商多项式;
R(x)
是余数多项式;
T(x)
是编码后的数据。
2<
/p>
、
CRC_16
并行算法原理
在利用
CRC_16
串
行编码电路对输入进行编码时,它的输入数据是串行输入的,因此数
据传输效率低,
p>
它的运算速度的提高完全依赖于系统时钟频率的提高,
不能满足现在
的低功
耗下的数据快速传输,
如果将数据进行并行处理,
就可以在较低的时钟频率下快速的处理数
据,因此,本次设计采用并行
的
CRC_16
。
< br>最常见的
CRC
校验码电路采用的是线性反馈寄存器
p>
LFSR
实现,对于
CRC_16
,其生成多
项式为
,
所
以对应的系数
0
—
16
为:
:1011
,
由此可以得
到
CRC_16
编码电路结构图,如图所示。
< br>
从图中可以看出,各位移位寄存器当前存储的数据为
CRC
余数值,
16
< br>个
D
触发器输出
从
右
至
左
依
< br>次
为
。
输
入
的
信
息
码
元
为
I
。
p>
令
表示编码以为寄存器当前所处的状态,
I
=[I0 I1...I7]
表示第
1
至第
8
个时钟的信息码元输入,向量
表
示编码器的下一个状态,
D(8)
表示第
8
个时钟周期后
CRC
编码器中移位
寄存器所处的状态,则设计
8bit
并行的
CRC
逻辑编码器就是找出函数关系
。
第
1
个时钟周期后的编码寄存器
状态为:
3
可以将以上表达式组成矩阵乘法,有:
其中,
第
2
个时钟
周期后的编码寄存器状态为:
以此类推则有:
假设用
crc_reg[15:0]
表示移位寄存器初始状态,
crc_in[8:0]
表示并行输
入的
8bit
数据,
crc_reg8[15:0]
表示
8bit
并行编码后的移位寄存器状态,则
4
3
p>
、
CRC_16
并行仿真输出波形
如图所示是
CRC_16
并行编码电路测试程序的仿真结果,输入信号时
crc_in
,没有完全
输入编码器是,
输入信号
crc_in
作为
crc_out
端口
输出数据;
当
d_finish
信号为
高电平指
示数据输入完成时,将线性移位寄存器
crc_reg
中的校验位并行
8
位输出到
crc_out
端口。
由图可以看出输入信号与输
出存在一个时钟周期的延时。
二、
CRC16
并行算法的
Verilog
HDL
程序设计
1
< br>、
CRC_16
校验码的并行编码程序
< br>
module
CRC_16(clk,rst,load,d_finish,crc_in,crc_out);
input clk,rst;
input load;
//
开始编码信号
input d_finish;
//
编码结束信号
input [7:0] crc_in; //
编码器并行
8bit
数据输入
output [7:0] crc_out; /
/
编码器并行
8bit
数据输出
reg [7:0] crc_out;
//
数据输出寄存器
reg [15:0] crc_reg;
//
编码器移位寄存器
reg [1:0] count;
5
-
-
-
-
-
-
-
-
-
上一篇:英语量词词组
下一篇:核临界和辐射防护术语中英文对照